{"version":3,"file":"js/vendors-node_modules_canvg_lib_index_es_js.chunk.js?id=2cdfd7d95b6f57a9518f","mappings":"qJACA,WACE,IAAIA,EAAgBC,EAAQC,EAAUC,EAAgBC,EAAcC,EAExC,qBAAhBC,aAA+C,OAAhBA,aAAyBA,YAAYC,IAC9EC,EAAOC,QAAU,WACf,OAAOH,YAAYC,KACrB,EAC6B,qBAAZG,SAAuC,OAAZA,SAAqBA,QAAQT,QACzEO,EAAOC,QAAU,WACf,OAAQT,IAAmBI,GAAgB,GAC7C,EACAH,EAASS,QAAQT,OACjBD,EAAiB,WACf,IAAIW,EAEJ,OADAA,EAAKV,IACU,IAARU,EAAG,GAAWA,EAAG,EAC1B,EACAR,EAAiBH,IACjBK,EAA4B,IAAnBK,QAAQE,SACjBR,EAAeD,EAAiBE,GACvBQ,KAAKN,KACdC,EAAOC,QAAU,WACf,OAAOI,KAAKN,MAAQL,CACtB,EACAA,EAAWW,KAAKN,QAEhBC,EAAOC,QAAU,WACf,OAAO,IAAII,MAAOC,UAAYZ,CAChC,EACAA,GAAW,IAAIW,MAAOC,UAGzB,GAAEC,KAAKC,K,wBC1BR,IAPA,IAAIT,EAAM,EAAQ,OACdU,EAAyB,qBAAXC,OAAyB,EAAAC,EAASD,OAChDE,EAAU,CAAC,MAAO,UAClBC,EAAS,iBACTC,EAAML,EAAK,UAAYI,GACvBE,EAAMN,EAAK,SAAWI,IAAWJ,EAAK,gBAAkBI,GAEpDG,EAAI,GAAIF,GAAOE,EAAIJ,EAAQK,OAAQD,IACzCF,EAAML,EAAKG,EAAQI,GAAK,UAAYH,GACpCE,EAAMN,EAAKG,EAAQI,GAAK,SAAWH,IAC5BJ,EAAKG,EAAQI,GAAK,gBAAkBH,GAI7C,IAAIC,IAAQC,EAAK,CACf,IAAIG,EAAO,EACPC,EAAK,EACLC,EAAQ,GACRC,EAAgB,IAAO,GAE3BP,EAAM,SAASQ,GACb,GAAoB,IAAjBF,EAAMH,OAAc,CACrB,IAAIM,EAAOxB,IACPyB,EAAOC,KAAKC,IAAI,EAAGL,GAAiBE,EAAOL,IAC/CA,EAAOM,EAAOD,EACdI,YAAW,WACT,IAAIC,EAAKR,EAAMS,MAAM,GAIrBT,EAAMH,OAAS,EACf,IAAI,IAAID,EAAI,EAAGA,EAAIY,EAAGX,OAAQD,IAC5B,IAAIY,EAAGZ,GAAGc,UACR,IACEF,EAAGZ,GAAGM,SAASJ,EACjB,CAAE,MAAMa,GACNJ,YAAW,WAAa,MAAMI,CAAE,GAAG,EACrC,CAGN,GAAGN,KAAKO,MAAMR,GAChB,CAMA,OALAJ,EAAMa,KAAK,CACTC,SAAUf,EACVG,SAAUA,EACVQ,WAAW,IAENX,CACT,EAEAJ,EAAM,SAASmB,GACb,IAAI,IAAIlB,EAAI,EAAGA,EAAII,EAAMH,OAAQD,IAC5BI,EAAMJ,GAAGkB,SAAWA,IACrBd,EAAMJ,GAAGc,WAAY,EAG3B,CACF,CAEA9B,EAAOC,QAAU,SAASkC,GAIxB,OAAOrB,EAAIP,KAAKE,EAAM0B,EACxB,EACAnC,EAAOC,QAAQmC,OAAS,WACtBrB,EAAIsB,MAAM5B,EAAM6B,UAClB,EACAtC,EAAOC,QAAQsC,SAAW,SAASC,GAC5BA,IACHA,EAAS/B,GAEX+B,EAAOC,sBAAwB3B,EAC/B0B,EAAOE,qBAAuB3B,CAChC,C,oBCrEAf,EAAOC,QAAU,SAAS0C,GACtBnC,KAAKoC,IAAK,EACVpC,KAAKqC,MAAQ,EAGiB,KAA1BF,EAAaG,OAAO,KACpBH,EAAeA,EAAaI,OAAO,EAAE,IAGzCJ,EAAeA,EAAaK,QAAQ,KAAK,IACzCL,EAAeA,EAAaM,cAI5B,IAAIC,EAAgB,CAChBC,UAAW,SACXC,aAAc,SACdC,KAAM,SACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,SACPC,eAAgB,SAChBC,KAAM,SACNC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,SACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,WAAY,SACZC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,SAAU,SACVC,QAAS,SACTC,UAAY,SACZC,OAAS,SACTC,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,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,SAChBC,eAAgB,SAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,SACNC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,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,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACfC,IAAK,SACLC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAEjBvJ,EAAeO,EAAcP,IAAiBA,EAqD9C,IAjDA,IAAIwJ,EAAa,CACb,CACIC,GAAI,kEACJC,QAAS,CAAC,0BAA2B,yBACrCnM,QAAS,SAAUoM,GACf,MAAO,CACHC,SAASD,EAAK,IACdC,SAASD,EAAK,IACdC,SAASD,EAAK,IACdE,WAAWF,EAAK,IAExB,GAEJ,CACIF,GAAI,+CACJC,QAAS,CAAC,oBAAqB,oBAC/BnM,QAAS,SAAUoM,GACf,MAAO,CACHC,SAASD,EAAK,IACdC,SAASD,EAAK,IACdC,SAASD,EAAK,IAEtB,GAEJ,CACIF,GAAI,qDACJC,QAAS,CAAC,UAAW,UACrBnM,QAAS,SAAUoM,GACf,MAAO,CACHC,SAASD,EAAK,GAAI,IAClBC,SAASD,EAAK,GAAI,IAClBC,SAASD,EAAK,GAAI,IAE1B,GAEJ,CACIF,GAAI,qDACJC,QAAS,CAAC,OAAQ,OAClBnM,QAAS,SAAUoM,GACf,MAAO,CACHC,SAASD,EAAK,GAAKA,EAAK,GAAI,IAC5BC,SAASD,EAAK,GAAKA,EAAK,GAAI,IAC5BC,SAASD,EAAK,GAAKA,EAAK,GAAI,IAEpC,IAKCtL,EAAI,EAAGA,EAAImL,EAAWlL,OAAQD,IAAK,CACxC,IAAIoL,EAAKD,EAAWnL,GAAGoL,GACnBK,EAAYN,EAAWnL,GAAGd,QAC1BoM,EAAOF,EAAGM,KAAK/J,GACnB,GAAI2J,EAAM,CACN,IAAIK,EAAWF,EAAUH,GACzB9L,KAAKoM,EAAID,EAAS,GAClBnM,KAAKG,EAAIgM,EAAS,GAClBnM,KAAKqM,EAAIF,EAAS,GACdA,EAAS1L,OAAS,IAClBT,KAAKqC,MAAQ8J,EAAS,IAE1BnM,KAAKoC,IAAK,CACd,CAEJ,CAGApC,KAAKoM,EAAKpM,KAAKoM,EAAI,GAAKE,MAAMtM,KAAKoM,GAAM,EAAMpM,KAAKoM,EAAI,IAAO,IAAMpM,KAAKoM,EAC1EpM,KAAKG,EAAKH,KAAKG,EAAI,GAAKmM,MAAMtM,KAAKG,GAAM,EAAMH,KAAKG,EAAI,IAAO,IAAMH,KAAKG,EAC1EH,KAAKqM,EAAKrM,KAAKqM,EAAI,GAAKC,MAAMtM,KAAKqM,GAAM,EAAMrM,KAAKqM,EAAI,IAAO,IAAMrM,KAAKqM,EAC1ErM,KAAKqC,MAASrC,KAAKqC,MAAQ,EAAK,EAAMrC,KAAKqC,MAAQ,GAAOiK,MAAMtM,KAAKqC,OAAU,EAAMrC,KAAKqC,MAG1FrC,KAAKuM,MAAQ,WACT,MAAO,OAASvM,KAAKoM,EAAI,KAAOpM,KAAKG,EAAI,KAAOH,KAAKqM,EAAI,GAC7D,EACArM,KAAKwM,OAAS,WACV,MAAO,QAAUxM,KAAKoM,EAAI,KAAOpM,KAAKG,EAAI,KAAOH,KAAKqM,EAAI,KAAOrM,KAAKqC,MAAQ,GAClF,EACArC,KAAKyM,MAAQ,WACT,IAAIL,EAAIpM,KAAKoM,EAAEM,SAAS,IACpBvM,EAAIH,KAAKG,EAAEuM,SAAS,IACpBL,EAAIrM,KAAKqM,EAAEK,SAAS,IAIxB,OAHgB,GAAZN,EAAE3L,SAAa2L,EAAI,IAAMA,GACb,GAAZjM,EAAEM,SAAaN,EAAI,IAAMA,GACb,GAAZkM,EAAE5L,SAAa4L,EAAI,IAAMA,GACtB,IAAMD,EAAIjM,EAAIkM,CACzB,EAGArM,KAAK2M,WAAa,WAId,IAFA,IAAIC,EAAW,IAAIC,MAEVrM,EAAI,EAAGA,EAAImL,EAAWlL,OAAQD,IAEnC,IADA,IAAIqL,EAAUF,EAAWnL,GAAGqL,QACnBiB,EAAI,EAAGA,EAAIjB,EAAQpL,OAAQqM,IAChCF,EAASA,EAASnM,QAAUoL,EAAQiB,GAI5C,IAAK,IAAIC,KAAMrK,EACXkK,EAASA,EAASnM,QAAUsM,EAGhC,IAAIC,EAAMC,SAASC,cAAc,MACjCF,EAAIG,aAAa,KAAM,qBACvB,IAAS3M,EAAI,EAAGA,EAAIoM,EAASnM,OAAQD,IACjC,IACI,IAAI4M,EAAYH,SAASC,cAAc,MACnCG,EAAa,IAAIC,SAASV,EAASpM,IACnC+M,EAAcN,SAASC,cAAc,OACzCK,EAAYC,MAAMC,QACV,oDAEkBJ,EAAWZ,QAF7B,WAGaY,EAAWZ,QAEhCc,EAAYG,YAAYT,SAASU,eAAe,SAChD,IAAIC,EAAkBX,SAASU,eAC3B,IAAMf,EAASpM,GAAK,OAAS6M,EAAWd,QAAU,OAASc,EAAWZ,SAE1EW,EAAUM,YAAYH,GACtBH,EAAUM,YAAYE,GACtBZ,EAAIU,YAAYN,EAEpB,CAAE,MAAM7L,GAAG,CAEf,OAAOyL,CAEX,CAEJ,C,qCC5SA,IAAIa,EAAY,EAAQ,OAExBrO,EAAOC,QAAU,oBAAoBqO,KAAKD,IAA+B,oBAAVE,M,qCCF/D,IAAIF,EAAY,EAAQ,OAGxBrO,EAAOC,QAAU,qCAAqCqO,KAAKD,E,oCCH3D,IAAIA,EAAY,EAAQ,OAExBrO,EAAOC,QAAU,qBAAqBqO,KAAKD,E,iCCF3CrO,EAAOC,QAAU,SAAUuO,EAAG3B,GAC5B,IAEuB,IAArBvK,UAAUrB,OAAewN,QAAQC,MAAMF,GAAKC,QAAQC,MAAMF,EAAG3B,EAC/D,CAAE,MAAO6B,GAAqB,CAChC,C,qCCLA,IAeIC,EAAQC,EAAQC,EAAMC,EAASC,EAf/BC,EAAa,EAAQ,OACrBC,EAAiB,EAAQ,OACzBC,EAAO,EAAQ,OACfC,EAAY,aACZC,EAAQ,EAAQ,OAChBC,EAAS,EAAQ,OACjBC,EAAgB,EAAQ,OACxBC,EAAkB,EAAQ,MAC1BC,EAAU,EAAQ,OAElBC,EAAmBT,EAAWS,kBAAoBT,EAAWU,uBAC7DjC,EAAWuB,EAAWvB,SACtBvN,EAAU8O,EAAW9O,QACrByP,EAAUX,EAAWW,QACrBC,EAAYX,EAAe,kBAI/B,IAAKW,EAAW,CACd,IAAIxO,EAAQ,IAAIgO,EAEZS,EAAQ,WACV,IAAIC,EAAQ3N,EACRqN,IAAYM,EAAS5P,EAAQ6P,SAASD,EAAOE,OACjD,MAAO7N,EAAKf,EAAM6O,UAChB9N,GACF,CAAE,MAAOuM,GAEP,MADItN,EAAM8O,MAAMvB,IACVD,CACR,CACIoB,GAAQA,EAAOK,OACrB,EAIKd,GAAWG,GAAYD,IAAmBE,IAAoBhC,GAQvD6B,GAAiBK,GAAWA,EAAQS,SAE9CtB,EAAUa,EAAQS,aAAQC,GAE1BvB,EAAQwB,YAAcX,EACtBZ,EAAOG,EAAKJ,EAAQC,KAAMD,GAC1BH,EAAS,WACPI,EAAKc,EACP,GAESL,EACTb,EAAS,WACPzO,EAAQqQ,SAASV,EACnB,GASAV,EAAYD,EAAKC,EAAWH,GAC5BL,EAAS,WACPQ,EAAUU,EACZ,IAhCAjB,GAAS,EACTC,EAAOpB,EAASU,eAAe,IAC/B,IAAIsB,EAAiBI,GAAOW,QAAQ3B,EAAM,CAAE4B,eAAe,IAC3D9B,EAAS,WACPE,EAAK6B,KAAO9B,GAAUA,CACxB,GA8BFgB,EAAY,SAAUzN,GACff,EAAM8O,MAAMvB,IACjBvN,EAAMuP,IAAIxO,EACZ,CACF,CAEAnC,EAAOC,QAAU2P,C,gCC7EjB5P,EAAOC,QAAU,SAAUyM,GACzB,IACE,MAAO,CAAEgC,OAAO,EAAOkC,MAAOlE,IAChC,CAAE,MAAOgC,GACP,MAAO,CAAEA,OAAO,EAAMkC,MAAOlC,EAC/B,CACF,C,qCCNA,IAAIM,EAAa,EAAQ,OACrB6B,EAA2B,EAAQ,OACnCC,EAAa,EAAQ,OACrBC,EAAW,EAAQ,OACnBC,EAAgB,EAAQ,OACxBC,EAAkB,EAAQ,OAC1BC,EAAc,EAAQ,OACtBC,EAAU,EAAQ,OAClBC,EAAa,EAAQ,OAErBC,EAAyBR,GAA4BA,EAAyBS,UAC9EC,EAAUN,EAAgB,WAC1BO,GAAc,EACdC,EAAiCX,EAAW9B,EAAW0C,uBAEvDC,EAA6BZ,EAAS,WAAW,WACnD,IAAIa,EAA6BZ,EAAcH,GAC3CgB,EAAyBD,IAA+BE,OAAOjB,GAInE,IAAKgB,GAAyC,KAAfT,EAAmB,OAAO,EAEzD,GAAID,KAAaE,EAAuB,WAAYA,EAAuB,YAAa,OAAO,EAI/F,IAAKD,GAAcA,EAAa,KAAO,cAAc9C,KAAKsD,GAA6B,CAErF,IAAI9C,EAAU,IAAI+B,GAAyB,SAAUT,GAAWA,EAAQ,EAAI,IACxE2B,EAAc,SAAUrF,GAC1BA,GAAK,WAA0B,IAAG,WAA0B,GAC9D,EACI4D,EAAcxB,EAAQwB,YAAc,CAAC,EAGzC,GAFAA,EAAYiB,GAAWQ,EACvBP,EAAc1C,EAAQC,MAAK,WAA0B,cAAcgD,GAC9DP,EAAa,OAAO,CAE3B,CAAE,OAAQK,IAA2C,YAAhBX,GAA6C,SAAhBA,KAA4BO,CAChG,IAEAzR,EAAOC,QAAU,CACf+R,YAAaL,EACbM,gBAAiBR,EACjBD,YAAaA,E,qCC5Cf,IAAIX,EAA2B,EAAQ,OACnCqB,EAA8B,EAAQ,OACtCP,EAA6B,qBAEjC3R,EAAOC,QAAU0R,IAA+BO,GAA4B,SAAUC,GACpFtB,EAAyBuB,IAAID,GAAUpD,UAAKsB,GAAW,WAA0B,GACnF,G,iCCNA,IAAIjB,EAAQ,WACV5O,KAAK0P,KAAO,KACZ1P,KAAK6R,KAAO,IACd,EAEAjD,EAAMkC,UAAY,CAChBX,IAAK,SAAU2B,GACb,IAAIC,EAAQ,CAAED,KAAMA,EAAM9Q,KAAM,MAC5B6Q,EAAO7R,KAAK6R,KACZA,EAAMA,EAAK7Q,KAAO+Q,EACjB/R,KAAK0P,KAAOqC,EACjB/R,KAAK6R,KAAOE,CACd,EACAtC,IAAK,WACH,IAAIsC,EAAQ/R,KAAK0P,KACjB,GAAIqC,EAAO,CACT,IAAI/Q,EAAOhB,KAAK0P,KAAOqC,EAAM/Q,KAE7B,OADa,OAATA,IAAehB,KAAK6R,KAAO,MACxBE,EAAMD,IACf,CACF,GAGFtS,EAAOC,QAAUmP,C,qCCvBjB,IAuBIoD,EAAWC,EAAOC,EAASC,EAvB3B3D,EAAa,EAAQ,OACrB3M,EAAQ,EAAQ,OAChB6M,EAAO,EAAQ,OACf4B,EAAa,EAAQ,OACrB8B,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAChBC,EAAO,EAAQ,OACfC,EAAa,EAAQ,OACrBrF,EAAgB,EAAQ,MACxBsF,EAA0B,EAAQ,OAClC3D,EAAS,EAAQ,OACjBG,EAAU,EAAQ,OAElByD,EAAMjE,EAAWkE,aACjBC,EAAQnE,EAAWoE,eACnBlT,EAAU8O,EAAW9O,QACrBmT,EAAWrE,EAAWqE,SACtBC,EAAWtE,EAAWsE,SACtBC,EAAiBvE,EAAWuE,eAC5BzB,EAAS9C,EAAW8C,OACpB0B,EAAU,EACVpS,EAAQ,CAAC,EACTqS,EAAqB,qBAGzBZ,GAAM,WAEJL,EAAYxD,EAAW0E,QACzB,IAEA,IAAIC,EAAM,SAAUxS,GAClB,GAAIyR,EAAOxR,EAAOD,GAAK,CACrB,IAAIgB,EAAKf,EAAMD,UACRC,EAAMD,GACbgB,GACF,CACF,EAEIyR,EAAS,SAAUzS,GACrB,OAAO,WACLwS,EAAIxS,EACN,CACF,EAEI0S,EAAgB,SAAUC,GAC5BH,EAAIG,EAAMpD,KACZ,EAEIqD,EAAyB,SAAU5S,GAErC6N,EAAWgF,YAAYlC,EAAO3Q,GAAKqR,EAAUyB,SAAW,KAAOzB,EAAU0B,KAC3E,EAGKjB,GAAQE,IACXF,EAAM,SAAsBkB,GAC1BnB,EAAwB1Q,UAAUrB,OAAQ,GAC1C,IAAIkB,EAAK2O,EAAWqD,GAAWA,EAAUb,EAASa,GAC9CC,EAAOrB,EAAWzQ,UAAW,GAKjC,OAJAlB,IAAQoS,GAAW,WACjBnR,EAAMF,OAAIkO,EAAW+D,EACvB,EACA3B,EAAMe,GACCA,CACT,EACAL,EAAQ,SAAwBhS,UACvBC,EAAMD,EACf,EAEIqO,EACFiD,EAAQ,SAAUtR,GAChBjB,EAAQqQ,SAASqD,EAAOzS,GAC1B,EAESkS,GAAYA,EAAStT,IAC9B0S,EAAQ,SAAUtR,GAChBkS,EAAStT,IAAI6T,EAAOzS,GACtB,EAGSoS,IAAmBlE,GAC5BqD,EAAU,IAAIa,EACdZ,EAAOD,EAAQ2B,MACf3B,EAAQ4B,MAAMC,UAAYV,EAC1BpB,EAAQvD,EAAKyD,EAAKqB,YAAarB,IAI/B3D,EAAWwF,kBACX1D,EAAW9B,EAAWgF,eACrBhF,EAAWyF,eACZjC,GAAoC,UAAvBA,EAAUyB,WACtBpB,EAAMkB,IAEPtB,EAAQsB,EACR/E,EAAWwF,iBAAiB,UAAWX,GAAe,IAGtDpB,EADSgB,KAAsB/F,EAAc,UACrC,SAAUvM,GAChB2R,EAAK5E,YAAYR,EAAc,WAAW+F,GAAsB,WAC9DX,EAAK4B,YAAYlU,MACjBmT,EAAIxS,EACN,CACF,EAGQ,SAAUA,GAChBQ,WAAWiS,EAAOzS,GAAK,EACzB,GAIJnB,EAAOC,QAAU,CACfgT,IAAKA,EACLE,MAAOA,E,qCCjHT,IAAIwB,EAAI,EAAQ,OACZC,EAAc,EAAQ,OACtBC,EAAW,iBACXC,EAAsB,EAAQ,OAE9BC,EAAgBH,EAAY,GAAGI,SAE/BC,IAAkBF,GAAiB,EAAIA,EAAc,CAAC,GAAI,GAAI,GAAK,EACnEG,EAASD,IAAkBH,EAAoB,WAInDH,EAAE,CAAEQ,OAAQ,QAASC,OAAO,EAAMC,OAAQH,GAAU,CAClDF,QAAS,SAAiBM,GACxB,IAAIC,EAAYjT,UAAUrB,OAAS,EAAIqB,UAAU,QAAK+N,EACtD,OAAO4E,EAEHF,EAAcvU,KAAM8U,EAAeC,IAAc,EACjDV,EAASrU,KAAM8U,EAAeC,EACpC,G,qCCpBF,IAAIZ,EAAI,EAAQ,OACZC,EAAc,EAAQ,OACtBY,EAAU,EAAQ,OAElBC,EAAgBb,EAAY,GAAGc,SAC/BpH,EAAO,CAAC,EAAG,GAMfqG,EAAE,CAAEQ,OAAQ,QAASC,OAAO,EAAMC,OAAQvD,OAAOxD,KAAUwD,OAAOxD,EAAKoH,YAAc,CACnFA,QAAS,WAGP,OADIF,EAAQhV,QAAOA,KAAKS,OAAST,KAAKS,QAC/BwU,EAAcjV,KACvB,G,qCChBF,IAAImU,EAAI,EAAQ,OACZpU,EAAO,EAAQ,OACfoV,EAAY,EAAQ,OACpBC,EAA6B,EAAQ,OACrCC,EAAU,EAAQ,MAClBC,EAAU,EAAQ,OAClBC,EAAsC,EAAQ,OAIlDpB,EAAE,CAAEQ,OAAQ,UAAWa,MAAM,EAAMX,OAAQU,GAAuC,CAChF3D,IAAK,SAAaD,GAChB,IAAI8D,EAAIzV,KACJ0V,EAAaN,EAA2BO,EAAEF,GAC1C7F,EAAU8F,EAAW9F,QACrBgG,EAASF,EAAWE,OACpBC,EAASR,GAAQ,WACnB,IAAIS,EAAkBX,EAAUM,EAAE7F,SAC9BmG,EAAS,GACT/C,EAAU,EACVgD,EAAY,EAChBV,EAAQ3D,GAAU,SAAUrD,GAC1B,IAAI2H,EAAQjD,IACRkD,GAAgB,EACpBF,IACAjW,EAAK+V,EAAiBL,EAAGnH,GAASC,MAAK,SAAU6B,GAC3C8F,IACJA,GAAgB,EAChBH,EAAOE,GAAS7F,IACd4F,GAAapG,EAAQmG,GACzB,GAAGH,EACL,MACEI,GAAapG,EAAQmG,EACzB,IAEA,OADIF,EAAO3H,OAAO0H,EAAOC,EAAOzF,OACzBsF,EAAWpH,OACpB,G,qCCpCF,IAAI6F,EAAI,EAAQ,OACZxD,EAAU,EAAQ,OAClBQ,EAA6B,qBAC7Bd,EAA2B,EAAQ,OACnC8F,EAAa,EAAQ,OACrB7F,EAAa,EAAQ,OACrB8F,EAAgB,EAAQ,OAExBvF,EAAyBR,GAA4BA,EAAyBS,UAWlF,GAPAqD,EAAE,CAAEQ,OAAQ,UAAWC,OAAO,EAAMC,OAAQ1D,EAA4BkF,MAAM,GAAQ,CACpF,MAAS,SAAUC,GACjB,OAAOtW,KAAKuO,UAAKsB,EAAWyG,EAC9B,KAIG3F,GAAWL,EAAWD,GAA2B,CACpD,IAAIkG,EAASJ,EAAW,WAAWrF,UAAU,SACzCD,EAAuB,WAAa0F,GACtCH,EAAcvF,EAAwB,QAAS0F,EAAQ,CAAEC,QAAQ,GAErE,C,qCCxBA,IAgDIC,EAAUC,EAAsBC,EAAgBC,EAhDhDzC,EAAI,EAAQ,OACZxD,EAAU,EAAQ,OAClB3B,EAAU,EAAQ,OAClBR,EAAa,EAAQ,OACrBzO,EAAO,EAAQ,OACfqW,EAAgB,EAAQ,OACxBS,EAAiB,EAAQ,OACzBC,EAAiB,EAAQ,OACzBC,EAAa,EAAQ,OACrB5B,EAAY,EAAQ,OACpB7E,EAAa,EAAQ,OACrB0G,EAAW,EAAQ,OACnBC,EAAa,EAAQ,OACrBC,EAAqB,EAAQ,MAC7BC,EAAO,aACP/H,EAAY,EAAQ,OACpBgI,EAAmB,EAAQ,OAC3B/B,EAAU,EAAQ,MAClBzG,EAAQ,EAAQ,OAChByI,EAAsB,EAAQ,OAC9BhH,EAA2B,EAAQ,OACnCiH,EAA8B,EAAQ,OACtClC,EAA6B,EAAQ,OAErCmC,EAAU,UACVpG,EAA6BmG,EAA4B9F,YACzDP,EAAiCqG,EAA4B7F,gBAC7D+F,EAA6BF,EAA4BtG,YACzDyG,EAA0BJ,EAAoBK,UAAUH,GACxDI,EAAmBN,EAAoB5E,IACvC5B,EAAyBR,GAA4BA,EAAyBS,UAC9E8G,EAAqBvH,EACrBwH,EAAmBhH,EACnBiH,EAAYtJ,EAAWsJ,UACvB7K,EAAWuB,EAAWvB,SACtBvN,EAAU8O,EAAW9O,QACrBqY,EAAuB3C,EAA2BO,EAClDqC,EAA8BD,EAE9BE,KAAoBhL,GAAYA,EAASiL,aAAe1J,EAAW2J,eACnEC,EAAsB,qBACtBC,EAAoB,mBACpBC,EAAU,EACVC,EAAY,EACZC,EAAW,EACXC,EAAU,EACVC,EAAY,EAKZC,EAAa,SAAUC,GACzB,IAAIrK,EACJ,SAAOyI,EAAS4B,KAAOtI,EAAW/B,EAAOqK,EAAGrK,QAAQA,CACtD,EAEIsK,EAAe,SAAUC,EAAUC,GACrC,IAMIlD,EAAQtH,EAAMyK,EANd5I,EAAQ2I,EAAM3I,MACdhO,EAAK2W,EAAMA,QAAUR,EACrB5E,EAAUvR,EAAK0W,EAAS1W,GAAK0W,EAASG,KACtCrJ,EAAUkJ,EAASlJ,QACnBgG,EAASkD,EAASlD,OAClBrG,EAASuJ,EAASvJ,OAEtB,IACMoE,GACGvR,IACC2W,EAAMG,YAAcR,GAAWS,GAAkBJ,GACrDA,EAAMG,UAAYT,IAEJ,IAAZ9E,EAAkBkC,EAASzF,GAEzBb,GAAQA,EAAOI,QACnBkG,EAASlC,EAAQvD,GACbb,IACFA,EAAOC,OACPwJ,GAAS,IAGTnD,IAAWiD,EAASxK,QACtBsH,EAAO,IAAIkC,EAAU,yBACZvJ,EAAOoK,EAAW9C,IAC3B9V,EAAKwO,EAAMsH,EAAQjG,EAASgG,GACvBhG,EAAQiG,IACVD,EAAOxF,EAChB,CAAE,MAAOlC,GACHqB,IAAWyJ,GAAQzJ,EAAOC,OAC9BoG,EAAO1H,EACT,CACF,EAEIC,GAAS,SAAU4K,EAAOK,GACxBL,EAAMM,WACVN,EAAMM,UAAW,EACjBjK,GAAU,WACR,IACI0J,EADAQ,EAAYP,EAAMO,UAEtB,MAAOR,EAAWQ,EAAU7J,MAC1BoJ,EAAaC,EAAUC,GAEzBA,EAAMM,UAAW,EACbD,IAAaL,EAAMG,WAAWK,GAAYR,EAChD,IACF,EAEIZ,GAAgB,SAAUqB,EAAMlL,EAASmL,GAC3C,IAAInG,EAAOK,EACPsE,GACF3E,EAAQrG,EAASiL,YAAY,SAC7B5E,EAAMhF,QAAUA,EAChBgF,EAAMmG,OAASA,EACfnG,EAAMoG,UAAUF,GAAM,GAAO,GAC7BhL,EAAW2J,cAAc7E,IACpBA,EAAQ,CAAEhF,QAASA,EAASmL,OAAQA,IACtCxI,IAAmC0C,EAAUnF,EAAW,KAAOgL,IAAQ7F,EAAQL,GAC3EkG,IAASpB,GAAqBhB,EAAiB,8BAA+BqC,EACzF,EAEIF,GAAc,SAAUR,GAC1BhZ,EAAKoX,EAAM3I,GAAY,WACrB,IAGIqH,EAHAvH,EAAUyK,EAAMY,OAChBvJ,EAAQ2I,EAAM3I,MACdwJ,EAAeC,GAAYd,GAE/B,GAAIa,IACF/D,EAASR,GAAQ,WACXrG,EACFtP,EAAQoa,KAAK,qBAAsB1J,EAAO9B,GACrC6J,GAAcC,EAAqB9J,EAAS8B,EACrD,IAEA2I,EAAMG,UAAYlK,GAAW6K,GAAYd,GAASL,EAAYD,EAC1D5C,EAAO3H,OAAO,MAAM2H,EAAOzF,KAEnC,GACF,EAEIyJ,GAAc,SAAUd,GAC1B,OAAOA,EAAMG,YAAcT,IAAYM,EAAMzJ,MAC/C,EAEI6J,GAAoB,SAAUJ,GAChChZ,EAAKoX,EAAM3I,GAAY,WACrB,IAAIF,EAAUyK,EAAMY,OAChB3K,EACFtP,EAAQoa,KAAK,mBAAoBxL,GAC5B6J,GAAcE,EAAmB/J,EAASyK,EAAM3I,MACzD,GACF,EAEI1B,GAAO,SAAU/M,EAAIoX,EAAOgB,GAC9B,OAAO,SAAU3J,GACfzO,EAAGoX,EAAO3I,EAAO2J,EACnB,CACF,EAEIC,GAAiB,SAAUjB,EAAO3I,EAAO2J,GACvChB,EAAMkB,OACVlB,EAAMkB,MAAO,EACTF,IAAQhB,EAAQgB,GACpBhB,EAAM3I,MAAQA,EACd2I,EAAMA,MAAQP,EACdrK,GAAO4K,GAAO,GAChB,EAEImB,GAAkB,SAAUnB,EAAO3I,EAAO2J,GAC5C,IAAIhB,EAAMkB,KAAV,CACAlB,EAAMkB,MAAO,EACTF,IAAQhB,EAAQgB,GACpB,IACE,GAAIhB,EAAMY,SAAWvJ,EAAO,MAAM,IAAI0H,EAAU,oCAChD,IAAIvJ,EAAOoK,EAAWvI,GAClB7B,EACFa,GAAU,WACR,IAAI+K,EAAU,CAAEF,MAAM,GACtB,IACEla,EAAKwO,EAAM6B,EACT1B,GAAKwL,GAAiBC,EAASpB,GAC/BrK,GAAKsL,GAAgBG,EAASpB,GAElC,CAAE,MAAO7K,GACP8L,GAAeG,EAASjM,EAAO6K,EACjC,CACF,KAEAA,EAAM3I,MAAQA,EACd2I,EAAMA,MAAQR,EACdpK,GAAO4K,GAAO,GAElB,CAAE,MAAO7K,GACP8L,GAAe,CAAEC,MAAM,GAAS/L,EAAO6K,EACzC,CAzBsB,CA0BxB,EAGA,GAAI5H,IAEFyG,EAAqB,SAAiBwC,GACpCnD,EAAWjX,KAAM6X,GACjB1C,EAAUiF,GACVra,EAAK0W,EAAUzW,MACf,IAAI+Y,EAAQtB,EAAwBzX,MACpC,IACEoa,EAAS1L,GAAKwL,GAAiBnB,GAAQrK,GAAKsL,GAAgBjB,GAC9D,CAAE,MAAO7K,GACP8L,GAAejB,EAAO7K,EACxB,CACF,EAEA2J,EAAmBD,EAAmB9G,UAGtC2F,EAAW,SAAiB2D,GAC1BzC,EAAiB3X,KAAM,CACrBqa,KAAM9C,EACN0C,MAAM,EACNZ,UAAU,EACV/J,QAAQ,EACRgK,UAAW,IAAI1K,EACfsK,WAAW,EACXH,MAAOT,EACPlI,MAAO,MAEX,EAIAqG,EAAS3F,UAAYsF,EAAcyB,EAAkB,QAAQ,SAAcyC,EAAahE,GACtF,IAAIyC,EAAQtB,EAAwBzX,MAChC8Y,EAAWf,EAAqBb,EAAmBlX,KAAM4X,IAS7D,OARAmB,EAAMzJ,QAAS,EACfwJ,EAAS1W,IAAKkO,EAAWgK,IAAeA,EACxCxB,EAASG,KAAO3I,EAAWgG,IAAeA,EAC1CwC,EAASvJ,OAASP,EAAUtP,EAAQ6P,YAASM,EACzCkJ,EAAMA,QAAUT,EAASS,EAAMO,UAAUnJ,IAAI2I,GAC5C1J,GAAU,WACbyJ,EAAaC,EAAUC,EACzB,IACOD,EAASxK,OAClB,IAEAoI,EAAuB,WACrB,IAAIpI,EAAU,IAAImI,EACdsC,EAAQtB,EAAwBnJ,GACpCtO,KAAKsO,QAAUA,EACftO,KAAK4P,QAAUlB,GAAKwL,GAAiBnB,GACrC/Y,KAAK4V,OAASlH,GAAKsL,GAAgBjB,EACrC,EAEA3D,EAA2BO,EAAIoC,EAAuB,SAAUtC,GAC9D,OAAOA,IAAMmC,GAAsBnC,IAAMkB,EACrC,IAAID,EAAqBjB,GACzBuC,EAA4BvC,EAClC,GAEK9E,GAAWL,EAAWD,IAA6BQ,IAA2B0J,OAAOzJ,WAAW,CACnG8F,EAAa/F,EAAuBtC,KAE/BiJ,GAEHpB,EAAcvF,EAAwB,QAAQ,SAAcyJ,EAAahE,GACvE,IAAIkE,EAAOxa,KACX,OAAO,IAAI4X,GAAmB,SAAUhI,EAASgG,GAC/C7V,EAAK6W,EAAY4D,EAAM5K,EAASgG,EAClC,IAAGrH,KAAK+L,EAAahE,EAEvB,GAAG,CAAEE,QAAQ,IAIf,WACS3F,EAAuBf,WAChC,CAAE,MAAO5B,IAAqB,CAG1B2I,GACFA,EAAehG,EAAwBgH,EAE3C,CAKF1D,EAAE,CAAEsG,QAAQ,EAAM3K,aAAa,EAAM4K,MAAM,EAAM7F,OAAQ1D,GAA8B,CACrFhC,QAASyI,IAGXd,EAAec,EAAoBL,GAAS,GAAO,GACnDR,EAAWQ,E,oCC/RX,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,M,oCCNR,IAAIpD,EAAI,EAAQ,OACZpU,EAAO,EAAQ,OACfoV,EAAY,EAAQ,OACpBC,EAA6B,EAAQ,OACrCC,EAAU,EAAQ,MAClBC,EAAU,EAAQ,OAClBC,EAAsC,EAAQ,OAIlDpB,EAAE,CAAEQ,OAAQ,UAAWa,MAAM,EAAMX,OAAQU,GAAuC,CAChFoF,KAAM,SAAchJ,GAClB,IAAI8D,EAAIzV,KACJ0V,EAAaN,EAA2BO,EAAEF,GAC1CG,EAASF,EAAWE,OACpBC,EAASR,GAAQ,WACnB,IAAIS,EAAkBX,EAAUM,EAAE7F,SAClC0F,EAAQ3D,GAAU,SAAUrD,GAC1BvO,EAAK+V,EAAiBL,EAAGnH,GAASC,KAAKmH,EAAW9F,QAASgG,EAC7D,GACF,IAEA,OADIC,EAAO3H,OAAO0H,EAAOC,EAAOzF,OACzBsF,EAAWpH,OACpB,G,qCCvBF,IAAI6F,EAAI,EAAQ,OACZiB,EAA6B,EAAQ,OACrCjE,EAA6B,qBAIjCgD,EAAE,CAAEQ,OAAQ,UAAWa,MAAM,EAAMX,OAAQ1D,GAA8B,CACvEyE,OAAQ,SAAgBxJ,GACtB,IAAIsJ,EAAaN,EAA2BO,EAAE3V,MAC1C4a,EAAmBlF,EAAWE,OAElC,OADAgF,EAAiBxO,GACVsJ,EAAWpH,OACpB,G,qCCZF,IAAI6F,EAAI,EAAQ,OACZgC,EAAa,EAAQ,OACrBxF,EAAU,EAAQ,OAClBN,EAA2B,EAAQ,OACnCc,EAA6B,qBAC7B0J,EAAiB,EAAQ,OAEzBC,EAA4B3E,EAAW,WACvC4E,EAAgBpK,IAAYQ,EAIhCgD,EAAE,CAAEQ,OAAQ,UAAWa,MAAM,EAAMX,OAAQlE,GAAWQ,GAA8B,CAClFvB,QAAS,SAAiBoL,GACxB,OAAOH,EAAeE,GAAiB/a,OAAS8a,EAA4BzK,EAA2BrQ,KAAMgb,EAC/G,G,qCCfF,IAAI7G,EAAI,EAAQ,OACZC,EAAc,EAAQ,OACtB6G,EAA2B,WAC3BC,EAAW,EAAQ,OACnBxO,EAAW,EAAQ,KACnByO,EAAa,EAAQ,OACrBC,EAAyB,EAAQ,OACjCC,EAAuB,EAAQ,OAC/B1K,EAAU,EAAQ,OAElBtP,EAAQ+S,EAAY,GAAG/S,OACvBia,EAAMra,KAAKqa,IAEXC,EAA0BF,EAAqB,YAE/CG,GAAoB7K,IAAY4K,KAA6B,WAC/D,IAAIE,EAAaR,EAAyB3J,OAAOR,UAAW,YAC5D,OAAO2K,IAAeA,EAAWC,QACnC,CAHiE,GAOjEvH,EAAE,CAAEQ,OAAQ,SAAUC,OAAO,EAAMC,QAAS2G,IAAqBD,GAA2B,CAC1FI,SAAU,SAAkBC,GAC1B,IAAIpB,EAAO9N,EAAS0O,EAAuBpb,OAC3Cmb,EAAWS,GACX,IAAIC,EAAc/Z,UAAUrB,OAAS,EAAIqB,UAAU,QAAK+N,EACpDiM,EAAMtB,EAAK/Z,OACXsb,OAAsBlM,IAAhBgM,EAA4BC,EAAMR,EAAIJ,EAASW,GAAcC,GACnEE,EAAStP,EAASkP,GACtB,OAAOva,EAAMmZ,EAAMuB,EAAMC,EAAOvb,OAAQsb,KAASC,CACnD,G,qCC/BF,IAAIjc,EAAO,EAAQ,OACfqU,EAAc,EAAQ,OACtB6H,EAAgC,EAAQ,OACxCC,EAAW,EAAQ,OACnBC,EAAoB,EAAQ,OAC5Bf,EAAyB,EAAQ,OACjClE,EAAqB,EAAQ,MAC7BkF,EAAqB,EAAQ,OAC7BlB,EAAW,EAAQ,OACnBxO,EAAW,EAAQ,KACnB2P,EAAY,EAAQ,OACpBC,EAAa,EAAQ,OACrBC,EAAgB,EAAQ,OACxBlK,EAAQ,EAAQ,OAEhBmK,EAAgBD,EAAcC,cAC9BC,EAAa,WACbnB,EAAMra,KAAKqa,IACX7Z,EAAO2S,EAAY,GAAG3S,MACtBib,EAActI,EAAY,GAAG/S,OAI7Bsb,GAAqCtK,GAAM,WAE7C,IAAIzG,EAAK,OACLgR,EAAehR,EAAGM,KACtBN,EAAGM,KAAO,WAAc,OAAO0Q,EAAa/a,MAAM7B,KAAM8B,UAAY,EACpE,IAAI+T,EAAS,KAAKgH,MAAMjR,GACxB,OAAyB,IAAlBiK,EAAOpV,QAA8B,MAAdoV,EAAO,IAA4B,MAAdA,EAAO,EAC5D,IAEIiH,EAAoC,MAA5B,OAAOD,MAAM,QAAQ,IAEK,IAApC,OAAOA,MAAM,QAAS,GAAGpc,QACQ,IAAjC,KAAKoc,MAAM,WAAWpc,QACW,IAAjC,IAAIoc,MAAM,YAAYpc,QAEtB,IAAIoc,MAAM,QAAQpc,OAAS,GAC3B,GAAGoc,MAAM,MAAMpc,OAGjBwb,EAA8B,SAAS,SAAUc,EAAOC,EAAaC,GACnE,IAAIC,EAAgB,IAAIL,WAAMhN,EAAW,GAAGpP,OAAS,SAAU0c,EAAWC,GACxE,YAAqBvN,IAAdsN,GAAqC,IAAVC,EAAc,GAAKrd,EAAKid,EAAahd,KAAMmd,EAAWC,EAC1F,EAAIJ,EAEJ,MAAO,CAGL,SAAeG,EAAWC,GACxB,IAAIC,EAAIjC,EAAuBpb,MAC3Bsd,EAAWnB,EAAkBgB,QAAatN,EAAYwM,EAAUc,EAAWJ,GAC/E,OAAOO,EACHvd,EAAKud,EAAUH,EAAWE,EAAGD,GAC7Brd,EAAKmd,EAAexQ,EAAS2Q,GAAIF,EAAWC,EAClD,EAMA,SAAUG,EAAQH,GAChB,IAAII,EAAKtB,EAASlc,MACdyd,EAAI/Q,EAAS6Q,GAEjB,IAAKT,EAAO,CACV,IAAIY,EAAMT,EAAgBC,EAAeM,EAAIC,EAAGL,EAAOF,IAAkBF,GACzE,GAAIU,EAAIzD,KAAM,OAAOyD,EAAItN,KAC3B,CAEA,IAAIqF,EAAIyB,EAAmBsG,EAAIG,QAC3BC,EAAkBJ,EAAGK,QACrBC,GAASN,EAAGO,WAAa,IAAM,KACtBP,EAAGQ,UAAY,IAAM,KACrBR,EAAGK,QAAU,IAAM,KACnBrB,EAAgB,IAAM,KAG/Bc,EAAW,IAAI7H,EAAE+G,EAAgB,OAASgB,EAAGS,OAAS,IAAMT,EAAIM,GAChEI,OAAgBrO,IAAVuN,EAAsBX,EAAaW,IAAU,EACvD,GAAY,IAARc,EAAW,MAAO,GACtB,GAAiB,IAAbT,EAAEhd,OAAc,OAAmC,OAA5B6b,EAAWgB,EAAUG,GAAc,CAACA,GAAK,GACpE,IAAIU,EAAI,EACJC,EAAI,EACJC,EAAI,GACR,MAAOD,EAAIX,EAAEhd,OAAQ,CACnB6c,EAASgB,UAAY9B,EAAgB,EAAI4B,EACzC,IACI7c,EADAgd,EAAIjC,EAAWgB,EAAUd,EAAgBE,EAAYe,EAAGW,GAAKX,GAEjE,GACQ,OAANc,IACChd,EAAI+Z,EAAIJ,EAASoC,EAASgB,WAAa9B,EAAgB4B,EAAI,IAAKX,EAAEhd,WAAa0d,EAEhFC,EAAIhC,EAAmBqB,EAAGW,EAAGR,OACxB,CAEL,GADAnc,EAAK4c,EAAG3B,EAAYe,EAAGU,EAAGC,IACtBC,EAAE5d,SAAWyd,EAAK,OAAOG,EAC7B,IAAK,IAAI7d,EAAI,EAAGA,GAAK+d,EAAE9d,OAAS,EAAGD,IAEjC,GADAiB,EAAK4c,EAAGE,EAAE/d,IACN6d,EAAE5d,SAAWyd,EAAK,OAAOG,EAE/BD,EAAID,EAAI5c,CACV,CACF,CAEA,OADAE,EAAK4c,EAAG3B,EAAYe,EAAGU,IAChBE,CACT,EAEJ,GAAGvB,IAAUH,EAAmCH,E,qCC7GhD,IAAIrI,EAAI,EAAQ,OACZC,EAAc,EAAQ,OACtB6G,EAA2B,WAC3BC,EAAW,EAAQ,OACnBxO,EAAW,EAAQ,KACnByO,EAAa,EAAQ,OACrBC,EAAyB,EAAQ,OACjCC,EAAuB,EAAQ,OAC/B1K,EAAU,EAAQ,OAElB+L,EAActI,EAAY,GAAG/S,OAC7Bia,EAAMra,KAAKqa,IAEXC,EAA0BF,EAAqB,cAE/CG,GAAoB7K,IAAY4K,KAA6B,WAC/D,IAAIE,EAAaR,EAAyB3J,OAAOR,UAAW,cAC5D,OAAO2K,IAAeA,EAAWC,QACnC,CAHiE,GAOjEvH,EAAE,CAAEQ,OAAQ,SAAUC,OAAO,EAAMC,QAAS2G,IAAqBD,GAA2B,CAC1FiD,WAAY,SAAoB5C,GAC9B,IAAIpB,EAAO9N,EAAS0O,EAAuBpb,OAC3Cmb,EAAWS,GACX,IAAI3F,EAAQiF,EAASI,EAAIxZ,UAAUrB,OAAS,EAAIqB,UAAU,QAAK+N,EAAW2K,EAAK/Z,SAC3Eub,EAAStP,EAASkP,GACtB,OAAOc,EAAYlC,EAAMvE,EAAOA,EAAQ+F,EAAOvb,UAAYub,CAC7D,G,wjGChBEyC,G,2BAAE,SAASrS,EAAE7K,GAAG,OAAOkd,EAAElE,OAAO1D,gBAAgB,CAAC6H,UAAU,cAAc7R,OAAO,SAAS4R,EAAErS,GAAGqS,EAAEC,UAAUtS,CAAC,GAAG,SAASqS,EAAErS,GAAG,IAAI,IAAI7K,KAAK6K,EAAEmO,OAAOzJ,UAAU6N,eAAe5e,KAAKqM,EAAE7K,KAAKkd,EAAEld,GAAG6K,EAAE7K,GAAG,GAAG6K,EAAE7K,EAAE,GAAE,SAAS6K,EAAEA,EAAE7K,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAIuW,UAAU,uBAAuBxG,OAAO/P,GAAG,iCAAiC,SAASf,IAAIR,KAAK8P,YAAY1D,CAAC,CAACqS,EAAErS,EAAE7K,GAAG6K,EAAE0E,UAAU,OAAOvP,EAAEgZ,OAAOqE,OAAOrd,IAAIf,EAAEsQ,UAAUvP,EAAEuP,UAAU,IAAItQ,EAAE,CAAC,SAASe,EAAEkd,GAAG,IAAIrS,EAAE,GAAGS,MAAMmI,QAAQyJ,KAAKA,EAAE,CAACA,IAAI,IAAI,IAAIld,EAAE,EAAEA,EAAEkd,EAAEhe,OAAOc,IAAI,CAAC,IAAIf,EAAEie,EAAEld,GAAG,GAAGf,EAAE6Z,OAAOwE,EAAEC,WAAW1S,GAAG,SAAS,GAAG5L,EAAE6Z,OAAOwE,EAAEE,cAAc3S,IAAI5L,EAAEwe,SAAS,IAAI,KAAKxe,EAAEwa,OAAO,GAAGxa,EAAE6Z,OAAOwE,EAAEI,aAAa7S,IAAI5L,EAAEwe,SAAS,IAAI,KAAKxe,EAAE0e,OAAO,GAAG1e,EAAE6Z,OAAOwE,EAAEM,QAAQ/S,IAAI5L,EAAEwe,SAAS,IAAI,KAAKxe,EAAEwa,EAAE,IAAIxa,EAAE0e,OAAO,GAAG1e,EAAE6Z,OAAOwE,EAAEO,QAAQhT,IAAI5L,EAAEwe,SAAS,IAAI,KAAKxe,EAAEwa,EAAE,IAAIxa,EAAE0e,OAAO,GAAG1e,EAAE6Z,OAAOwE,EAAEQ,SAASjT,IAAI5L,EAAEwe,SAAS,IAAI,KAAKxe,EAAE8e,GAAG,IAAI9e,EAAE+e,GAAG,IAAI/e,EAAEgf,GAAG,IAAIhf,EAAEif,GAAG,IAAIjf,EAAEwa,EAAE,IAAIxa,EAAE0e,OAAO,GAAG1e,EAAE6Z,OAAOwE,EAAEa,gBAAgBtT,IAAI5L,EAAEwe,SAAS,IAAI,KAAKxe,EAAEgf,GAAG,IAAIhf,EAAEif,GAAG,IAAIjf,EAAEwa,EAAE,IAAIxa,EAAE0e,OAAO,GAAG1e,EAAE6Z,OAAOwE,EAAEc,QAAQvT,IAAI5L,EAAEwe,SAAS,IAAI,KAAKxe,EAAE8e,GAAG,IAAI9e,EAAE+e,GAAG,IAAI/e,EAAEwa,EAAE,IAAIxa,EAAE0e,OAAO,GAAG1e,EAAE6Z,OAAOwE,EAAEe,eAAexT,IAAI5L,EAAEwe,SAAS,IAAI,KAAKxe,EAAEwa,EAAE,IAAIxa,EAAE0e,MAAM,CAAC,GAAG1e,EAAE6Z,OAAOwE,EAAEgB,IAAI,MAAM,IAAIC,MAAM,4BAA4Btf,EAAE6Z,KAAK,cAAc9Y,EAAE,KAAK6K,IAAI5L,EAAEwe,SAAS,IAAI,KAAKxe,EAAEuf,GAAG,IAAIvf,EAAEwf,GAAG,IAAIxf,EAAEyf,KAAK,MAAMzf,EAAE0f,SAAS,MAAM1f,EAAE2f,UAAU,IAAI3f,EAAEwa,EAAE,IAAIxa,EAAE0e,CAAC,CAAC,CAAC,OAAO9S,CAAC,CAAC,SAAS5L,EAAEie,EAAErS,GAAG,IAAI7K,EAAEkd,EAAE,GAAGje,EAAEie,EAAE,GAAG,MAAM,CAACld,EAAEN,KAAKmf,IAAIhU,GAAG5L,EAAES,KAAKof,IAAIjU,GAAG7K,EAAEN,KAAKof,IAAIjU,GAAG5L,EAAES,KAAKmf,IAAIhU,GAAG,CAAC,SAAS4B,IAAI,IAAI,IAAIyQ,EAAE,GAAGrS,EAAE,EAAEA,EAAEtK,UAAUrB,OAAO2L,IAAIqS,EAAErS,GAAGtK,UAAUsK,GAAG,IAAI,IAAI7K,EAAE,EAAEA,EAAEkd,EAAEhe,OAAOc,IAAI,GAAG,iBAAiBkd,EAAEld,GAAG,MAAM,IAAIue,MAAM,2BAA2Bve,EAAE,6BAA6Bkd,EAAEld,GAAG,cAAckd,EAAEld,IAAI,OAAM,CAAE,CAAC,IAAI+e,EAAErf,KAAKsf,GAAG,SAASC,EAAE/B,EAAErS,EAAE7K,GAAGkd,EAAEyB,SAAS,IAAIzB,EAAEyB,SAAS,EAAE,EAAEzB,EAAE0B,UAAU,IAAI1B,EAAE0B,UAAU,EAAE,EAAE,IAAInS,EAAEyQ,EAAEsB,GAAGS,EAAE/B,EAAEuB,GAAGS,EAAEhC,EAAEzD,EAAE0F,EAAEjC,EAAES,EAAElR,EAAE/M,KAAK0f,IAAIlC,EAAEsB,IAAIS,EAAEvf,KAAK0f,IAAIlC,EAAEuB,IAAI,IAAIY,EAAEpgB,EAAE,EAAE4L,EAAEqU,GAAG,GAAGlf,EAAEmf,GAAG,IAAIjC,EAAEwB,KAAK,IAAIK,GAAGO,EAAED,EAAE,GAAG1B,EAAE0B,EAAE,GAAGzC,EAAEld,KAAK6f,IAAID,EAAE,GAAG5f,KAAK6f,IAAI9S,EAAE,GAAG/M,KAAK6f,IAAI5B,EAAE,GAAGje,KAAK6f,IAAIN,EAAE,GAAG,EAAErC,IAAInQ,GAAG/M,KAAK8f,KAAK5C,GAAGqC,GAAGvf,KAAK8f,KAAK5C,IAAIM,EAAEsB,GAAG/R,EAAEyQ,EAAEuB,GAAGQ,EAAE,IAAIQ,EAAE/f,KAAK6f,IAAI9S,EAAE,GAAG/M,KAAK6f,IAAI5B,EAAE,GAAGje,KAAK6f,IAAIN,EAAE,GAAGvf,KAAK6f,IAAID,EAAE,GAAGxD,GAAGoB,EAAEyB,WAAWzB,EAAE0B,UAAU,GAAG,GAAGlf,KAAK8f,KAAK9f,KAAKC,IAAI,GAAGD,KAAK6f,IAAI9S,EAAE,GAAG/M,KAAK6f,IAAIN,EAAE,GAAGQ,GAAGA,IAAIC,EAAEjT,EAAEkR,EAAEsB,EAAEnD,EAAE6D,GAAGV,EAAEK,EAAE7S,EAAEqP,EAAE8D,EAAE3gB,EAAE,CAACygB,EAAEC,GAAGzC,EAAEwB,KAAK,IAAIK,GAAG7B,EAAE2C,GAAGD,EAAE,IAAI/U,EAAEqU,GAAG,EAAEhC,EAAE4C,GAAGF,EAAE,IAAI5f,EAAEmf,GAAG,EAAEjC,EAAE6C,KAAKrgB,KAAKsgB,OAAOrC,EAAEgC,GAAGV,GAAGK,EAAEI,GAAGjT,GAAGyQ,EAAE+C,KAAKvgB,KAAKsgB,QAAQrC,EAAEgC,GAAGV,IAAIK,EAAEI,GAAGjT,GAAG,IAAIyQ,EAAE0B,WAAW1B,EAAE+C,KAAK/C,EAAE6C,OAAO7C,EAAE+C,MAAM,EAAElB,GAAG,IAAI7B,EAAE0B,WAAW1B,EAAE+C,KAAK/C,EAAE6C,OAAO7C,EAAE+C,MAAM,EAAElB,GAAG7B,EAAE6C,MAAM,IAAIhB,EAAE7B,EAAE+C,MAAM,IAAIlB,CAAC,CAAC,SAASG,EAAEhC,EAAErS,EAAE7K,GAAGyM,EAAEyQ,EAAErS,EAAE7K,GAAG,IAAIf,EAAEie,EAAEA,EAAErS,EAAEA,EAAE7K,EAAEA,EAAE,GAAG,EAAEf,EAAE,MAAM,GAAG,GAAG,IAAIA,EAAE,MAAM,CAAC,CAACie,EAAEld,GAAGkd,EAAEA,EAAErS,EAAEA,GAAGA,EAAE7K,GAAGkd,EAAEA,EAAErS,EAAEA,KAAK,IAAIkU,EAAErf,KAAK8f,KAAKvgB,GAAG,MAAM,CAAC,EAAEie,EAAEld,EAAE6K,EAAEkU,IAAI7B,EAAEA,EAAErS,EAAEA,IAAIA,EAAE7K,EAAEkd,EAAE6B,IAAI7B,EAAEA,EAAErS,EAAEA,IAAI,EAAEqS,EAAEld,EAAE6K,EAAEkU,IAAI7B,EAAEA,EAAErS,EAAEA,IAAIA,EAAE7K,EAAEkd,EAAE6B,IAAI7B,EAAEA,EAAErS,EAAEA,IAAI,CAAC,IAAIsU,EAAEE,EAAE3f,KAAKsf,GAAG,IAAI,SAASM,EAAEpC,EAAErS,EAAE7K,GAAG,OAAO,EAAEA,GAAGkd,EAAEld,EAAE6K,CAAC,CAAC,SAAS8S,EAAET,EAAErS,EAAE7K,EAAEf,GAAG,OAAOie,EAAExd,KAAKmf,IAAI5f,EAAE,IAAI8f,GAAGlU,EAAEnL,KAAKof,IAAI7f,EAAE,IAAI8f,GAAG/e,CAAC,CAAC,SAAS4c,EAAEM,EAAErS,EAAE7K,EAAEf,GAAG,IAAIwN,EAAE,KAAKsS,EAAElU,EAAEqS,EAAE+B,EAAEjf,EAAE6K,EAAEqU,EAAE,EAAEH,EAAE,GAAG9f,EAAEe,GAAG,EAAEif,EAAEE,EAAE,GAAGF,EAAEF,GAAGM,EAAE,EAAEN,EAAE,OAAOrf,KAAK0f,IAAIF,GAAGzS,EAAE,EAAE4S,EAAEF,GAAG,SAASjC,EAAErS,EAAE7K,QAAG,IAASA,IAAIA,EAAE,MAAM,IAAIf,EAAEie,EAAEA,EAAE,EAAErS,EAAE,GAAG5L,GAAGe,EAAE,MAAM,GAAG,GAAGf,GAAGe,EAAE,MAAM,EAAEkd,EAAE,GAAG,IAAIzQ,EAAE/M,KAAK8f,KAAKvgB,GAAG,MAAM,EAAEie,EAAE,EAAEzQ,GAAGyQ,EAAE,EAAEzQ,EAAE,CAAjI,CAAmI0S,EAAED,EAAEG,EAAEH,EAAEzS,EAAE,CAAC,SAASgT,EAAEvC,EAAErS,EAAE7K,EAAEf,EAAEwN,GAAG,IAAIsS,EAAE,EAAEtS,EAAE,OAAOyQ,GAAG6B,EAAEA,EAAEA,GAAGlU,GAAG,EAAEkU,EAAEA,EAAEtS,GAAGzM,GAAG,EAAE+e,EAAEtS,EAAEA,GAAGxN,GAAGwN,EAAEA,EAAEA,EAAE,EAAE,SAASyQ,GAAG,SAASrS,IAAI,OAAOsU,GAAE,SAAUjC,EAAErS,EAAE7K,GAAG,OAAOkd,EAAEO,gBAAW,IAASP,EAAEa,KAAKb,EAAEa,IAAIlT,QAAG,IAASqS,EAAEc,KAAKd,EAAEc,IAAIhe,QAAG,IAASkd,EAAEe,KAAKf,EAAEe,IAAIpT,QAAG,IAASqS,EAAEgB,KAAKhB,EAAEgB,IAAIle,QAAG,IAASkd,EAAEzD,IAAIyD,EAAEzD,GAAG5O,QAAG,IAASqS,EAAES,IAAIT,EAAES,GAAG3d,GAAGkd,EAAEO,UAAS,GAAIP,CAAE,GAAE,CAAC,SAASld,IAAI,IAAIkd,EAAEgD,IAAIrV,EAAEqV,IAAIlgB,EAAEkgB,IAAIjhB,EAAEihB,IAAI,OAAOf,GAAE,SAAU1S,EAAEsS,EAAEE,GAAG,OAAOxS,EAAEqM,KAAKwE,EAAEa,kBAAkB1R,EAAEqM,KAAKwE,EAAEQ,SAASZ,EAAEnS,MAAMmS,GAAG6B,EAAE7B,EAAErS,EAAEE,MAAMF,GAAGoU,EAAEpU,EAAE4B,EAAEsR,GAAGtR,EAAEgR,SAASsB,EAAE7B,EAAE,EAAE6B,EAAE7B,EAAEzQ,EAAEuR,GAAGvR,EAAEgR,SAASwB,EAAEpU,EAAE,EAAEoU,EAAEpU,GAAG4B,EAAEqM,KAAKwE,EAAEQ,UAAUZ,EAAEzQ,EAAEgR,SAASsB,EAAEtS,EAAEwR,GAAGxR,EAAEwR,GAAGpT,EAAE4B,EAAEgR,SAASwB,EAAExS,EAAEyR,GAAGzR,EAAEyR,KAAKhB,EAAEgD,IAAIrV,EAAEqV,KAAKzT,EAAEqM,KAAKwE,EAAEe,iBAAiB5R,EAAEqM,KAAKwE,EAAEc,QAAQpe,EAAE+K,MAAM/K,GAAG+e,EAAE/e,EAAEf,EAAE8L,MAAM9L,GAAGggB,EAAEhgB,EAAEwN,EAAEsR,GAAGtR,EAAEgR,SAASsB,EAAE/e,EAAE,EAAE+e,EAAE/e,EAAEyM,EAAEuR,GAAGvR,EAAEgR,SAASwB,EAAEhgB,EAAE,EAAEggB,EAAEhgB,GAAGwN,EAAEqM,KAAKwE,EAAEc,SAASpe,EAAEyM,EAAEgR,SAASsB,EAAEtS,EAAEsR,GAAGtR,EAAEsR,GAAG9e,EAAEwN,EAAEgR,SAASwB,EAAExS,EAAEuR,GAAGvR,EAAEuR,KAAKhe,EAAEkgB,IAAIjhB,EAAEihB,KAAKzT,CAAE,GAAE,CAAC,SAASsS,IAAI,IAAI7B,EAAEgD,IAAIrV,EAAEqV,IAAI,OAAOf,GAAE,SAAUnf,EAAEf,EAAEwN,GAAG,GAAGzM,EAAE8Y,KAAKwE,EAAEe,iBAAiBre,EAAE8Y,KAAKwE,EAAEc,QAAQlB,EAAEnS,MAAMmS,GAAGje,EAAEie,EAAErS,EAAEE,MAAMF,GAAG4B,EAAE5B,EAAE7K,EAAE+d,GAAG/d,EAAEyd,SAASxe,EAAEie,EAAE,EAAEje,EAAEie,EAAEld,EAAEge,GAAGhe,EAAEyd,SAAShR,EAAE5B,EAAE,EAAE4B,EAAE5B,GAAG7K,EAAE8Y,KAAKwE,EAAEc,QAAQ,CAAClB,EAAEld,EAAEyd,SAASxe,EAAEe,EAAE+d,GAAG/d,EAAE+d,GAAGlT,EAAE7K,EAAEyd,SAAShR,EAAEzM,EAAEge,GAAGhe,EAAEge,GAAG,IAAIe,EAAE/e,EAAE+d,GAAGkB,EAAEjf,EAAEge,GAAGhe,EAAE8Y,KAAKwE,EAAEQ,SAAS9d,EAAE+d,KAAK/d,EAAEyd,SAAS,EAAExe,GAAG,EAAE8f,GAAG,EAAE/e,EAAEge,KAAKhe,EAAEyd,SAAS,EAAEhR,GAAG,EAAEwS,GAAG,EAAEjf,EAAEie,IAAIje,EAAEyZ,EAAE,EAAEsF,GAAG,EAAE/e,EAAEke,IAAIle,EAAE2d,EAAE,EAAEsB,GAAG,CAAC,MAAM/B,EAAEgD,IAAIrV,EAAEqV,IAAI,OAAOlgB,CAAE,GAAE,CAAC,SAASmf,EAAEjC,GAAG,IAAIrS,EAAE,EAAE7K,EAAE,EAAEf,EAAEihB,IAAIzT,EAAEyT,IAAI,OAAO,SAASnB,GAAG,GAAGhU,MAAM9L,MAAM8f,EAAEjG,KAAKwE,EAAEM,SAAS,MAAM,IAAIW,MAAM,+BAA+B,IAAIU,EAAE/B,EAAE6B,EAAElU,EAAE7K,EAAEf,EAAEwN,GAAG,OAAOsS,EAAEjG,KAAKwE,EAAEC,aAAa1S,EAAE5L,EAAEe,EAAEyM,QAAG,IAASsS,EAAEtF,IAAI5O,EAAEkU,EAAEtB,SAAS5S,EAAEkU,EAAEtF,EAAEsF,EAAEtF,QAAG,IAASsF,EAAEpB,IAAI3d,EAAE+e,EAAEtB,SAASzd,EAAE+e,EAAEpB,EAAEoB,EAAEpB,GAAGoB,EAAEjG,KAAKwE,EAAEM,UAAU3e,EAAE4L,EAAE4B,EAAEzM,GAAGif,CAAC,CAAC,CAAC,SAASnD,EAAEoB,EAAErS,EAAE7K,EAAEf,EAAE8f,EAAEE,GAAG,OAAOxS,EAAEyQ,EAAErS,EAAE7K,EAAEf,EAAE8f,EAAEE,GAAGE,GAAE,SAAU1S,EAAEyS,EAAEC,EAAEE,GAAG,IAAIC,EAAE7S,EAAEsR,GAAGJ,EAAElR,EAAEwR,GAAGrB,EAAEnQ,EAAEgR,WAAW1S,MAAMsU,GAAGI,OAAE,IAAShT,EAAEgN,EAAEhN,EAAEgN,EAAEmD,EAAE,EAAEsC,EAAEpD,OAAE,IAASrP,EAAEkR,EAAElR,EAAEkR,EAAEf,EAAE,EAAEuC,EAAE,SAASO,EAAExC,GAAG,OAAOA,EAAEA,CAAC,CAACzQ,EAAEqM,KAAKwE,EAAEE,eAAe,IAAI3S,IAAI4B,EAAEqM,KAAKwE,EAAEO,QAAQpR,EAAEkR,EAAElR,EAAEgR,SAAS,EAAE0B,GAAG1S,EAAEqM,KAAKwE,EAAEI,cAAc,IAAI1d,IAAIyM,EAAEqM,KAAKwE,EAAEO,QAAQpR,EAAEgN,EAAEhN,EAAEgR,SAAS,EAAEyB,QAAG,IAASzS,EAAEgN,IAAIhN,EAAEgN,EAAEhN,EAAEgN,EAAEyD,EAAEpB,EAAE9b,GAAG4c,EAAE,EAAEmC,SAAI,IAAStS,EAAEkR,IAAIlR,EAAEkR,EAAE8B,EAAE5U,EAAE4B,EAAEkR,EAAE1e,GAAG2d,EAAE,EAAEqC,SAAI,IAASxS,EAAEsR,KAAKtR,EAAEsR,GAAGtR,EAAEsR,GAAGb,EAAEzQ,EAAEuR,GAAGhe,GAAG4c,EAAE,EAAEmC,SAAI,IAAStS,EAAEuR,KAAKvR,EAAEuR,GAAGsB,EAAEzU,EAAE4B,EAAEuR,GAAG/e,GAAG2d,EAAE,EAAEqC,SAAI,IAASxS,EAAEwR,KAAKxR,EAAEwR,GAAGxR,EAAEwR,GAAGf,EAAEzQ,EAAEyR,GAAGle,GAAG4c,EAAE,EAAEmC,SAAI,IAAStS,EAAEyR,KAAKzR,EAAEyR,GAAGP,EAAE9S,EAAE4B,EAAEyR,GAAGjf,GAAG2d,EAAE,EAAEqC,IAAI,IAAIU,EAAEzC,EAAEje,EAAE4L,EAAE7K,EAAE,QAAG,IAASyM,EAAEiS,OAAO,IAAIxB,GAAG,IAAIrS,GAAG,IAAI7K,GAAG,IAAIf,GAAG,GAAG,IAAI0gB,SAASlT,EAAE+R,UAAU/R,EAAEgS,UAAUhS,EAAEiS,YAAYjS,EAAEkS,gBAAgBlS,EAAEmS,UAAUnS,EAAEqM,KAAKwE,EAAEO,YAAY,CAAC,IAAI+B,EAAEnT,EAAEiS,KAAKhf,KAAKsf,GAAG,IAAI5K,EAAE1U,KAAKof,IAAIc,GAAGO,EAAEzgB,KAAKmf,IAAIe,GAAGnG,EAAE,EAAEiG,EAAEjT,EAAE+R,IAAI4B,EAAE,EAAEV,EAAEjT,EAAEgS,IAAI4B,EAAEX,EAAES,GAAG1G,EAAEiG,EAAEtL,GAAGgM,EAAEtD,EAAE,EAAE1I,EAAE+L,GAAG1G,EAAE2G,GAAGlM,EAAEwL,EAAEtL,GAAGqF,EAAEiG,EAAES,GAAGC,EAAEE,EAAED,EAAEphB,EAAEA,EAAE6d,EAAEjS,EAAE5L,EAAEiV,EAAErJ,EAAEA,EAAE0V,EAAEzD,GAAGI,EAAEje,EAAE4L,EAAE7K,GAAG,GAAGqgB,EAAErgB,EAAEf,EAAEiV,EAAEgJ,EAAErS,GAAGjM,EAAEyhB,EAAErgB,EAAEA,EAAE8c,EAAEI,EAAEld,EAAEkU,EAAEgJ,EAAEA,EAAEsD,GAAG9gB,KAAKsgB,MAAMO,EAAED,EAAE1hB,GAAGc,KAAKsf,IAAItf,KAAKsf,GAAG,EAAE9C,EAAExc,KAAKof,IAAI0B,GAAGC,EAAE/gB,KAAKmf,IAAI2B,GAAG/T,EAAE+R,GAAG9e,KAAK0f,IAAIO,GAAGjgB,KAAK8f,KAAKc,EAAEZ,EAAEe,GAAGF,EAAErE,EAAEuE,EAAE7hB,EAAE8gB,EAAExD,IAAIzP,EAAEgS,GAAG/e,KAAK0f,IAAIO,GAAGjgB,KAAK8f,KAAKc,EAAEZ,EAAExD,GAAGqE,EAAErE,EAAEuE,EAAE7hB,EAAE8gB,EAAEe,IAAIhU,EAAEiS,KAAK,IAAI8B,EAAE9gB,KAAKsf,EAAE,CAAC,YAAO,IAASvS,EAAEmS,WAAW,EAAEe,IAAIlT,EAAEmS,YAAYnS,EAAEmS,WAAWnS,CAAE,GAAE,CAAC,SAASiT,IAAI,OAAO,SAASxC,GAAG,IAAIrS,EAAE,CAAC,EAAE,IAAI,IAAI7K,KAAKkd,EAAErS,EAAE7K,GAAGkd,EAAEld,GAAG,OAAO6K,CAAC,CAAC,CAACqS,EAAEwD,MAAM,SAASxD,GAAG,SAASrS,EAAEA,GAAG,OAAOnL,KAAKO,MAAM4K,EAAEqS,GAAGA,CAAC,CAAC,YAAO,IAASA,IAAIA,EAAE,MAAMzQ,EAAEyQ,GAAG,SAASA,GAAG,YAAO,IAASA,EAAEa,KAAKb,EAAEa,GAAGlT,EAAEqS,EAAEa,UAAK,IAASb,EAAEc,KAAKd,EAAEc,GAAGnT,EAAEqS,EAAEc,UAAK,IAASd,EAAEe,KAAKf,EAAEe,GAAGpT,EAAEqS,EAAEe,UAAK,IAASf,EAAEgB,KAAKhB,EAAEgB,GAAGrT,EAAEqS,EAAEgB,UAAK,IAAShB,EAAEzD,IAAIyD,EAAEzD,EAAE5O,EAAEqS,EAAEzD,SAAI,IAASyD,EAAES,IAAIT,EAAES,EAAE9S,EAAEqS,EAAES,SAAI,IAAST,EAAEsB,KAAKtB,EAAEsB,GAAG3T,EAAEqS,EAAEsB,UAAK,IAAStB,EAAEuB,KAAKvB,EAAEuB,GAAG5T,EAAEqS,EAAEuB,KAAKvB,CAAC,CAAC,EAAEA,EAAEyD,OAAO9V,EAAEqS,EAAE0D,OAAO,WAAW,OAAOzB,GAAE,SAAUjC,EAAErS,EAAE7K,GAAG,OAAOkd,EAAEO,gBAAW,IAASP,EAAEa,KAAKb,EAAEa,IAAIlT,QAAG,IAASqS,EAAEc,KAAKd,EAAEc,IAAIhe,QAAG,IAASkd,EAAEe,KAAKf,EAAEe,IAAIpT,QAAG,IAASqS,EAAEgB,KAAKhB,EAAEgB,IAAIle,QAAG,IAASkd,EAAEzD,IAAIyD,EAAEzD,GAAG5O,QAAG,IAASqS,EAAES,IAAIT,EAAES,GAAG3d,GAAGkd,EAAEO,UAAS,GAAIP,CAAE,GAAE,EAAEA,EAAE2D,cAAc,SAAS3D,EAAErS,EAAE7K,GAAG,YAAO,IAASkd,IAAIA,GAAE,QAAI,IAASrS,IAAIA,GAAE,QAAI,IAAS7K,IAAIA,GAAE,GAAImf,GAAE,SAAUlgB,EAAEwN,EAAEsS,EAAEE,EAAEC,GAAG,GAAGnU,MAAMkU,MAAMhgB,EAAE6Z,KAAKwE,EAAEM,SAAS,MAAM,IAAIW,MAAM,+BAA+B,OAAO1T,GAAG5L,EAAE6Z,KAAKwE,EAAEE,gBAAgBve,EAAE6Z,KAAKwE,EAAEO,QAAQ5e,EAAE0e,EAAE1e,EAAEwe,SAAS,EAAEsB,GAAG/e,GAAGf,EAAE6Z,KAAKwE,EAAEI,eAAeze,EAAE6Z,KAAKwE,EAAEO,QAAQ5e,EAAEwa,EAAExa,EAAEwe,SAAS,EAAEhR,GAAGyQ,GAAGje,EAAE6Z,KAAKwE,EAAEC,aAAate,EAAE6Z,KAAKwE,EAAEO,QAAQ5e,EAAEwa,EAAExa,EAAEwe,SAASwB,EAAExS,EAAEwS,EAAEhgB,EAAE0e,EAAE1e,EAAEwe,SAASyB,EAAEH,EAAEG,GAAGjgB,EAAE6Z,KAAKwE,EAAEgB,MAAM,IAAIrf,EAAEuf,IAAI,IAAIvf,EAAEwf,MAAMxf,EAAE6Z,KAAKwE,EAAEO,eAAe5e,EAAEuf,UAAUvf,EAAEwf,UAAUxf,EAAEyf,YAAYzf,EAAE0f,gBAAgB1f,EAAE2f,WAAW3f,CAAE,GAAE,EAAEie,EAAE4D,aAAa9gB,EAAEkd,EAAE6D,QAAQhC,EAAE7B,EAAE8D,KAAK7B,EAAEjC,EAAE+D,SAAS,SAAS/D,QAAG,IAASA,IAAIA,EAAE,GAAGzQ,EAAEyQ,GAAG,IAAIrS,EAAEqV,IAAIlgB,EAAEkgB,IAAIjhB,EAAEihB,IAAInB,EAAEmB,IAAI,OAAOf,GAAE,SAAU1S,EAAEwS,EAAEC,EAAEC,EAAEE,GAAG,IAAIC,EAAE5f,KAAK0f,IAAIzB,GAAE,EAAGf,EAAE,EAAE6C,EAAE,EAAE,GAAGhT,EAAEqM,KAAKwE,EAAEa,kBAAkBvB,EAAE7R,MAAMF,GAAG,EAAEoU,EAAEpU,EAAE4U,EAAE1U,MAAM/K,GAAG,EAAEkf,EAAElf,GAAGyM,EAAEqM,MAAMwE,EAAEQ,SAASR,EAAEa,kBAAkBtT,EAAE4B,EAAEgR,SAASwB,EAAExS,EAAEwR,GAAGxR,EAAEwR,GAAGje,EAAEyM,EAAEgR,SAASyB,EAAEzS,EAAEyR,GAAGzR,EAAEyR,KAAKrT,EAAEqV,IAAIlgB,EAAEkgB,KAAKzT,EAAEqM,KAAKwE,EAAEe,gBAAgBpf,EAAE8L,MAAM9L,GAAGggB,EAAE,EAAEA,EAAEhgB,EAAE8f,EAAEhU,MAAMgU,GAAGG,EAAE,EAAEA,EAAEH,GAAGtS,EAAEqM,KAAKwE,EAAEc,SAASnf,EAAEwN,EAAEgR,SAASwB,EAAExS,EAAEsR,GAAGtR,EAAEsR,GAAGgB,EAAEtS,EAAEgR,SAASyB,EAAEzS,EAAEuR,GAAGvR,EAAEyR,KAAKjf,EAAEihB,IAAInB,EAAEmB,KAAKzT,EAAEqM,KAAKwE,EAAE4D,eAAezU,EAAEqM,KAAKwE,EAAEgB,MAAM,IAAI7R,EAAE+R,IAAI,IAAI/R,EAAEgS,KAAKhS,EAAEkS,WAAWlS,EAAEqM,KAAKwE,EAAEQ,UAAUrR,EAAEqM,KAAKwE,EAAEa,iBAAiB1R,EAAEqM,KAAKwE,EAAEc,SAAS3R,EAAEqM,KAAKwE,EAAEe,eAAe,CAAC,IAAIvC,OAAE,IAASrP,EAAEgN,EAAE,EAAEhN,EAAEgR,SAAShR,EAAEgN,EAAEhN,EAAEgN,EAAEwF,EAAES,OAAE,IAASjT,EAAEkR,EAAE,EAAElR,EAAEgR,SAAShR,EAAEkR,EAAElR,EAAEkR,EAAEuB,EAAEtC,EAAE7R,MAAM9L,QAAG,IAASwN,EAAEsR,GAAGnB,EAAEnQ,EAAEgR,SAAShR,EAAEgN,EAAEhN,EAAEsR,GAAGkB,EAAEhgB,EAAEggB,EAAEQ,EAAE1U,MAAMgU,QAAG,IAAStS,EAAEuR,GAAGyB,EAAEhT,EAAEgR,SAAShR,EAAEkR,EAAElR,EAAEuR,GAAGkB,EAAEH,EAAEG,EAAE,IAAIS,OAAE,IAASlT,EAAEwR,GAAG,EAAExR,EAAEgR,SAAShR,EAAEgN,EAAEhN,EAAEwR,GAAGgB,EAAEW,OAAE,IAASnT,EAAEyR,GAAG,EAAEzR,EAAEgR,SAAShR,EAAEkR,EAAElR,EAAEyR,GAAGgB,EAAEI,EAAExD,IAAIoB,GAAGoC,EAAEI,IAAIxC,GAAGoC,EAAE1C,IAAIM,GAAGoC,EAAEG,IAAIvC,GAAGoC,EAAEK,IAAIzC,GAAGoC,EAAEM,IAAI1C,IAAIS,GAAE,EAAG,CAAC,OAAOlR,EAAEqM,KAAKwE,EAAEC,YAAY+B,EAAEL,EAAEE,IAAIjC,GAAGoC,EAAEJ,EAAEG,IAAInC,IAAIS,GAAE,GAAIA,EAAE,GAAGlR,CAAE,GAAE,EAAEyQ,EAAEiE,OAAOrF,EAAEoB,EAAEkE,OAAO,SAASlE,EAAErS,EAAE7K,QAAG,IAAS6K,IAAIA,EAAE,QAAG,IAAS7K,IAAIA,EAAE,GAAGyM,EAAEyQ,EAAErS,EAAE7K,GAAG,IAAIf,EAAES,KAAKof,IAAI5B,GAAG6B,EAAErf,KAAKmf,IAAI3B,GAAG,OAAOpB,EAAEiD,EAAE9f,GAAGA,EAAE8f,EAAElU,EAAEA,EAAEkU,EAAE/e,EAAEf,EAAEe,EAAE6K,EAAE5L,EAAEe,EAAE+e,EAAE,EAAE7B,EAAEmE,UAAU,SAASnE,EAAErS,GAAG,YAAO,IAASA,IAAIA,EAAE,GAAG4B,EAAEyQ,EAAErS,GAAGiR,EAAE,EAAE,EAAE,EAAE,EAAEoB,EAAErS,EAAE,EAAEqS,EAAEoE,MAAM,SAASpE,EAAErS,GAAG,YAAO,IAASA,IAAIA,EAAEqS,GAAGzQ,EAAEyQ,EAAErS,GAAGiR,EAAEoB,EAAE,EAAE,EAAErS,EAAE,EAAE,EAAE,EAAEqS,EAAEqE,OAAO,SAASrE,GAAG,OAAOzQ,EAAEyQ,GAAGpB,EAAE,EAAE,EAAEpc,KAAK8hB,KAAKtE,GAAG,EAAE,EAAE,EAAE,EAAEA,EAAEuE,OAAO,SAASvE,GAAG,OAAOzQ,EAAEyQ,GAAGpB,EAAE,EAAEpc,KAAK8hB,KAAKtE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEA,EAAEwE,gBAAgB,SAASxE,GAAG,YAAO,IAASA,IAAIA,EAAE,GAAGzQ,EAAEyQ,GAAGpB,GAAG,EAAE,EAAE,EAAE,EAAEoB,EAAE,EAAE,EAAEA,EAAEyE,gBAAgB,SAASzE,GAAG,YAAO,IAASA,IAAIA,EAAE,GAAGzQ,EAAEyQ,GAAGpB,EAAE,EAAE,EAAE,GAAG,EAAE,EAAEoB,EAAE,EAAEA,EAAE0E,OAAO,WAAW,OAAOzC,GAAE,SAAUjC,EAAErS,EAAE7K,GAAG,OAAOsd,EAAEgB,MAAMpB,EAAEpE,KAAK,SAASoE,EAAErS,EAAE7K,GAAG,IAAIyM,EAAEsS,EAAEG,EAAEC,EAAEjC,EAAE2C,IAAIZ,EAAE/B,EAAErS,EAAE7K,GAAG,IAAI,IAAI2d,EAAEje,KAAKqa,IAAImD,EAAE6C,KAAK7C,EAAE+C,MAAMrD,EAAEld,KAAKC,IAAIud,EAAE6C,KAAK7C,EAAE+C,MAAMtC,EAAE8B,EAAE/f,KAAKmiB,KAAKjF,EAAE,IAAId,EAAE,IAAIxQ,MAAMmU,GAAGC,EAAE7U,EAAE8U,EAAE3f,EAAE4f,EAAE,EAAEA,EAAEH,EAAEG,IAAI,CAAC,IAAIxL,EAAEkL,EAAEpC,EAAE6C,KAAK7C,EAAE+C,KAAKL,EAAEH,GAAGU,EAAEb,EAAEpC,EAAE6C,KAAK7C,EAAE+C,MAAML,EAAE,GAAGH,GAAGhG,EAAE0G,EAAE/L,EAAEgM,EAAE,EAAE,EAAE1gB,KAAK8J,IAAIiQ,EAAE4F,EAAE,GAAGgB,EAAE,CAAC3gB,KAAKmf,IAAIzK,EAAEiL,GAAGe,EAAE1gB,KAAKof,IAAI1K,EAAEiL,GAAG3f,KAAKof,IAAI1K,EAAEiL,GAAGe,EAAE1gB,KAAKmf,IAAIzK,EAAEiL,IAAIvC,EAAEuD,EAAE,GAAGnM,EAAEmM,EAAE,GAAGC,EAAE,CAAC5gB,KAAKmf,IAAIsB,EAAEd,GAAG3f,KAAKof,IAAIqB,EAAEd,IAAIkB,EAAED,EAAE,GAAG1hB,EAAE0hB,EAAE,GAAGE,EAAE,CAACD,EAAEH,EAAE1gB,KAAKof,IAAIqB,EAAEd,GAAGzgB,EAAEwhB,EAAE1gB,KAAKmf,IAAIsB,EAAEd,IAAInD,EAAEsE,EAAE,GAAGC,EAAED,EAAE,GAAG1E,EAAE8D,GAAG,CAACnC,SAASP,EAAEO,SAAS3E,KAAKwE,EAAEQ,UAAU,IAAIgE,EAAE,SAASjX,EAAE7K,GAAG,IAAIyM,EAAExN,EAAE,CAAC4L,EAAEqS,EAAEsB,GAAGxe,EAAEkd,EAAEuB,IAAIvB,EAAEwB,MAAMK,EAAEtS,EAAE,GAAGwS,EAAExS,EAAE,GAAG,MAAM,CAACyQ,EAAE2C,GAAGd,EAAE7B,EAAE4C,GAAGb,EAAE,EAAExS,EAAEqV,EAAEhF,EAAE5I,GAAG4H,EAAE8D,GAAG7B,GAAGtR,EAAE,GAAGqP,EAAE8D,GAAG5B,GAAGvR,EAAE,GAAGsS,EAAE+C,EAAE5F,EAAEuE,GAAG3E,EAAE8D,GAAG3B,GAAGc,EAAE,GAAGjD,EAAE8D,GAAG1B,GAAGa,EAAE,GAAGG,EAAE4C,EAAEvB,EAAE3hB,GAAGkd,EAAE8D,GAAGnG,EAAEyF,EAAE,GAAGpD,EAAE8D,GAAGjC,EAAEuB,EAAE,GAAGhC,EAAEO,WAAW3B,EAAE8D,GAAG7B,IAAI2B,EAAE5D,EAAE8D,GAAG5B,IAAI2B,EAAE7D,EAAE8D,GAAG3B,IAAIyB,EAAE5D,EAAE8D,GAAG1B,IAAIyB,EAAE7D,EAAE8D,GAAGnG,GAAGiG,EAAE5D,EAAE8D,GAAGjC,GAAGgC,GAAGD,GAAGP,EAAE,CAACrD,EAAE8D,GAAGnG,EAAEqC,EAAE8D,GAAGjC,IAAI,GAAGgC,EAAER,EAAE,EAAE,CAAC,OAAOrD,CAAC,CAApwB,CAAswBoB,EAAEA,EAAEO,SAAS,EAAE5S,EAAEqS,EAAEO,SAAS,EAAEzd,GAAGkd,CAAE,GAAE,EAAEA,EAAE6E,cAAc,WAAW,OAAO5C,GAAE,SAAUjC,EAAErS,EAAE7K,GAAG,OAAOkd,EAAEO,WAAW5S,EAAE,EAAE7K,EAAE,GAAGsd,EAAEgB,MAAMpB,EAAEpE,MAAMmG,EAAE/B,EAAErS,EAAE7K,GAAGkd,CAAE,GAAE,EAAEA,EAAE8E,MAAMtC,EAAExC,EAAE+E,iBAAiB,WAAW,IAAI/E,EAAE,SAASA,GAAG,IAAIrS,EAAE,CAAC,EAAE,IAAI,IAAI7K,KAAKkd,EAAErS,EAAE7K,GAAGkd,EAAEld,GAAG,OAAO6K,CAAC,EAAE5L,EAAE4L,IAAI4B,EAAEsS,IAAIM,EAAErf,IAAIsf,EAAEH,GAAE,SAAUtU,EAAE7K,EAAE+e,GAAG,IAAII,EAAEE,EAAE5S,EAAExN,EAAEie,EAAErS,MAAM,SAASiR,EAAEoB,GAAGA,EAAEoC,EAAE4C,OAAO5C,EAAE4C,KAAKhF,GAAGA,EAAEoC,EAAE6C,OAAO7C,EAAE6C,KAAKjF,EAAE,CAAC,SAASwC,EAAExC,GAAGA,EAAEoC,EAAE8C,OAAO9C,EAAE8C,KAAKlF,GAAGA,EAAEoC,EAAE+C,OAAO/C,EAAE+C,KAAKnF,EAAE,CAAC,GAAGiC,EAAErG,KAAKwE,EAAEgF,mBAAmBxG,EAAE9b,GAAG0f,EAAEX,IAAII,EAAErG,KAAKwE,EAAEE,eAAe1B,EAAEqD,EAAE1F,GAAG0F,EAAErG,KAAKwE,EAAEI,cAAcgC,EAAEP,EAAExB,GAAGwB,EAAErG,KAAKwE,EAAEO,UAAU/B,EAAEqD,EAAE1F,GAAGiG,EAAEP,EAAExB,IAAIwB,EAAErG,KAAKwE,EAAEQ,SAAS,CAAChC,EAAEqD,EAAE1F,GAAGiG,EAAEP,EAAExB,GAAG,IAAI,IAAIgC,EAAE,EAAEC,EAAEhD,EAAE5c,EAAEmf,EAAEpB,GAAGoB,EAAElB,GAAGkB,EAAE1F,GAAGkG,EAAEC,EAAE1gB,OAAOygB,IAAK,GAAG4C,EAAE3C,EAAED,KAAK,EAAE4C,GAAGzG,EAAE2D,EAAEzf,EAAEmf,EAAEpB,GAAGoB,EAAElB,GAAGkB,EAAE1F,EAAE8I,IAAI,IAAI,IAAInO,EAAE,EAAE+L,EAAEvD,EAAEmC,EAAEI,EAAEnB,GAAGmB,EAAEjB,GAAGiB,EAAExB,GAAGvJ,EAAE+L,EAAEjhB,OAAOkV,IAAK,GAAGmO,EAAEpC,EAAE/L,KAAK,EAAEmO,GAAG7C,EAAED,EAAEV,EAAEI,EAAEnB,GAAGmB,EAAEjB,GAAGiB,EAAExB,EAAE4E,GAAI,CAAC,GAAGpD,EAAErG,KAAKwE,EAAEgB,IAAI,CAACxC,EAAEqD,EAAE1F,GAAGiG,EAAEP,EAAExB,GAAGsB,EAAEE,EAAEnf,EAAE+e,GAAG,IAAI,IAAItF,EAAE0F,EAAET,KAAK,IAAIhf,KAAKsf,GAAGoB,EAAE1gB,KAAKmf,IAAIpF,GAAG0F,EAAEX,GAAG6B,EAAE3gB,KAAKof,IAAIrF,GAAG0F,EAAEX,GAAG1B,GAAGpd,KAAKof,IAAIrF,GAAG0F,EAAEV,GAAGvK,EAAExU,KAAKmf,IAAIpF,GAAG0F,EAAEV,GAAG6B,EAAEnB,EAAEY,KAAKZ,EAAEc,KAAK,CAACd,EAAEY,KAAKZ,EAAEc,OAAO,IAAId,EAAEc,KAAK,CAACd,EAAEc,KAAK,IAAId,EAAEY,KAAK,KAAK,CAACZ,EAAEc,KAAKd,EAAEY,MAAMQ,EAAED,EAAE,GAAG1hB,EAAE0hB,EAAE,GAAGE,EAAE,SAAStD,GAAG,IAAIrS,EAAEqS,EAAE,GAAGld,EAAEkd,EAAE,GAAGje,EAAE,IAAIS,KAAKsgB,MAAMhgB,EAAE6K,GAAGnL,KAAKsf,GAAG,OAAO/f,EAAEshB,EAAEthB,EAAE,IAAIA,CAAC,EAAEid,EAAE,EAAEuE,EAAEvB,EAAEpC,GAAGsD,EAAE,GAAGoC,IAAIhC,GAAGtE,EAAEuE,EAAEvhB,OAAOgd,KAAMqG,EAAE9B,EAAEvE,IAAIqE,GAAGgC,EAAE3jB,GAAGkd,EAAE6B,EAAEwB,EAAEU,GAAGO,EAAEtD,EAAEyF,IAAI,IAAI,IAAIT,EAAE,EAAEW,EAAEvD,EAAEhL,GAAGmM,EAAE,GAAGmC,IAAIhC,GAAGsB,EAAEW,EAAEvjB,OAAO4iB,IAAI,CAAC,IAAIS,GAAGA,EAAEE,EAAEX,IAAIvB,GAAGgC,EAAE3jB,GAAG8gB,EAAE/B,EAAEwB,EAAEW,GAAGO,EAAEnM,EAAEqO,GAAG,CAAC,CAAC,OAAO1X,CAAE,IAAG,OAAOyU,EAAE6C,KAAK,IAAI7C,EAAE4C,MAAK,IAAK5C,EAAE+C,KAAK,IAAI/C,EAAE8C,MAAK,IAAK9C,CAAC,CAAC,CAA99O,CAAg+OH,IAAIA,EAAE,CAAC,IAAI,IAAIrD,EAAE4D,EAAE,WAAW,SAASxC,IAAI,CAAC,OAAOA,EAAE3N,UAAUtP,MAAM,SAASid,GAAG,OAAOze,KAAKikB,UAAUvD,EAAEuB,MAAMxD,GAAG,EAAEA,EAAE3N,UAAUoT,MAAM,WAAW,OAAOlkB,KAAKikB,UAAUvD,EAAEwB,SAAS,EAAEzD,EAAE3N,UAAUqT,MAAM,WAAW,OAAOnkB,KAAKikB,UAAUvD,EAAEyB,SAAS,EAAE1D,EAAE3N,UAAUsT,aAAa,SAAS3F,EAAErS,EAAE7K,GAAG,OAAOvB,KAAKikB,UAAUvD,EAAE0B,cAAc3D,EAAErS,EAAE7K,GAAG,EAAEkd,EAAE3N,UAAUuT,YAAY,WAAW,OAAOrkB,KAAKikB,UAAUvD,EAAE2B,eAAe,EAAE5D,EAAE3N,UAAUwT,MAAM,WAAW,OAAOtkB,KAAKikB,UAAUvD,EAAE4B,UAAU,EAAE7D,EAAE3N,UAAUyT,KAAK,WAAW,OAAOvkB,KAAKikB,UAAUvD,EAAEyC,SAAS,EAAE1E,EAAE3N,UAAU0T,SAAS,SAAS/F,GAAG,OAAOze,KAAKikB,UAAUvD,EAAE8B,SAAS/D,GAAG,EAAEA,EAAE3N,UAAU2T,UAAU,SAAShG,EAAErS,GAAG,OAAOpM,KAAKikB,UAAUvD,EAAEkC,UAAUnE,EAAErS,GAAG,EAAEqS,EAAE3N,UAAU4T,MAAM,SAASjG,EAAErS,GAAG,OAAOpM,KAAKikB,UAAUvD,EAAEmC,MAAMpE,EAAErS,GAAG,EAAEqS,EAAE3N,UAAU6T,OAAO,SAASlG,EAAErS,EAAE7K,GAAG,OAAOvB,KAAKikB,UAAUvD,EAAEiC,OAAOlE,EAAErS,EAAE7K,GAAG,EAAEkd,EAAE3N,UAAU8T,OAAO,SAASnG,EAAErS,EAAE7K,EAAEf,EAAEwN,EAAEsS,GAAG,OAAOtgB,KAAKikB,UAAUvD,EAAEgC,OAAOjE,EAAErS,EAAE7K,EAAEf,EAAEwN,EAAEsS,GAAG,EAAE7B,EAAE3N,UAAU+T,MAAM,SAASpG,GAAG,OAAOze,KAAKikB,UAAUvD,EAAEoC,OAAOrE,GAAG,EAAEA,EAAE3N,UAAUgU,MAAM,SAASrG,GAAG,OAAOze,KAAKikB,UAAUvD,EAAEsC,OAAOvE,GAAG,EAAEA,EAAE3N,UAAUiU,UAAU,SAAStG,GAAG,OAAOze,KAAKikB,UAAUvD,EAAEuC,gBAAgBxE,GAAG,EAAEA,EAAE3N,UAAUkU,UAAU,SAASvG,GAAG,OAAOze,KAAKikB,UAAUvD,EAAEwC,gBAAgBzE,GAAG,EAAEA,EAAE3N,UAAUmU,aAAa,WAAW,OAAOjlB,KAAKikB,UAAUvD,EAAE4C,gBAAgB,EAAE7E,CAAC,CAAjvC,GAAqvCyC,EAAE,SAASzC,GAAG,MAAM,MAAMA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,CAAC,EAAE0C,EAAE,SAAS1C,GAAG,MAAM,IAAIyG,WAAW,IAAIzG,EAAEyG,WAAW,IAAIzG,EAAEyG,WAAW,IAAI,IAAIA,WAAW,EAAE,EAAEvP,EAAE,SAAS8I,GAAG,SAASld,IAAI,IAAI6K,EAAEqS,EAAE1e,KAAKC,OAAOA,KAAK,OAAOoM,EAAE+Y,UAAU,GAAG/Y,EAAEgZ,gBAAgB,EAAEhZ,EAAEiZ,oBAAmB,EAAGjZ,EAAEkZ,wBAAuB,EAAGlZ,EAAEmZ,iBAAgB,EAAGnZ,EAAEoZ,uBAAsB,EAAGpZ,EAAEqZ,qBAAoB,EAAGrZ,EAAEsZ,QAAQ,GAAGtZ,CAAC,CAAC,OAAOA,EAAE7K,EAAEkd,GAAGld,EAAEuP,UAAU6U,OAAO,SAASlH,GAAG,QAAG,IAASA,IAAIA,EAAE,IAAIze,KAAK4lB,MAAM,IAAInH,GAAG,IAAIze,KAAK0lB,QAAQjlB,SAAST,KAAKslB,uBAAuB,MAAM,IAAIO,YAAY,yCAAyC,OAAOpH,CAAC,EAAEld,EAAEuP,UAAU8U,MAAM,SAASnH,EAAErS,GAAG,IAAI7K,EAAEvB,UAAK,IAASoM,IAAIA,EAAE,IAAI,IAAI,IAAI5L,EAAE,SAASie,GAAGrS,EAAE3K,KAAKgd,GAAGld,EAAEmkB,QAAQjlB,OAAO,EAAEc,EAAE+jB,wBAAuB,CAAE,EAAEtX,EAAE,EAAEA,EAAEyQ,EAAEhe,OAAOuN,IAAI,CAAC,IAAIsS,EAAE7B,EAAEzQ,GAAGwS,IAAIxgB,KAAKolB,iBAAiBvG,EAAEgB,KAAK,IAAI7f,KAAK0lB,QAAQjlB,QAAQ,IAAIT,KAAK0lB,QAAQjlB,QAAQ,IAAIT,KAAKmlB,UAAU1kB,QAAQ,MAAMT,KAAKmlB,WAAW,MAAMnlB,KAAKmlB,WAAW1E,EAAEU,EAAEb,KAAK,MAAMtgB,KAAKmlB,WAAW,MAAM7E,GAAGE,GAAG,IAAIW,EAAEb,IAAIG,EAAE,GAAG,MAAMH,GAAG,MAAMA,EAAE,GAAG,MAAMA,GAAG,MAAMA,IAAItgB,KAAKulB,iBAAiBvlB,KAAKwlB,sBAAsB,GAAG,MAAMlF,GAAGtgB,KAAKulB,iBAAiBvlB,KAAKylB,qBAAqBjF,EAAE,CAAC,GAAGxgB,KAAKmlB,YAAY,IAAInlB,KAAKolB,eAAe,CAAC,IAAI1E,EAAEoF,OAAO9lB,KAAKmlB,WAAW,GAAG7Y,MAAMoU,GAAG,MAAM,IAAImF,YAAY,4BAA4B7X,GAAG,GAAGhO,KAAKolB,iBAAiBvG,EAAEgB,IAAI,GAAG,IAAI7f,KAAK0lB,QAAQjlB,QAAQ,IAAIT,KAAK0lB,QAAQjlB,QAAQ,GAAG,EAAEigB,EAAE,MAAM,IAAImF,YAAY,kCAAkCnF,EAAE,eAAe1S,EAAE,UAAU,IAAI,IAAIhO,KAAK0lB,QAAQjlB,QAAQ,IAAIT,KAAK0lB,QAAQjlB,SAAS,MAAMT,KAAKmlB,WAAW,MAAMnlB,KAAKmlB,UAAU,MAAM,IAAIU,YAAY,yBAAyB7lB,KAAKmlB,UAAU,eAAenX,EAAE,KAAKhO,KAAK0lB,QAAQjkB,KAAKif,GAAG1gB,KAAK0lB,QAAQjlB,SAASihB,EAAE1hB,KAAKolB,kBAAkBvG,EAAEE,gBAAgB/e,KAAKolB,eAAe5kB,EAAE,CAAC6Z,KAAKwE,EAAEE,cAAcC,SAAShf,KAAKqlB,mBAAmBrK,EAAE0F,IAAI7B,EAAEI,eAAejf,KAAKolB,eAAe5kB,EAAE,CAAC6Z,KAAKwE,EAAEI,aAAaD,SAAShf,KAAKqlB,mBAAmBnG,EAAEwB,IAAI1gB,KAAKolB,iBAAiBvG,EAAEM,SAASnf,KAAKolB,iBAAiBvG,EAAEO,SAASpf,KAAKolB,iBAAiBvG,EAAEe,gBAAgBpf,EAAE,CAAC6Z,KAAKra,KAAKolB,eAAepG,SAAShf,KAAKqlB,mBAAmBrK,EAAEhb,KAAK0lB,QAAQ,GAAGxG,EAAElf,KAAK0lB,QAAQ,KAAK7G,EAAEM,UAAUnf,KAAKolB,iBAAiBplB,KAAKolB,eAAevG,EAAEO,UAAUpf,KAAKolB,iBAAiBvG,EAAEQ,SAAS7e,EAAE,CAAC6Z,KAAKwE,EAAEQ,SAASL,SAAShf,KAAKqlB,mBAAmB/F,GAAGtf,KAAK0lB,QAAQ,GAAGnG,GAAGvf,KAAK0lB,QAAQ,GAAGlG,GAAGxf,KAAK0lB,QAAQ,GAAGjG,GAAGzf,KAAK0lB,QAAQ,GAAG1K,EAAEhb,KAAK0lB,QAAQ,GAAGxG,EAAElf,KAAK0lB,QAAQ,KAAK1lB,KAAKolB,iBAAiBvG,EAAEa,gBAAgBlf,EAAE,CAAC6Z,KAAKwE,EAAEa,gBAAgBV,SAAShf,KAAKqlB,mBAAmB7F,GAAGxf,KAAK0lB,QAAQ,GAAGjG,GAAGzf,KAAK0lB,QAAQ,GAAG1K,EAAEhb,KAAK0lB,QAAQ,GAAGxG,EAAElf,KAAK0lB,QAAQ,KAAK1lB,KAAKolB,iBAAiBvG,EAAEc,QAAQnf,EAAE,CAAC6Z,KAAKwE,EAAEc,QAAQX,SAAShf,KAAKqlB,mBAAmB/F,GAAGtf,KAAK0lB,QAAQ,GAAGnG,GAAGvf,KAAK0lB,QAAQ,GAAG1K,EAAEhb,KAAK0lB,QAAQ,GAAGxG,EAAElf,KAAK0lB,QAAQ,KAAK1lB,KAAKolB,iBAAiBvG,EAAEgB,KAAKrf,EAAE,CAAC6Z,KAAKwE,EAAEgB,IAAIb,SAAShf,KAAKqlB,mBAAmBtF,GAAG/f,KAAK0lB,QAAQ,GAAG1F,GAAGhgB,KAAK0lB,QAAQ,GAAGzF,KAAKjgB,KAAK0lB,QAAQ,GAAGxF,SAASlgB,KAAK0lB,QAAQ,GAAGvF,UAAUngB,KAAK0lB,QAAQ,GAAG1K,EAAEhb,KAAK0lB,QAAQ,GAAGxG,EAAElf,KAAK0lB,QAAQ,MAAM1lB,KAAKmlB,UAAU,GAAGnlB,KAAKwlB,uBAAsB,EAAGxlB,KAAKulB,iBAAgB,EAAGvlB,KAAKylB,qBAAoB,EAAGzlB,KAAKslB,wBAAuB,CAAE,CAAC,IAAIpE,EAAEZ,GAAG,GAAG,MAAMA,GAAGtgB,KAAKslB,uBAAuBtlB,KAAKslB,wBAAuB,OAAQ,GAAG,MAAMhF,GAAG,MAAMA,GAAG,MAAMA,EAAE,GAAGG,EAAEzgB,KAAKmlB,UAAU7E,EAAEtgB,KAAKylB,qBAAoB,MAAO,CAAC,GAAG,IAAIzlB,KAAK0lB,QAAQjlB,OAAO,MAAM,IAAIolB,YAAY,iCAAiC7X,EAAE,KAAK,IAAIhO,KAAKslB,uBAAuB,MAAM,IAAIO,YAAY,yBAAyBvF,EAAE,cAActS,EAAE,iCAAiC,GAAGhO,KAAKslB,wBAAuB,EAAG,MAAMhF,GAAG,MAAMA,EAAE,GAAG,MAAMA,GAAG,MAAMA,EAAEtgB,KAAKolB,eAAevG,EAAEE,cAAc/e,KAAKqlB,mBAAmB,MAAM/E,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEtgB,KAAKolB,eAAevG,EAAEI,aAAajf,KAAKqlB,mBAAmB,MAAM/E,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEtgB,KAAKolB,eAAevG,EAAEM,QAAQnf,KAAKqlB,mBAAmB,MAAM/E,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEtgB,KAAKolB,eAAevG,EAAEO,QAAQpf,KAAKqlB,mBAAmB,MAAM/E,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEtgB,KAAKolB,eAAevG,EAAEQ,SAASrf,KAAKqlB,mBAAmB,MAAM/E,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEtgB,KAAKolB,eAAevG,EAAEa,gBAAgB1f,KAAKqlB,mBAAmB,MAAM/E,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEtgB,KAAKolB,eAAevG,EAAEc,QAAQ3f,KAAKqlB,mBAAmB,MAAM/E,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEtgB,KAAKolB,eAAevG,EAAEe,eAAe5f,KAAKqlB,mBAAmB,MAAM/E,MAAM,CAAC,GAAG,MAAMA,GAAG,MAAMA,EAAE,MAAM,IAAIuF,YAAY,yBAAyBvF,EAAE,cAActS,EAAE,KAAKhO,KAAKolB,eAAevG,EAAEgB,IAAI7f,KAAKqlB,mBAAmB,MAAM/E,CAAC,MAAMlU,EAAE3K,KAAK,CAAC4Y,KAAKwE,EAAEC,aAAa9e,KAAKslB,wBAAuB,EAAGtlB,KAAKolB,gBAAgB,CAAC,MAAMplB,KAAKmlB,UAAU7E,EAAEtgB,KAAKylB,oBAAoB,MAAMnF,CAAC,MAAMtgB,KAAKmlB,WAAW7E,EAAEtgB,KAAKylB,qBAAoB,OAAQzlB,KAAKmlB,WAAW7E,OAAOtgB,KAAKmlB,WAAW7E,EAAEtgB,KAAKulB,iBAAgB,OAAQvlB,KAAKmlB,WAAW7E,EAAEtgB,KAAKwlB,sBAAsBxlB,KAAKulB,eAAe,CAAC,OAAOnZ,CAAC,EAAE7K,EAAEuP,UAAUmT,UAAU,SAASxF,GAAG,OAAOlE,OAAOqE,OAAO5e,KAAK,CAAC4lB,MAAM,CAACxV,MAAM,SAAShE,EAAE7K,QAAG,IAASA,IAAIA,EAAE,IAAI,IAAI,IAAIf,EAAE,EAAEwN,EAAEuM,OAAOwL,eAAe/lB,MAAM4lB,MAAM7lB,KAAKC,KAAKoM,GAAG5L,EAAEwN,EAAEvN,OAAOD,IAAI,CAAC,IAAI8f,EAAEtS,EAAExN,GAAGggB,EAAE/B,EAAE6B,GAAGzT,MAAMmI,QAAQwL,GAAGjf,EAAEE,KAAKI,MAAMN,EAAEif,GAAGjf,EAAEE,KAAK+e,EAAE,CAAC,OAAOjf,CAAC,IAAI,EAAEA,CAAC,CAArtJ,CAAutJ0f,GAAGpC,EAAE,SAASJ,GAAG,SAASje,EAAE4L,GAAG,IAAI7K,EAAEkd,EAAE1e,KAAKC,OAAOA,KAAK,OAAOuB,EAAEykB,SAAS,iBAAiB5Z,EAAE5L,EAAEolB,MAAMxZ,GAAGA,EAAE7K,CAAC,CAAC,OAAO6K,EAAE5L,EAAEie,GAAGje,EAAEsQ,UAAUmV,OAAO,WAAW,OAAOzlB,EAAEylB,OAAOjmB,KAAKgmB,SAAS,EAAExlB,EAAEsQ,UAAUoV,UAAU,WAAW,IAAIzH,EAAEiC,EAAE8C,mBAAmB,OAAOxjB,KAAKikB,UAAUxF,GAAGA,CAAC,EAAEje,EAAEsQ,UAAUmT,UAAU,SAASxF,GAAG,IAAI,IAAIrS,EAAE,GAAG7K,EAAE,EAAEf,EAAER,KAAKgmB,SAASzkB,EAAEf,EAAEC,OAAOc,IAAI,CAAC,IAAIyM,EAAEyQ,EAAEje,EAAEe,IAAIsL,MAAMmI,QAAQhH,GAAG5B,EAAE3K,KAAKI,MAAMuK,EAAE4B,GAAG5B,EAAE3K,KAAKuM,EAAE,CAAC,OAAOhO,KAAKgmB,SAAS5Z,EAAEpM,IAAI,EAAEQ,EAAEylB,OAAO,SAASxH,GAAG,OAAOld,EAAEkd,EAAE,EAAEje,EAAEolB,MAAM,SAASnH,GAAG,IAAIrS,EAAE,IAAIuJ,EAAEpU,EAAE,GAAG,OAAO6K,EAAEwZ,MAAMnH,EAAEld,GAAG6K,EAAEuZ,OAAOpkB,GAAGA,CAAC,EAAEf,EAAEse,WAAW,EAAEte,EAAE2e,QAAQ,EAAE3e,EAAEue,cAAc,EAAEve,EAAEye,aAAa,EAAEze,EAAE4e,QAAQ,GAAG5e,EAAE6e,SAAS,GAAG7e,EAAEkf,gBAAgB,GAAGlf,EAAEmf,QAAQ,IAAInf,EAAEof,eAAe,IAAIpf,EAAEqf,IAAI,IAAIrf,EAAEiiB,cAAcjiB,EAAE4e,QAAQ5e,EAAEue,cAAcve,EAAEye,aAAaze,EAAEqjB,iBAAiBrjB,EAAEue,cAAcve,EAAEye,aAAaze,EAAE4e,QAAQ5e,EAAE6e,SAAS7e,EAAEkf,gBAAgBlf,EAAEmf,QAAQnf,EAAEof,eAAepf,EAAEqf,IAAIrf,CAAC,CAA/2B,CAAi3BygB,GAAGS,IAAIrE,EAAE,CAAC,GAAGwB,EAAEM,SAAS,EAAE9B,EAAEwB,EAAEO,SAAS,EAAE/B,EAAEwB,EAAEE,eAAe,EAAE1B,EAAEwB,EAAEI,cAAc,EAAE5B,EAAEwB,EAAEC,YAAY,EAAEzB,EAAEwB,EAAEc,SAAS,EAAEtC,EAAEwB,EAAEe,gBAAgB,EAAEvC,EAAEwB,EAAEQ,UAAU,EAAEhC,EAAEwB,EAAEa,iBAAiB,EAAErC,EAAEwB,EAAEgB,KAAK,EAAExC,G,SCdtrjB,SAAS8I,EAAQC,GAaf,OATED,EADoB,oBAAXE,QAAoD,kBAApBA,OAAOC,SACtC,SAAUF,GAClB,cAAcA,CAChB,EAEU,SAAUA,GAClB,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAItW,cAAgBuW,QAAUD,IAAQC,OAAOvV,UAAY,gBAAkBsV,CAC3H,EAGKD,EAAQC,EACjB,CAEA,SAASG,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAI3O,UAAU,oCAExB,CA8CA,IAAI4O,EAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,G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","sources":["webpack://company-webapp/./node_modules/performance-now/lib/performance-now.js","webpack://company-webapp/./node_modules/raf/index.js","webpack://company-webapp/./node_modules/rgbcolor/index.js","webpack://company-webapp/./node_modules/core-js/internals/environment-is-ios-pebble.js","webpack://company-webapp/./node_modules/core-js/internals/environment-is-ios.js","webpack://company-webapp/./node_modules/core-js/internals/environment-is-webos-webkit.js","webpack://company-webapp/./node_modules/core-js/internals/host-report-errors.js","webpack://company-webapp/./node_modules/core-js/internals/microtask.js","webpack://company-webapp/./node_modules/core-js/internals/perform.js","webpack://company-webapp/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://company-webapp/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://company-webapp/./node_modules/core-js/internals/queue.js","webpack://company-webapp/./node_modules/core-js/internals/task.js","webpack://company-webapp/./node_modules/core-js/modules/es.array.index-of.js","webpack://company-webapp/./node_modules/core-js/modules/es.array.reverse.js","webpack://company-webapp/./node_modules/core-js/modules/es.promise.all.js","webpack://company-webapp/./node_modules/core-js/modules/es.promise.catch.js","webpack://company-webapp/./node_modules/core-js/modules/es.promise.constructor.js","webpack://company-webapp/./node_modules/core-js/modules/es.promise.js","webpack://company-webapp/./node_modules/core-js/modules/es.promise.race.js","webpack://company-webapp/./node_modules/core-js/modules/es.promise.reject.js","webpack://company-webapp/./node_modules/core-js/modules/es.promise.resolve.js","webpack://company-webapp/./node_modules/core-js/modules/es.string.ends-with.js","webpack://company-webapp/./node_modules/core-js/modules/es.string.split.js","webpack://company-webapp/./node_modules/core-js/modules/es.string.starts-with.js","webpack://company-webapp/./node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack://company-webapp/./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack://company-webapp/./node_modules/canvg/lib/index.es.js"],"sourcesContent":["// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\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 new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov \n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\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 darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\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 lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\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: 'd87093',\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: 'ff0000',\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 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 violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;et.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;vc.maxX&&(c.maxX=t),tc.maxY&&(c.maxY=t),tw&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);fw&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return iR&&wR&&wu)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i>> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >>> shgSum;\n pixels[yi + 1] = gSum * mulSum >>> shgSum;\n pixels[yi + 2] = bSum * mulSum >>> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >>> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >>> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >>> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = {};\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = {};\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle \n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n"],"names":["getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","now","module","exports","process","hr","uptime","Date","getTime","call","this","root","window","g","vendors","suffix","raf","caf","i","length","last","id","queue","frameDuration","callback","_now","next","Math","max","setTimeout","cp","slice","cancelled","e","round","push","handle","fn","cancel","apply","arguments","polyfill","object","requestAnimationFrame","cancelAnimationFrame","color_string","ok","alpha","charAt","substr","replace","toLowerCase","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","re","example","bits","parseInt","parseFloat","processor","exec","channels","r","b","isNaN","toRGB","toRGBA","toHex","toString","getHelpXML","examples","Array","j","sc","xml","document","createElement","setAttribute","list_item","list_color","RGBColor","example_div","style","cssText","appendChild","createTextNode","list_item_value","userAgent","test","Pebble","a","console","error","notify","toggle","node","promise","then","globalThis","safeGetBuiltIn","bind","macrotask","Queue","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","Promise","microtask","flush","parent","domain","exit","get","head","enter","resolve","undefined","constructor","nextTick","observe","characterData","data","add","value","NativePromiseConstructor","isCallable","isForced","inspectSource","wellKnownSymbol","ENVIRONMENT","IS_PURE","V8_VERSION","NativePromisePrototype","prototype","SPECIES","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","String","FakePromise","CONSTRUCTOR","REJECTION_EVENT","checkCorrectnessOfIteration","iterable","all","tail","item","entry","$location","defer","channel","port","hasOwn","fails","html","arraySlice","validateArgumentsLength","set","setImmediate","clear","clearImmediate","Dispatch","Function","MessageChannel","counter","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","port2","port1","onmessage","addEventListener","importScripts","removeChild","$","uncurryThis","$indexOf","arrayMethodIsStrict","nativeIndexOf","indexOf","NEGATIVE_ZERO","FORCED","target","proto","forced","searchElement","fromIndex","isArray","nativeReverse","reverse","aCallable","newPromiseCapabilityModule","perform","iterate","PROMISE_STATICS_INCORRECT_ITERATION","stat","C","capability","f","reject","result","$promiseResolve","values","remaining","index","alreadyCalled","getBuiltIn","defineBuiltIn","real","onRejected","method","unsafe","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setPrototypeOf","setToStringTag","setSpecies","isObject","anInstance","speciesConstructor","task","hostReportErrors","InternalStateModule","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","getterFor","setInternalState","PromiseConstructor","PromisePrototype","TypeError","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","isThenable","it","callReaction","reaction","state","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","name","reason","initEvent","facade","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","done","internalResolve","wrapper","executor","type","onFulfilled","Object","that","global","wrap","race","capabilityReject","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","x","getOwnPropertyDescriptor","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","min","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","writable","endsWith","searchString","endPosition","len","end","search","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","advanceStringIndex","getMethod","regExpExec","stickyHelpers","UNSUPPORTED_Y","MAX_UINT32","stringSlice","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","split","BUGGY","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","O","splitter","string","rx","S","res","RegExp","unicodeMatching","unicode","flags","ignoreCase","multiline","source","lim","p","q","A","lastIndex","z","startsWith","t","__proto__","hasOwnProperty","create","_","CLOSE_PATH","HORIZ_LINE_TO","relative","VERT_LINE_TO","y","MOVE_TO","LINE_TO","CURVE_TO","x1","y1","x2","y2","SMOOTH_CURVE_TO","QUAD_TO","SMOOTH_QUAD_TO","ARC","Error","rX","rY","xRot","lArcFlag","sweepFlag","cos","sin","n","PI","o","s","u","abs","h","c","pow","sqrt","m","l","T","v","cX","cY","phi1","atan2","phi2","NaN","N","d","E","M","R","I","L","ROUND","TO_ABS","TO_REL","NORMALIZE_HVZ","NORMALIZE_ST","QT_TO_C","INFO","SANITIZE","LINE_COMMANDS","MATRIX","ROTATE","TRANSLATE","SCALE","SKEW_X","atan","SKEW_Y","X_AXIS_SYMMETRY","Y_AXIS_SYMMETRY","A_TO_C","ceil","H","ANNOTATE_ARCS","CLONE","CALCULATE_BOUNDS","maxX","minX","maxY","minY","DRAWING_COMMANDS","w","map","U","transform","toAbs","toRel","normalizeHVZ","normalizeST","qtToC","aToC","sanitize","translate","scale","rotate","matrix","skewX","skewY","xSymmetry","ySymmetry","annotateArcs","charCodeAt","curNumber","curCommandType","curCommandRelative","canParseCommandOrComma","curNumberHasExp","curNumberHasExpDigits","curNumberHasDecimal","curArgs","finish","parse","SyntaxError","Number","getPrototypeOf","commands","encode","getBounds","_typeof","obj","Symbol","iterator","_classCallCheck","instance","Constructor","mulTable","shgTable","getImageDataFromCanvas","canvas","topX","topY","width","height","getElementById","context","getContext","getImageData","processCanvasRGBA","radius","imageData","processImageDataRGBA","putImageData","stackEnd","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","offscreen","DOMParser","DOMParserFallback","preset","ignoreAnimation","ignoreMouse","createCanvas","OffscreenCanvas","createImage","url","response","fetch","blob","img","createImageBitmap","Reflect","deleteProperty","_ref","loadImage","freeze","compressSpaces","str","trimLeft","trimRight","toNumbers","matches","match","allUppercase","normalizeAttributeName","parseExternalUrl","urlMatch","normalizeColor","color","rgbParts","normalizedColor","num","isFloat","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","getSelectorSpecificity","specificity","currentSelector","delta","join","PSEUDO_ZERO","vectorMagnitude","vectorsRatio","vectorsAngle","acos","CB1","CB2","CB3","CB4","QB1","QB2","QB3","Property","isNormalizedColor","empty","getString","trim","hasValue","zeroIsValue","isString","regexp","isUrlDefinition","isPixels","asString","setValue","getValue","def","getNumber","getColor","getDpi","getRem","rootEmSize","getEm","emSize","getUnits","getPixels","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","computeSize","getMilliseconds","getRadians","getDefinition","definitions","getFillStyleDefinition","element","opacity","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","getTextBaseline","textBaselineMapping","addOpacity","commas","ViewPort","viewPorts","setCurrent","removeCurrent","pop","getCurrent","Point","point","defaultValue","parseScale","parsePath","path","points","pathPoints","angleTo","applyTransform","xp","Mouse","working","events","eventElements","onClick","onMouseMove","isWorking","start","onclick","onmousemove","stop","hasEvents","runEvents","cursor","forEach","checkPath","_ref2","isPointInPath","checkBoundingBox","boundingBox","_ref3","isPointInBox","mapXY","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","clientX","clientY","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","isReadyLock","isFirstRender","intervalId","wait","checker","ready","readyPromise","isReady","every","resolveReady","setDefaults","strokeStyle","lineCap","lineJoin","miterLimit","setViewBox","aspectRatio","desiredWidth","desiredHeight","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","render","tick","shouldUpdate","reduce","animation","update","widthStyle","getStyle","heightStyle","concat","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","parser","checkDocument","err","parserError","getElementsByTagName","textContent","_this2","text","Translate","unapply","applyToPoint","Rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","rad","Scale","scaleSize","Matrix","det","Skew","skew","super","SkewX","SkewY","parseTransforms","parseTransform","Transform","transforms","TransformType","transformTypes","fromElement","transformOriginXProperty","transformOriginYProperty","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","from","attribute","nodeName","addStylesFromStyleDefinition","childNodes","childNode","addChild","textNode","getText","createIfNotExists","attr","_attr","key","skipAncestors","parentStyle","_style","save","mask","applyEffects","filter","setContext","renderChildren","clearContext","restore","clipPathStyleProp","child","ignoreChildTypes","includes","matchesSelector","_node$getAttribute","styleClasses","some","styleClass","existingSpecificity","removeStyles","ignoreStyles","toRestore","styleProp","restoreStyles","isFirstChild","_this$parent","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontFamily","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","font","parts","part","variants","weights","BoundingBox","addPoint","addX","addY","addBoundingBox","sumCubic","p0","p1","p2","p3","bezierCurveAdd","forX","b2ac","t1","t2","addBezierCurve","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","addQuadraticCurve","cp1x","cp1y","cp2x","cp2y","PathParser","control","current","command","previousCommand","angles","reset","isEnd","getPoint","xProp","yProp","makeAbsolute","getAsControlPoint","getAsCurrentPoint","getReflectedControlPoint","ox","oy","addMarker","priorTo","addMarkerAngle","getMarkerPoints","getMarkerAngles","RenderedElement","modifiedEmSizeStack","calculateOpacity","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","fillStyle","_fillStyle","_fillStyle2","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","globalAlpha","popEmSize","PathElement","pathParser","pathM","pathL","pathH","pathV","pathC","pathS","pathQ","pathT","pathA","pathZ","getBoundingBox","getMarkers","markers","fillRuleStyleProp","fill","setTransform","stroke","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","controlPoint","currentPoint","bezierCurveTo","quadraticCurveTo","xAxisRotation","currp","cpp","centp","a1","ad","dir","ah","halfWay","sx","sy","arc","Boolean","GlyphElement","horizAdvX","arabicForm","TextElement","measureCache","textBaseline","initializeCoordinates","leafTexts","textChunkStart","POSITIVE_INFINITY","NEGATIVE_INFINITY","getTElementBoundingBox","adjustChildCoordinatesRecursive","childBoundingBox","getChildBoundingBox","getFontSize","inheritFontSize","measureText","getGlyph","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","getTextFromNode","parentNode","renderChild","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","dx","lw","fillText","strokeText","applyAnchoring","firstElement","textAnchor","shift","adjustChildCoordinatesRecursiveCore","textParent","adjustChildCoordinates","xAttr","yAttr","dxAttr","dyAttr","getInheritedAttribute","measure","measureTargetText","targetText","_measure","parentAttr","TSpanElement","TextNode","SVGElement","_this$node$parentNode","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","resize","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","ry","KAPPA","CircleElement","EllipseElement","LineElement","getPoints","x0","y0","PolylineElement","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","pattern","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","getGradientUnits","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","group","attributeToInherit","colorProp","LinearGradientElement","isBoundingBoxUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","maxDuration","to","valuesAttr","getProperty","attributeType","attributeName","calcValue","progress","getProgress","newValue","prop","updated","typeAttr","lb","floor","ub","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","open","ownKeys$2","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","enumerable","_objectSpread$2","getOwnPropertyDescriptors","defineProperties","defineProperty","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","getLetterSpacingAt","idx","findSegmentToFitChar","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","has","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","inc","getPointOnEllipticalArc","getPointOnLine","dist","fromX","fromY","rise","pt","ix","iy","pRise","pRun","getPointOnPath","distance","fullLen","cumulativePathLength","currentT","pct","p4x","p4y","cosPsi","sinPsi","buildEquidistantCache","inputStep","inputPrecision","precision","step","equidistantCache","targetDistance","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","svgDocument","fontNode","StyleElement","css","cssDefs","cssParts","cssClasses","cssProps","cssClass","props","cssProp","srcs","src","UseElement","tempSvg","oldParent","elementTransform","cachedElement","imGet","_height","rgba","imSet","val","mi","m1","m2","m3","FeColorMatrixElement","includeOpacity","srcData","nr","ng","nb","na","MaskElement","ignoredStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","noop","ClipPathElement","contextProto","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","display","TitleElement","DescElement","ownKeys$1","_objectSpread$1","_createImage","anonymousCrossOrigin","crossOrigin","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","createDocumentElement","elementType","ElementType","elementTypes","config","ownKeys","_objectSpread","Canvg","options","_arguments","fromString","fork","_arguments2","baseOptions"],"sourceRoot":""}