{"version":3,"file":"6590.3e1597b7.js","mappings":"8sCASO,IAAKA,EAAc,SAAdA,GAAc,OAAdA,EAAAA,EAAc,iBAAdA,EAAAA,EAAc,eAAdA,CAAc,MAW1B,MAAMC,EAAcC,eAAeC,mBAiD5B,SAASC,EAASC,GAOqB,IAAAC,EAAAC,EAAAC,EAAA,IAPO,MACnDC,EACA,aAAcC,EAAS,MACvBC,EAAQ,OAAM,MACdC,EAAK,SACLC,KACGC,GACuCT,EAC1C,MAAMU,EAAcC,EAAAA,SAAc,IAvDpC,SAA2BL,GACzB,OAAQA,GACN,KAAKX,EAAeiB,KAClB,MAAO,CACLR,MAAO,CACLS,UAAW,iBAEbC,OAAQ,CACNR,MAAO,cACPS,SAAU,OACVF,UAAW,wFACXG,cAAcC,EAAAA,EAAAA,KAACC,EAAAA,GAAI,CAACC,KAAK,eAE3BC,QAAS,CACPL,SAAU,OACVT,MAAO,OACPO,UACE,mPAIR,KAAKlB,EAAe0B,MAClB,MAAO,CACLjB,MAAO,CAAES,UAAW,iBACpBC,OAAQ,CACNC,SAAU,OACVF,UAAW,qBAEbO,QAAS,CACPL,SAAU,OACVF,UAAWS,IAAW,2BAA4B,CAChD,0BAA2B1B,MAKvC,CAmB0C2B,CAAkB5B,EAAeW,KAAS,CAACA,IAC7EkB,EAAcb,EAAAA,SAClB,IACEJ,aAAK,EAALA,EAAOkB,KAAKC,IACNC,EAAAA,EAAAA,IAAkBD,GACb,IACFA,EACHE,WAAW,EACXf,UAAW,iDAIRa,KAEX,CAACnB,IAGH,OACEsB,EAAAA,EAAAA,MAAA,OAAAC,SAAA,CACG1B,IACCa,EAAAA,EAAAA,KAAA,MAAIJ,UAAWS,IAAWZ,aAAW,EAAXA,EAAaN,MAAMS,UAAW,yCAAyCiB,SAAE1B,KAErGa,EAAAA,EAAAA,KAACc,EAAAA,GAAM,IACDtB,KACAC,aAAW,EAAXA,EAAaI,OACjBkB,MAAOvB,EAAMuB,MACbjB,SAAwB,QAAhBd,EAAEQ,EAAMM,gBAAQ,IAAAd,EAAAA,EAAIS,aAAW,EAAXA,EAAaI,OAAOC,SAChDkB,KAAgB,QAAZ/B,EAAEO,EAAMwB,YAAI,IAAA/B,EAAAA,EAAI,SACpB,aAAYG,QAAAA,EAA+B,iBAAVD,EAAqBA,OAAQ8B,EAC9DC,YAAY,MACZhB,KAAMV,EAAMU,KACZX,SAAUA,EACV4B,kBAAcF,EACd3B,MAAOiB,EACPa,UAAW,IACN3B,aAAW,EAAXA,EAAaU,WACbX,EAAM4B,UACTxB,UAAWyB,IAAW5B,aAAW,EAAXA,EAAaU,QAAQP,UAA0B,QAAjBV,EAAEM,EAAM4B,iBAAS,IAAAlC,OAAA,EAAfA,EAAiBU,gBAKjF,C,6FC7GO,SAAS0B,EAAO9B,GACrB,OACEoB,EAAAA,EAAAA,MAAA,OAAKhB,UAAWS,IAAWb,EAAMI,UAAW,iCAAiCiB,SAAA,CAC1ErB,EAAM+B,aACLvB,EAAAA,EAAAA,KAAA,OACEJ,UAAWS,IACTb,EAAMgC,aACN,qEACAX,SAEDrB,EAAM+B,cAGXvB,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,iEAAgEiB,SAAErB,EAAMqB,WACtFrB,EAAMiC,cAGb,C,mFCzBO,MAAMC,EAAoB,WAG/B,MAAMC,GAFAC,UAAAC,OAAA,QAAAZ,IAAAW,UAAA,GAAAA,UAAA,GAAGE,OAAOC,SAASC,QAELC,UAAU,GAAGC,MAAM,KACjCC,EAAkB,CAAC,EAOzB,OANAR,EAAKS,SAASC,IACZ,MAAMC,EAAeD,EAAKE,QAAQ,KAChCC,EAAMC,mBAAmBJ,EAAKJ,UAAU,EAAGK,IAC3CvB,EAAQ0B,mBAAmBJ,EAAKJ,UAAUK,EAAe,IAC3DH,EAAIK,GAAOzB,CAAK,IAEXoB,CACT,EAEaO,EAAoB,SAAUC,GAAsD,IAAlCC,EAA2BhB,UAAAC,OAAA,QAAAZ,IAAAW,UAAA,GAAAA,UAAA,GAAG,GAC3F,OAAOiB,OAAOC,KAAKH,GAAQI,QAAO,CAACC,EAAMR,KACvC,MAAMzB,EAAQ4B,EAAOH,GACrB,OAAK,CAAC,GAAI,UAAMvB,GAAWgC,SAASlC,IAAU6B,EAAkBK,SAASlC,GAChEiC,GAAQA,EAAKnB,OAAS,EAAI,IAAM,IAAMqB,mBAAmBV,GAAO,IAAMU,mBAAmBnC,GAE3FiC,CAAI,GACV,GACL,C,qJCMO,SAASG,EAA0C3D,GACxD,MAAM4D,GAAcC,EAAAA,EAAAA,MAEpB,OACEzC,EAAAA,EAAAA,MAAA0C,EAAAA,SAAA,CAAAzC,SAAA,EACEb,EAAAA,EAAAA,KAACuD,EAAAA,GAAM,CACLC,YAAY,QACZnE,MAAM,cACNO,UAAWJ,EAAMI,UACjB6D,QAASA,KACPjE,EAAMkE,eACNN,EAAYO,MAAM,EAClB9C,SACH,eAIDD,EAAAA,EAAAA,MAACgD,EAAAA,GAAM,CAACC,MAAOT,EAAa,aAAW,YAAWvC,SAAA,EAChDb,EAAAA,EAAAA,KAAC8D,EAAAA,GAAY,CAAClE,UAAU,UAASiB,SAAC,eAClCb,EAAAA,EAAAA,KAAC+D,EAAAA,GAAU,CAACnE,UAAU,iCAAgCiB,UACpDb,EAAAA,EAAAA,KAACgE,EAAe,CAACC,QAASzE,EAAMqE,MAAMI,QAASC,UAAW1E,EAAMqE,MAAMK,UAAWC,KAAM3E,EAAMqE,MAAMM,UAErGnE,EAAAA,EAAAA,KAACoE,EAAAA,GAAY,CAAAvD,UACXb,EAAAA,EAAAA,KAACuD,EAAAA,GAAM,CAACc,GAAIC,EAAAA,GAAczD,SAAC,iBAKrC,CAQA,SAASmD,EAAoDxE,GAC3D,OAAIA,EAAM0E,WAENlE,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,yCAAwCiB,UACrDb,EAAAA,EAAAA,KAACuE,EAAAA,EAAO,MAKV/E,EAAMyE,UAAYzE,EAAM2E,MAExBnE,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,QAAOiB,UACpBb,EAAAA,EAAAA,KAACwE,EAAAA,GAAS,CACRC,aAAa,EACbC,MAAM,mBACNC,SACE/D,EAAAA,EAAAA,MAAA0C,EAAAA,SAAA,CAAAzC,SAAA,CAAE,0CAEAb,EAAAA,EAAAA,KAAA,SAAM,gGAUhBY,EAAAA,EAAAA,MAAA0C,EAAAA,SAAA,CAAAzC,SAAA,EACEb,EAAAA,EAAAA,KAAA,OAAK4E,IAAKC,SAASH,MAAOI,IAAKtF,EAAM2E,KAAKY,OAAQnF,UAAU,YAC5DI,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,OAAMiB,UACnBb,EAAAA,EAAAA,KAACgF,EAAAA,EAAe,CACd7F,OACEa,EAAAA,EAAAA,KAACiF,EAAAA,GAAO,CAACC,MAAO,EAAGtF,UAAU,MAAKiB,SAAC,oDAIrCsE,KAAM3F,EAAM2E,KAAKiB,SACjBC,mBACEzE,EAAAA,EAAAA,MAAA0C,EAAAA,SAAA,CAAAzC,SAAA,EACEb,EAAAA,EAAAA,KAACsF,EAAAA,GAAmB,CAACC,IAAK/F,EAAM2E,KAAKiB,SAASvE,UAC5CD,EAAAA,EAAAA,MAAC2C,EAAAA,GAAM,CAACc,GAAG,OAAOrD,KAAK,QAAQQ,aAAa,oBAAmBX,SAAA,EAC7Db,EAAAA,EAAAA,KAACwF,EAAAA,GAAY,CAACxE,KAAM,GAAIyE,OAAO,EAAM7F,UAAU,UAC/CI,EAAAA,EAAAA,KAAA,QAAAa,SAAM,gBAGVb,EAAAA,EAAAA,KAAC0F,EAAAA,GAAkB,CAACH,IAAK/F,EAAM2E,KAAKiB,SAAUO,IAAI,aAAajB,MAAOG,SAASH,MAAO9E,UAAU,OAAMiB,UACpGD,EAAAA,EAAAA,MAAC2C,EAAAA,GAAM,CAACc,GAAG,OAAOrD,KAAK,QAAQQ,aAAa,oBAAmBX,SAAA,EAC7Db,EAAAA,EAAAA,KAAC4F,EAAAA,GAAW,CAAC5E,KAAM,GAAIyE,OAAO,EAAM7F,UAAU,UAC9CI,EAAAA,EAAAA,KAAA,QAAAa,SAAM,0BASxB,C,2GCtHOgF,eAAeC,EAAaC,EAA6BZ,GAC9D,MAAMa,GAAaC,EAAAA,EAAAA,KAEbC,GAAQC,EAAAA,EAAAA,KACRC,EAAQL,EAASK,MAAQF,EACzBG,EAASN,EAASM,OAASH,EAE3BI,EAASzB,SAAS0B,cAAc,UAChCC,EAAUF,EAAOG,WAAW,MAAMC,EAAAA,EAAAA,MAAqB,CAAEC,oBAAoB,QAAS1F,GAC5FqF,EAAOF,MAAQA,EACfE,EAAOD,OAASA,EAAS,GAGzBG,EAAQI,UAAY,OACpBJ,EAAQK,SAAS,EAAG,EAAGT,EAAOC,GAG9B,MAAMS,QAAaC,EAAAA,EAAAA,GAAUC,GAC7BR,EAAQS,UAAUH,EAAM,EAAG,GAG3B,MAAM3H,EAAQgG,EAAK3E,KAAK0G,GAAMA,EAAEC,gBAChC,IAAIC,EAAIhB,EAGRI,EAAQa,aAAe,SACvBb,EAAQc,UAAY,QACpBd,EAAQe,KAAO,OAASvB,EACxB,IAAK,IAAIwB,EAAIrI,EAAM0C,OAAS,EAAG2F,GAAK,EAAGA,IAAK,CAC1C,MAAMrC,EAAOhG,EAAMqI,GACnB,IAAIC,EAAYjB,EAAQkB,YAAYvC,GAAMiB,MAK1C,GAHAI,EAAQI,UAAY,UACpBJ,EAAQmB,SAASxC,EAAMiC,EAVf,IAYJI,EAAI,EAAG,CACT,MAAMI,EAAU,QAChBpB,EAAQI,UAAY,UACpBJ,EAAQmB,SAASC,EAASR,EAAIK,EAfxB,IAgBNA,GAAwBjB,EAAQkB,YAAYE,GAASxB,KACvD,CAEAgB,GAAQK,CACV,CAIA,OAFAjB,EAAQS,UAAUlB,EAAU,EAAG,EAAGK,EAAQF,EAAOG,EAASH,EAAO,EAAG,GAAIE,EAAOC,GAExEC,EAAOuB,WAChB,C,+BCtDO,SAAS5B,IACd,MAAO,MACT,C,2GCKA,MAoBa6B,EAAmB,CAC9BC,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,UAAW,WAEPC,EAAmB,CAAEF,OAAQD,EAAiBC,OAAOG,QAAQC,UAAWH,UAAWF,EAAiBE,WACpGI,EAAc,CAAEL,OAAQD,EAAiBC,OAAOG,MAAM,EAAG,IAAIC,UAAWH,UAAWF,EAAiBE,WACpGK,EAAgB,CAAEN,OAAQD,EAAiBC,OAAOG,MAAM,IAAKF,UAAWF,EAAiBE,WA49DzFM,EAA0B,CAC9BP,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,UAAW,QAg/BAO,EAAiD,CAC5D,CAACC,EAAAA,GAAQC,iBAAkBX,EAC3B,CAACU,EAAAA,GAAQE,SAAUZ,EACnBa,GAAIb,EACJc,IAAKd,EACLe,IAAKf,EACLgB,IAAKhB,EACLiB,IAAKjB,EACLkB,QA97HmB,CACnBjB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,UAAW,WAo9FXiB,IAAKhB,EACLiB,KAAMjB,EACNkB,KAAMlB,EACNmB,IAAKnB,EACLoB,IAAKpB,EACLqB,KAAMjB,EACNkB,OAAQzB,EACR0B,OAAQpB,EACRqB,KAAM3B,EACN4B,UA39FuB,CACvB3B,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,UAAW,WAi/DX2B,cAAe7B,EACf8B,cAAe9B,GAGJ+B,EAAuD,CAClE,CAACrB,EAAAA,GAAQC,iBAAkBH,EAC3B,CAACE,EAAAA,GAAQE,SAAUJ,EACnBK,GAAIL,EACJM,IAAKN,EACLO,IAAKP,EACLQ,IAAKR,EACLS,IAAKT,EACLU,QA7gC0B,CAC1BjB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,UAAW,QAmCXiB,IAAKX,EACLY,KAAMZ,EACNa,KAAMb,EACNc,IAAKd,EACLe,IAAKf,EACLgB,KAAMhB,EACNiB,OAAQjB,EACRkB,OAAQlB,EACRmB,KAAMnB,EACNoB,UAAWpB,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","sources":["webpack://@finviz/website/./js/app/maps/components/MapSelect.tsx","webpack://@finviz/website/./js/app/maps/components/Topbar/Topbar.tsx","webpack://@finviz/website/./js/app/queryString.ts","webpack://@finviz/website/./js/app/shared/components/Share.tsx","webpack://@finviz/website/./js/app/shared/drawShareMap.ts","webpack://@finviz/website/./js/app/shared/getTextFontFamily.ts","webpack://@finviz/website/./js/app/shared/gradients.ts","webpack://@finviz/website/./js/app/shared/loadImage.ts","webpack://@finviz/website/./js/app/shared/retinafy.ts","webpack://@finviz/website/./js/app/shared/utils.ts","webpack://@finviz/website/./js/main/components/checkbox.tsx","webpack://@finviz/website/./js/main/components/color-picker/draggable.tsx","webpack://@finviz/website/./js/main/components/color-picker/pointer.tsx","webpack://@finviz/website/./js/main/components/color-picker/util.ts","webpack://@finviz/website/./js/main/components/color-picker/alpha.tsx","webpack://@finviz/website/./js/main/components/color-picker/color-palette.tsx","webpack://@finviz/website/./js/main/components/color-picker/hue-saturation.tsx","webpack://@finviz/website/./js/main/components/color-picker/lightness.tsx","webpack://@finviz/website/./js/main/components/color-picker/color-preview.tsx","webpack://@finviz/website/./js/main/components/color-picker/picker-input.tsx","webpack://@finviz/website/./js/main/components/color-picker/picker.tsx","webpack://@finviz/website/./js/main/components/color-picker/picker-button.tsx","webpack://@finviz/website/./js/main/components/copy-to-clipboard/copy-to-clipboard.tsx","webpack://@finviz/website/./js/main/components/delayed.tsx","webpack://@finviz/website/./js/main/components/dropdown/dropdown.tsx","webpack://@finviz/website/./js/main/components/dropdown/dropdown-item.tsx","webpack://@finviz/website/./js/main/components/dropdown/hooks.ts","webpack://@finviz/website/./js/main/components/context-menu/context-menu.tsx","webpack://@finviz/website/./js/main/components/grid/grid.tsx","webpack://@finviz/website/./js/main/components/inner-state/inner-state.tsx","webpack://@finviz/website/./js/main/components/range.tsx","webpack://@finviz/website/./js/main/components/toolbar/interfaces.ts","webpack://@finviz/website/./js/main/components/toolbar/hooks.ts","webpack://@finviz/website/./js/main/components/toolbar/toolbar.tsx","webpack://@finviz/website/./js/main/components/toolbar/toolbar-button.tsx","webpack://@finviz/website/./js/main/components/toolbar/toolbar-group.tsx","webpack://@finviz/website/./js/main/components/toolbar/toolbar-item.tsx","webpack://@finviz/website/./js/main/components/toolbar/toolbar-divider.tsx","webpack://@finviz/website/./js/main/components/tour/step-content.tsx","webpack://@finviz/website/./js/main/components/tour/utils.ts","webpack://@finviz/website/./js/main/components/tour/hooks.tsx","webpack://@finviz/website/./js/main/components/tabs/tab.tsx","webpack://@finviz/website/./js/main/components/tabs/tab-list.tsx","webpack://@finviz/website/./js/main/components/tabs/tab-panel.tsx","webpack://@finviz/website/./js/main/components/tabs/tabs.tsx","webpack://@finviz/website/./js/main/components/badge.tsx","webpack://@finviz/website/./js/main/components/tag.tsx","webpack://@finviz/website/./js/main/components/loading.tsx","webpack://@finviz/website/./js/main/components/notification/hooks.ts","webpack://@finviz/website/./js/main/components/notification/notification-wrapper.tsx","webpack://@finviz/website/./js/main/components/notification/with-notification-context.tsx","webpack://@finviz/website/./js/main/components/notification/notification.tsx","webpack://@finviz/website/./js/main/components/tooltip-input.tsx","webpack://@finviz/website/./js/main/hooks/useVisualViewport.ts","webpack://@finviz/website/../node_modules/jsonp/index.js","webpack://@finviz/website/../node_modules/jsonp/node_modules/debug/src/browser.js","webpack://@finviz/website/../node_modules/jsonp/node_modules/debug/src/debug.js","webpack://@finviz/website/../node_modules/jsonp/node_modules/ms/index.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/5KB2YIDT.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/JJ3MV4KB.js","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/mutationObserver.mjs","webpack://@finviz/website/../node_modules/@tanstack/react-query/build/lib/useMutation.mjs","webpack://@finviz/website/../node_modules/react-share/dist/index.js"],"sourcesContent":["import classnames from 'classnames'\r\nimport classNames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Select, SelectListProps, SelectProps } from '../../../main/components'\r\nimport { ButtonHTMLProps, ButtonProps } from '../../../main/components/button'\r\nimport { Icon } from '../../../main/components/icon'\r\nimport { isSelectItemGroup } from '../../../main/components/select/utils'\r\n\r\nexport enum MapSelectTheme {\r\n light,\r\n dark,\r\n}\r\n\r\ninterface MapSelectThemeReturn {\r\n label: React.HTMLProps\r\n button: ButtonProps & ButtonHTMLProps\r\n popover: SelectListProps\r\n}\r\n\r\nconst hasRedesign = FinvizSettings.hasRedesignEnabled\r\n\r\nfunction getMapSelectTheme(theme: MapSelectTheme): MapSelectThemeReturn | undefined {\r\n switch (theme) {\r\n case MapSelectTheme.dark:\r\n return {\r\n label: {\r\n className: 'text-gray-400',\r\n },\r\n button: {\r\n theme: 'transparent',\r\n rounding: 'none',\r\n className: 'w-full border border-[#585f72] bg-[#4a505f] hover:border-[#707990] hover:bg-[#535a6b]',\r\n rightContent: ,\r\n },\r\n popover: {\r\n rounding: 'none',\r\n theme: 'none',\r\n className:\r\n 'border border-[#585f72] bg-[#4a505f] [--bg-primary:74_80_95] [--border-primary:103,111,133] [--scrollbar-radius:0] dark:[--thumb-bg-hover:#262931] dark:[--thumb-bg:#363a46] dark:[--track-bg-hover:transparent] dark:[--track-bg:transparent]',\r\n },\r\n }\r\n\r\n case MapSelectTheme.light:\r\n return {\r\n label: { className: 'text-gray-500' },\r\n button: {\r\n rounding: 'none',\r\n className: 'w-full bg-primary',\r\n },\r\n popover: {\r\n rounding: 'none',\r\n className: classnames('overflow-y-auto max-h-80', {\r\n '[--scrollbar-radius:0]': !hasRedesign,\r\n }),\r\n },\r\n }\r\n }\r\n}\r\n\r\ninterface MapSelectProps extends Omit, 'theme'> {\r\n /**\r\n * Theme for the map select\r\n *\r\n * @default dark\r\n */\r\n theme?: keyof typeof MapSelectTheme\r\n}\r\n\r\nexport function MapSelect({\r\n label,\r\n 'aria-label': ariaLabel,\r\n theme = 'dark',\r\n items,\r\n onChange,\r\n ...props\r\n}: MapSelectProps) {\r\n const selectTheme = React.useMemo(() => getMapSelectTheme(MapSelectTheme[theme]), [theme])\r\n const itemOptions = React.useMemo(\r\n () =>\r\n items?.map((item) => {\r\n if (isSelectItemGroup(item)) {\r\n return {\r\n ...item,\r\n hasBorder: false,\r\n className: 'border-t border-gray-100 dark:border-gray-700',\r\n }\r\n }\r\n\r\n return item\r\n }),\r\n [items]\r\n )\r\n\r\n return (\r\n
\r\n {label && (\r\n

{label}

\r\n )}\r\n \r\n
\r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\ninterface TopbarProps {\r\n className?: string\r\n navContent?: React.ReactNode\r\n contentClass?: string\r\n mapControls?: React.ReactNode\r\n}\r\n\r\nexport function Topbar(props: React.PropsWithChildren) {\r\n return (\r\n
\r\n {props.navContent && (\r\n \r\n {props.navContent}\r\n
\r\n )}\r\n
{props.children}
\r\n {props.mapControls}\r\n \r\n )\r\n}\r\n","export type ObjectHash = Record\r\n\r\nexport const decodeQueryString = function = ObjectHash>(\r\n search = window.location.search\r\n): T {\r\n const vars = search.substring(1).split('&')\r\n const obj: ObjectHash = {}\r\n vars.forEach((pair) => {\r\n const delimiterPos = pair.indexOf('='),\r\n key = decodeURIComponent(pair.substring(0, delimiterPos)),\r\n value = decodeURIComponent(pair.substring(delimiterPos + 1))\r\n obj[key] = value\r\n })\r\n return obj as T\r\n}\r\n\r\nexport const encodeQueryString = function (values: ObjectHash, whitelistedValues: string[] = []) {\r\n return Object.keys(values).reduce((prev, key) => {\r\n const value = values[key]\r\n if (!['', null, undefined].includes(value) || whitelistedValues.includes(value)) {\r\n return prev + (prev.length > 0 ? '&' : '') + encodeURIComponent(key) + '=' + encodeURIComponent(value)\r\n }\r\n return prev\r\n }, '')\r\n}\r\n","import { UseMutationResult } from '@tanstack/react-query'\r\nimport * as React from 'react'\r\nimport { FacebookIcon, FacebookShareButton, TwitterIcon, TwitterShareButton } from 'react-share'\r\n\r\nimport { Button } from '../../../main/components/button'\r\nimport { CopyToClipboard } from '../../../main/components/copy-to-clipboard'\r\nimport {\r\n Dialog,\r\n DialogBody,\r\n DialogDismiss,\r\n DialogFooter,\r\n DialogHeader,\r\n useDialogState,\r\n} from '../../../main/components/dialog'\r\nimport { ErrorView } from '../../../main/components/error-view'\r\nimport { Loading } from '../../../main/components/loading'\r\nimport { Heading } from '../../../main/components/typography'\r\n\r\ninterface ShareResponse {\r\n imgUrl: string\r\n shareUrl: string\r\n}\r\n\r\ninterface ShareProps {\r\n state: UseMutationResult\r\n onShareClick: () => void\r\n className?: string\r\n disabled?: boolean\r\n}\r\n\r\nexport function Share(props: ShareProps) {\r\n const dialogState = useDialogState()\r\n\r\n return (\r\n <>\r\n {\r\n props.onShareClick()\r\n dialogState.show()\r\n }}\r\n >\r\n Share map\r\n \r\n\r\n \r\n Share map\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\ninterface ShareDialogBodyProps {\r\n isError: boolean\r\n isLoading: boolean\r\n data?: ResponseType\r\n}\r\n\r\nfunction ShareDialogBody(props: ShareDialogBodyProps) {\r\n if (props.isLoading) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n if (props.isError || !props.data) {\r\n return (\r\n
\r\n \r\n There’s been an error sharing the map.\r\n
\r\n Please try sharing the map again and if the problem persists, please contact support.\r\n \r\n }\r\n />\r\n
\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {document.title}\r\n
\r\n \r\n Copy and paste link in email, website, or forum\r\n \r\n }\r\n text={props.data.shareUrl}\r\n bottomLeftContent={\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n
\r\n \r\n )\r\n}\r\n","import logoBase64 from './assets/logo.png'\r\nimport { getTextFontFamily } from './getTextFontFamily'\r\nimport { isFirefoxDesktop } from './isMobile'\r\nimport { loadImage } from './loadImage'\r\nimport { getScaleRatio } from './retinafy'\r\n\r\nexport async function drawShareMap(canvasEl: HTMLCanvasElement, text: string[]) {\r\n const fontFamily = getTextFontFamily()\r\n\r\n const ratio = getScaleRatio()\r\n const width = canvasEl.width / ratio\r\n const height = canvasEl.height / ratio\r\n\r\n const canvas = document.createElement('canvas')\r\n const context = canvas.getContext('2d', isFirefoxDesktop() ? { willReadFrequently: true } : undefined)!\r\n canvas.width = width\r\n canvas.height = height + 22\r\n\r\n // Background\r\n context.fillStyle = '#fff'\r\n context.fillRect(0, 0, width, height)\r\n\r\n // Logo\r\n const logo = await loadImage(logoBase64)\r\n context.drawImage(logo, 2, 4)\r\n\r\n // Labels\r\n const label = text.map((t) => t.toUpperCase())\r\n let x = width\r\n const y = 11\r\n\r\n context.textBaseline = 'middle'\r\n context.textAlign = 'right'\r\n context.font = '9pt ' + fontFamily\r\n for (let i = label.length - 1; i >= 0; i--) {\r\n const text = label[i]\r\n let textWidth = context.measureText(text).width\r\n\r\n context.fillStyle = '#4c5261'\r\n context.fillText(text, x, y)\r\n\r\n if (i > 0) {\r\n const divider = ' • '\r\n context.fillStyle = '#5faaf4'\r\n context.fillText(divider, x - textWidth, y)\r\n textWidth = textWidth + context.measureText(divider).width\r\n }\r\n\r\n x = x - textWidth\r\n }\r\n\r\n context.drawImage(canvasEl, 0, 0, width * ratio, height * ratio, 0, 22, width, height)\r\n\r\n return canvas.toDataURL()\r\n}\r\n","export function getTextFontFamily() {\r\n return 'Lato'\r\n}\r\n","import { ScaleId } from '../maps/types'\r\n\r\nexport interface GradientDefinition {\r\n colors: string[]\r\n nullColor: string\r\n}\r\n\r\nconst redGreenGradientSmall = {\r\n colors: [\r\n '#e01427',\r\n '#ce252b',\r\n '#bb2f30',\r\n '#aa3534',\r\n '#993938',\r\n '#853c3c',\r\n '#743d3f',\r\n '#414554',\r\n '#3e5f50',\r\n '#3f704f',\r\n '#3f814d',\r\n '#3c924a',\r\n '#36a446',\r\n '#2bb642',\r\n '#12c93b',\r\n ],\r\n nullColor: '#2f323d',\r\n}\r\nexport const redGreenGradient = {\r\n colors: [\r\n '#f63538',\r\n '#ee373a',\r\n '#e6393b',\r\n '#df3a3d',\r\n '#d73c3f',\r\n '#ce3d41',\r\n '#c73e43',\r\n '#bf4045',\r\n '#b64146',\r\n '#ae4248',\r\n '#a5424a',\r\n '#9d434b',\r\n '#94444d',\r\n '#8b444e',\r\n '#824450',\r\n '#784551',\r\n '#6f4552',\r\n '#644553',\r\n '#5a4554',\r\n '#4f4554',\r\n '#414554',\r\n '#3f4c53',\r\n '#3d5451',\r\n '#3b5a50',\r\n '#3a614f',\r\n '#38694f',\r\n '#366f4e',\r\n '#35764e',\r\n '#347d4e',\r\n '#32844e',\r\n '#31894e',\r\n '#31904e',\r\n '#30974f',\r\n '#2f9e4f',\r\n '#2fa450',\r\n '#2faa51',\r\n '#2fb152',\r\n '#2fb854',\r\n '#30be56',\r\n '#30c558',\r\n '#30cc5a',\r\n ],\r\n nullColor: '#2f323d',\r\n}\r\nconst greenRedGradient = { colors: redGreenGradient.colors.slice().reverse(), nullColor: redGreenGradient.nullColor }\r\nconst redGradient = { colors: redGreenGradient.colors.slice(0, 22).reverse(), nullColor: redGreenGradient.nullColor }\r\nconst greenGradient = { colors: redGreenGradient.colors.slice(21), nullColor: redGreenGradient.nullColor }\r\nconst blueGradient = {\r\n colors: [\r\n '#3d4251',\r\n '#3d4250',\r\n '#3d4250',\r\n '#3e4251',\r\n '#3e4251',\r\n '#3d4350',\r\n '#3d4350',\r\n '#3d4350',\r\n '#3e4351',\r\n '#3e4350',\r\n '#3d4351',\r\n '#3d4352',\r\n '#3f4353',\r\n '#3f4353',\r\n '#3f4453',\r\n '#3f4554',\r\n '#3e4354',\r\n '#3e4354',\r\n '#3f4454',\r\n '#3f4454',\r\n '#3f4454',\r\n '#3f4454',\r\n '#3f4454',\r\n '#3f4555',\r\n '#3f4556',\r\n '#3f4457',\r\n '#3f4457',\r\n '#3f4457',\r\n '#3f4557',\r\n '#3f4657',\r\n '#3f4657',\r\n '#3f4657',\r\n '#3f4557',\r\n '#3e4557',\r\n '#3e4558',\r\n '#3f465a',\r\n '#3f4659',\r\n '#3f4759',\r\n '#3f4759',\r\n '#3f475a',\r\n '#3f4759',\r\n '#3f465a',\r\n '#3f465a',\r\n '#3f4759',\r\n '#3f475b',\r\n '#40475b',\r\n '#40475b',\r\n '#40465b',\r\n '#40465c',\r\n '#40465d',\r\n '#40485d',\r\n '#40485c',\r\n '#40475c',\r\n '#40465c',\r\n '#40465c',\r\n '#40465c',\r\n '#40485d',\r\n '#40485d',\r\n '#40485e',\r\n '#40485f',\r\n '#40495e',\r\n '#40495e',\r\n '#40485e',\r\n '#40485f',\r\n '#40495e',\r\n '#40485e',\r\n '#40485f',\r\n '#404960',\r\n '#404960',\r\n '#404860',\r\n '#404861',\r\n '#404a62',\r\n '#404962',\r\n '#404962',\r\n '#404a62',\r\n '#404a62',\r\n '#404861',\r\n '#404961',\r\n '#404a63',\r\n '#404a64',\r\n '#404a65',\r\n '#404b64',\r\n '#404b64',\r\n '#404a65',\r\n '#404a65',\r\n '#404a65',\r\n '#404a65',\r\n '#404b65',\r\n '#404b65',\r\n '#414c65',\r\n '#424c65',\r\n '#424b65',\r\n '#414b66',\r\n '#414b67',\r\n '#414b67',\r\n '#414c67',\r\n '#424b67',\r\n '#424c67',\r\n '#414c67',\r\n '#414b67',\r\n '#414c67',\r\n '#414c67',\r\n '#414c69',\r\n '#414c6a',\r\n '#414c6a',\r\n '#414c6a',\r\n '#414d6a',\r\n '#424e6a',\r\n '#414d6a',\r\n '#414d6a',\r\n '#414d6a',\r\n '#414d6a',\r\n '#414d6a',\r\n '#414d6b',\r\n '#414d6c',\r\n '#414e6c',\r\n '#414f6c',\r\n '#414e6c',\r\n '#414d6c',\r\n '#414d6c',\r\n '#414e6c',\r\n '#424e6d',\r\n '#424e6d',\r\n '#414f6d',\r\n '#424f6f',\r\n '#414e6f',\r\n '#414e6f',\r\n '#424f70',\r\n '#414f6f',\r\n '#414f6f',\r\n '#414f6f',\r\n '#414e6f',\r\n '#414e6f',\r\n '#414f6f',\r\n '#414f6f',\r\n '#414f71',\r\n '#414f72',\r\n '#425073',\r\n '#425173',\r\n '#415072',\r\n '#425173',\r\n '#425173',\r\n '#425173',\r\n '#415072',\r\n '#415072',\r\n '#415172',\r\n '#415173',\r\n '#415174',\r\n '#415174',\r\n '#415074',\r\n '#415074',\r\n '#415174',\r\n '#415074',\r\n '#415074',\r\n '#415074',\r\n '#415175',\r\n '#415275',\r\n '#425276',\r\n '#425277',\r\n '#415177',\r\n '#415177',\r\n '#425278',\r\n '#425378',\r\n '#415277',\r\n '#415378',\r\n '#415378',\r\n '#415277',\r\n '#415378',\r\n '#42537a',\r\n '#42537c',\r\n '#42537b',\r\n '#41537a',\r\n '#41527a',\r\n '#41537a',\r\n '#41547a',\r\n '#42547b',\r\n '#41547a',\r\n '#41547a',\r\n '#41547c',\r\n '#41547c',\r\n '#41557c',\r\n '#41557c',\r\n '#41557c',\r\n '#41557c',\r\n '#41557d',\r\n '#41547d',\r\n '#41547c',\r\n '#42557d',\r\n '#41557d',\r\n '#41557d',\r\n '#41557f',\r\n '#415580',\r\n '#41567f',\r\n '#41567f',\r\n '#415580',\r\n '#41567f',\r\n '#415580',\r\n '#415580',\r\n '#41557f',\r\n '#415680',\r\n '#415680',\r\n '#415680',\r\n '#415681',\r\n '#415681',\r\n '#415781',\r\n '#415781',\r\n '#415681',\r\n '#415781',\r\n '#415781',\r\n '#415781',\r\n '#415782',\r\n '#415784',\r\n '#415784',\r\n '#425885',\r\n '#425885',\r\n '#415784',\r\n '#415784',\r\n '#415784',\r\n '#415784',\r\n '#425885',\r\n '#425885',\r\n '#415885',\r\n '#415885',\r\n '#425987',\r\n '#415887',\r\n '#415887',\r\n '#415987',\r\n '#415887',\r\n '#425988',\r\n '#425988',\r\n '#415887',\r\n '#415987',\r\n '#415988',\r\n '#415988',\r\n '#415988',\r\n '#415989',\r\n '#415989',\r\n '#415989',\r\n '#415989',\r\n '#415989',\r\n '#415989',\r\n '#41598a',\r\n '#405a8b',\r\n '#405a8c',\r\n '#405b8c',\r\n '#405b8c',\r\n '#405b8c',\r\n '#405a8c',\r\n '#405a8c',\r\n '#405a8c',\r\n '#405a8c',\r\n '#405b8c',\r\n '#415c8d',\r\n '#415c8e',\r\n '#405b8e',\r\n '#415c90',\r\n '#405b8f',\r\n '#405c8f',\r\n '#415d90',\r\n '#405b8f',\r\n '#405c8f',\r\n '#405c8f',\r\n '#405b8f',\r\n '#405c8f',\r\n '#405c90',\r\n '#405c91',\r\n '#405c91',\r\n '#405c91',\r\n '#405d91',\r\n '#405e91',\r\n '#405d91',\r\n '#415e91',\r\n '#405e91',\r\n '#415e91',\r\n '#415e92',\r\n '#3f5d94',\r\n '#3f5d93',\r\n '#3f5d93',\r\n '#3f5e94',\r\n '#405e94',\r\n '#3f5d94',\r\n '#3f5d94',\r\n '#3f5d94',\r\n '#3f5e94',\r\n '#3f5e95',\r\n '#3f5e96',\r\n '#3f5e96',\r\n '#3f5e96',\r\n '#405f97',\r\n '#405f97',\r\n '#3f5e96',\r\n '#3f5e97',\r\n '#3f5f97',\r\n '#3f6097',\r\n '#3f5f97',\r\n '#3f6097',\r\n '#3f5f98',\r\n '#3f5f99',\r\n '#3e5f99',\r\n '#3e6199',\r\n '#3e6099',\r\n '#3e5f99',\r\n '#3e5f99',\r\n '#3e5f98',\r\n '#3e6099',\r\n '#3d609a',\r\n '#3d6099',\r\n '#3e609b',\r\n '#3e619c',\r\n '#3e619c',\r\n '#3e619c',\r\n '#3e609b',\r\n '#3e609c',\r\n '#3e609c',\r\n '#3e619b',\r\n '#3e629c',\r\n '#3e629c',\r\n '#3e619c',\r\n '#3d619d',\r\n '#3d639f',\r\n '#3d629f',\r\n '#3d629f',\r\n '#3d639f',\r\n '#3d629f',\r\n '#3c619e',\r\n '#3c619e',\r\n '#3d629f',\r\n '#3d62a0',\r\n '#3d63a0',\r\n '#3d63a0',\r\n '#3d62a0',\r\n '#3d63a1',\r\n '#3d62a0',\r\n '#3d63a0',\r\n '#3d64a1',\r\n '#3d63a0',\r\n '#3c63a0',\r\n '#3b63a2',\r\n '#3c64a3',\r\n '#3c65a3',\r\n '#3b63a3',\r\n '#3b63a3',\r\n '#3b63a3',\r\n '#3b63a3',\r\n '#3c63a3',\r\n '#3c65a3',\r\n '#3c65a3',\r\n '#3b64a4',\r\n '#3a65a5',\r\n '#3b66a6',\r\n '#3c65a6',\r\n '#3a65a5',\r\n '#3a64a5',\r\n '#3a64a5',\r\n '#3b65a5',\r\n '#3a65a5',\r\n '#3a66a6',\r\n '#3b66a6',\r\n '#3b66a6',\r\n '#3a66a8',\r\n '#3a67a8',\r\n '#3b67a8',\r\n '#3b66a8',\r\n '#3b66a8',\r\n '#3b66a8',\r\n '#3b67a8',\r\n '#3a66a8',\r\n '#3966a9',\r\n '#3967a9',\r\n '#3a67aa',\r\n '#3a67ab',\r\n '#3967ab',\r\n '#3a68ab',\r\n '#3a68ab',\r\n '#3968ab',\r\n '#3966aa',\r\n '#3966aa',\r\n '#3968ab',\r\n '#3968ab',\r\n '#3867ac',\r\n '#3867ac',\r\n '#3868ac',\r\n '#3869ad',\r\n '#3969ad',\r\n '#3968ad',\r\n '#3868ac',\r\n '#3868ac',\r\n '#3869ae',\r\n '#3868ad',\r\n '#3868ad',\r\n '#3769af',\r\n '#3869b0',\r\n '#3769af',\r\n '#3769af',\r\n '#386ab0',\r\n '#386ab0',\r\n '#376aaf',\r\n '#376aaf',\r\n '#376ab0',\r\n '#366ab1',\r\n '#366ab2',\r\n '#366ab2',\r\n '#366ab2',\r\n '#366ab3',\r\n '#366bb3',\r\n '#366ab2',\r\n '#3669b2',\r\n '#366ab2',\r\n '#366ab2',\r\n '#366ab2',\r\n '#356bb3',\r\n '#346bb4',\r\n '#356cb4',\r\n '#356cb4',\r\n '#346bb4',\r\n '#356cb4',\r\n '#356cb5',\r\n '#356cb5',\r\n '#356cb5',\r\n '#346cb5',\r\n '#346cb5',\r\n '#346cb6',\r\n '#336db7',\r\n '#326cb7',\r\n '#326db7',\r\n '#336db7',\r\n '#336cb7',\r\n '#326bb6',\r\n '#326cb6',\r\n '#326db7',\r\n '#326db8',\r\n '#316dba',\r\n '#316eb9',\r\n '#316eb9',\r\n '#326eba',\r\n '#316eba',\r\n '#316db9',\r\n '#316db9',\r\n '#316eb9',\r\n '#306eba',\r\n '#306dba',\r\n '#306dba',\r\n '#306ebb',\r\n '#306dbb',\r\n '#306dbc',\r\n '#306fbc',\r\n '#306fbc',\r\n '#306ebb',\r\n '#306eba',\r\n '#306fbc',\r\n '#2f6fbd',\r\n '#2d6ebe',\r\n '#2d6ebe',\r\n '#2d6fbe',\r\n '#2e70be',\r\n '#2e70be',\r\n '#2e6fbe',\r\n '#2e6fbe',\r\n '#2e6fbe',\r\n '#2c6fc0',\r\n '#2d70c0',\r\n '#2d70c0',\r\n '#2b70c1',\r\n '#2b70c1',\r\n '#2c70c1',\r\n '#2c70c1',\r\n '#2b71c1',\r\n '#2c70c1',\r\n '#2c70c1',\r\n '#2c71c1',\r\n '#2c71c1',\r\n '#2a72c3',\r\n '#2971c3',\r\n '#2a71c2',\r\n '#2972c3',\r\n '#2a71c3',\r\n '#2a71c3',\r\n '#2972c3',\r\n '#2972c3',\r\n '#2972c3',\r\n '#2872c5',\r\n '#2872c6',\r\n '#2872c5',\r\n '#2773c6',\r\n '#2773c6',\r\n '#2772c6',\r\n '#2772c5',\r\n '#2672c5',\r\n '#2673c5',\r\n '#2673c5',\r\n '#2673c7',\r\n '#2472c8',\r\n '#2473c8',\r\n '#2474c8',\r\n '#2573c9',\r\n '#2573c9',\r\n '#2573c9',\r\n '#2573c9',\r\n '#2474c8',\r\n '#2374c9',\r\n '#2374c9',\r\n '#2374c9',\r\n '#2375c9',\r\n '#2374c9',\r\n '#2374c9',\r\n '#2475c9',\r\n '#2575ca',\r\n '#2476ca',\r\n '#2476ca',\r\n '#2476ca',\r\n '#2575cb',\r\n '#2577ca',\r\n '#2577ca',\r\n '#2576ca',\r\n '#2577ca',\r\n '#2577ca',\r\n '#2577ca',\r\n '#2677ca',\r\n '#2678ca',\r\n '#2678cb',\r\n '#2778cb',\r\n '#2778cb',\r\n '#2679cb',\r\n '#2779cb',\r\n '#2779cb',\r\n '#2779cb',\r\n '#2779cb',\r\n '#2879cb',\r\n '#287acb',\r\n '#287acb',\r\n '#2879cb',\r\n '#287acb',\r\n '#287bcb',\r\n '#287acb',\r\n '#287acb',\r\n '#287bcc',\r\n '#287bcc',\r\n '#297bcc',\r\n '#297bcc',\r\n '#297bcc',\r\n '#297bcc',\r\n '#297ccc',\r\n '#297ccc',\r\n '#297dcc',\r\n '#297dcc',\r\n '#2a7dcc',\r\n '#2a7dcc',\r\n '#2a7ecd',\r\n '#2a7ecd',\r\n '#2a7ecc',\r\n '#2a7ecc',\r\n '#2b7ecd',\r\n '#2c7ecd',\r\n '#2c7fcd',\r\n '#2c7fcd',\r\n '#2b7ecc',\r\n '#2b7ecc',\r\n '#2c7fcd',\r\n '#2c7fcd',\r\n '#2c7fcd',\r\n '#2c7fcd',\r\n '#2b7fcd',\r\n '#2b80cd',\r\n '#2c80ce',\r\n '#2d80ce',\r\n '#2d80ce',\r\n '#2c81cd',\r\n '#2d82ce',\r\n '#2d82ce',\r\n '#2d81ce',\r\n '#2d82ce',\r\n '#2d82ce',\r\n '#2d82cd',\r\n '#2e82cd',\r\n '#2e83ce',\r\n '#2e82ce',\r\n '#2d82cd',\r\n '#2d83cd',\r\n '#2e83cf',\r\n '#2e84cf',\r\n '#2e84cf',\r\n '#2e83ce',\r\n '#2e83ce',\r\n '#3084cf',\r\n '#3085cf',\r\n '#2f85ce',\r\n '#3085cf',\r\n '#2f86ce',\r\n '#2f86ce',\r\n '#2f86cf',\r\n '#2f85cf',\r\n '#2f86ce',\r\n '#2f86cf',\r\n '#2f86cf',\r\n '#2f87cf',\r\n '#2f86d0',\r\n '#2f86d0',\r\n '#2f86d0',\r\n '#3087cf',\r\n '#3088d0',\r\n '#3088d0',\r\n '#3087cf',\r\n '#3088cf',\r\n '#3188d0',\r\n '#3188d1',\r\n '#3088d0',\r\n '#3089d0',\r\n '#3089d0',\r\n '#3088d0',\r\n '#3188d0',\r\n '#3189d0',\r\n '#3289d0',\r\n '#3289d0',\r\n '#328ad1',\r\n '#328ad1',\r\n '#318ad0',\r\n '#318ad0',\r\n '#318ad0',\r\n '#328bd1',\r\n '#328ad1',\r\n '#328ad1',\r\n '#338bd2',\r\n '#338bd2',\r\n '#338cd1',\r\n '#338cd1',\r\n '#338cd2',\r\n '#338cd2',\r\n '#338dd1',\r\n '#338dd1',\r\n '#338dd2',\r\n '#338dd1',\r\n '#338ed2',\r\n '#338ed2',\r\n '#338ed2',\r\n '#348ed2',\r\n '#348ed2',\r\n '#348ed2',\r\n '#348fd2',\r\n '#348fd2',\r\n '#348fd2',\r\n '#348fd2',\r\n '#348fd2',\r\n '#348fd2',\r\n '#3390d2',\r\n '#3391d2',\r\n '#3491d3',\r\n '#3490d3',\r\n '#3491d3',\r\n '#3491d3',\r\n '#3591d3',\r\n '#3591d3',\r\n '#3691d4',\r\n '#3690d4',\r\n '#3590d3',\r\n '#3592d3',\r\n '#3592d4',\r\n '#3592d4',\r\n '#3592d3',\r\n '#3593d3',\r\n '#3592d4',\r\n '#3592d4',\r\n '#3592d4',\r\n '#3593d4',\r\n '#3694d4',\r\n '#3695d4',\r\n '#3694d4',\r\n '#3693d4',\r\n '#3693d4',\r\n '#3695d4',\r\n '#3695d4',\r\n '#3695d4',\r\n '#3796d4',\r\n '#3796d4',\r\n '#3695d4',\r\n '#3695d5',\r\n '#3696d5',\r\n '#3696d5',\r\n '#3696d5',\r\n '#3695d4',\r\n '#3696d4',\r\n '#3797d5',\r\n '#3796d5',\r\n '#3797d5',\r\n '#3898d5',\r\n '#3898d5',\r\n '#3797d5',\r\n '#3798d5',\r\n '#3899d5',\r\n '#3899d5',\r\n '#3899d6',\r\n '#3799d6',\r\n '#3799d6',\r\n '#3799d6',\r\n '#389ad6',\r\n '#389ad6',\r\n '#3799d5',\r\n '#3799d5',\r\n '#3799d6',\r\n '#379ad6',\r\n '#379ad6',\r\n '#399ad6',\r\n '#399ad6',\r\n '#389bd5',\r\n '#389bd5',\r\n '#389bd6',\r\n '#389bd6',\r\n '#399cd7',\r\n '#399bd7',\r\n '#399cd7',\r\n '#399dd7',\r\n '#389cd7',\r\n '#389cd6',\r\n '#389dd6',\r\n '#399ed7',\r\n '#389dd6',\r\n '#389dd6',\r\n '#389fd6',\r\n '#399fd7',\r\n '#399ed6',\r\n '#399ed6',\r\n '#399fd7',\r\n '#399fd7',\r\n '#399fd7',\r\n '#3aa0d8',\r\n '#3aa0d8',\r\n '#3a9fd8',\r\n '#3a9fd8',\r\n '#3a9fd8',\r\n '#3aa0d8',\r\n '#3aa1d8',\r\n '#3aa1d8',\r\n '#3aa1d8',\r\n '#3aa1d8',\r\n '#3aa1d8',\r\n '#3aa2d9',\r\n '#3aa1d9',\r\n '#3aa1d8',\r\n '#39a2d8',\r\n '#3aa2d9',\r\n '#3aa3d9',\r\n '#3ba3d9',\r\n '#3ba3d9',\r\n '#3ba2d8',\r\n '#3aa2d8',\r\n '#3aa4d8',\r\n '#3ba4d9',\r\n '#3aa3d8',\r\n '#3aa3d9',\r\n '#3ba5da',\r\n '#3ba5d9',\r\n '#3ba4d9',\r\n '#3ba4d9',\r\n '#3ba4d9',\r\n '#3aa5d9',\r\n '#3ba5da',\r\n '#3ba6da',\r\n '#3ba6da',\r\n '#3ba6da',\r\n '#3ba6d9',\r\n '#3ba6d9',\r\n '#3ba6da',\r\n '#3aa5da',\r\n '#3ba6da',\r\n '#3ca7da',\r\n '#3ca7da',\r\n '#3ba7da',\r\n '#3ba6da',\r\n '#3ca7da',\r\n '#3ca8da',\r\n '#3ca8da',\r\n '#3ca8da',\r\n '#3ca9db',\r\n '#3ca9db',\r\n '#3ca9da',\r\n '#3ca8db',\r\n '#3ba8db',\r\n '#3baadb',\r\n '#3caadb',\r\n '#3ca9db',\r\n '#3caadb',\r\n '#3caadb',\r\n '#3ca9db',\r\n '#3ca9db',\r\n '#3ca9db',\r\n '#3cabdb',\r\n '#3cabdc',\r\n '#3caadb',\r\n '#3cabdb',\r\n '#3cacdc',\r\n '#3cacdc',\r\n '#3cacdc',\r\n '#3caddc',\r\n '#3caddc',\r\n '#3caddc',\r\n '#3caedc',\r\n '#3caddd',\r\n '#3caddd',\r\n '#3caedc',\r\n '#3eaedd',\r\n '#3eaddd',\r\n '#3daddc',\r\n '#3daedc',\r\n '#3daedc',\r\n '#3dafdd',\r\n '#3dafdd',\r\n '#3daedd',\r\n '#3dafdd',\r\n '#3dafdd',\r\n '#3dafdd',\r\n '#3db0dd',\r\n '#3db0dd',\r\n '#3db0dc',\r\n '#3db0dc',\r\n '#3db1dd',\r\n '#3db1dd',\r\n '#3db0dd',\r\n '#3db0dd',\r\n '#3db1dd',\r\n '#3db1de',\r\n '#3db1de',\r\n '#3db1de',\r\n '#3db2de',\r\n '#3db2de',\r\n '#3db2dd',\r\n '#3db2dd',\r\n '#3db3dd',\r\n '#3db2de',\r\n '#3db3de',\r\n '#3db4de',\r\n '#3db3dd',\r\n '#3db4de',\r\n '#3db4de',\r\n '#3db4de',\r\n '#3db5df',\r\n '#3db5df',\r\n '#3db4df',\r\n '#3db4df',\r\n '#3db5df',\r\n '#3db5de',\r\n '#3db5de',\r\n '#3db5de',\r\n '#3db6df',\r\n '#3db6df',\r\n '#3db6de',\r\n '#3db6de',\r\n '#3db7df',\r\n '#3db7e0',\r\n '#3db8e0',\r\n '#3db8e0',\r\n '#3db7e0',\r\n '#3db7df',\r\n '#3db7df',\r\n '#3eb7df',\r\n '#3eb8df',\r\n '#3eb8df',\r\n '#3eb9e0',\r\n '#3eb9e0',\r\n '#3eb8df',\r\n '#3eb9df',\r\n '#3fb9df',\r\n '#3fb9e0',\r\n '#3ebae1',\r\n '#3ebae0',\r\n '#3ebae0',\r\n '#3ebae0',\r\n '#3eb9e0',\r\n '#3fbae1',\r\n '#3fbbe1',\r\n '#3ebae0',\r\n '#3ebbe1',\r\n '#3ebae0',\r\n '#3ebbe0',\r\n '#3ebce1',\r\n '#3fbce1',\r\n '#3ebce0',\r\n '#3ebce2',\r\n '#3ebce2',\r\n '#3ebde2',\r\n '#3fbde2',\r\n '#3fbde2',\r\n '#3ebde1',\r\n '#3ebee1',\r\n '#3ebde2',\r\n '#3fbde2',\r\n '#3fbde2',\r\n '#3ebee1',\r\n '#3ebfe1',\r\n '#3ebfe1',\r\n '#3ebfe1',\r\n '#3fbfe2',\r\n '#3ebfe1',\r\n '#3ebee1',\r\n '#3ebee2',\r\n '#3ebfe2',\r\n '#3ebfe2',\r\n '#3ebfe2',\r\n '#3ec0e2',\r\n '#3ec1e2',\r\n '#3fc0e3',\r\n '#3fc0e3',\r\n '#3ec0e2',\r\n '#3ec1e2',\r\n '#3ec2e2',\r\n '#3ec2e2',\r\n '#3ec2e2',\r\n '#3ec3e3',\r\n '#3ec3e3',\r\n '#3ec3e3',\r\n '#3ec2e3',\r\n '#3ec2e3',\r\n '#3fc3e3',\r\n '#3fc4e3',\r\n '#3ec4e3',\r\n '#3ec3e3',\r\n '#3ec3e3',\r\n '#3ec5e4',\r\n '#3fc5e4',\r\n '#3fc5e3',\r\n '#3fc4e4',\r\n '#3fc5e4',\r\n '#3ec6e4',\r\n '#3ec5e4',\r\n '#3ec4e4',\r\n '#3ec5e4',\r\n '#3ec6e4',\r\n '#3ec6e4',\r\n '#3ec6e4',\r\n '#3ec6e4',\r\n '#3ec6e4',\r\n '#3ec7e4',\r\n '#3ec6e4',\r\n '#3ec6e4',\r\n '#3ec6e4',\r\n '#3ec7e4',\r\n '#3dc8e4',\r\n '#3dc8e4',\r\n '#3dc7e5',\r\n '#3dc7e5',\r\n '#3dc8e5',\r\n '#3dc8e4',\r\n '#3dc8e4',\r\n '#3dc9e5',\r\n '#3dc9e5',\r\n '#3dc9e5',\r\n '#3dc9e5',\r\n '#3dc9e5',\r\n '#3dc9e4',\r\n '#3dc9e5',\r\n '#3dcae6',\r\n '#3dcbe6',\r\n '#3dcae6',\r\n '#3dcae6',\r\n '#3dcae6',\r\n '#3dcbe6',\r\n '#3dcce6',\r\n '#3ecce6',\r\n '#3ecce6',\r\n '#3dcbe6',\r\n '#3dcce6',\r\n '#3dcce6',\r\n '#3dcce6',\r\n '#3dcce5',\r\n '#3dcce5',\r\n '#3dcce6',\r\n '#3dcde7',\r\n '#3dcde7',\r\n '#3dcde7',\r\n '#3dcfe7',\r\n '#3dcfe7',\r\n '#3dcfe7',\r\n '#3dcee7',\r\n '#3dcee6',\r\n '#3dcee6',\r\n '#3dcfe7',\r\n '#3dcfe7',\r\n '#3dcfe6',\r\n '#3dcfe6',\r\n '#3dd0e8',\r\n '#3ed1e8',\r\n '#3ed1e7',\r\n '#3dd0e7',\r\n '#3dd0e8',\r\n '#3dd0e7',\r\n '#3dd1e7',\r\n '#3dd1e7',\r\n '#3dd0e7',\r\n '#3cd1e8',\r\n '#3cd2e8',\r\n '#3cd1e8',\r\n '#3cd1e7',\r\n '#3cd1e7',\r\n '#3cd2e8',\r\n '#3cd3e9',\r\n '#3cd2e8',\r\n '#3cd2e9',\r\n '#3cd2e9',\r\n '#3cd3e8',\r\n '#3cd4e8',\r\n '#3cd3e8',\r\n '#3cd3e8',\r\n ],\r\n nullColor: '#2f323d',\r\n}\r\nconst earningsGradient = {\r\n colors: [\r\n '#592d48',\r\n '#592d49',\r\n '#5b2d49',\r\n '#5b2d49',\r\n '#5b2d49',\r\n '#5b2e49',\r\n '#5b2e49',\r\n '#5b2e4a',\r\n '#5c2e4a',\r\n '#5d2f4b',\r\n '#5c2f4b',\r\n '#5c2e4b',\r\n '#5f2f4c',\r\n '#5f2f4c',\r\n '#5e2e4c',\r\n '#5e2e4c',\r\n '#60304d',\r\n '#60304d',\r\n '#5f2f4d',\r\n '#5f2f4d',\r\n '#62304f',\r\n '#62304f',\r\n '#61304f',\r\n '#62314f',\r\n '#62314f',\r\n '#633150',\r\n '#633150',\r\n '#63314f',\r\n '#63304f',\r\n '#643150',\r\n '#643151',\r\n '#643151',\r\n '#653152',\r\n '#653051',\r\n '#653051',\r\n '#663152',\r\n '#673253',\r\n '#673253',\r\n '#673253',\r\n '#673253',\r\n '#683254',\r\n '#683254',\r\n '#683254',\r\n '#693254',\r\n '#693354',\r\n '#6a3354',\r\n '#6a3354',\r\n '#6a3355',\r\n '#6a3356',\r\n '#6a3456',\r\n '#6c3456',\r\n '#6c3356',\r\n '#6c3457',\r\n '#6c3457',\r\n '#6c3457',\r\n '#6c3457',\r\n '#6d3458',\r\n '#6e3559',\r\n '#6f3559',\r\n '#6f3459',\r\n '#6f345a',\r\n '#70355b',\r\n '#70365b',\r\n '#6f355a',\r\n '#70365b',\r\n '#71355a',\r\n '#71355a',\r\n '#71365b',\r\n '#72355b',\r\n '#72365c',\r\n '#72365d',\r\n '#72355c',\r\n '#73355c',\r\n '#73355d',\r\n '#73375d',\r\n '#73375d',\r\n '#76375e',\r\n '#76375f',\r\n '#76375f',\r\n '#76375f',\r\n '#76365e',\r\n '#76365e',\r\n '#76375f',\r\n '#763860',\r\n '#773861',\r\n '#783860',\r\n '#783860',\r\n '#783861',\r\n '#793861',\r\n '#793862',\r\n '#793762',\r\n '#793761',\r\n '#7b3962',\r\n '#7b3962',\r\n '#7a3962',\r\n '#7a3962',\r\n '#7b3963',\r\n '#7c3964',\r\n '#7d3a64',\r\n '#7d3b64',\r\n '#7d3a65',\r\n '#7d3a65',\r\n '#7d3a65',\r\n '#7e3b65',\r\n '#803b66',\r\n '#7f3a66',\r\n '#7e3a66',\r\n '#7f3a67',\r\n '#7f3b67',\r\n '#803c67',\r\n '#803c67',\r\n '#7f3b67',\r\n '#813c68',\r\n '#823b69',\r\n '#823b69',\r\n '#813b69',\r\n '#823c69',\r\n '#823c69',\r\n '#823c69',\r\n '#823c69',\r\n '#843d6a',\r\n '#843d6a',\r\n '#843d6a',\r\n '#843c6b',\r\n '#863c6c',\r\n '#853c6c',\r\n '#853d6c',\r\n '#863e6c',\r\n '#863d6c',\r\n '#873d6c',\r\n '#873d6c',\r\n '#873d6d',\r\n '#893e6e',\r\n '#8a3e6f',\r\n '#8a3e6f',\r\n '#893e6e',\r\n '#893d6e',\r\n '#893e6e',\r\n '#8a3f6f',\r\n '#8b3f70',\r\n '#8b3f71',\r\n '#8b3e70',\r\n '#8b3e70',\r\n '#8c3f70',\r\n '#8c4071',\r\n '#8c4070',\r\n '#8c4070',\r\n '#8d4071',\r\n '#8d4072',\r\n '#8d4072',\r\n '#8f4073',\r\n '#8f4074',\r\n '#8f4073',\r\n '#8f4173',\r\n '#8f4173',\r\n '#904173',\r\n '#904174',\r\n '#904175',\r\n '#904175',\r\n '#914175',\r\n '#924175',\r\n '#924275',\r\n '#924275',\r\n '#914175',\r\n '#924277',\r\n '#934277',\r\n '#934277',\r\n '#944278',\r\n '#954277',\r\n '#954278',\r\n '#954278',\r\n '#954278',\r\n '#954378',\r\n '#964378',\r\n '#964379',\r\n '#96447a',\r\n '#96437a',\r\n '#96437a',\r\n '#98437a',\r\n '#98447b',\r\n '#98457b',\r\n '#98457b',\r\n '#98457b',\r\n '#99447b',\r\n '#9a457d',\r\n '#9b457d',\r\n '#9b457d',\r\n '#9a447c',\r\n '#9a457c',\r\n '#9b457c',\r\n '#9b457e',\r\n '#9b467e',\r\n '#9c467e',\r\n '#9d467f',\r\n '#9e467f',\r\n '#9d467f',\r\n '#9e467e',\r\n '#9e477f',\r\n '#9e4780',\r\n '#9e477f',\r\n '#9f4680',\r\n '#a04680',\r\n '#a04880',\r\n '#a04881',\r\n '#a04881',\r\n '#a04881',\r\n '#a24883',\r\n '#a24883',\r\n '#a24882',\r\n '#a24883',\r\n '#a24883',\r\n '#a24883',\r\n '#a24883',\r\n '#a34983',\r\n '#a34983',\r\n '#a34984',\r\n '#a44985',\r\n '#a54986',\r\n '#a54986',\r\n '#a54986',\r\n '#a54a85',\r\n '#a54a85',\r\n '#a54a85',\r\n '#a64a86',\r\n '#a74a87',\r\n '#a84a88',\r\n '#a84a88',\r\n '#a74a87',\r\n '#a84b87',\r\n '#a84b88',\r\n '#a84b88',\r\n '#a84b88',\r\n '#a94b89',\r\n '#aa4b89',\r\n '#ab4b89',\r\n '#ab4b89',\r\n '#ab4c8a',\r\n '#aa4c8a',\r\n '#aa4c8a',\r\n '#ab4c8a',\r\n '#ad4c8b',\r\n '#ad4c8b',\r\n '#ad4c8b',\r\n '#ad4c8c',\r\n '#ae4d8d',\r\n '#ae4c8c',\r\n '#ae4d8d',\r\n '#af4e8e',\r\n '#af4e8d',\r\n '#b04e8d',\r\n '#b04e8d',\r\n '#b04d8e',\r\n '#b04e8e',\r\n '#b04d8e',\r\n '#b04e8e',\r\n '#b14f8f',\r\n '#b14e90',\r\n '#b14e90',\r\n '#b14f90',\r\n '#b25090',\r\n '#b34f90',\r\n '#b34f90',\r\n '#b34f90',\r\n '#b35091',\r\n '#b44f91',\r\n '#b55092',\r\n '#b55092',\r\n '#b55092',\r\n '#b55192',\r\n '#b55092',\r\n '#b55092',\r\n '#b55093',\r\n '#b65094',\r\n '#b75194',\r\n '#b85193',\r\n '#b75093',\r\n '#b85095',\r\n '#b85095',\r\n '#b85295',\r\n '#b85295',\r\n '#ba5296',\r\n '#b95197',\r\n '#b95197',\r\n '#ba5297',\r\n '#ba5297',\r\n '#ba5296',\r\n '#ba5296',\r\n '#bb5397',\r\n '#bc5297',\r\n '#bd5298',\r\n '#bd5499',\r\n '#bc5499',\r\n '#bc5499',\r\n '#bc5499',\r\n '#bd5499',\r\n '#be549a',\r\n '#bf549b',\r\n '#bf549b',\r\n '#bf549b',\r\n '#bf549b',\r\n '#c0559b',\r\n '#c0559b',\r\n '#c0559b',\r\n '#c0559b',\r\n '#c0549c',\r\n '#c0549c',\r\n '#c2569c',\r\n '#c2569d',\r\n '#c2569e',\r\n '#c2569e',\r\n '#c4569e',\r\n '#c4569e',\r\n '#c4569f',\r\n '#c3579e',\r\n '#c3579e',\r\n '#c5579e',\r\n '#c658a0',\r\n '#c5579f',\r\n '#c4579f',\r\n '#c557a0',\r\n '#c757a0',\r\n '#c657a0',\r\n '#c658a1',\r\n '#c759a2',\r\n '#c758a2',\r\n '#c758a2',\r\n '#c858a2',\r\n '#c959a3',\r\n '#ca59a3',\r\n '#c958a2',\r\n '#c958a2',\r\n '#c959a3',\r\n '#ca59a4',\r\n '#cb59a4',\r\n '#cb59a4',\r\n '#cb59a4',\r\n '#cb5aa5',\r\n '#cc5ba5',\r\n '#cc5ba5',\r\n '#cc5aa5',\r\n '#cd5ba6',\r\n '#cd5ba6',\r\n '#cd5ba6',\r\n '#ce5ba7',\r\n '#ce5ca7',\r\n '#cf5ca7',\r\n '#cf5ca7',\r\n '#cf5ca7',\r\n '#d05ca8',\r\n '#d05ba9',\r\n '#d05ba9',\r\n '#d05ba9',\r\n '#d15ca9',\r\n '#d15da9',\r\n '#d15da9',\r\n '#d15ca9',\r\n '#d25caa',\r\n '#d25dab',\r\n '#d25eab',\r\n '#d25eab',\r\n '#d35eab',\r\n '#d35dab',\r\n '#d35dab',\r\n '#d45eac',\r\n '#d45dac',\r\n '#d55ead',\r\n '#d55ead',\r\n '#d55dad',\r\n '#d65eac',\r\n '#d65fad',\r\n '#d65fae',\r\n '#d65fae',\r\n '#d75fae',\r\n '#d75fae',\r\n '#d75fae',\r\n '#d75fae',\r\n '#d75faf',\r\n '#d760b0',\r\n '#d960b0',\r\n '#d95fb0',\r\n '#d961b0',\r\n '#d961b1',\r\n '#d961b1',\r\n '#da61b0',\r\n '#dc61b2',\r\n '#dc60b2',\r\n '#db60b2',\r\n '#db61b2',\r\n '#dc61b2',\r\n '#dd61b3',\r\n '#dd61b3',\r\n '#dd62b3',\r\n '#de62b3',\r\n '#de63b4',\r\n '#de63b5',\r\n '#dd62b4',\r\n '#de62b4',\r\n '#df63b5',\r\n '#e063b5',\r\n '#e063b5',\r\n '#e063b6',\r\n '#e164b6',\r\n '#e164b6',\r\n '#e164b6',\r\n '#e164b7',\r\n '#e264b7',\r\n '#e264b7',\r\n '#e264b7',\r\n '#e264b8',\r\n '#e265b8',\r\n '#e265b8',\r\n '#e365b8',\r\n '#e364b8',\r\n '#e465b9',\r\n '#e565ba',\r\n '#e565ba',\r\n '#e566b9',\r\n '#e566ba',\r\n '#e566bb',\r\n '#e666ba',\r\n '#e766bb',\r\n '#e665bb',\r\n '#e665bb',\r\n '#e666bb',\r\n '#e867bc',\r\n '#e867bc',\r\n '#e867bc',\r\n '#e867bc',\r\n '#e968bd',\r\n '#e967be',\r\n '#e968be',\r\n '#e969bd',\r\n '#ea68bf',\r\n '#ea69bf',\r\n '#ea69bf',\r\n '#eb69c0',\r\n '#eb69c0',\r\n '#eb6ac0',\r\n '#eb6ac0',\r\n '#ec6ac1',\r\n '#ed6ac2',\r\n '#ec6bc2',\r\n '#ec6bc2',\r\n '#ed6bc2',\r\n '#ed6bc3',\r\n '#ed6bc3',\r\n '#ed6bc3',\r\n '#ee6bc2',\r\n '#ef6bc3',\r\n '#ef6cc3',\r\n '#ef6cc3',\r\n '#f06cc4',\r\n '#f06cc5',\r\n '#f16cc4',\r\n '#f16cc4',\r\n '#f16cc5',\r\n '#f16dc6',\r\n '#f16dc6',\r\n '#f36dc6',\r\n '#f36dc7',\r\n '#f36dc6',\r\n '#f36dc7',\r\n '#f36dc7',\r\n '#f46dc7',\r\n '#f56ec7',\r\n '#f46ec7',\r\n '#f46ec7',\r\n '#f46ec8',\r\n '#f56ec8',\r\n '#f56fc8',\r\n '#f66fc8',\r\n '#f76fc9',\r\n '#f76fc9',\r\n '#f76fc9',\r\n '#f86fca',\r\n '#f970cb',\r\n '#f971cb',\r\n '#f870cb',\r\n '#f870cb',\r\n '#f870cc',\r\n '#f970cd',\r\n '#fa71cd',\r\n '#fa71cd',\r\n '#fa71cd',\r\n '#fa72ce',\r\n '#fb71ce',\r\n '#fb71ce',\r\n '#fb71ce',\r\n '#fc72cf',\r\n '#fb72ce',\r\n '#fb72ce',\r\n '#fc72cf',\r\n '#fd72d0',\r\n '#fe73d1',\r\n '#ff73d1',\r\n '#ff72d1',\r\n '#fe72d1',\r\n '#ff73d2',\r\n '#ff74d2',\r\n '#fe74d2',\r\n '#02dfce',\r\n '#02dece',\r\n '#02dece',\r\n '#03dfce',\r\n '#03dfce',\r\n '#03dfcd',\r\n '#03ddcd',\r\n '#03ddcd',\r\n '#03ddcc',\r\n '#02dccb',\r\n '#02dccb',\r\n '#03dccc',\r\n '#03dbcb',\r\n '#03dbca',\r\n '#03dbca',\r\n '#03dbca',\r\n '#03daca',\r\n '#04dbcb',\r\n '#04dacb',\r\n '#03d9ca',\r\n '#03d8c9',\r\n '#04d9c9',\r\n '#04dac9',\r\n '#04d9c9',\r\n '#04d9c8',\r\n '#04d7c7',\r\n '#04d6c7',\r\n '#04d7c8',\r\n '#05d7c7',\r\n '#05d6c7',\r\n '#05d6c7',\r\n '#04d6c7',\r\n '#05d5c6',\r\n '#05d5c6',\r\n '#05d5c6',\r\n '#05d5c5',\r\n '#06d4c5',\r\n '#05d4c5',\r\n '#05d4c5',\r\n '#06d4c5',\r\n '#06d3c4',\r\n '#06d2c4',\r\n '#06d2c4',\r\n '#06d2c3',\r\n '#06d2c3',\r\n '#07d2c2',\r\n '#07d0c1',\r\n '#07d0c2',\r\n '#07d0c1',\r\n '#07cfc1',\r\n '#07cfc1',\r\n '#07d0c1',\r\n '#09cfc0',\r\n '#08cfc0',\r\n '#09cfc0',\r\n '#0acec1',\r\n '#0acec0',\r\n '#09cdbf',\r\n '#09cdbf',\r\n '#0acebf',\r\n '#0accbe',\r\n '#0bccbf',\r\n '#0bccbf',\r\n '#0bccbe',\r\n '#0bcbbe',\r\n '#0bcbbe',\r\n '#0bcbbd',\r\n '#0ccabc',\r\n '#0ccbbd',\r\n '#0dcbbd',\r\n '#0dcabc',\r\n '#0cc9bb',\r\n '#0dc8ba',\r\n '#0ec9bb',\r\n '#0ec9bb',\r\n '#0dc8ba',\r\n '#0ec8bb',\r\n '#0dc7ba',\r\n '#0ec7ba',\r\n '#0fc7ba',\r\n '#0ec6b9',\r\n '#0fc6b9',\r\n '#0fc6b9',\r\n '#0fc5b8',\r\n '#0fc6b8',\r\n '#0fc6b8',\r\n '#0fc4b8',\r\n '#10c4b7',\r\n '#10c4b7',\r\n '#10c3b6',\r\n '#10c3b6',\r\n '#10c3b6',\r\n '#12c2b6',\r\n '#11c2b6',\r\n '#11c2b6',\r\n '#12c3b6',\r\n '#12c2b5',\r\n '#12c1b5',\r\n '#12c0b5',\r\n '#13c0b4',\r\n '#13c1b4',\r\n '#13c0b3',\r\n '#13bfb3',\r\n '#13c0b4',\r\n '#13bfb2',\r\n '#13beb3',\r\n '#13beb3',\r\n '#13bfb2',\r\n '#14beb1',\r\n '#14beb1',\r\n '#14beb1',\r\n '#14bdb1',\r\n '#14bdb1',\r\n '#15bdb1',\r\n '#16bdb1',\r\n '#15bcb0',\r\n '#16baaf',\r\n '#16bab0',\r\n '#16bbb0',\r\n '#15bbaf',\r\n '#15b9ae',\r\n '#15b9ae',\r\n '#16baae',\r\n '#17baae',\r\n '#17b9ae',\r\n '#17b8ae',\r\n '#17b8ac',\r\n '#17b8ac',\r\n '#18b8ac',\r\n '#18b7ab',\r\n '#18b7ab',\r\n '#18b7ab',\r\n '#19b7ac',\r\n '#18b7ac',\r\n '#18b5ac',\r\n '#18b5ab',\r\n '#18b5aa',\r\n '#19b4aa',\r\n '#1ab4aa',\r\n '#1ab5aa',\r\n '#19b3a9',\r\n '#19b3a9',\r\n '#19b4a9',\r\n '#19b4a9',\r\n '#19b2a8',\r\n '#1ab3a8',\r\n '#1ab3a8',\r\n '#1ab2a7',\r\n '#1bb1a7',\r\n '#1ab0a7',\r\n '#1ab0a7',\r\n '#1ab0a7',\r\n '#1bb1a6',\r\n '#1bb1a6',\r\n '#1bafa6',\r\n '#1bafa6',\r\n '#1cafa5',\r\n '#1cafa5',\r\n '#1cafa5',\r\n '#1caea4',\r\n '#1caea4',\r\n '#1caea4',\r\n '#1caea4',\r\n '#1cada3',\r\n '#1caca2',\r\n '#1caca2',\r\n '#1caca2',\r\n '#1caca2',\r\n '#1eaba2',\r\n '#1eaca2',\r\n '#1eaca2',\r\n '#1eaba2',\r\n '#1daaa1',\r\n '#1ea9a1',\r\n '#1ea9a1',\r\n '#1daaa0',\r\n '#1ea89f',\r\n '#1fa9a0',\r\n '#1fa8a0',\r\n '#1ea79f',\r\n '#1fa79e',\r\n '#1fa89f',\r\n '#1fa79e',\r\n '#1ea69d',\r\n '#1ea79d',\r\n '#1ea79c',\r\n '#1ea59c',\r\n '#1ea59c',\r\n '#20a59c',\r\n '#1fa59c',\r\n '#1fa59c',\r\n '#20a49b',\r\n '#20a49c',\r\n '#1fa49c',\r\n '#1fa49a',\r\n '#1fa39a',\r\n '#20a29a',\r\n '#20a39a',\r\n '#20a39a',\r\n '#20a29a',\r\n '#21a199',\r\n '#21a099',\r\n '#21a099',\r\n '#21a198',\r\n '#21a098',\r\n '#219f98',\r\n '#219f98',\r\n '#21a098',\r\n '#219f97',\r\n '#219f97',\r\n '#219e97',\r\n '#219d96',\r\n '#219d97',\r\n '#229d96',\r\n '#229d96',\r\n '#229d96',\r\n '#229c95',\r\n '#239d95',\r\n '#239d95',\r\n '#239c95',\r\n '#229a94',\r\n '#229a93',\r\n '#229a93',\r\n '#239b93',\r\n '#229a93',\r\n '#239892',\r\n '#239892',\r\n '#239992',\r\n '#249991',\r\n '#249991',\r\n '#249791',\r\n '#239791',\r\n '#249791',\r\n '#249791',\r\n '#249791',\r\n '#239690',\r\n '#239590',\r\n '#24968f',\r\n '#24968f',\r\n '#23958f',\r\n '#24958e',\r\n '#24948e',\r\n '#24948e',\r\n '#24958e',\r\n '#25938d',\r\n '#25938d',\r\n '#25938d',\r\n '#24938c',\r\n '#24928c',\r\n '#25928c',\r\n '#25928c',\r\n '#25928c',\r\n '#25918c',\r\n '#25908b',\r\n '#25908b',\r\n '#25908b',\r\n '#248f8a',\r\n '#258f8a',\r\n '#258f8a',\r\n '#25908b',\r\n '#258f8a',\r\n '#248e89',\r\n '#258e89',\r\n '#268e89',\r\n '#268e88',\r\n '#268e88',\r\n '#268d88',\r\n '#268c88',\r\n '#268c86',\r\n '#268c86',\r\n '#268c87',\r\n '#268c87',\r\n '#268b86',\r\n '#268a87',\r\n '#268a86',\r\n '#268a85',\r\n '#268a86',\r\n '#268a86',\r\n '#268884',\r\n '#268884',\r\n '#268884',\r\n '#278783',\r\n '#278783',\r\n '#268883',\r\n '#278682',\r\n '#278682',\r\n '#278682',\r\n '#278682',\r\n '#278681',\r\n '#278681',\r\n '#278581',\r\n '#278480',\r\n '#278580',\r\n '#278480',\r\n '#278381',\r\n '#278481',\r\n '#27837f',\r\n '#288480',\r\n '#288380',\r\n '#27827f',\r\n '#27827f',\r\n '#27817e',\r\n '#27817e',\r\n '#27817e',\r\n '#27807d',\r\n '#27807d',\r\n '#27807d',\r\n '#28807d',\r\n '#27807c',\r\n '#277f7b',\r\n '#277f7b',\r\n '#277f7b',\r\n '#287e7b',\r\n '#287d7a',\r\n '#287d7a',\r\n '#297e7b',\r\n '#297d7b',\r\n '#297c7b',\r\n '#297c7b',\r\n '#297d7b',\r\n '#287b79',\r\n '#287c79',\r\n '#287b79',\r\n '#297a79',\r\n '#297a78',\r\n '#297b78',\r\n '#297b78',\r\n '#287a77',\r\n '#287976',\r\n '#287876',\r\n '#287876',\r\n '#287876',\r\n '#287775',\r\n '#297876',\r\n '#297976',\r\n '#297776',\r\n '#287675',\r\n '#297776',\r\n '#297775',\r\n '#287674',\r\n '#297574',\r\n '#297574',\r\n '#297574',\r\n '#297474',\r\n '#287472',\r\n '#297472',\r\n '#297472',\r\n '#297472',\r\n '#297271',\r\n '#287271',\r\n '#287271',\r\n '#297271',\r\n '#297271',\r\n '#287171',\r\n '#28716f',\r\n '#29716f',\r\n '#28706f',\r\n '#297070',\r\n '#297070',\r\n '#296f6f',\r\n '#296f6f',\r\n '#286e6e',\r\n '#286e6e',\r\n '#286f6e',\r\n '#296e6e',\r\n '#286d6d',\r\n '#286d6d',\r\n '#296d6d',\r\n '#296e6d',\r\n '#296e6d',\r\n '#296c6b',\r\n '#286c6b',\r\n '#286c6b',\r\n '#296c6b',\r\n '#296a6b',\r\n '#286a6a',\r\n '#286a6a',\r\n '#296969',\r\n '#2a6969',\r\n '#296969',\r\n '#296869',\r\n '#2a6969',\r\n '#2a6969',\r\n '#2a6969',\r\n '#2a6868',\r\n '#296768',\r\n '#296768',\r\n '#2a6767',\r\n '#2a6767',\r\n '#2a6767',\r\n '#2a6567',\r\n '#296566',\r\n '#286666',\r\n '#286565',\r\n '#286565',\r\n '#296565',\r\n '#286465',\r\n '#296464',\r\n '#296464',\r\n '#286364',\r\n '#286263',\r\n '#286263',\r\n '#286263',\r\n '#286163',\r\n '#286062',\r\n '#286062',\r\n '#286162',\r\n '#296163',\r\n '#285f62',\r\n '#296062',\r\n '#296062',\r\n '#295f61',\r\n '#296061',\r\n '#285f60',\r\n '#285d5f',\r\n '#285d5f',\r\n '#285d60',\r\n '#285c5f',\r\n '#285c5e',\r\n '#285c5f',\r\n '#295b5e',\r\n '#285b5d',\r\n '#285b5d',\r\n '#285c5d',\r\n '#295c5d',\r\n '#285b5c',\r\n '#285b5c',\r\n '#285b5c',\r\n '#285a5d',\r\n '#28595d',\r\n '#28595b',\r\n '#28595b',\r\n '#29585c',\r\n '#28585b',\r\n '#28585a',\r\n '#28575a',\r\n '#29585b',\r\n '#29585b',\r\n '#29575a',\r\n '#295659',\r\n '#285558',\r\n '#285658',\r\n '#285658',\r\n '#295558',\r\n '#295557',\r\n '#285457',\r\n '#285357',\r\n '#285457',\r\n '#285356',\r\n '#295456',\r\n '#295356',\r\n '#285256',\r\n '#295256',\r\n '#285255',\r\n '#285255',\r\n '#295255',\r\n '#295155',\r\n '#284f54',\r\n '#274f54',\r\n '#275054',\r\n '#275054',\r\n '#275054',\r\n '#274e52',\r\n '#274e52',\r\n '#284e52',\r\n '#274d51',\r\n '#274d51',\r\n '#274e52',\r\n '#274c50',\r\n '#274c50',\r\n '#274e51',\r\n '#284e51',\r\n '#274c50',\r\n '#284c50',\r\n '#284b50',\r\n '#274a50',\r\n '#284a50',\r\n '#284a50',\r\n '#28494e',\r\n '#27484e',\r\n '#274a4e',\r\n '#274a4d',\r\n '#27494d',\r\n '#28484e',\r\n '#27474c',\r\n '#26484d',\r\n '#26484d',\r\n '#26484c',\r\n '#25464b',\r\n '#26464b',\r\n '#26474b',\r\n '#26474b',\r\n '#26454a',\r\n '#26454a',\r\n '#26464a',\r\n '#26464a',\r\n '#254349',\r\n '#264349',\r\n '#264349',\r\n '#26444a',\r\n ],\r\n nullColor: '#414554',\r\n}\r\n\r\nconst redGreenGradientBubbles = {\r\n colors: [\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f63538',\r\n '#f53538',\r\n '#f53538',\r\n '#f53538',\r\n '#f53538',\r\n '#f53538',\r\n '#f53538',\r\n '#f53538',\r\n '#f53538',\r\n '#f43538',\r\n '#f43538',\r\n '#f43538',\r\n '#f43538',\r\n '#f43538',\r\n '#f43538',\r\n '#f33538',\r\n '#f33538',\r\n '#f33538',\r\n '#f33538',\r\n '#f33538',\r\n '#f33538',\r\n '#f33538',\r\n '#f33538',\r\n '#f33538',\r\n '#f23538',\r\n '#f23538',\r\n '#f23538',\r\n '#f23538',\r\n '#f13538',\r\n '#f13538',\r\n '#f13538',\r\n '#f13538',\r\n '#f03538',\r\n '#f03538',\r\n '#f03538',\r\n '#f03538',\r\n '#f03538',\r\n '#f03538',\r\n '#ef3538',\r\n '#ef3538',\r\n '#ef3538',\r\n '#ef3538',\r\n '#ef3538',\r\n '#ef3538',\r\n '#ee3639',\r\n '#ee3639',\r\n '#ee3639',\r\n '#ed3639',\r\n '#ed3639',\r\n '#ed3639',\r\n '#ec3639',\r\n '#ec3639',\r\n '#ec3639',\r\n '#eb3639',\r\n '#eb3639',\r\n '#eb3639',\r\n '#eb3639',\r\n '#eb3639',\r\n '#ea3639',\r\n '#ea3639',\r\n '#ea3639',\r\n '#e93639',\r\n '#e93639',\r\n '#e83538',\r\n '#e83538',\r\n '#e83538',\r\n '#e73538',\r\n '#e73538',\r\n '#e73538',\r\n '#e63538',\r\n '#e63639',\r\n '#e63639',\r\n '#e63639',\r\n '#e63639',\r\n '#e53639',\r\n '#e53639',\r\n '#e53639',\r\n '#e53639',\r\n '#e53639',\r\n '#e53639',\r\n '#e43639',\r\n '#e43639',\r\n '#e43639',\r\n '#e33639',\r\n '#e33639',\r\n '#e33639',\r\n '#e23639',\r\n '#e23639',\r\n '#e23639',\r\n '#e13639',\r\n '#e13639',\r\n '#e13639',\r\n '#e03639',\r\n '#e0363a',\r\n '#e0363a',\r\n '#e0363a',\r\n '#df363a',\r\n '#df363a',\r\n '#df363a',\r\n '#de363a',\r\n '#de363a',\r\n '#de363a',\r\n '#de363a',\r\n '#de363a',\r\n '#de363a',\r\n '#dd363a',\r\n '#dd373b',\r\n '#dd373b',\r\n '#dc373b',\r\n '#dc373b',\r\n '#dc373b',\r\n '#db373b',\r\n '#db373b',\r\n '#db373b',\r\n '#da373b',\r\n '#da373d',\r\n '#da373d',\r\n '#d9373d',\r\n '#d9373d',\r\n '#d9373d',\r\n '#d9373d',\r\n '#d9373d',\r\n '#d8373e',\r\n '#d8373e',\r\n '#d7383e',\r\n '#d7383e',\r\n '#d7383e',\r\n '#d6383e',\r\n '#d6383e',\r\n '#d5383e',\r\n '#d5383e',\r\n '#d4383e',\r\n '#d4383e',\r\n '#d4383f',\r\n '#d3383f',\r\n '#d3383f',\r\n '#d3393f',\r\n '#d33940',\r\n '#d23940',\r\n '#d23940',\r\n '#d13940',\r\n '#d13941',\r\n '#d03941',\r\n '#d03941',\r\n '#cf3941',\r\n '#cf3942',\r\n '#cf3942',\r\n '#cf3a42',\r\n '#ce3a42',\r\n '#cd3a43',\r\n '#cd3a43',\r\n '#cc3943',\r\n '#cc3943',\r\n '#cb3944',\r\n '#cb3944',\r\n '#ca3944',\r\n '#ca3944',\r\n '#c93a45',\r\n '#c93a45',\r\n '#c83a45',\r\n '#c73a45',\r\n '#c73a45',\r\n '#c53a45',\r\n '#c53a45',\r\n '#c43a45',\r\n '#c43a46',\r\n '#c43a46',\r\n '#c43c46',\r\n '#c33c47',\r\n '#c33c47',\r\n '#c23c47',\r\n '#c23c47',\r\n '#c13c48',\r\n '#c13c48',\r\n '#c03c48',\r\n '#c03c48',\r\n '#bf3c48',\r\n '#bf3d4a',\r\n '#be3d4a',\r\n '#be3d4a',\r\n '#bd3d4a',\r\n '#bd3d4b',\r\n '#bc3d4b',\r\n '#bc3d4b',\r\n '#bb3d4b',\r\n '#bb3d4b',\r\n '#bb3d4c',\r\n '#bb3d4c',\r\n '#ba3d4c',\r\n '#ba3e4c',\r\n '#b83e4c',\r\n '#b83e4c',\r\n '#b83e4c',\r\n '#b73e4c',\r\n '#b73e4c',\r\n '#b63e4c',\r\n '#b63e4c',\r\n '#b53e4d',\r\n '#b53e4d',\r\n '#b53e4d',\r\n '#b43e4d',\r\n '#b43e4d',\r\n '#b33e4d',\r\n '#b33f4d',\r\n '#b23f4e',\r\n '#b23f4e',\r\n '#b23f4e',\r\n '#b13f4e',\r\n '#b13f4e',\r\n '#b03e4e',\r\n '#b03e4e',\r\n '#b03e4f',\r\n '#b03e4f',\r\n '#b03e4f',\r\n '#ae3e4f',\r\n '#ae3e4f',\r\n '#ad3e4f',\r\n '#ad3e4f',\r\n '#ac3e4f',\r\n '#ac3f50',\r\n '#ab3f50',\r\n '#ab3f50',\r\n '#aa3f50',\r\n '#aa3f50',\r\n '#a93f50',\r\n '#a93f50',\r\n '#a73f50',\r\n '#a73f50',\r\n '#a63f50',\r\n '#a63f51',\r\n '#a53f51',\r\n '#a53f51',\r\n '#a43f50',\r\n '#a43f50',\r\n '#a43f50',\r\n '#a43f50',\r\n '#a24050',\r\n '#a24050',\r\n '#a14050',\r\n '#a04051',\r\n '#a04051',\r\n '#9f4051',\r\n '#9f4051',\r\n '#9e4051',\r\n '#9c4051',\r\n '#9c4051',\r\n '#9b4051',\r\n '#9a4051',\r\n '#9a4053',\r\n '#994053',\r\n '#994153',\r\n '#984153',\r\n '#974153',\r\n '#974153',\r\n '#964153',\r\n '#954153',\r\n '#954153',\r\n '#934054',\r\n '#934054',\r\n '#924054',\r\n '#914054',\r\n '#914054',\r\n '#904053',\r\n '#8e4053',\r\n '#8e4153',\r\n '#8d4153',\r\n '#8d4153',\r\n '#8d4154',\r\n '#8b4154',\r\n '#8b4154',\r\n '#8a4154',\r\n '#894154',\r\n '#894154',\r\n '#884154',\r\n '#884154',\r\n '#864154',\r\n '#864154',\r\n '#854154',\r\n '#844155',\r\n '#844255',\r\n '#824255',\r\n '#824255',\r\n '#824255',\r\n '#824255',\r\n '#814255',\r\n '#814255',\r\n '#804255',\r\n '#804255',\r\n '#7e4255',\r\n '#7e4255',\r\n '#7d4255',\r\n '#7d4256',\r\n '#7c4256',\r\n '#7c4256',\r\n '#7b4256',\r\n '#7b4256',\r\n '#7b4256',\r\n '#794256',\r\n '#794256',\r\n '#784256',\r\n '#784356',\r\n '#774256',\r\n '#774256',\r\n '#774256',\r\n '#764256',\r\n '#764256',\r\n '#764256',\r\n '#754256',\r\n '#754256',\r\n '#744255',\r\n '#744255',\r\n '#744255',\r\n '#734255',\r\n '#734255',\r\n '#734255',\r\n '#724255',\r\n '#724255',\r\n '#724255',\r\n '#714255',\r\n '#714255',\r\n '#6f4255',\r\n '#6f4255',\r\n '#6f4255',\r\n '#6e4255',\r\n '#6e4255',\r\n '#6e4255',\r\n '#6d4255',\r\n '#6d4255',\r\n '#6d4255',\r\n '#6c4255',\r\n '#6c4255',\r\n '#6c4255',\r\n '#6b4155',\r\n '#6b4155',\r\n '#694155',\r\n '#694155',\r\n '#694155',\r\n '#684155',\r\n '#684155',\r\n '#684155',\r\n '#684155',\r\n '#684155',\r\n '#674155',\r\n '#674155',\r\n '#674155',\r\n '#664154',\r\n '#664154',\r\n '#654154',\r\n '#654154',\r\n '#654154',\r\n '#634154',\r\n '#634154',\r\n '#624154',\r\n '#624154',\r\n '#614154',\r\n '#614154',\r\n '#614154',\r\n '#604054',\r\n '#604054',\r\n '#5f4054',\r\n '#5f4054',\r\n '#5f4054',\r\n '#5e4054',\r\n '#5e4054',\r\n '#5d4054',\r\n '#5d4054',\r\n '#5d4054',\r\n '#5c4053',\r\n '#5c4053',\r\n '#5c4053',\r\n '#5b4053',\r\n '#5b4053',\r\n '#5a4053',\r\n '#5a4053',\r\n '#5a4053',\r\n '#593f53',\r\n '#593f53',\r\n '#593f53',\r\n '#583f53',\r\n '#583f53',\r\n '#583f53',\r\n '#573f53',\r\n '#573e53',\r\n '#573e53',\r\n '#563e53',\r\n '#563e53',\r\n '#563e53',\r\n '#563e53',\r\n '#553e52',\r\n '#553e52',\r\n '#553e52',\r\n '#543e52',\r\n '#543e52',\r\n '#543e52',\r\n '#543e52',\r\n '#543e52',\r\n '#533e52',\r\n '#533e52',\r\n '#533e52',\r\n '#533e52',\r\n '#533e52',\r\n '#523e51',\r\n '#523e51',\r\n '#523e51',\r\n '#523e51',\r\n '#523e51',\r\n '#513e51',\r\n '#513e51',\r\n '#513e51',\r\n '#513e51',\r\n '#513e51',\r\n '#513e51',\r\n '#513e51',\r\n '#513e51',\r\n '#503e51',\r\n '#503e51',\r\n '#503e51',\r\n '#503e51',\r\n '#503e51',\r\n '#503e51',\r\n '#503e51',\r\n '#503e51',\r\n '#503e51',\r\n '#503f51',\r\n '#503f51',\r\n '#4f3f51',\r\n '#4f3f51',\r\n '#4f3f51',\r\n '#4d3f51',\r\n '#4d3f51',\r\n '#4d4151',\r\n '#4b4151',\r\n '#4b4151',\r\n '#4a4152',\r\n '#494152',\r\n '#484253',\r\n '#484253',\r\n '#474253',\r\n '#474253',\r\n '#464353',\r\n '#454353',\r\n '#454353',\r\n '#444454',\r\n '#444454',\r\n '#434454',\r\n '#434454',\r\n '#424454',\r\n '#424554',\r\n '#424554',\r\n '#424554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#414554',\r\n '#404654',\r\n '#404654',\r\n '#404654',\r\n '#404653',\r\n '#404653',\r\n '#3f4653',\r\n '#3f4753',\r\n '#3f4753',\r\n '#3e4753',\r\n '#3e4753',\r\n '#3e4852',\r\n '#3d4852',\r\n '#3d4852',\r\n '#3c4951',\r\n '#3c4951',\r\n '#3b4951',\r\n '#3b4a51',\r\n '#3b4a50',\r\n '#3b4a50',\r\n '#3a4c50',\r\n '#394c50',\r\n '#394c50',\r\n '#394c50',\r\n '#394c50',\r\n '#394c50',\r\n '#384c4f',\r\n '#384c4f',\r\n '#384c4f',\r\n '#384d50',\r\n '#384d50',\r\n '#384d50',\r\n '#384d50',\r\n '#384d50',\r\n '#384d50',\r\n '#384d50',\r\n '#384d50',\r\n '#384d50',\r\n '#384e50',\r\n '#364e50',\r\n '#364e4f',\r\n '#364e4f',\r\n '#364e4f',\r\n '#364e4f',\r\n '#364e4f',\r\n '#364f4f',\r\n '#364f4f',\r\n '#354f4f',\r\n '#354f4f',\r\n '#354f4f',\r\n '#354f4f',\r\n '#35514f',\r\n '#35514f',\r\n '#35514f',\r\n '#34514f',\r\n '#34514f',\r\n '#34524f',\r\n '#34524f',\r\n '#34524f',\r\n '#34524f',\r\n '#33524e',\r\n '#33534e',\r\n '#33534e',\r\n '#33534e',\r\n '#32534e',\r\n '#32544e',\r\n '#32544e',\r\n '#32544e',\r\n '#32544e',\r\n '#31554e',\r\n '#31554e',\r\n '#31554e',\r\n '#31564d',\r\n '#31564d',\r\n '#31564d',\r\n '#31564d',\r\n '#31574d',\r\n '#30574d',\r\n '#30574d',\r\n '#30584d',\r\n '#30584d',\r\n '#2f584d',\r\n '#2f594d',\r\n '#2f594d',\r\n '#2f594c',\r\n '#2e5a4c',\r\n '#2e5a4c',\r\n '#2e5a4c',\r\n '#2d5b4c',\r\n '#2d5b4c',\r\n '#2d5b4c',\r\n '#2d5b4c',\r\n '#2c5c4c',\r\n '#2c5c4c',\r\n '#2c5c4c',\r\n '#2b5d4b',\r\n '#2b5d4b',\r\n '#2b5d4b',\r\n '#2b5e4b',\r\n '#2a5e4b',\r\n '#2a5e4b',\r\n '#2a5f4b',\r\n '#2a5f4b',\r\n '#2a5f4b',\r\n '#2a604b',\r\n '#2a604b',\r\n '#2a604b',\r\n '#29624b',\r\n '#29624b',\r\n '#29624b',\r\n '#29624b',\r\n '#29634b',\r\n '#29634b',\r\n '#29634b',\r\n '#29644b',\r\n '#28644b',\r\n '#28644b',\r\n '#28644b',\r\n '#28654b',\r\n '#28654a',\r\n '#27654a',\r\n '#27664a',\r\n '#27664a',\r\n '#27664a',\r\n '#27664a',\r\n '#26684a',\r\n '#26684a',\r\n '#26684a',\r\n '#26684a',\r\n '#26694a',\r\n '#25694a',\r\n '#25694a',\r\n '#25694a',\r\n '#256a4a',\r\n '#256a4a',\r\n '#256a4a',\r\n '#256a4a',\r\n '#246a4a',\r\n '#246b49',\r\n '#246b49',\r\n '#246b49',\r\n '#246b49',\r\n '#246c49',\r\n '#246c49',\r\n '#236c49',\r\n '#236c49',\r\n '#236e49',\r\n '#236e49',\r\n '#236e49',\r\n '#236e49',\r\n '#236f49',\r\n '#236f49',\r\n '#236f49',\r\n '#226f49',\r\n '#227049',\r\n '#227049',\r\n '#227049',\r\n '#227149',\r\n '#227149',\r\n '#227149',\r\n '#227149',\r\n '#227349',\r\n '#217349',\r\n '#217349',\r\n '#217449',\r\n '#217449',\r\n '#217449',\r\n '#217449',\r\n '#217549',\r\n '#217549',\r\n '#217549',\r\n '#207649',\r\n '#207649',\r\n '#207649',\r\n '#207847',\r\n '#207847',\r\n '#207847',\r\n '#207947',\r\n '#207947',\r\n '#207947',\r\n '#207947',\r\n '#207947',\r\n '#207947',\r\n '#207b47',\r\n '#207b47',\r\n '#207b47',\r\n '#207c47',\r\n '#207c47',\r\n '#207c47',\r\n '#207d47',\r\n '#207d47',\r\n '#207e48',\r\n '#207e48',\r\n '#207e48',\r\n '#208048',\r\n '#208048',\r\n '#208048',\r\n '#208148',\r\n '#208148',\r\n '#208148',\r\n '#208248',\r\n '#1f8247',\r\n '#1f8247',\r\n '#1f8347',\r\n '#1f8347',\r\n '#1f8347',\r\n '#1f8547',\r\n '#1f8547',\r\n '#1f8547',\r\n '#1f8647',\r\n '#1f8647',\r\n '#1f8647',\r\n '#1e8747',\r\n '#1e8747',\r\n '#1e8747',\r\n '#1e8747',\r\n '#1e8947',\r\n '#1e8947',\r\n '#1e8947',\r\n '#1e8a47',\r\n '#1e8a47',\r\n '#1e8a47',\r\n '#1e8b47',\r\n '#1e8b47',\r\n '#1e8b47',\r\n '#1e8b47',\r\n '#1e8c47',\r\n '#1e8c47',\r\n '#1e8c47',\r\n '#1e8c47',\r\n '#1e8e47',\r\n '#1e8e47',\r\n '#1e8e47',\r\n '#1e8f47',\r\n '#1d8f47',\r\n '#1d8f47',\r\n '#1d8f47',\r\n '#1d9047',\r\n '#1d9047',\r\n '#1e9047',\r\n '#1e9047',\r\n '#1e9147',\r\n '#1e9147',\r\n '#1e9147',\r\n '#1e9347',\r\n '#1e9347',\r\n '#1e9347',\r\n '#1e9347',\r\n '#1e9447',\r\n '#1e9447',\r\n '#1e9447',\r\n '#1e9548',\r\n '#1e9548',\r\n '#1e9548',\r\n '#1e9648',\r\n '#1e9648',\r\n '#1e9648',\r\n '#1f9848',\r\n '#1f9848',\r\n '#1f9848',\r\n '#209948',\r\n '#209948',\r\n '#209948',\r\n '#209a48',\r\n '#209a48',\r\n '#209a48',\r\n '#209b48',\r\n '#209b48',\r\n '#209b48',\r\n '#209b48',\r\n '#219c48',\r\n '#219c48',\r\n '#219d48',\r\n '#219d48',\r\n '#219e48',\r\n '#219e48',\r\n '#219e48',\r\n '#219f48',\r\n '#219f48',\r\n '#21a048',\r\n '#21a048',\r\n '#21a048',\r\n '#21a148',\r\n '#21a148',\r\n '#21a348',\r\n '#21a348',\r\n '#22a449',\r\n '#22a449',\r\n '#22a449',\r\n '#22a549',\r\n '#22a549',\r\n '#22a649',\r\n '#22a649',\r\n '#22a64a',\r\n '#23a74a',\r\n '#23a74a',\r\n '#23a84a',\r\n '#23a84a',\r\n '#23aa4a',\r\n '#23aa4a',\r\n '#23aa4a',\r\n '#24ab4a',\r\n '#24ab4a',\r\n '#24ab4a',\r\n '#25ac4a',\r\n '#25ac4a',\r\n '#25ad4a',\r\n '#25ad4a',\r\n '#25ad4a',\r\n '#26ae4a',\r\n '#26ae4a',\r\n '#26ae4a',\r\n '#26af4a',\r\n '#26af4a',\r\n '#26b04a',\r\n '#26b04a',\r\n '#26b04a',\r\n '#27b14a',\r\n '#27b14a',\r\n '#27b14a',\r\n '#27b24a',\r\n '#27b24a',\r\n '#27b24a',\r\n '#27b24a',\r\n '#27b34a',\r\n '#27b34a',\r\n '#27b34a',\r\n '#28b54b',\r\n '#28b54b',\r\n '#28b54b',\r\n '#28b54b',\r\n '#28b64b',\r\n '#28b64b',\r\n '#28b64d',\r\n '#28b64d',\r\n '#28b74d',\r\n '#28b74d',\r\n '#28b74d',\r\n '#29b74d',\r\n '#29b84d',\r\n '#29b84d',\r\n '#29b84d',\r\n '#29b84d',\r\n '#29b94d',\r\n '#29b94d',\r\n '#29b94d',\r\n '#29b94d',\r\n '#29b94d',\r\n '#29b94d',\r\n '#29b94d',\r\n '#29b94e',\r\n '#2aba4e',\r\n '#2aba4e',\r\n '#2aba4e',\r\n '#2aba4e',\r\n '#2aba4e',\r\n '#2aba4e',\r\n '#2aba4e',\r\n '#2abb4e',\r\n '#2abb4e',\r\n '#2abb4f',\r\n '#2abb4f',\r\n '#2abc4f',\r\n '#2abc4f',\r\n '#2abc4f',\r\n '#2bbc4f',\r\n '#2bbc4f',\r\n '#2bbd4f',\r\n '#2bbd4f',\r\n '#2bbd50',\r\n '#2bbd50',\r\n '#2bbd50',\r\n '#2bbe50',\r\n '#2bbe50',\r\n '#2bbe50',\r\n '#2bbe50',\r\n '#2bbe50',\r\n '#2bbf51',\r\n '#2cbf51',\r\n '#2cbf51',\r\n '#2cbf51',\r\n '#2cc051',\r\n '#2cc051',\r\n '#2cc051',\r\n '#2cc052',\r\n '#2cc052',\r\n '#2cc152',\r\n '#2cc152',\r\n '#2cc152',\r\n '#2cc152',\r\n '#2dc353',\r\n '#2dc353',\r\n '#2dc353',\r\n '#2dc353',\r\n '#2dc353',\r\n '#2ec453',\r\n '#2ec453',\r\n '#2ec454',\r\n '#2ec454',\r\n '#2ec454',\r\n '#2ec554',\r\n '#2ec554',\r\n '#2fc554',\r\n '#2fc554',\r\n '#2fc655',\r\n '#2fc655',\r\n '#2fc655',\r\n '#2fc655',\r\n '#2fc655',\r\n '#2fc755',\r\n '#2fc755',\r\n '#2fc756',\r\n '#2fc756',\r\n '#2fc756',\r\n '#2fc756',\r\n '#2fc856',\r\n '#2fc856',\r\n '#2fc856',\r\n '#2fc856',\r\n '#2fc856',\r\n '#2fc858',\r\n '#2fc958',\r\n '#2fc958',\r\n '#2fc958',\r\n '#2fc958',\r\n '#2fc958',\r\n '#2fc958',\r\n '#2fc958',\r\n '#2fca58',\r\n '#2fca58',\r\n '#2fca58',\r\n '#2fca59',\r\n '#2fca59',\r\n '#2fca59',\r\n '#2fca59',\r\n '#2fca59',\r\n '#30ca59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb59',\r\n '#30cb5a',\r\n '#30cb5a',\r\n '#30cb5a',\r\n '#30cb5a',\r\n '#30cb5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n '#30cc5a',\r\n ],\r\n nullColor: 'pink',\r\n}\r\nconst blueGradientBubbles = {\r\n colors: [\r\n '#0c3574',\r\n '#0b3475',\r\n '#0b3475',\r\n '#0c3475',\r\n '#0c3575',\r\n '#0c3475',\r\n '#0c3475',\r\n '#0c3576',\r\n '#0c3677',\r\n '#0c3677',\r\n '#0d3776',\r\n '#0d3676',\r\n '#0e3677',\r\n '#0e3576',\r\n '#0d3576',\r\n '#0d3677',\r\n '#0d3777',\r\n '#0e3778',\r\n '#0e3778',\r\n '#0d3877',\r\n '#0d3878',\r\n '#0d3878',\r\n '#0d3878',\r\n '#0d3878',\r\n '#0d3978',\r\n '#0e3778',\r\n '#0e3779',\r\n '#0e397a',\r\n '#0f3979',\r\n '#0f3a7a',\r\n '#0f3a7b',\r\n '#0f3a7b',\r\n '#0e3a7a',\r\n '#0e3a7a',\r\n '#0f3a7a',\r\n '#0e3a7a',\r\n '#0f3a7c',\r\n '#0f3a7c',\r\n '#0f3a7b',\r\n '#0f3b7b',\r\n '#0f3a7b',\r\n '#0e3a7b',\r\n '#0e3b7c',\r\n '#0f3c7c',\r\n '#0f3c7c',\r\n '#0f3d7d',\r\n '#0f3d7d',\r\n '#0f3c7d',\r\n '#0f3c7e',\r\n '#0f3d7e',\r\n '#0f3d7e',\r\n '#0f3d7e',\r\n '#0f3e7e',\r\n '#0f3d7e',\r\n '#103e7e',\r\n '#113e7f',\r\n '#103e7e',\r\n '#103d7e',\r\n '#103e7f',\r\n '#103e7e',\r\n '#113e80',\r\n '#113f80',\r\n '#103f7f',\r\n '#114080',\r\n '#113f81',\r\n '#114081',\r\n '#113f81',\r\n '#103e80',\r\n '#103f81',\r\n '#104181',\r\n '#104181',\r\n '#103f81',\r\n '#114082',\r\n '#103f82',\r\n '#103f81',\r\n '#114081',\r\n '#114282',\r\n '#114282',\r\n '#114282',\r\n '#124182',\r\n '#114082',\r\n '#114182',\r\n '#114283',\r\n '#124384',\r\n '#114384',\r\n '#114383',\r\n '#124383',\r\n '#124485',\r\n '#114384',\r\n '#114384',\r\n '#114384',\r\n '#114484',\r\n '#124585',\r\n '#124585',\r\n '#124585',\r\n '#134587',\r\n '#134586',\r\n '#134586',\r\n '#134687',\r\n '#134687',\r\n '#134586',\r\n '#134686',\r\n '#134687',\r\n '#134787',\r\n '#134788',\r\n '#134688',\r\n '#134688',\r\n '#134687',\r\n '#124788',\r\n '#124789',\r\n '#134688',\r\n '#134688',\r\n '#134688',\r\n '#134788',\r\n '#134889',\r\n '#13488a',\r\n '#13488a',\r\n '#13488a',\r\n '#134889',\r\n '#134789',\r\n '#13478a',\r\n '#13498a',\r\n '#14498a',\r\n '#15498b',\r\n '#14488b',\r\n '#14498c',\r\n '#15498c',\r\n '#14498b',\r\n '#15498c',\r\n '#15498c',\r\n '#14498c',\r\n '#154a8d',\r\n '#144b8c',\r\n '#144b8c',\r\n '#154b8d',\r\n '#144c8d',\r\n '#154b8d',\r\n '#154b8d',\r\n '#154c8d',\r\n '#144c8d',\r\n '#154c8d',\r\n '#154c8d',\r\n '#164c8e',\r\n '#164c8e',\r\n '#164c8e',\r\n '#164c8e',\r\n '#154d8e',\r\n '#154d8f',\r\n '#164e90',\r\n '#164e90',\r\n '#164e90',\r\n '#154e8f',\r\n '#154d90',\r\n '#154e90',\r\n '#164e90',\r\n '#154e91',\r\n '#154f91',\r\n '#155091',\r\n '#165091',\r\n '#164f91',\r\n '#164f92',\r\n '#165092',\r\n '#165092',\r\n '#165092',\r\n '#165092',\r\n '#155192',\r\n '#155192',\r\n '#175093',\r\n '#175293',\r\n '#175293',\r\n '#175093',\r\n '#175093',\r\n '#175293',\r\n '#175293',\r\n '#175193',\r\n '#175294',\r\n '#175394',\r\n '#175394',\r\n '#175294',\r\n '#175395',\r\n '#175295',\r\n '#175295',\r\n '#175395',\r\n '#175395',\r\n '#185495',\r\n '#185495',\r\n '#175396',\r\n '#175497',\r\n '#175397',\r\n '#175497',\r\n '#175597',\r\n '#175597',\r\n '#175597',\r\n '#175497',\r\n '#185497',\r\n '#195698',\r\n '#195798',\r\n '#185597',\r\n '#185497',\r\n '#185599',\r\n '#195799',\r\n '#195799',\r\n '#185799',\r\n '#185699',\r\n '#195699',\r\n '#195799',\r\n '#195799',\r\n '#19589a',\r\n '#185899',\r\n '#185899',\r\n '#18589a',\r\n '#18589a',\r\n '#18599a',\r\n '#18589a',\r\n '#18579a',\r\n '#19589b',\r\n '#19599b',\r\n '#19599a',\r\n '#18599a',\r\n '#1a5a9c',\r\n '#1a5a9d',\r\n '#1a5a9c',\r\n '#1a599d',\r\n '#1a5a9d',\r\n '#1a5a9e',\r\n '#1a5a9e',\r\n '#195a9d',\r\n '#195a9d',\r\n '#195a9d',\r\n '#195a9d',\r\n '#1a5a9e',\r\n '#1a5b9f',\r\n '#1a5b9e',\r\n '#1a5b9e',\r\n '#1a5d9e',\r\n '#1a5c9f',\r\n '#195c9f',\r\n '#195c9f',\r\n '#195da0',\r\n '#195d9f',\r\n '#195ca0',\r\n '#1a5ca0',\r\n '#1a5d9f',\r\n '#1a5ea1',\r\n '#1a5ea1',\r\n '#1a5da0',\r\n '#1a5da0',\r\n '#195ea0',\r\n '#195ea0',\r\n '#1a5ea0',\r\n '#1a5ea1',\r\n '#1c5fa3',\r\n '#1c5fa3',\r\n '#1b5fa3',\r\n '#1b5ea2',\r\n '#1b5ea2',\r\n '#1b5ea2',\r\n '#1b5fa3',\r\n '#1b60a3',\r\n '#1b60a3',\r\n '#1b5fa3',\r\n '#1b60a3',\r\n '#1c61a4',\r\n '#1b60a4',\r\n '#1b60a4',\r\n '#1b61a4',\r\n '#1b60a4',\r\n '#1b60a4',\r\n '#1b60a4',\r\n '#1b62a4',\r\n '#1b62a5',\r\n '#1b61a5',\r\n '#1b62a5',\r\n '#1b62a5',\r\n '#1b61a5',\r\n '#1d61a6',\r\n '#1d63a6',\r\n '#1c62a6',\r\n '#1d63a6',\r\n '#1d62a6',\r\n '#1c62a6',\r\n '#1c63a7',\r\n '#1d64a8',\r\n '#1c64a7',\r\n '#1c64a7',\r\n '#1d65a8',\r\n '#1c63a8',\r\n '#1d64a9',\r\n '#1d65a9',\r\n '#1d65a9',\r\n '#1d65a9',\r\n '#1d65a9',\r\n '#1d66a9',\r\n '#1d66a9',\r\n '#1c65a9',\r\n '#1d66aa',\r\n '#1d66aa',\r\n '#1c65aa',\r\n '#1c66aa',\r\n '#1c66aa',\r\n '#1d66aa',\r\n '#1c66ab',\r\n '#1c68ab',\r\n '#1c67ab',\r\n '#1c67ab',\r\n '#1d68ab',\r\n '#1d68ac',\r\n '#1e68ac',\r\n '#1e67ab',\r\n '#1d67ab',\r\n '#1e69ac',\r\n '#1e69ac',\r\n '#1d68ac',\r\n '#1d68ac',\r\n '#1e69ae',\r\n '#1e6aae',\r\n '#1e6aad',\r\n '#1e69ad',\r\n '#1e6aae',\r\n '#1d69ae',\r\n '#1d6aae',\r\n '#1e6bae',\r\n '#1e6aaf',\r\n '#1e6baf',\r\n '#1e6baf',\r\n '#1e6bb0',\r\n '#1e6cb0',\r\n '#1d6baf',\r\n '#1d6baf',\r\n '#1e6bb0',\r\n '#1d6ab0',\r\n '#1d6cb0',\r\n '#1d6db1',\r\n '#1e6cb1',\r\n '#1e6db0',\r\n '#1e6cb1',\r\n '#1d6cb1',\r\n '#1d6cb0',\r\n '#1f6db1',\r\n '#1f6cb1',\r\n '#1f6cb1',\r\n '#1f6db2',\r\n '#1f6cb1',\r\n '#1f6db1',\r\n '#1f6eb3',\r\n '#1f6fb3',\r\n '#1f6eb3',\r\n '#1f6eb3',\r\n '#1f6fb3',\r\n '#1f6fb3',\r\n '#1f6fb4',\r\n '#1f6fb4',\r\n '#1f6fb4',\r\n '#2070b5',\r\n '#1f70b4',\r\n '#1f70b4',\r\n '#1f70b4',\r\n '#1f71b5',\r\n '#1f71b5',\r\n '#1f71b5',\r\n '#1f71b5',\r\n '#1f70b5',\r\n '#1f71b5',\r\n '#1f72b6',\r\n '#1f72b6',\r\n '#1f71b6',\r\n '#1f71b6',\r\n '#1f72b5',\r\n '#2072b6',\r\n '#2172b7',\r\n '#2172b7',\r\n '#2172b6',\r\n '#2172b6',\r\n '#2172b7',\r\n '#2072b7',\r\n '#2073b8',\r\n '#2173b9',\r\n '#2173b9',\r\n '#2075b8',\r\n '#2075b8',\r\n '#2174b8',\r\n '#2174b9',\r\n '#2175ba',\r\n '#2174ba',\r\n '#2174ba',\r\n '#2175ba',\r\n '#2175ba',\r\n '#2176bb',\r\n '#2176bb',\r\n '#2076ba',\r\n '#2076ba',\r\n '#2176bb',\r\n '#2176bb',\r\n '#2076bb',\r\n '#2077bb',\r\n '#2177bc',\r\n '#2077bb',\r\n '#2077bb',\r\n '#2077bc',\r\n '#2077bc',\r\n '#2077bc',\r\n '#2177bd',\r\n '#2078bc',\r\n '#2078bc',\r\n '#2178bd',\r\n '#2279be',\r\n '#2178be',\r\n '#2179be',\r\n '#2179be',\r\n '#2279bf',\r\n '#2278bf',\r\n '#2179bf',\r\n '#217abf',\r\n '#227ac0',\r\n '#2279c0',\r\n '#227ac0',\r\n '#227abf',\r\n '#227ac0',\r\n '#217bc0',\r\n '#227bc0',\r\n '#227bc0',\r\n '#217bc0',\r\n '#217ac0',\r\n '#217bc0',\r\n '#217cc1',\r\n '#227cc1',\r\n '#217cc1',\r\n '#217cc1',\r\n '#227cc1',\r\n '#217cc1',\r\n '#227cc2',\r\n '#227cc2',\r\n '#227dc2',\r\n '#217dc1',\r\n '#217dc2',\r\n '#217dc2',\r\n '#217dc3',\r\n '#217ec3',\r\n '#217ec3',\r\n '#217ec3',\r\n '#227ec4',\r\n '#237fc4',\r\n '#237ec5',\r\n '#237ec5',\r\n '#237ec5',\r\n '#237ec4',\r\n '#237ec4',\r\n '#237ec6',\r\n '#237fc6',\r\n '#2380c6',\r\n '#237fc5',\r\n '#237fc5',\r\n '#2380c5',\r\n '#2380c7',\r\n '#2381c6',\r\n '#2381c6',\r\n '#2380c6',\r\n '#2381c7',\r\n '#2380c6',\r\n '#2380c7',\r\n '#2381c8',\r\n '#2382c7',\r\n '#2381c7',\r\n '#2381c7',\r\n '#2382c8',\r\n '#2382c8',\r\n '#2383c8',\r\n '#2384c9',\r\n '#2384c9',\r\n '#2383c8',\r\n '#2383c9',\r\n '#2383ca',\r\n '#2384ca',\r\n '#2384ca',\r\n '#2383ca',\r\n '#2383ca',\r\n '#2384ca',\r\n '#2384ca',\r\n '#2484cb',\r\n '#2485cb',\r\n '#2385cb',\r\n '#2384cb',\r\n '#2385cb',\r\n '#2485cb',\r\n '#2585cc',\r\n '#2586cc',\r\n '#2485cc',\r\n '#2485cc',\r\n '#2485cc',\r\n '#2486cd',\r\n '#2586cd',\r\n '#2587cd',\r\n '#2487cc',\r\n '#2486cd',\r\n '#2587cd',\r\n '#2587cd',\r\n '#2487ce',\r\n '#2588ce',\r\n '#2588ce',\r\n '#2588ce',\r\n '#2488cf',\r\n '#2588cf',\r\n '#2589ce',\r\n '#2589ce',\r\n '#2688cf',\r\n '#2589ce',\r\n '#2789cf',\r\n '#2889d0',\r\n '#2889d0',\r\n '#288ad0',\r\n '#2889d0',\r\n '#298ad0',\r\n '#2b8bd0',\r\n '#2a89cf',\r\n '#2989cf',\r\n '#2b8bcf',\r\n '#2c8cd0',\r\n '#2c8ccf',\r\n '#2d8cd0',\r\n '#2d8cd0',\r\n '#2c8bd0',\r\n '#2e8cd1',\r\n '#2e8cd1',\r\n '#2e8cd0',\r\n '#2e8cd1',\r\n '#2e8dd0',\r\n '#308ed0',\r\n '#318ed1',\r\n '#318dd1',\r\n '#308dd0',\r\n '#308dd0',\r\n '#318fd0',\r\n '#338fd1',\r\n '#328dd1',\r\n '#338ed1',\r\n '#348fd1',\r\n '#348fd2',\r\n '#338ed2',\r\n '#338ed1',\r\n '#348fd1',\r\n '#3590d1',\r\n '#368fd2',\r\n '#3690d1',\r\n '#3690d1',\r\n '#3690d2',\r\n '#3791d3',\r\n '#3791d3',\r\n '#3791d2',\r\n '#3790d2',\r\n '#3790d2',\r\n '#3892d2',\r\n '#3892d2',\r\n '#3992d2',\r\n '#3a92d3',\r\n '#3a93d3',\r\n '#3b92d3',\r\n '#3b92d3',\r\n '#3a93d3',\r\n '#3a93d3',\r\n '#3b93d3',\r\n '#3c94d3',\r\n '#3d94d3',\r\n '#3d94d3',\r\n '#3d94d3',\r\n '#3d93d3',\r\n '#3f93d4',\r\n '#3f96d4',\r\n '#3f96d4',\r\n '#3e95d3',\r\n '#3e96d3',\r\n '#3f96d4',\r\n '#4095d4',\r\n '#4095d4',\r\n '#3f96d4',\r\n '#3f96d4',\r\n '#4096d4',\r\n '#4297d4',\r\n '#4197d4',\r\n '#4096d3',\r\n '#4196d3',\r\n '#4397d5',\r\n '#4398d5',\r\n '#4397d5',\r\n '#4398d5',\r\n '#4398d5',\r\n '#4499d5',\r\n '#4499d5',\r\n '#4499d5',\r\n '#4499d5',\r\n '#459ad5',\r\n '#459ad4',\r\n '#459ad4',\r\n '#459ad4',\r\n '#459ad5',\r\n '#459ad6',\r\n '#469bd6',\r\n '#469bd5',\r\n '#469ad5',\r\n '#469ad5',\r\n '#479bd5',\r\n '#499cd6',\r\n '#499cd6',\r\n '#499cd5',\r\n '#499cd5',\r\n '#499cd6',\r\n '#4a9dd6',\r\n '#4a9fd6',\r\n '#4a9ed6',\r\n '#4a9ed5',\r\n '#4a9ed6',\r\n '#4b9ed7',\r\n '#4b9ed7',\r\n '#4b9fd7',\r\n '#4a9ed7',\r\n '#4b9ed7',\r\n '#4ca0d7',\r\n '#4c9ed7',\r\n '#4b9ed7',\r\n '#4c9fd7',\r\n '#4da0d7',\r\n '#4da0d8',\r\n '#4da0d8',\r\n '#4c9fd8',\r\n '#4c9fd7',\r\n '#4da0d7',\r\n '#4ea2d8',\r\n '#4ea2d8',\r\n '#4ea1d8',\r\n '#4ea2d7',\r\n '#4ea2d7',\r\n '#4ea2d8',\r\n '#4ea2d7',\r\n '#4ea2d7',\r\n '#4fa3d9',\r\n '#50a3d9',\r\n '#50a3d8',\r\n '#4fa2d8',\r\n '#4fa3d8',\r\n '#51a3d8',\r\n '#51a3d8',\r\n '#51a3d9',\r\n '#51a3d8',\r\n '#51a3d8',\r\n '#52a4d9',\r\n '#52a5da',\r\n '#52a4d9',\r\n '#52a4d9',\r\n '#52a5da',\r\n '#53a5da',\r\n '#53a5da',\r\n '#53a5da',\r\n '#54a5da',\r\n '#54a5da',\r\n '#54a6d9',\r\n '#54a7d9',\r\n '#54a6d9',\r\n '#54a7d9',\r\n '#55a8da',\r\n '#55a8da',\r\n '#56a8db',\r\n '#55a7da',\r\n '#56a8db',\r\n '#57a8db',\r\n '#56a7da',\r\n '#57a8db',\r\n '#57a8db',\r\n '#57a8db',\r\n '#58a9da',\r\n '#58aada',\r\n '#57a9da',\r\n '#57a8da',\r\n '#57a9da',\r\n '#58aadb',\r\n '#59aadb',\r\n '#59aadb',\r\n '#59aadc',\r\n '#59abdb',\r\n '#5aacdb',\r\n '#5aabdb',\r\n '#59abdb',\r\n '#5babdb',\r\n '#5babdc',\r\n '#5babdc',\r\n '#5aabdc',\r\n '#5baddc',\r\n '#5bacdc',\r\n '#5cacdc',\r\n '#5bacdc',\r\n '#5caedc',\r\n '#5caddc',\r\n '#5cacdc',\r\n '#5caddc',\r\n '#5dafdc',\r\n '#5dafdc',\r\n '#5caedc',\r\n '#5daedc',\r\n '#5eb0dd',\r\n '#5db0dd',\r\n '#5eafdd',\r\n '#5eafdd',\r\n '#5fb1dd',\r\n '#5fb1dd',\r\n '#5fafdd',\r\n '#5fafdd',\r\n '#60b1dd',\r\n '#60b1dd',\r\n '#60b1dd',\r\n '#60b1dd',\r\n '#60b1dd',\r\n '#61b1de',\r\n '#61b1de',\r\n '#61b1de',\r\n '#61b1de',\r\n '#61b2dd',\r\n '#61b2dd',\r\n '#62b2dd',\r\n '#62b2de',\r\n '#62b2de',\r\n '#62b2de',\r\n '#63b3dd',\r\n '#63b4de',\r\n '#63b4df',\r\n '#63b4df',\r\n '#63b3df',\r\n '#63b4de',\r\n '#63b4de',\r\n '#63b4df',\r\n '#63b5df',\r\n '#64b6df',\r\n '#64b6df',\r\n '#64b6df',\r\n '#64b5de',\r\n '#65b6e0',\r\n '#65b7e0',\r\n '#65b7df',\r\n '#65b6e0',\r\n '#65b6e0',\r\n '#65b6df',\r\n '#66b6df',\r\n '#67b7e0',\r\n '#67b8e0',\r\n '#66b8df',\r\n '#66b8e0',\r\n '#67b8df',\r\n '#67b7df',\r\n '#67b8e0',\r\n '#67b9e0',\r\n '#67b8e0',\r\n '#68b9e1',\r\n '#69bae1',\r\n '#69bae1',\r\n '#68b8e0',\r\n '#69b9e0',\r\n '#69bae0',\r\n '#69bae0',\r\n '#6abbe1',\r\n '#69bbe0',\r\n '#69bbe0',\r\n '#69bbe1',\r\n '#6abce1',\r\n '#6abbe0',\r\n '#6abbe0',\r\n '#6abbe1',\r\n '#6abce1',\r\n '#6abce2',\r\n '#6bbde2',\r\n '#6bbee1',\r\n '#6cbde2',\r\n '#6cbde2',\r\n '#6bbde1',\r\n '#6cbde1',\r\n '#6cbde2',\r\n '#6cbde2',\r\n '#6cbde2',\r\n '#6cbee2',\r\n '#6cbee2',\r\n '#6dbfe2',\r\n '#6dbfe2',\r\n '#6dbee2',\r\n '#6ebee3',\r\n '#6fbfe3',\r\n '#6fc0e3',\r\n '#6fc0e2',\r\n '#6ebfe3',\r\n '#6ec0e3',\r\n '#6ec1e3',\r\n '#6ec1e3',\r\n '#6ec1e4',\r\n '#6fc0e3',\r\n '#70c1e3',\r\n '#70c2e3',\r\n '#70c2e4',\r\n '#6fc1e3',\r\n '#6fc1e3',\r\n '#70c2e3',\r\n '#71c2e4',\r\n '#70c3e4',\r\n '#70c2e4',\r\n '#70c2e4',\r\n '#72c4e4',\r\n '#72c4e4',\r\n '#71c2e4',\r\n '#71c2e4',\r\n '#73c4e4',\r\n '#72c3e4',\r\n '#72c3e4',\r\n '#72c3e4',\r\n '#72c4e4',\r\n '#73c5e4',\r\n '#73c5e4',\r\n '#72c5e4',\r\n '#73c6e4',\r\n '#73c5e4',\r\n '#73c6e4',\r\n '#74c7e5',\r\n '#73c6e4',\r\n '#75c8e5',\r\n '#74c7e5',\r\n '#74c7e5',\r\n '#74c6e5',\r\n '#75c6e5',\r\n '#76c7e5',\r\n '#75c7e5',\r\n '#76c8e5',\r\n '#75c8e5',\r\n '#75c8e6',\r\n '#76c8e6',\r\n '#77c8e5',\r\n '#76c9e6',\r\n '#76c9e5',\r\n '#76c9e5',\r\n '#77cae6',\r\n '#77c9e6',\r\n '#77c9e6',\r\n '#77c9e6',\r\n '#78cae6',\r\n '#77cbe7',\r\n '#77cbe7',\r\n '#78cbe7',\r\n '#78cbe7',\r\n '#79cae6',\r\n '#78cae6',\r\n '#78cbe7',\r\n '#78cae6',\r\n '#79cae6',\r\n '#7acce6',\r\n '#7acde7',\r\n '#7acbe7',\r\n '#79cce6',\r\n '#79cee7',\r\n '#7acee8',\r\n '#7acde8',\r\n '#79cde7',\r\n '#7acde7',\r\n '#7bcee8',\r\n '#7acee7',\r\n '#7acfe7',\r\n '#7acee7',\r\n '#7ccee8',\r\n '#7bcee7',\r\n '#7bcfe7',\r\n '#7bcfe7',\r\n '#7bcfe8',\r\n '#7dd0e9',\r\n '#7dd0e9',\r\n '#7ccfe8',\r\n '#7ccfe8',\r\n '#7cd1e8',\r\n '#7cd1e8',\r\n '#7cd0e8',\r\n '#7cd0e8',\r\n '#7dd1e8',\r\n '#7dd2e9',\r\n '#7dd2e9',\r\n '#7ed2e9',\r\n '#7dd1e8',\r\n '#7dd2e8',\r\n '#7fd3ea',\r\n '#7fd3ea',\r\n '#7ed3e9',\r\n '#7ed2ea',\r\n '#80d2ea',\r\n '#7fd3e9',\r\n '#7fd2e9',\r\n '#80d4ea',\r\n '#80d5ea',\r\n '#7fd4e9',\r\n '#7fd4e9',\r\n '#80d4e9',\r\n '#81d6ea',\r\n '#81d6eb',\r\n '#80d4ea',\r\n '#80d5ea',\r\n '#80d6ea',\r\n '#80d5ea',\r\n '#81d6ea',\r\n '#81d6ea',\r\n '#82d6ea',\r\n '#82d7ea',\r\n '#82d8ea',\r\n '#81d6ea',\r\n '#81d6ea',\r\n '#82d8ea',\r\n '#82d7eb',\r\n '#82d8eb',\r\n '#82d8eb',\r\n '#82d7eb',\r\n '#83d9eb',\r\n '#84d9ec',\r\n '#84d9ec',\r\n '#83d8eb',\r\n '#83d8eb',\r\n '#85d8eb',\r\n '#85d9eb',\r\n '#84daeb',\r\n '#85daeb',\r\n '#85dbec',\r\n '#85dbec',\r\n '#84daec',\r\n '#85dbec',\r\n '#86dbec',\r\n '#86dbec',\r\n '#85dbec',\r\n '#85dbec',\r\n '#85dbec',\r\n '#85dcec',\r\n '#86ddec',\r\n '#86dceb',\r\n '#86dceb',\r\n '#87ddec',\r\n '#86dced',\r\n '#86dcec',\r\n '#86deec',\r\n '#86deed',\r\n '#87ddec',\r\n '#87deed',\r\n '#87dfec',\r\n '#87deec',\r\n '#88deed',\r\n '#89deec',\r\n '#88deec',\r\n '#88dfed',\r\n '#88dfec',\r\n '#89e0ed',\r\n '#89e0ee',\r\n '#88dfee',\r\n '#89e0ee',\r\n '#88dfed',\r\n '#88dfed',\r\n '#8ae1ee',\r\n '#89e1ed',\r\n '#8ae2ee',\r\n '#8ae2ee',\r\n '#8ae2ee',\r\n '#8ae1ee',\r\n '#8be3ee',\r\n '#8be3ee',\r\n '#8be2ee',\r\n '#8be2ee',\r\n '#8be2ef',\r\n '#8ce2ef',\r\n '#8ce3ef',\r\n '#8be3ee',\r\n '#8ce4ef',\r\n '#8be3ef',\r\n '#8be3ee',\r\n '#8de5ef',\r\n '#8de4ef',\r\n '#8de4ef',\r\n '#8de5ef',\r\n '#8ce4ef',\r\n '#8de4ef',\r\n '#8de4ef',\r\n '#8de4f0',\r\n '#8ee6f0',\r\n '#8ee6f0',\r\n '#8ee6ef',\r\n '#8ee6ef',\r\n '#8de7ef',\r\n '#8de6ef',\r\n '#8fe7f0',\r\n '#8fe8f1',\r\n '#8ee6ef',\r\n '#8ee6ef',\r\n '#8ee8f1',\r\n '#8fe8f1',\r\n '#8fe7f0',\r\n '#90e8f1',\r\n '#90e8f1',\r\n '#8fe8f0',\r\n '#90eaf1',\r\n '#8fe9f0',\r\n '#8fe9f0',\r\n '#90eaf1',\r\n '#90eaf1',\r\n '#91eaf1',\r\n '#91eaf1',\r\n '#91eaf1',\r\n '#92ebf2',\r\n '#91eaf1',\r\n ],\r\n nullColor: 'pink',\r\n}\r\n\r\nexport const gradients: Record = {\r\n [ScaleId.IntradayReduced]: redGreenGradient,\r\n [ScaleId.DayPerf]: redGreenGradient,\r\n _5: redGreenGradient,\r\n _10: redGreenGradient,\r\n _15: redGreenGradient,\r\n _20: redGreenGradient,\r\n _25: redGreenGradient,\r\n _relvol: blueGradient,\r\n _pe: greenRedGradient,\r\n _fpe: greenRedGradient,\r\n _peg: greenRedGradient,\r\n _ps: greenRedGradient,\r\n _pb: greenRedGradient,\r\n _div: greenGradient,\r\n _eps5y: redGreenGradient,\r\n _short: redGradient,\r\n _rec: redGreenGradient,\r\n _earndate: earningsGradient,\r\n _portfolioPct: redGreenGradient,\r\n _portfolioUsd: redGreenGradient,\r\n}\r\n\r\nexport const bubbleGradients: Record = {\r\n [ScaleId.IntradayReduced]: redGreenGradientBubbles,\r\n [ScaleId.DayPerf]: redGreenGradientBubbles,\r\n _5: redGreenGradientBubbles,\r\n _10: redGreenGradientBubbles,\r\n _15: redGreenGradientBubbles,\r\n _20: redGreenGradientBubbles,\r\n _25: redGreenGradientBubbles,\r\n _relvol: blueGradientBubbles,\r\n _pe: redGreenGradientBubbles,\r\n _fpe: redGreenGradientBubbles,\r\n _peg: redGreenGradientBubbles,\r\n _ps: redGreenGradientBubbles,\r\n _pb: redGreenGradientBubbles,\r\n _div: redGreenGradientBubbles,\r\n _eps5y: redGreenGradientBubbles,\r\n _short: redGreenGradientBubbles, // TODO red skala\r\n _rec: redGreenGradientBubbles,\r\n _earndate: redGreenGradientBubbles,\r\n _portfolioPct: redGreenGradientBubbles,\r\n _portfolioUsd: redGreenGradientBubbles,\r\n}\r\n\r\nexport const gradientSmall = redGreenGradientSmall\r\n","/**\r\n * Load image before we can render it in canvas\r\n */\r\nexport function loadImage(src: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n var image = new Image()\r\n\r\n image.onload = function () {\r\n resolve(image)\r\n }\r\n\r\n image.onerror = function () {\r\n reject()\r\n }\r\n\r\n image.src = src\r\n })\r\n}\r\n","export function getScaleRatio() {\r\n return window.devicePixelRatio ?? 1\r\n}\r\n\r\nexport function retinafy(\r\n canvas: HTMLCanvasElement | undefined | null,\r\n context: CanvasRenderingContext2D | undefined,\r\n width: number,\r\n height: number\r\n) {\r\n if (!canvas || !context) return\r\n\r\n const ratio = getScaleRatio()\r\n\r\n canvas.width = width * ratio\r\n canvas.height = height * ratio\r\n canvas.style.width = width + 'px'\r\n canvas.style.height = height + 'px'\r\n context.scale(ratio, ratio)\r\n\r\n return ratio\r\n}\r\n","import { setCookieRequest } from '../../main/services/api'\r\nimport { decodeQueryString, encodeQueryString } from '../queryString'\r\nimport { getCookie, setCookie } from './cookie'\r\n\r\nexport const formatDateToStringUS = (date: Date) =>\r\n date.toLocaleDateString('en-US', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n })\r\n\r\nconst DRAWING_QUOTE_PAGE_COOKIE_NAME = 'charts-draw'\r\nexport function getIsDrawingEnabledOnQuotePage() {\r\n return getCookie(DRAWING_QUOTE_PAGE_COOKIE_NAME) === 'on'\r\n}\r\n\r\nexport async function setIsDrawingEnabledOnQuotePage(isEnabled: boolean) {\r\n return setCookieRequest(DRAWING_QUOTE_PAGE_COOKIE_NAME, isEnabled ? 'on' : 'off')\r\n .catch(() => {\r\n // fallback to JS otherwise draw toggle won't work if API doesn't work\r\n setIsDrawingEnabledOnQuotePageCookieViaJS(isEnabled)\r\n })\r\n .finally(() => {\r\n const { i: idea, ...rest } = decodeQueryString()\r\n if (idea) {\r\n document.location = `quote.ashx?${encodeQueryString(rest)}`\r\n } else {\r\n document.location.reload()\r\n }\r\n })\r\n}\r\n\r\nfunction setIsDrawingEnabledOnQuotePageCookieViaJS(isEnabled: boolean) {\r\n const expires = new Date()\r\n expires.setMonth(expires.getMonth() + 1)\r\n setCookie(DRAWING_QUOTE_PAGE_COOKIE_NAME, isEnabled ? 'on' : 'off', expires)\r\n}\r\n\r\nexport function parseInitData(elementId: string): T | undefined {\r\n try {\r\n const initDataElement = document.getElementById(elementId)!\r\n return JSON.parse(initDataElement.textContent!)\r\n } catch (e) {\r\n Sentry.captureException(e)\r\n return\r\n }\r\n}\r\n\r\nexport function getSidebarFromCookie() {\r\n const chartsUrl = getCookie('chartsUrl')\r\n const decodedCookie = chartsUrl ? decodeQueryString<{ sidebar?: string }>(chartsUrl) : null\r\n return decodedCookie?.sidebar || undefined\r\n}\r\n","import classnames from 'classnames'\r\nimport { ForwardedRef, HTMLProps, PropsWithChildren, ReactNode, forwardRef } from 'react'\r\n\r\nimport { Icon } from './icon'\r\n\r\nexport enum ColorVariant {\r\n violet = 'violet',\r\n emerald = 'emerald',\r\n orange = 'orange',\r\n teal = 'teal',\r\n pink = 'pink',\r\n lime = 'lime',\r\n purple = 'purple',\r\n green = 'green',\r\n yellow = 'yellow',\r\n blue = 'blue',\r\n red = 'red',\r\n gray = 'gray',\r\n default = 'default',\r\n dark = 'dark',\r\n}\r\n\r\nexport enum CheckboxSize {\r\n none = '', // Do not set fixed size\r\n small = 'min-h-6 text-2xs', // 24px\r\n regular = 'min-h-7 text-sm', // 28px\r\n}\r\nexport type CheckboxSizeType = keyof typeof CheckboxSize\r\n\r\ninterface CheckboxProps extends Omit, 'label' | 'size'> {\r\n /**\r\n * Text that gets displayed on the right side of the checkbox\r\n */\r\n label?: ReactNode\r\n\r\n checked: boolean\r\n\r\n /**\r\n * Size of the checkbox\r\n *\r\n * @default \"regular\"\r\n */\r\n size?: CheckboxSizeType\r\n\r\n /**\r\n * Color of the checkbox\r\n *\r\n * @default \"default\"\r\n */\r\n color?: ColorVariant\r\n}\r\n\r\nfunction CheckboxComponent(\r\n {\r\n className,\r\n label,\r\n size = 'regular',\r\n color = ColorVariant.default,\r\n children,\r\n ...props\r\n }: PropsWithChildren,\r\n ref: ForwardedRef\r\n) {\r\n const checked = props.checked ?? props.defaultChecked\r\n\r\n return (\r\n \r\n
\r\n \r\n {checked && (\r\n \r\n )}\r\n
\r\n {label ?? children}\r\n \r\n )\r\n}\r\n\r\nexport const Checkbox = forwardRef(CheckboxComponent)\r\n","import classnames from 'classnames'\r\nimport { HTMLProps, PropsWithChildren, memo, useCallback, useLayoutEffect, useRef, useState } from 'react'\r\n\r\nexport interface Interaction {\r\n left: number\r\n top: number\r\n}\r\n\r\n/**\r\n * Clamp value between two bounds\r\n */\r\nfunction clamp(num: number, min = 0, max = 1) {\r\n return num > max ? max : num < min ? min : num\r\n}\r\n\r\n/**\r\n * Check if an event was triggered by touch\r\n */\r\nfunction isTouch(event: MouseEvent | TouchEvent): event is TouchEvent {\r\n return 'touches' in event\r\n}\r\n\r\n/**\r\n * Returns a relative position of the pointer inside the node's bounding box\r\n */\r\nfunction getRelativePosition(node: HTMLDivElement, event: MouseEvent | TouchEvent): Interaction {\r\n const rect = node.getBoundingClientRect()\r\n\r\n // Get user's pointer position from `touches` array if it's a `TouchEvent`\r\n const pointer = isTouch(event) ? event.touches[0] : (event as MouseEvent)\r\n\r\n return {\r\n left: clamp((pointer.pageX - (rect.left + window.pageXOffset)) / rect.width),\r\n top: clamp((pointer.pageY - (rect.top + window.pageYOffset)) / rect.height),\r\n }\r\n}\r\n\r\n/**\r\n * Browsers introduced an intervention, making touch events passive by default.\r\n * This workaround removes `preventDefault` call from the touch handlers.\r\n * @see https://github.com/facebook/react/issues/19651\r\n */\r\nfunction preventDefaultMove(event: MouseEvent | TouchEvent) {\r\n !isTouch(event) && event.preventDefault()\r\n}\r\n\r\ninterface Props {\r\n onMove: (interaction: Interaction) => void\r\n onKey: (offset: Interaction) => void\r\n}\r\n\r\nfunction DraggablePickerComponent({\r\n onMove,\r\n onKey,\r\n className,\r\n ...props\r\n}: PropsWithChildren & HTMLProps) {\r\n const container = useRef(null)\r\n const hasTouched = useRef(false)\r\n const [isDragging, setDragging] = useState(false)\r\n\r\n /**\r\n * Prevent mobile browsers from handling mouse events (conflicting with touch ones).\r\n * If we detected a touch interaction before, we prefer reacting to touch events only.\r\n */\r\n const isValid = useRef((event: MouseEvent | TouchEvent): boolean => {\r\n if (hasTouched.current && !isTouch(event)) return false\r\n if (!hasTouched.current) hasTouched.current = isTouch(event)\r\n return true\r\n })\r\n\r\n const handleMove = useCallback(\r\n (event: MouseEvent | TouchEvent) => {\r\n preventDefaultMove(event)\r\n\r\n // If user moves the pointer outside of the window or iframe bounds and release it there,\r\n // `mouseup`/`touchend` won't be fired. In order to stop the picker from following the cursor\r\n // after the user has moved the mouse/finger back to the document, we check `event.buttons`\r\n // and `event.touches`. It allows us to detect that the user is just moving his pointer\r\n // without pressing it down\r\n const isDown = isTouch(event) ? event.touches.length > 0 : event.buttons > 0\r\n\r\n if (isDown && container.current) {\r\n onMove(getRelativePosition(container.current, event))\r\n } else {\r\n setDragging(false)\r\n }\r\n },\r\n [onMove]\r\n )\r\n\r\n const handleMoveStart = useCallback(\r\n ({ nativeEvent }: React.MouseEvent | React.TouchEvent) => {\r\n preventDefaultMove(nativeEvent)\r\n\r\n if (!isValid.current(nativeEvent)) return\r\n\r\n // The node/ref must actually exist when user start an interaction.\r\n // We won't suppress the ESLint warning though, as it should probably be something to be aware of.\r\n onMove(getRelativePosition(container.current!, nativeEvent))\r\n setDragging(true)\r\n },\r\n [onMove]\r\n )\r\n\r\n const handleKeyDown = useCallback(\r\n (event: React.KeyboardEvent) => {\r\n const keyCode = event.which || event.keyCode\r\n\r\n // Ignore all keys except arrow ones\r\n if (keyCode < 37 || keyCode > 40) return\r\n // Do not scroll page by arrow keys when document is focused on the element\r\n event.preventDefault()\r\n // Send relative offset to the parent component.\r\n // We use codes (37←, 38↑, 39→, 40↓) instead of keys ('ArrowRight', 'ArrowDown', etc)\r\n // to reduce the size of the library\r\n onKey({\r\n left: keyCode === 39 ? 0.05 : keyCode === 37 ? -0.05 : 0,\r\n top: keyCode === 40 ? 0.05 : keyCode === 38 ? -0.05 : 0,\r\n })\r\n },\r\n [onKey]\r\n )\r\n\r\n const handleMoveEnd = useCallback(() => setDragging(false), [])\r\n\r\n const toggleDocumentEvents = useCallback(\r\n (state: boolean) => {\r\n // add or remove additional pointer event listeners\r\n const toggleEvent = state ? window.addEventListener : window.removeEventListener\r\n toggleEvent(hasTouched.current ? 'touchmove' : 'mousemove', handleMove)\r\n toggleEvent(hasTouched.current ? 'touchend' : 'mouseup', handleMoveEnd)\r\n },\r\n [handleMove, handleMoveEnd]\r\n )\r\n\r\n useLayoutEffect(() => {\r\n toggleDocumentEvents(isDragging)\r\n return () => {\r\n isDragging && toggleDocumentEvents(false)\r\n }\r\n }, [isDragging, toggleDocumentEvents])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const DraggablePicker = memo(DraggablePickerComponent)\r\n","interface PointerProps {\r\n className?: string\r\n top?: number\r\n left: number\r\n color: string\r\n}\r\n\r\nexport function Pointer({ color, left, top = 0.5 }: PointerProps) {\r\n return (\r\n \r\n
\r\n
\r\n )\r\n}\r\n","/**\r\n * Keep this file in sync with `app/utils/colors.ts` in charts repo\r\n * */\r\n\r\nexport interface RGBA {\r\n r: number\r\n g: number\r\n b: number\r\n a: number\r\n}\r\n\r\nexport interface HSVA {\r\n h: number\r\n s: number\r\n v: number\r\n a: number\r\n}\r\n\r\nexport interface HSLA {\r\n h: number\r\n s: number\r\n l: number\r\n a: number\r\n}\r\n\r\n/**\r\n * Convert Hex string to RGBA object.\r\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\r\n *\r\n * Input: color in hex3, hex4, hex6 or hex8 format (#fff)\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hexStringToRGBA(hexString: string): RGBA {\r\n const hexColor = removeHashSymbol(hexString)\r\n let r: string | number = 0\r\n let g: string | number = 0\r\n let b: string | number = 0\r\n let a: string | number = 255\r\n\r\n // 3 digits\r\n if (hexColor.length === 3 || hexColor.length === 4) {\r\n r = '0x' + hexColor[0] + hexColor[0]\r\n g = '0x' + hexColor[1] + hexColor[1]\r\n b = '0x' + hexColor[2] + hexColor[2]\r\n // Get channel if defined\r\n a = hexColor.length === 4 ? '0x' + hexColor[3] + hexColor[3] : a\r\n\r\n // 6 digits\r\n } else if (hexColor.length === 6 || hexColor.length === 8) {\r\n r = '0x' + hexColor[0] + hexColor[1]\r\n g = '0x' + hexColor[2] + hexColor[3]\r\n b = '0x' + hexColor[4] + hexColor[5]\r\n // Get channel if defined\r\n a = hexColor.length === 8 ? '0x' + hexColor[6] + hexColor[7] : a\r\n }\r\n\r\n return { r: Number(r), g: Number(g), b: Number(b), a: Math.min(Math.round((Number(a) / 255) * 100) / 100, 1) }\r\n}\r\n\r\n/**\r\n * Convert HEX string to HSVA color representation.\r\n *\r\n * Input: color in hex3, hex4, hex6 or hex8 format (#fff)\r\n *\r\n * Output: { h: [0,360], s: [0,1], v: [0,1], a: [0,1]}\r\n */\r\nexport function hexStringToHSVA(hexString: string) {\r\n return rgbaToHSVA(hexStringToRGBA(hexString))\r\n}\r\n\r\n/**\r\n * Convert HEX string to HSLA color representation.\r\n *\r\n * Input: color in hex3, hex4, hex6 or hex8 format (#fff)\r\n *\r\n * Output: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n */\r\nexport function hexStringToHSLA(hexString: string) {\r\n return rgbaToHSLA(hexStringToRGBA(hexString))\r\n}\r\n\r\n/**\r\n * Convert alpha value to hex value\r\n *\r\n * Input: [0,1]\r\n *\r\n * Output: alpha in HEX format\r\n */\r\nexport function alphaToHex(alpha: number) {\r\n return Math.max(Math.min(Math.round(alpha * 255), 255), 0)\r\n .toString(16)\r\n .padStart(2, '0')\r\n}\r\n\r\n/**\r\n * Convert RGBA color to HEX string.\r\n *\r\n * Input: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n *\r\n * Output: color in hex6 or hex8 depending on whether or not alpha is enabled\r\n */\r\nexport function rgbaToHexString(color: RGBA, alpha = false) {\r\n const r = color.r.toString(16)\r\n const g = color.g.toString(16)\r\n const b = color.b.toString(16)\r\n const hexString = '#' + r.padStart(2, '0') + g.padStart(2, '0') + b.padStart(2, '0')\r\n\r\n if (!alpha || color.a === 1) {\r\n return hexString\r\n }\r\n\r\n return `${hexString}${alphaToHex(color.a)}`\r\n}\r\n\r\n/**\r\n * Convert HSVA object to HEX string\r\n *\r\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\r\n *\r\n * Input: { h: [0,360], s: [0,1], v: [0,1], a: [0,1]}\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hsvaToHEXString(color: HSVA, alpha = false) {\r\n const rgbaColor = hsvaToRGBA(color)\r\n\r\n return rgbaToHexString(rgbaColor, alpha)\r\n}\r\n\r\n/**\r\n * Convert HSLA object to HEX string\r\n *\r\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\r\n *\r\n * Input: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hslaToHexString(color: HSLA, alpha = false) {\r\n const rgbaColor = hslaToRGBA(color)\r\n\r\n return rgbaToHexString(rgbaColor, alpha)\r\n}\r\n\r\n/**\r\n * Convert RGBA color to HSVA\r\n * @see https://stackoverflow.com/a/54070620/6662683\r\n *\r\n * Input: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n *\r\n * Output: { h: [0,360], s: [0,1], v: [0,1], a: [0,1]}\r\n */\r\nexport function rgbaToHSVA(color: RGBA): HSVA {\r\n const r = color.r / 255\r\n const g = color.g / 255\r\n const b = color.b / 255\r\n\r\n const v = Math.max(r, g, b)\r\n const c = v - Math.min(r, g, b)\r\n const h = c && (v === r ? (g - b) / c : v === g ? 2 + (b - r) / c : 4 + (r - g) / c)\r\n\r\n return {\r\n h: 60 * (h < 0 ? h + 6 : h),\r\n s: v ? c / v : 0,\r\n v: v,\r\n a: color.a,\r\n }\r\n}\r\n\r\n/**\r\n * Convert RGBA to HSLA\r\n * @see https://stackoverflow.com/a/54071699/6662683\r\n *\r\n * Input: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n *\r\n * Output: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n */\r\nexport function rgbaToHSLA(color: RGBA): HSLA {\r\n const r = color.r / 255\r\n const g = color.g / 255\r\n const b = color.b / 255\r\n\r\n const v = Math.max(r, g, b)\r\n const c = v - Math.min(r, g, b)\r\n const f = 1 - Math.abs(v + v - c - 1)\r\n const h = c && (v === r ? (g - b) / c : v === g ? 2 + (b - r) / c : 4 + (r - g) / c)\r\n\r\n return {\r\n h: 60 * (h < 0 ? h + 6 : h),\r\n s: f ? c / f : 0,\r\n l: (v + v - c) / 2,\r\n a: color.a,\r\n }\r\n}\r\n\r\n/**\r\n * Convert HSVA color to RGBA\r\n * @see https://stackoverflow.com/a/54024653/6662683\r\n *\r\n * Input: { h: [0,360], s: [0,1], v: [0,1], a: [0,1]}\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hsvaToRGBA(color: HSVA): RGBA {\r\n const f = (n: number, k = (n + color.h / 60) % 6) => color.v - color.v * color.s * Math.max(Math.min(k, 4 - k, 1), 0)\r\n\r\n return {\r\n r: Math.round(f(5) * 255),\r\n g: Math.round(f(3) * 255),\r\n b: Math.round(f(1) * 255),\r\n a: Math.round(color.a * 100) / 100,\r\n }\r\n}\r\n\r\n/**\r\n * Convert HSLA color to RGBA\r\n * @see https://stackoverflow.com/a/54014428/6662683\r\n *\r\n * Input: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hslaToRGBA(color: HSLA): RGBA {\r\n const a = color.s * Math.min(color.l, 1 - color.l)\r\n const f = (n: number, k = (n + color.h / 30) % 12) => color.l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1)\r\n\r\n return {\r\n r: Math.round(f(0) * 255),\r\n g: Math.round(f(8) * 255),\r\n b: Math.round(f(4) * 255),\r\n a: color.a,\r\n }\r\n}\r\n\r\n/**\r\n * Convert RGBA color to rgba() string\r\n *\r\n * Input: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n *\r\n * Output: rgba(r, g, b, a)\r\n */\r\nexport function rgbaToRGBAString(color: RGBA) {\r\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a})`\r\n}\r\n\r\n/**\r\n * Convert rgba() string to RGBA color\r\n *\r\n * Input: rgba(r, g, b, a)\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function rgbaStringToObject(color: string) {\r\n const colorParts = /^rgba?\\(([0-9]{1,3})[ ,]+([0-9]{1,3})[ ,]+([0-9]{1,3})[ ,]*([01].?[0-9]*)?\\)$/.exec(color)\r\n const [red, green, blue, alpha = '1'] = colorParts?.slice(1) || [0, 0, 0, 1].map(String)\r\n return {\r\n r: Number.parseInt(red),\r\n g: Number.parseInt(green),\r\n b: Number.parseInt(blue),\r\n a: Number.parseFloat(alpha),\r\n }\r\n}\r\n\r\n/**\r\n * Convert HSLA color to hsla() string\r\n *\r\n * Input: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n *\r\n * Output: hsla(h, s, l, a)\r\n */\r\nexport function hslaToHSLAString(color: HSLA) {\r\n return `hsla(${Math.round(color.h)}, ${Math.round(color.s * 10000) / 100}%, ${Math.round(color.l * 10000) / 100}%, ${\r\n color.a\r\n })`\r\n}\r\n\r\nexport function removeHashSymbol(strColor: string) {\r\n return strColor.replace(/#/g, '')\r\n}\r\n\r\n/**\r\n * Check if the param is a valid color by setting it as style\r\n */\r\nexport function isValidColor(strColor: string) {\r\n const isRgb = strColor.startsWith('rgba')\r\n const s = new Option().style\r\n\r\n s.color = isRgb ? strColor : `#${removeHashSymbol(strColor)}`\r\n\r\n return s.color !== ''\r\n}\r\n\r\n/**\r\n * Normalize color to be a hex value\r\n */\r\nexport function convertColorToHEX(strColor: string) {\r\n const isRgb = getIsRgb(strColor)\r\n\r\n if (isRgb) {\r\n return rgbaToHexString(rgbaStringToObject(strColor), true)\r\n }\r\n\r\n return strColor\r\n}\r\n\r\n/**\r\n * Returns true if color is rgb or rgba\r\n */\r\nexport function getIsRgb(strColor: string, isAlphaAllowed = true) {\r\n const rgbKeys = ['rgb']\r\n if (isAlphaAllowed) {\r\n rgbKeys.push('rgba')\r\n }\r\n return rgbKeys.some((startsWith) => strColor.startsWith(startsWith))\r\n}\r\n\r\n/**\r\n * Convert any color format to HSVA (internal color picker representation)\r\n */\r\nexport function getHSVAFromColor(strColor: string) {\r\n if (getIsRgb(strColor)) {\r\n return rgbaToHSVA(rgbaStringToObject(strColor))\r\n }\r\n\r\n return hexStringToHSVA(strColor)\r\n}\r\n\r\n/**\r\n * Stringify HSVA color representation into a output format\r\n */\r\nexport function stringifyHSVAColor(color: HSVA, output: 'rgba' | 'hex', canSelectAlpha?: boolean) {\r\n switch (output) {\r\n case 'rgba':\r\n return rgbaToRGBAString(hsvaToRGBA(color))\r\n default:\r\n return hsvaToHEXString(color, canSelectAlpha)\r\n }\r\n}\r\n\r\n/**\r\n * Get luma value from RGBA color using the Rec. 709 coefficients\r\n * @see https://en.wikipedia.org/wiki/Luma_%28video%29\r\n *\r\n * If luma is >= 165 the foreground color should be dark\r\n */\r\nexport function getLumaFromRGBA(color: RGBA) {\r\n return 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b\r\n}\r\n\r\n/**\r\n * Checks if luma is >= 165 or alpha < 0.3\r\n */\r\nexport function getIsColorTooLightOrTransparent(color: RGBA) {\r\n return getLumaFromRGBA(color) >= 165 || color.a < 0.5\r\n}\r\n\r\n/**\r\n * Set specific alpha for a hex color\r\n */\r\nexport function getHEXWithSpecificAplha(color: string, alpha = 1) {\r\n const rgbaColor = hexStringToRGBA(color)\r\n return rgbaToHexString({ ...rgbaColor, a: alpha }, true)\r\n}\r\n\r\n/**\r\n * Get rgba from valid color string\r\n */\r\nexport function getRGBAValueFromValidColorString(value: string) {\r\n if (getIsRgb(value)) return rgbaToRGBAString(rgbaStringToObject(value))\r\n return rgbaToRGBAString(hexStringToRGBA(value))\r\n}\r\n","import { useCallback, useMemo } from 'react'\r\n\r\nimport { DraggablePicker, Interaction } from './draggable'\r\nimport { Pointer } from './pointer'\r\nimport { HSVA, hsvaToHEXString } from './util'\r\n\r\ninterface LightnessProps {\r\n color: HSVA\r\n onChange: (color: HSVA) => void\r\n}\r\n\r\nexport function Alpha({ color, onChange }: LightnessProps) {\r\n const changeLightness = useCallback((pos: Interaction) => onChange({ ...color, a: 1 - pos.left }), [onChange, color])\r\n\r\n const gradientPreview = useMemo(() => {\r\n const gradientFrom = hsvaToHEXString({ ...color, a: 1 })\r\n const gradientTo = hsvaToHEXString({ ...color, a: 0 }, true)\r\n\r\n return `linear-gradient(90deg, ${gradientFrom}, ${gradientTo})`\r\n // Don’t recalculate when alpha changes\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [color.h, color.s, color.v])\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n","import { Icon } from '../icon'\r\nimport { HSVA, hexStringToHSVA } from './util'\r\n\r\nconst DEFAULT_COLORS = [\r\n { title: 'Rose', value: '#f43f5e' },\r\n { title: 'Pink', value: '#db2777' },\r\n { title: 'Fuchsia', value: '#c026d3' },\r\n { title: 'Purple', value: '#9333ea' },\r\n { title: 'Violet', value: '#7c3aed' },\r\n { title: 'Indigo', value: '#4f46e5' },\r\n { title: 'Blue', value: '#2563eb' },\r\n { title: 'Light Blue', value: '#0284c7' },\r\n { title: 'Cyan', value: '#0891b2' },\r\n { title: 'Teal', value: '#0d9488' },\r\n { title: 'Emerald', value: '#059669' },\r\n { title: 'Green', value: '#16a34a' },\r\n { title: 'Lime', value: '#65a30d' },\r\n { title: 'Yellow', value: '#eab308' },\r\n { title: 'Amber', value: '#d97706' },\r\n { title: 'Red', value: '#dc2626' },\r\n]\r\n\r\ninterface ColorItem {\r\n /**\r\n * Name of the color\r\n */\r\n title: string\r\n\r\n /**\r\n * Hex value\r\n */\r\n value: string\r\n}\r\n\r\ninterface ColorPaletteProps {\r\n /**\r\n * Current selected color in HEX format (supports HEX8 for alpha)\r\n */\r\n color: string\r\n\r\n /**\r\n * List of colors to display in the palette\r\n *\r\n * @default DEFAULT_COLORS\r\n */\r\n colors?: ColorItem[]\r\n\r\n /**\r\n * Callback when user picks a color\r\n */\r\n onChange: (color: string, originalColor: HSVA) => void\r\n}\r\n\r\nexport function ColorPalette({ color, colors = DEFAULT_COLORS, onChange }: ColorPaletteProps) {\r\n const lowerCaseColor = color.toLowerCase()\r\n\r\n return (\r\n
\r\n {colors.map((colorObj) => {\r\n const isSelected = lowerCaseColor.startsWith(colorObj.value)\r\n return (\r\n onChange(colorObj.value, hexStringToHSVA(colorObj.value))}\r\n >\r\n {isSelected && }\r\n
\r\n )\r\n })}\r\n
\r\n )\r\n}\r\n","import { useCallback, useMemo } from 'react'\r\n\r\nimport { DraggablePicker, Interaction } from './draggable'\r\nimport { Pointer } from './pointer'\r\nimport { HSVA, hsvaToHEXString } from './util'\r\n\r\ninterface HueSaturationProps {\r\n color: HSVA\r\n onChange: (color: HSVA) => void\r\n}\r\n\r\nfunction getPositionFromHSLA(color: HSVA) {\r\n return {\r\n left: color.h / 360,\r\n top: 1 - color.s,\r\n }\r\n}\r\n\r\nexport function HueSaturation({ color, onChange }: HueSaturationProps) {\r\n const position = useMemo(() => getPositionFromHSLA(color), [color])\r\n\r\n const colorPreview = useMemo(() => hsvaToHEXString({ h: color.h, s: color.s, v: 1, a: 1 }), [color.h, color.s])\r\n\r\n const changeSaturation = useCallback(\r\n (pos: Interaction) =>\r\n onChange({\r\n h: Math.round(pos.left * 360),\r\n s: 1 - pos.top,\r\n v: 1,\r\n a: color.a,\r\n }),\r\n [color.a, onChange]\r\n )\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useMemo } from 'react'\r\n\r\nimport { DraggablePicker, Interaction } from './draggable'\r\nimport { Pointer } from './pointer'\r\nimport { HSVA, hsvaToHEXString } from './util'\r\n\r\ninterface LightnessProps {\r\n color: HSVA\r\n onChange: (color: HSVA) => void\r\n}\r\n\r\nexport function Lightness({ color, onChange }: LightnessProps) {\r\n const changeLightness = useCallback((pos: Interaction) => onChange({ ...color, v: 1 - pos.left }), [onChange, color])\r\n\r\n const colorPreview = useMemo(\r\n () => hsvaToHEXString({ h: color.h, s: color.s, v: color.v, a: 1 }),\r\n [color.h, color.s, color.v]\r\n )\r\n\r\n const gradientPreview = useMemo(() => {\r\n const gradientFrom = hsvaToHEXString({ h: color.h, s: color.s, v: 1, a: 1 })\r\n const gradientTo = hsvaToHEXString({ h: color.h, s: color.s, v: 0, a: 1 })\r\n\r\n return `linear-gradient(90deg, ${gradientFrom}, ${gradientTo})`\r\n }, [color.h, color.s])\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { Icon, IconNameType, isValidIconName } from '../icon'\r\nimport { getIsColorTooLightOrTransparent, hexStringToRGBA } from './util'\r\n\r\ninterface ColorPreviewProps {\r\n /**\r\n * Name of an icon or JSX.Element\r\n */\r\n icon?: JSX.Element | IconNameType\r\n\r\n /**\r\n * One or more colors to show in the preview\r\n */\r\n color: string | string[]\r\n\r\n /**\r\n * Wrapper classname\r\n */\r\n className?: string\r\n}\r\n\r\nexport function ColorPreview({ icon, color, className }: ColorPreviewProps) {\r\n const colors = Array.isArray(color) ? color : [color]\r\n const isTooLight = getIsColorTooLightOrTransparent(hexStringToRGBA(colors[0]))\r\n return (\r\n \r\n {icon && (\r\n
\r\n {isValidIconName(icon) ? (\r\n \r\n ) : (\r\n icon\r\n )}\r\n
\r\n )}\r\n {colors.map((color, index) => (\r\n //   has to be there because of a bug on safari which ignores h-full when empty element\r\n
\r\n  \r\n
\r\n ))}\r\n
\r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport React, { ForwardedRef, useCallback, useEffect, useState } from 'react'\r\n\r\nimport { Input, InputComponentProps } from '../input'\r\nimport { ColorPreview } from './color-preview'\r\nimport { ColorPickerProps } from './picker'\r\nimport * as colorUtil from './util'\r\n\r\ninterface PickerInputProps extends Omit {\r\n color: ColorPickerProps['color']\r\n onChange: ColorPickerProps['onChange']\r\n\r\n /*\r\n * Is color preview square visible\r\n *\r\n * @default true\r\n * */\r\n hasColorPreview?: boolean\r\n}\r\nexport const PickerInput = React.forwardRef(\r\n (\r\n { color, inputClass, hasColorPreview = true, onChange, ...props }: PickerInputProps,\r\n ref: ForwardedRef\r\n ) => {\r\n const [colorInput, setColorInput] = useState(colorUtil.removeHashSymbol(color))\r\n const isRgba = colorUtil.getIsRgb(colorInput)\r\n\r\n useEffect(() => {\r\n setColorInput(colorUtil.removeHashSymbol(color))\r\n }, [color])\r\n\r\n const handleColorInputChange = useCallback(\r\n (event: React.KeyboardEvent) => {\r\n const value = colorUtil.removeHashSymbol(event.currentTarget.value)\r\n const isRgba = value.startsWith('rgba')\r\n const colorValue = isRgba ? value : `#${value}`\r\n\r\n setColorInput(value)\r\n if ((value.length >= 6 || (isRgba && value.length >= 16)) && colorUtil.isValidColor(colorValue)) {\r\n onChange(colorValue, colorUtil.hexStringToHSVA(colorValue))\r\n }\r\n },\r\n [onChange]\r\n )\r\n return (\r\n \r\n {hasColorPreview && (\r\n
\r\n \r\n
\r\n )}\r\n {!isRgba && #}\r\n
\r\n }\r\n onChange={handleColorInputChange}\r\n />\r\n )\r\n }\r\n)\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react'\r\n\r\nimport { isMobile } from '../../../app/shared/isMobile'\r\nimport { Button } from '../button'\r\nimport { Popover, PopoverTrigger, usePopoverState } from '../popover'\r\nimport { Alpha } from './alpha'\r\nimport { ColorPalette } from './color-palette'\r\nimport { HueSaturation } from './hue-saturation'\r\nimport { Lightness } from './lightness'\r\nimport { PickerInput } from './picker-input'\r\nimport * as colorUtil from './util'\r\n\r\nexport interface ColorPickerProps {\r\n /**\r\n * The selected color in HEX format (supports HEX8 for alpha)\r\n */\r\n color: string\r\n\r\n /**\r\n * Whether or not the user is able to select custom color\r\n *\r\n * @default true\r\n */\r\n canSelectCustom?: boolean\r\n\r\n /**\r\n * Whether or not the user is able to change alpha channel. Only applicable\r\n * when `canSelectCustom` is true\r\n *\r\n * @default true\r\n */\r\n canSelectAlpha?: boolean\r\n\r\n /**\r\n * Sets the output format for the color picker\r\n *\r\n * @default 'hex'\r\n */\r\n outputFormat?: 'hex' | 'rgba'\r\n\r\n /**\r\n * Callback when user changes color. Use the second parameter to do color space\r\n * conversions otherwise the color could differ due to rounding\r\n */\r\n onChange: (color: string, originalColor: colorUtil.HSVA) => void\r\n\r\n /**\r\n * Callback when user clicks on a palette item. Used to close popover\r\n */\r\n onPaletteItemClick?: () => void\r\n}\r\n\r\nexport function ColorPicker({\r\n color,\r\n canSelectCustom = true,\r\n canSelectAlpha = true,\r\n outputFormat = 'hex',\r\n onChange,\r\n onPaletteItemClick,\r\n}: ColorPickerProps) {\r\n const cachedColor = useRef(color)\r\n const [hsvaColor, setColor] = useState(colorUtil.getHSVAFromColor(color))\r\n const popover = Ariakit.usePopoverContext()\r\n const input = popover?.useState('disclosureElement')\r\n\r\n /**\r\n * Update state if the color from outside changed\r\n */\r\n useEffect(() => {\r\n const currentColor = colorUtil.removeHashSymbol(cachedColor.current)\r\n const newColor = colorUtil.removeHashSymbol(color)\r\n\r\n if (currentColor === newColor || !colorUtil.isValidColor(newColor)) return\r\n\r\n cachedColor.current = color\r\n setColor(colorUtil.getHSVAFromColor(color))\r\n }, [color])\r\n\r\n /**\r\n * Handle color change\r\n * 1. update cache so we can correctly check when outside color updates\r\n * 2. Update internal color representation\r\n * 3. call onChange with string color\r\n */\r\n const onChangeCallback = useCallback(\r\n (color: colorUtil.HSVA) => {\r\n const stringColor = colorUtil.stringifyHSVAColor(color, outputFormat, canSelectAlpha)\r\n cachedColor.current = stringColor\r\n onChange(stringColor, color)\r\n setColor(color)\r\n },\r\n [onChange, canSelectAlpha, outputFormat]\r\n )\r\n\r\n const onSetCustomCodeClick = useCallback(() => {\r\n const value = prompt('Enter a color code')?.trim()\r\n\r\n if (!value) return\r\n\r\n const isValid = colorUtil.isValidColor(value)\r\n\r\n if (!isValid) {\r\n return alert('The code is not a valid color')\r\n }\r\n\r\n onChangeCallback(colorUtil.getHSVAFromColor(value))\r\n }, [onChangeCallback])\r\n\r\n return (\r\n
\r\n {canSelectCustom && (\r\n <>\r\n {isMobile() && (\r\n \r\n )}\r\n \r\n \r\n\r\n {canSelectAlpha && }\r\n \r\n )}\r\n\r\n \r\n {\r\n input?.focus({ preventScroll: true })\r\n onPaletteItemClick?.()\r\n onChangeCallback({ ...orignalColor, a: hsvaColor.a })\r\n }}\r\n />\r\n
\r\n \r\n )\r\n}\r\n\r\ninterface InputColorPickerProps extends ColorPickerProps {\r\n /**\r\n * Label for the input\r\n */\r\n label?: ReactNode\r\n inputDataTestId?: string\r\n}\r\n\r\nexport function InputColorPicker({ label, inputDataTestId, onChange, ...props }: InputColorPickerProps) {\r\n const popoverState = usePopoverState()\r\n const canSelectCustom = props.canSelectCustom !== false\r\n const isMobileDevice = isMobile()\r\n\r\n return (\r\n <>\r\n \r\n }\r\n />\r\n \r\n \r\n {\r\n if (canSelectCustom) return\r\n popoverState.hide()\r\n }}\r\n />\r\n \r\n \r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { isMobile } from '../../../app/shared/isMobile'\r\nimport { Button, ButtonComponentProps, ButtonRounding, ButtonSizeType } from '../button'\r\nimport { ButtonGroup } from '../button-group'\r\nimport { IconNameType } from '../icon'\r\nimport { Popover, PopoverTrigger, usePopoverState } from '../popover'\r\nimport { ColorPreview } from './color-preview'\r\nimport { ColorPicker, ColorPickerProps } from './picker'\r\nimport { PickerInput } from './picker-input'\r\nimport * as colorUtil from './util'\r\n\r\ninterface MultiColorPickerProps extends ColorPickerProps {\r\n /**\r\n * Label for color text input\r\n *\r\n * @default undefined\r\n */\r\n colorInputLabel?: string\r\n}\r\n\r\nexport function MultiColorPicker({\r\n colorInputLabel,\r\n onChange,\r\n canSelectCustom = true,\r\n ...props\r\n}: MultiColorPickerProps) {\r\n const isMobileDevice = isMobile()\r\n\r\n return (\r\n <>\r\n {canSelectCustom && !isMobileDevice && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n {}} />\r\n \r\n \r\n )\r\n}\r\n\r\ninterface ColorTabButtonProps extends ButtonComponentProps {\r\n /*\r\n * Preview color\r\n * */\r\n color: string\r\n}\r\n\r\nexport function ColorTabButton({ color, children, ...props }: ColorTabButtonProps) {\r\n return (\r\n }\r\n {...props}\r\n >\r\n {children}\r\n \r\n )\r\n}\r\n\r\ntype ButtonColorProperties = { color: string; label: string }\r\n\r\ninterface ButtonColorPickerProps\r\n extends Omit {\r\n /**\r\n * Temporary prop to enable/disable multi picker funcionality,\r\n * in the future we'll only use secondaryColor prop to decide if the picker is multi picker or not\r\n *\r\n * @default undefined\r\n */\r\n isMultiPicker?: boolean\r\n\r\n /**\r\n * Button classname\r\n */\r\n className?: string\r\n\r\n /**\r\n * Array of objects with color and value\r\n */\r\n colors: ColorType[]\r\n\r\n /**\r\n * Color onchange callback\r\n */\r\n onChange: (colors: ColorType[], originalColor: colorUtil.HSVA) => void\r\n\r\n /**\r\n * Button size\r\n *\r\n * @default undefined\r\n */\r\n size?: ButtonSizeType\r\n /**\r\n * Label for color text input\r\n *\r\n * @default undefined\r\n */\r\n colorInputLabel?: string\r\n\r\n /**\r\n * Name of an icon or JSX.Element\r\n */\r\n icon?: JSX.Element | IconNameType\r\n\r\n /**\r\n * Identifier for e2e testing\r\n *\r\n * @default undefined\r\n */\r\n buttonPickerDataTestId?: string\r\n}\r\n\r\nexport function ButtonColorPicker({\r\n size,\r\n icon,\r\n colors,\r\n className,\r\n onChange,\r\n buttonPickerDataTestId,\r\n ...props\r\n}: ButtonColorPickerProps) {\r\n const popoverState = usePopoverState()\r\n const isOpen = popoverState.useState('open')\r\n const isMultiPicker = !!props.isMultiPicker && colors.length > 1\r\n const [activeColorIndex, setActiveColorIndex] = React.useState(0)\r\n const handleColorChange = React.useCallback(\r\n (color: string, originalColor: colorUtil.HSVA) => {\r\n onChange(\r\n colors.map((colorObject, index) => (index === activeColorIndex ? { ...colorObject, color } : colorObject)),\r\n originalColor\r\n )\r\n },\r\n [activeColorIndex, colors, onChange]\r\n )\r\n return (\r\n <>\r\n \r\n color)}\r\n className={classnames('h-full w-full', ButtonRounding.small)}\r\n />\r\n \r\n \r\n {isMultiPicker && (\r\n
\r\n \r\n {colors.map(({ color, label }, index) => (\r\n setActiveColorIndex(index)}\r\n >\r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n )}\r\n \r\n
\r\n \r\n )\r\n}\r\n","import copy from 'copy-to-clipboard'\r\nimport React from 'react'\r\n\r\nimport { Button } from '../button'\r\nimport { InputProps, Textarea } from '../input'\r\n\r\ninterface Props extends Pick {\r\n className?: string\r\n text: string\r\n bottomLeftContent?: React.ReactNode\r\n}\r\n\r\nexport const CopyToClipboard: React.FC = ({ className, label, text, bottomLeftContent }) => {\r\n const [isCopied, setIsCopied] = React.useState(false)\r\n\r\n const handleCopyToClipboard = React.useCallback(() => {\r\n setIsCopied(true)\r\n copy(text)\r\n }, [text])\r\n\r\n React.useEffect(() => {\r\n let timeout: number\r\n const resetTimer = () => {\r\n if (!timeout) return\r\n clearTimeout(timeout)\r\n }\r\n if (isCopied) {\r\n resetTimer()\r\n timeout = window.setTimeout(() => {\r\n setIsCopied(false)\r\n }, 2000)\r\n }\r\n\r\n return () => {\r\n resetTimer()\r\n }\r\n }, [isCopied])\r\n\r\n return (\r\n
\r\n e.currentTarget.select()}\r\n inputClass=\"h-12\"\r\n data-testid=\"copy-to-clipboard-textarea\"\r\n value={text}\r\n />\r\n
\r\n {bottomLeftContent &&
{bottomLeftContent}
}\r\n \r\n {isCopied ? 'Copied' : 'Copy'}\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import * as React from 'react'\r\n\r\nexport interface DelayedProps {\r\n /**\r\n * The delay in milliseconds before the component is rendered.\r\n *\r\n * @default 300\r\n */\r\n delay?: number\r\n\r\n /**\r\n * Delay in milliseconds before rendering timeout state.\r\n */\r\n timeout?: number\r\n\r\n /**\r\n * Throw on timeout (suspense)\r\n */\r\n throwOnTimeout?: boolean\r\n\r\n /**\r\n * Component visible during the delay.\r\n * If rendering text, wrap it in a `span` to prevent error — see PR#608\r\n */\r\n delayComponent?: React.ReactNode\r\n\r\n /**\r\n * Component visible when timeout is over.\r\n * If rendering text, wrap it in a `span` to prevent error — see PR#608\r\n */\r\n timeoutComponent?: React.ReactNode\r\n\r\n /**\r\n * Component visible when delay is over.\r\n * If rendering text, wrap it in a `span` to prevent error — see PR#608\r\n */\r\n children?: React.ReactNode\r\n}\r\n\r\nexport function Delayed({\r\n delay = 300,\r\n timeout = 0,\r\n throwOnTimeout = false,\r\n delayComponent,\r\n timeoutComponent,\r\n children,\r\n}: DelayedProps) {\r\n const [visible, setVisible] = React.useState(false)\r\n const [hasTimedOut, setHasTimedOut] = React.useState(false)\r\n\r\n React.useEffect(() => {\r\n const visibilityTimeout = window.setTimeout(() => setVisible(true), delay)\r\n\r\n let failedTimeout: number\r\n if (timeout > 0) {\r\n failedTimeout = window.setTimeout(() => {\r\n setHasTimedOut(true)\r\n if (throwOnTimeout) throw new Error()\r\n }, timeout)\r\n }\r\n\r\n return () => {\r\n clearTimeout(visibilityTimeout)\r\n clearTimeout(failedTimeout)\r\n }\r\n }, [delay, timeout, throwOnTimeout])\r\n\r\n if (!visible) return <>{delayComponent}\r\n\r\n if (hasTimedOut) {\r\n return <>{timeoutComponent}\r\n }\r\n\r\n return <>{children}\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classNames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { usePrevious } from '../../hooks/use-previous'\r\nimport { usePopoverPlacement } from '../../hooks/usePopoverPlacement'\r\nimport { blurWithoutScroll, focusWithoutScroll, preventDefault } from '../../util'\r\n\r\nenum DropdownRounding {\r\n none = '',\r\n regular = 'rounded-lg',\r\n}\r\n\r\nenum DropdownTheme {\r\n none = '',\r\n default = 'border border-primary bg-primary',\r\n}\r\n\r\ninterface StatelessDropdownProps\r\n extends Omit, 'ref'>,\r\n Pick {\r\n /**\r\n * Trigger button for the dropdown\r\n */\r\n trigger: JSX.Element | null\r\n\r\n /**\r\n * Disable interaction with other page elements when the dropdown is open\r\n *\r\n * @default true\r\n */\r\n modal?: boolean\r\n\r\n /**\r\n * When true, the dropdown will show when dropdown is hovered. Combine with\r\n * `backdrop={false}` to make the popover hide on mouse out\r\n */\r\n showOnHover?: boolean\r\n\r\n /**\r\n * Placement of the dropdown\r\n *\r\n */\r\n placement?: Ariakit.MenuProviderProps['placement']\r\n\r\n /**\r\n * Orientation in which the items are laid out. Changes which arrows control next/prev item\r\n *\r\n * @default vertical\r\n */\r\n orientation?: 'vertical' | 'horizontal'\r\n\r\n /**\r\n * Set rounding for the dropdown list\r\n *\r\n * @default regular\r\n */\r\n rounding?: keyof typeof DropdownRounding\r\n\r\n /**\r\n * Dropdown theme\r\n *\r\n * @default default\r\n */\r\n theme?: keyof typeof DropdownTheme\r\n\r\n /**\r\n * The amount of space between button and its popover\r\n *\r\n * @default 4\r\n */\r\n gutter?: number\r\n\r\n /**\r\n * Show backdrop on the dialog. Provide your own element if you want to add background or animation\r\n *\r\n */\r\n backdrop?: false | JSX.Element\r\n\r\n /**\r\n * Do not render the items when the popover is not visible\r\n *\r\n * @default true\r\n */\r\n unmountOnHide?: boolean\r\n\r\n /**\r\n * If true, the dropdown will overlay the trigger if necessary instead of going\r\n * out of bounds and overflowing\r\n */\r\n overlap?: boolean\r\n\r\n /**\r\n * Callback before the menu starts hiding. Event can be prevented which keeps the menu open\r\n * This callback isn’t called on backdrop click. Use `backdrop={
}` to react on backdrop clicks\r\n */\r\n onClose?: (ev: Event) => void\r\n\r\n /**\r\n * Used to provide virtual anchor, useful for context menu, etc\r\n */\r\n getAnchorRect?: () => { x: number; y: number }\r\n\r\n /**\r\n * Set which element gets focus when the dialog visibility changes. If `false`, the focus stays on the previous element.\r\n * Defaults to focusing without scrolling the page or keeping the focus on trigger if input-like.\r\n */\r\n autoFocusOnShow?: false | ((element: HTMLElement) => boolean)\r\n\r\n /**\r\n * Set which element gets focus when the dialog visibility changes. If `false`, the focus stays on the previous element.\r\n * Defaults to focusing without scrolling the page or keeping the focus on trigger if input-like.\r\n */\r\n autoFocusOnHide?: false | ((element: HTMLElement) => boolean)\r\n\r\n /**\r\n * Callback which is called when the dialog opens and all animations complete\r\n */\r\n onFullyOpen?: () => void\r\n\r\n /**\r\n * Callback which is called when the dialog closes and all animations complete\r\n */\r\n onFullyClosed?: () => void\r\n}\r\n\r\nexport const StatelessDropdown = React.forwardRef(function DropdownComponent(\r\n {\r\n trigger,\r\n modal = true,\r\n rounding = 'regular',\r\n theme = 'default',\r\n gutter,\r\n unmountOnHide = true,\r\n children,\r\n backdrop,\r\n showOnHover,\r\n hideOnInteractOutside,\r\n autoFocusOnShow,\r\n autoFocusOnHide,\r\n onFullyOpen,\r\n onFullyClosed,\r\n ...props\r\n }: React.PropsWithChildren,\r\n ref: React.ForwardedRef\r\n) {\r\n const store = Ariakit.useMenuContext()\r\n const { placement, zIndex, updatePosition } = usePopoverPlacement(store)\r\n const isOpen = store?.useState('open')\r\n const [isFullyOpen, setIsFullyOpen] = React.useState(false)\r\n const isMounted = store?.useState('mounted')\r\n const wasMounted = usePrevious(isMounted)\r\n const menuGutter = gutter ?? (store?.parent ? 6 : 4)\r\n\r\n React.useEffect(() => {\r\n if (wasMounted && !isMounted) {\r\n onFullyClosed?.()\r\n }\r\n // We want to call it only on isMounted change\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isMounted])\r\n\r\n return (\r\n <>\r\n {trigger && (\r\n \r\n )}\r\n }\r\n // Update zIndex when popover position changes\r\n updatePosition={updatePosition}\r\n // E2E tests don’t wait for transitions to complete and it could lead to bugs with other popover components (ResizeObserver loop exceeded)\r\n // or visual diffs due a screenshot being captured while the dropdown still in transition\r\n // If you encounter this problem, just do `cy.get('[data-fully-open=true]').should('exist')` before continuing to wait for the dropdown\r\n data-fully-open={isFullyOpen}\r\n className={classNames(\r\n props.className,\r\n zIndex,\r\n DropdownRounding[rounding],\r\n DropdownTheme[theme],\r\n 'custom-scrollbar absolute flex flex-col overflow-hidden shadow-modal outline-none dark:shadow-modal-dark',\r\n // These are set by popper, we just need to make sure we don’t encroach on the safe insets\r\n 'min-w-[--popover-anchor-width] max-w-[--popover-available-width]',\r\n // Animations\r\n 'opacity-0 transition duration-[250ms] data-[enter]:translate-y-0 data-[enter]:opacity-100',\r\n {\r\n // When in combobox mode, the padding is smaller so we can render a gradient under the combobox input.\r\n // Change the custom scrollbar offset so the top of the first item fits the top of our scrollbar\r\n '[--scrollbar-radius:0]': DropdownRounding[rounding] === DropdownRounding.none,\r\n // Direction based styles\r\n 'max-h-[calc(var(--popover-available-height)-env(safe-area-inset-bottom))] motion-safe:-translate-y-1':\r\n placement?.startsWith('bottom'),\r\n 'max-h-[calc(var(--popover-available-height)-env(safe-area-inset-top))] motion-safe:translate-y-1':\r\n placement?.startsWith('top'),\r\n }\r\n )}\r\n onTransitionEnd={(ev) => {\r\n if (ev.target === ev.currentTarget && isOpen) {\r\n setIsFullyOpen(true)\r\n onFullyOpen?.()\r\n }\r\n }}\r\n >\r\n \r\n {children}\r\n
\r\n \r\n \r\n )\r\n})\r\n\r\nexport interface DropdownProps extends StatelessDropdownProps {\r\n state?: Ariakit.MenuStore\r\n}\r\n\r\nexport const Dropdown = React.forwardRef(\r\n (\r\n { state, placement, orientation = 'vertical', ...props }: React.PropsWithChildren,\r\n ref: React.ForwardedRef\r\n ) => (\r\n \r\n \r\n \r\n )\r\n)\r\n","import * as Ariakit from '@ariakit/react'\r\nimport * as React from 'react'\r\n\r\nimport { OptionButton, OptionButtonProps } from '../OptionButton'\r\nimport { BUTTON_DEFAULT_ELEMENT } from '../button'\r\nimport { PropsWithAs } from '../types'\r\n\r\ninterface DropdownItemProps extends OptionButtonProps {\r\n store?: Ariakit.MenuStore\r\n\r\n subtitle?: React.ReactNode\r\n\r\n /**\r\n * Whether clicking the item should also close the dropdown. Only applies to\r\n * items without a submenu\r\n *\r\n * @default true\r\n */\r\n hideOnClick?: boolean\r\n}\r\n\r\nfunction DropdownItemComponent(\r\n { as: asComponent, ...props }: PropsWithAs & DropdownItemProps,\r\n ref: React.ForwardedRef\r\n) {\r\n return } />\r\n}\r\n\r\n/**\r\n * We need to forward ref to the function, but typescript looses the type of the\r\n * props param so we need to typecast to get suggestions to work\r\n */\r\nexport const DropdownItem = React.forwardRef(DropdownItemComponent) as <\r\n TagType extends React.ElementType = typeof BUTTON_DEFAULT_ELEMENT,\r\n>(\r\n props: PropsWithAs & DropdownItemProps & { ref?: React.ForwardedRef }\r\n) => ReturnType\r\n","import * as Ariakit from '@ariakit/react'\r\n\r\nexport const useDropdownState = Ariakit.useMenuStore\r\n","import * as React from 'react'\r\n\r\nimport { PartialBy } from '../../types'\r\nimport { MenuGroup } from '../MenuGroup'\r\nimport { Dropdown, DropdownItem, DropdownProps } from '../dropdown'\r\nimport { ObjectHash } from '../types'\r\n\r\nexport interface IContextMenuOption {\r\n type?: never\r\n id: string\r\n label: React.ReactNode\r\n onClick?: () => void\r\n options?: ContextMenuItem[]\r\n gtag?: ObjectHash\r\n}\r\n\r\ninterface IContextMenuDivider {\r\n type: 'divider'\r\n label?: React.ReactNode\r\n}\r\n\r\nexport type ContextMenuItem = IContextMenuOption | IContextMenuDivider\r\n\r\ninterface ContextMenuInnerProps extends PartialBy {\r\n /**\r\n * Items visible in the menu\r\n */\r\n items: ContextMenuItem[]\r\n}\r\n\r\nexport function ContextMenuInner(\r\n { trigger, items, onClose, ...props }: ContextMenuInnerProps,\r\n ref: React.ForwardedRef\r\n) {\r\n return (\r\n ev.preventDefault()}\r\n >\r\n {items?.map((item, index) => {\r\n if (item.type === 'divider') {\r\n return \r\n }\r\n\r\n if (item?.options !== undefined) {\r\n return (\r\n \r\n {item.label}\r\n \r\n }\r\n />\r\n )\r\n }\r\n\r\n return (\r\n {\r\n item.onClick?.()\r\n window.gtag?.('event', 'context-menu', Object.assign({ menu_option: item.id }, item.gtag))\r\n }}\r\n data-testid={`dropdown-menu-${item.id}`}\r\n >\r\n {item.label}\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nexport const ContextMenu = React.forwardRef(ContextMenuInner)\r\n","import classnames from 'classnames'\r\nimport React from 'react'\r\n\r\ninterface GridLayoutProps extends React.HTMLProps {\r\n /**\r\n * Number of columns\r\n */\r\n columns?: number\r\n\r\n /**\r\n * Number of rows\r\n */\r\n rows?: number\r\n\r\n /**\r\n * Whether or not a border is rendered between and around items. eg. charts\r\n * on HP won’t have a border\r\n *\r\n * @default false\r\n */\r\n border?: boolean\r\n}\r\n\r\nexport const ChartGridCell = React.forwardRef(\r\n ({ children, gridArea, className, ...props }, ref) => (\r\n \r\n {children}\r\n \r\n )\r\n)\r\n\r\ninterface ChartGridCellProps extends React.HTMLProps {\r\n /**\r\n * Css grid-area value\r\n */\r\n gridArea?: string\r\n}\r\n\r\nexport function GridLayout({ columns = 1, rows = 1, border = false, children, className, ...props }: GridLayoutProps) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\ninterface ChartGridProps extends GridLayoutProps {\r\n isResizable?: boolean\r\n}\r\n\r\nexport const ChartGrid: React.FC = (props) => \r\n","import * as React from 'react'\r\n\r\nimport { PropsWithAs, RequireByKey } from '../types'\r\n\r\nconst defaultValueAccessor: ValueAccessor = (data) => data\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nconst DEFAULT_VALUE_KEY = 'value'\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nconst DEFAULT_CHANGE_KEY = 'onChange'\r\n\r\ntype ValueAccessor<\r\n TagType extends React.ElementType,\r\n ValueKey extends keyof React.ComponentProps = typeof DEFAULT_VALUE_KEY,\r\n ChangeKey extends keyof React.ComponentProps = typeof DEFAULT_CHANGE_KEY,\r\n> = (...args: Parameters[ChangeKey]>) => React.ComponentProps[ValueKey]\r\n\r\nexport type InnerStateProps<\r\n TagType extends React.ElementType,\r\n ValueKey extends keyof React.ComponentProps,\r\n ChangeKey extends keyof React.ComponentProps,\r\n> = RequireByKey, 'as'> & {\r\n valueKey?: ValueKey\r\n changeKey?: ChangeKey\r\n valueAccessor?: ValueAccessor\r\n}\r\n\r\nexport function InnerState<\r\n TagType extends React.ElementType,\r\n ValueKey extends keyof React.ComponentProps = typeof DEFAULT_VALUE_KEY,\r\n ChangeKey extends keyof React.ComponentProps = typeof DEFAULT_CHANGE_KEY,\r\n>({\r\n as: asComponent,\r\n valueKey = 'value' as ValueKey,\r\n changeKey = 'onChange' as ChangeKey,\r\n valueAccessor = defaultValueAccessor,\r\n ...props\r\n}: InnerStateProps) {\r\n const { [valueKey]: value, [changeKey]: onChange } = props\r\n const [state, setState] = React.useState[ValueKey]>(value)\r\n\r\n const handleChange = React.useCallback>(\r\n (...args) => {\r\n setState(valueAccessor(...args))\r\n onChange(...args)\r\n },\r\n [onChange, valueAccessor]\r\n )\r\n\r\n return React.createElement(asComponent, {\r\n ...props,\r\n [valueKey]: state,\r\n [changeKey]: handleChange,\r\n })\r\n}\r\n","import classnames from 'classnames'\r\nimport { HTMLProps, ReactNode, useEffect, useMemo, useRef, useState } from 'react'\r\n\r\nimport { Label } from './typography'\r\n\r\nexport enum RangeSize {\r\n small = 'sm:h-6', // 24px height\r\n regular = 'sm:h-7', // 28px height\r\n medium = 'sm:h-8', // 32px height\r\n large = 'sm:h-9', // 36px height\r\n}\r\n\r\ntype InputProps = HTMLProps\r\n\r\ninterface RangeSliderProps extends Omit {\r\n /**\r\n * Label which is rendered above the select\r\n */\r\n label?: ReactNode\r\n\r\n /**\r\n * Range size. All inputs have forced height on mobile to avoid zoom\r\n *\r\n * @default regular\r\n */\r\n size?: keyof typeof RangeSize\r\n\r\n /**\r\n * Element which will be rendered on the left side of the slider\r\n */\r\n leftContent?: ReactNode\r\n\r\n /**\r\n * Element which will be rendered on the right side of the slider\r\n */\r\n rightContent?: ReactNode\r\n\r\n /**\r\n * Class name for the wrapper element\r\n */\r\n className?: string\r\n\r\n /**\r\n * Class name for the input element\r\n */\r\n inputClassName?: string\r\n\r\n /**\r\n * Min value for the input\r\n *\r\n * @default 0\r\n */\r\n min?: number\r\n\r\n /**\r\n * Max value for the input\r\n *\r\n * @default 100\r\n */\r\n max?: number\r\n\r\n /**\r\n * Step value for the input\r\n *\r\n * @default 1\r\n */\r\n step?: number\r\n\r\n /**\r\n * Current value\r\n */\r\n value: number\r\n\r\n /**\r\n * Callback when value changes\r\n */\r\n onChange: InputProps['onChange']\r\n}\r\n\r\nexport function RangeSlider({\r\n label,\r\n size = 'regular',\r\n leftContent,\r\n rightContent,\r\n min = 0,\r\n max = 100,\r\n step = 1,\r\n className,\r\n inputClassName,\r\n ...props\r\n}: RangeSliderProps) {\r\n const [hasTrack, setHasTrack] = useState(false)\r\n const trackRef = useRef(null)\r\n const thumbRef = useRef(null)\r\n\r\n useEffect(() => {\r\n setHasTrack(Boolean(trackRef.current && thumbRef.current))\r\n }, [])\r\n\r\n const thumbLeft = useMemo(() => {\r\n const track = trackRef.current\r\n const thumb = thumbRef.current\r\n const valuePercent = (props.value - min) / (max - min)\r\n\r\n if (!hasTrack || !track || !thumb) return\r\n\r\n const trackBox = track.getBoundingClientRect()\r\n const thumbBox = thumb.getBoundingClientRect()\r\n\r\n return ((valuePercent * (trackBox.width - thumbBox.width)) / trackBox.width) * 100\r\n }, [min, max, props.value, hasTrack])\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import { ButtonRoundingType, ButtonThemeType } from '../button'\r\nimport { IconNameType } from '../icon'\r\n\r\nexport enum ToolbarTheme {\r\n chipTransparent, // (default)\r\n alternative,\r\n}\r\n\r\nexport enum ToolbarDirection {\r\n vertical,\r\n horizontal,\r\n}\r\n\r\nexport type ToolbarDirectionType = keyof typeof ToolbarDirection\r\n\r\nexport interface IButtonThemeSettings {\r\n className?: string\r\n theme: ButtonThemeType\r\n rounding: ButtonRoundingType\r\n}\r\n\r\nexport interface IToolbarItem {\r\n id: string\r\n icon: IconNameType\r\n iconActive?: IconNameType\r\n iconAction?: IconNameType\r\n title: string\r\n titleActive?: string\r\n titleAction?: string\r\n}\r\n\r\nexport type ToolbarThemeType = keyof typeof ToolbarTheme\r\n","import * as React from 'react'\r\n\r\nimport { ToolbarDirection, ToolbarTheme } from './interfaces'\r\n\r\nexport interface IToolbarContext {\r\n direction: ToolbarDirection\r\n theme: ToolbarTheme\r\n isWrapped: boolean\r\n isStretched: boolean\r\n isMobile: boolean\r\n}\r\n\r\nexport const ToolbarContext = React.createContext({\r\n direction: ToolbarDirection.vertical,\r\n theme: ToolbarTheme.chipTransparent,\r\n isWrapped: false,\r\n isStretched: false,\r\n isMobile: false,\r\n})\r\n\r\nexport function useToolbarContext() {\r\n return React.useContext(ToolbarContext)\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport throttle from 'lodash.throttle'\r\nimport React from 'react'\r\n\r\nimport { isSafariDesktop } from '../../../app/shared/isMobile'\r\nimport { StatelessDropdown } from '../dropdown'\r\nimport { IToolbarContext, ToolbarContext } from './hooks'\r\nimport { ToolbarDirection, ToolbarDirectionType, ToolbarTheme, ToolbarThemeType } from './interfaces'\r\n\r\nconst getToolbarSettings = ({\r\n direction,\r\n isWrapped,\r\n isMobile,\r\n theme,\r\n}: IToolbarContext): React.HTMLProps => {\r\n switch (isWrapped) {\r\n case true:\r\n return {\r\n className: classnames('shrink-0 items-center bg-white dark:bg-gray-800', {\r\n 'flex flex-wrap justify-between': direction === ToolbarDirection.vertical,\r\n 'grid border border-gray-100 dark:border-gray-600 p-1.5 gap-1 border-box rounded-md grid-cols-2':\r\n FinvizSettings.hasRedesignEnabled,\r\n }),\r\n }\r\n\r\n default:\r\n return {\r\n className: classnames('flex shrink-0 items-center bg-white dark:bg-gray-800', {\r\n 'p-1.5': !isMobile,\r\n 'space-x-1.5 px-1.5': direction === ToolbarDirection.horizontal && FinvizSettings.hasRedesignEnabled,\r\n 'flex-col overflow-hidden overflow-y-auto [--inset-l:0.5rem] landscape-primary:pl-inset-left':\r\n direction === ToolbarDirection.vertical,\r\n 'space-y-2': direction === ToolbarDirection.vertical && !isMobile,\r\n 'pb-inset-bottom [--inset-b:0.5rem]': theme !== ToolbarTheme.alternative && !isMobile,\r\n 'w-screen space-x-2 overflow-hidden overflow-x-auto':\r\n direction === ToolbarDirection.horizontal && theme !== ToolbarTheme.alternative,\r\n 'overflow-x-hidden': theme === ToolbarTheme.alternative,\r\n }),\r\n }\r\n }\r\n}\r\n\r\nexport interface ToolbarProps {\r\n /**\r\n * Toolbar direction\r\n *\r\n * @default vertical\r\n */\r\n direction?: ToolbarDirectionType\r\n\r\n /**\r\n * Toolbar buttons theme\r\n *\r\n * @default light\r\n */\r\n theme?: ToolbarThemeType\r\n\r\n /**\r\n * Charts mobile design\r\n *\r\n * @default false\r\n */\r\n isMobile?: boolean\r\n\r\n className?: string\r\n}\r\n\r\nexport function Toolbar({\r\n direction = 'vertical',\r\n theme = 'chipTransparent',\r\n isMobile = false,\r\n children,\r\n className,\r\n}: React.PropsWithChildren) {\r\n const hasFocusRings = React.useRef(false)\r\n const toolbarRef = React.useRef(null)\r\n const contextProviderValue = React.useMemo(\r\n () => ({\r\n direction: ToolbarDirection[direction],\r\n theme: ToolbarTheme[theme],\r\n isWrapped:\r\n ToolbarDirection[direction] === ToolbarDirection.vertical && ToolbarTheme[theme] === ToolbarTheme.alternative,\r\n isStretched:\r\n ToolbarDirection[direction] === ToolbarDirection.horizontal && ToolbarTheme[theme] === ToolbarTheme.alternative,\r\n isMobile,\r\n }),\r\n [direction, theme, isMobile]\r\n )\r\n const toolbarSettings = getToolbarSettings(contextProviderValue)\r\n\r\n React.useLayoutEffect(() => {\r\n // Workaround for Safari scrollbar bug https://github.com/finvizhq/charts/issues/1038\r\n // Safari injects scrollbar after layout render and doesn't trigger reflow\r\n if (ToolbarTheme[theme] !== ToolbarTheme.alternative && isSafariDesktop()) {\r\n const forceReflow = throttle(() => {\r\n if (toolbarRef.current !== null) {\r\n const originalWidth = toolbarRef.current.style.width\r\n toolbarRef.current.style.width = '0'\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n toolbarRef.current.offsetWidth\r\n toolbarRef.current.style.width = originalWidth\r\n }\r\n }, 200)\r\n\r\n forceReflow()\r\n window.addEventListener('resize', forceReflow)\r\n\r\n return () => {\r\n window.removeEventListener('resize', forceReflow)\r\n }\r\n }\r\n }, [theme])\r\n\r\n return (\r\n \r\n \r\n {children}\r\n {\r\n hasFocusRings.current = !!document.querySelector('[data-focus-visible]')\r\n return true\r\n }}\r\n autoFocusOnHide={(el: HTMLElement) => {\r\n // Only call focus when we previously had focus rings to prevent sticky focus rings\r\n if (hasFocusRings.current) el.focus({ preventScroll: true })\r\n hasFocusRings.current = false\r\n return false\r\n }}\r\n />\r\n \r\n \r\n )\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Button, ButtonHTMLProps, ButtonProps } from '../button'\r\nimport { Delayed } from '../delayed'\r\nimport { Icon } from '../icon'\r\nimport { Spinner } from '../spinner'\r\nimport { PropsWithAs } from '../types'\r\nimport { useToolbarContext } from './hooks'\r\nimport { IToolbarItem, ToolbarTheme } from './interfaces'\r\n\r\nfunction getButtonThemeSettings({\r\n className,\r\n theme,\r\n isActive,\r\n isStretched,\r\n isInAction,\r\n}: {\r\n className: string\r\n theme: ToolbarTheme\r\n isStretched: boolean\r\n isActive?: boolean\r\n isInAction?: boolean\r\n}): Omit & ButtonProps {\r\n const includeRedesign = FinvizSettings.hasRedesignEnabled\r\n switch (theme) {\r\n case ToolbarTheme.alternative:\r\n return {\r\n className: classnames(\r\n className,\r\n {\r\n grow: isStretched,\r\n 'h-10 w-10': !isStretched && !includeRedesign,\r\n 'animate-pulse': isInAction,\r\n },\r\n\r\n !includeRedesign && {\r\n 'active:bg-white disabled:bg-white disabled:text-gray-300 disabled:hover:text-gray-300': true,\r\n 'border border-white text-gray-500 hover:border-gray-100 hover:text-gray-900': !isActive,\r\n 'border border-gray-900 text-gray-900': isActive,\r\n }\r\n ),\r\n theme: includeRedesign ? 'chipTransparent' : 'transparent',\r\n rounding: includeRedesign ? undefined : 'none',\r\n size: isStretched || includeRedesign ? undefined : 'none',\r\n }\r\n default:\r\n return {\r\n className: classnames(\r\n className,\r\n 'border dark:disabled:bg-gray-800 dark:disabled:text-gray-600 disabled:text-gray-300 disabled:bg-white dark:disabled:hover:bg-gray-800 dark:disabled:hover:text-gray-600 disabled:hover:text-gray-300 disabled:hover:bg-white',\r\n {\r\n 'animate-pulse': isInAction,\r\n 'border-transparent text-gray-500 hover:bg-gray-200/30 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-500/30 dark:hover:text-gray-200':\r\n !isActive,\r\n 'border-blue-400 bg-blue-50 text-gray-900 dark:bg-gray-700 dark:text-white': isActive,\r\n }\r\n ),\r\n theme: 'transparent',\r\n rounding: 'small',\r\n }\r\n }\r\n}\r\n\r\nexport interface ToolbarButtonProps extends Omit {\r\n rowId?: number\r\n item: IToolbarItem\r\n disabledTooltip?: string\r\n isInAction?: boolean\r\n isLoading?: boolean\r\n}\r\n\r\nexport const ToolbarButton = React.forwardRef(function ToolbarButton(\r\n { item, disabledTooltip, isInAction: isInActionProp, isLoading, ...props }: PropsWithAs & ToolbarButtonProps,\r\n ref: React.ForwardedRef\r\n) {\r\n const context = Ariakit.useMenuContext()\r\n const { theme, isStretched } = useToolbarContext()\r\n const isInAction = isInActionProp && item.iconAction !== undefined\r\n const buttonSettings = getButtonThemeSettings({\r\n className: props.className,\r\n theme,\r\n isStretched,\r\n isActive: props.active,\r\n isInAction: isInAction,\r\n })\r\n\r\n const getMainIcon = () => (\r\n \r\n )\r\n\r\n return (\r\n }\r\n store={context?.menubar || undefined}\r\n blurOnHoverEnd\r\n render={\r\n \r\n {isLoading ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {props.children ??\r\n (isInAction ? (\r\n \r\n \r\n \r\n ) : (\r\n getMainIcon()\r\n ))}\r\n \r\n )}\r\n \r\n }\r\n />\r\n )\r\n})\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { isMobile } from '../../../app/shared/isMobile'\r\nimport { DropdownItem } from '../dropdown'\r\nimport { Icon } from '../icon'\r\nimport { NativeSelect } from '../select/NativeSelect'\r\nimport { useToolbarContext } from './hooks'\r\nimport { IToolbarItem, ToolbarTheme } from './interfaces'\r\nimport { ToolbarButton } from './toolbar-button'\r\n\r\nconst isMobileBrowser = isMobile()\r\n\r\nexport interface ToolbarGroupProps {\r\n /**\r\n * Main button item\r\n */\r\n defaultItem: IToolbarItem\r\n\r\n /**\r\n * Shows spinner instead of icon\r\n */\r\n isLoading?: boolean\r\n\r\n /**\r\n * Current selected item id\r\n */\r\n isActive: boolean\r\n\r\n /**\r\n * Should indicate some action in progress\r\n */\r\n isInAction?: boolean\r\n\r\n /**\r\n * Array of items\r\n */\r\n groupItems: IToolbarItem[]\r\n\r\n /**\r\n * Expand group button label\r\n */\r\n groupTitle?: string\r\n\r\n /**\r\n * On item select callback\r\n */\r\n onChange: (id: string, trigger: 'button' | 'select' | 'group') => void\r\n\r\n /**\r\n * Use native select for mobile devices\r\n *\r\n * @default true\r\n */\r\n useNativeSelect?: boolean\r\n\r\n /**\r\n * Is item disabled\r\n */\r\n disabled?: boolean\r\n\r\n /**\r\n * Tooltip message if item is disabled\r\n */\r\n disabledTooltip?: string\r\n\r\n rowId?: number\r\n}\r\n\r\nexport const ToolbarGroup = React.forwardRef(function ToolbarGroup(\r\n {\r\n defaultItem,\r\n isActive,\r\n isLoading,\r\n groupItems,\r\n groupTitle,\r\n onChange,\r\n useNativeSelect = isMobileBrowser,\r\n disabled,\r\n disabledTooltip,\r\n rowId,\r\n }: ToolbarGroupProps,\r\n ref: React.ForwardedRef\r\n) {\r\n const { theme, isStretched } = useToolbarContext()\r\n const [selectedItem, setSelectedItem] = React.useState(defaultItem)\r\n const groupId = groupTitle?.replace(/\\s/g, '-').toLocaleLowerCase()\r\n const isAlternativeTheme = theme === ToolbarTheme.alternative\r\n\r\n // Setup states, pass Menubar context to this menu so we can control the shared menu\r\n const context = Ariakit.useMenuContext()\r\n const menu = Ariakit.useMenuStore({ store: context })\r\n\r\n // We have multiple menu triggers but just one shared menu so we need a way to know which button has been hovered\r\n const [menuButton, setMenuButton] = React.useState(null)\r\n const open = menu.useState((state) => state.mounted && state.anchorElement === menuButton)\r\n\r\n // Find the element to render the menu into using Portal\r\n const parentMenu = menu.useState('contentElement')\r\n const menuContentElement = React.useMemo(() => parentMenu?.querySelector('div'), [parentMenu])\r\n\r\n /**\r\n * Charts prevent bubling mouseover so we need to hide the menu manually\r\n */\r\n const hideMenu = menu.hide\r\n React.useEffect(() => {\r\n const onMouseLeave = () => hideMenu()\r\n\r\n parentMenu?.addEventListener('mouseleave', onMouseLeave)\r\n return () => parentMenu?.removeEventListener('mouseleave', onMouseLeave)\r\n }, [hideMenu, parentMenu])\r\n\r\n const showMenu = menu.show\r\n const handleMenuOpen = React.useCallback(\r\n (ev: React.SyntheticEvent) => {\r\n menu.setDisclosureElement(ev.currentTarget)\r\n menu.setAnchorElement(ev.currentTarget)\r\n showMenu()\r\n },\r\n [menu, showMenu]\r\n )\r\n\r\n const trigger = (\r\n \r\n \r\n \r\n \r\n )\r\n\r\n if (useNativeSelect) {\r\n return (\r\n \r\n {trigger}\r\n ({ value: item.id, label: item.title }))}\r\n onChange={(option) => {\r\n setSelectedItem(groupItems![groupItems!.findIndex((item) => item.id === option.value)])\r\n onChange(option.value, 'select')\r\n }}\r\n onClick={() => onChange(selectedItem.id, 'select')}\r\n />\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n ) => {\r\n // Preventing this means the dropdown will only open on hover not by a click\r\n ev.preventDefault()\r\n }}\r\n onPointerDown={(ev: React.PointerEvent) => {\r\n // Finally, pre-select the current group tool\r\n onChange(selectedItem.id, 'group')\r\n handleMenuOpen(ev)\r\n }}\r\n />\r\n {open && (\r\n // Render this menu's contents into the parent menu.\r\n }>\r\n {groupItems.map((item) => (\r\n }\r\n data-testid={`toolbar-group-${groupId}-${item.id}`}\r\n rounding={theme === ToolbarTheme.alternative && !FinvizSettings.hasRedesignEnabled ? 'none' : undefined}\r\n onPointerDown={() => {\r\n setSelectedItem(item)\r\n onChange(item.id, 'select')\r\n }}\r\n >\r\n {item.title}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n )\r\n})\r\n","import { PartialBy } from '../../types'\r\nimport { ToolbarButton } from './toolbar-button'\r\nimport { ToolbarGroup, ToolbarGroupProps } from './toolbar-group'\r\n\r\nexport function ToolbarItem({\r\n defaultItem,\r\n isLoading,\r\n isActive,\r\n isInAction,\r\n groupItems,\r\n groupTitle,\r\n onChange,\r\n useNativeSelect,\r\n disabled,\r\n disabledTooltip,\r\n rowId,\r\n}: PartialBy) {\r\n const isItemActive = isActive && !disabled\r\n\r\n if (!!groupItems?.length) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n {\r\n onChange(defaultItem.id, 'button')\r\n }}\r\n />\r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { useToolbarContext } from './hooks'\r\nimport { ToolbarDirection, ToolbarTheme } from './interfaces'\r\n\r\ntype ToolbarDividerProps = {\r\n className?: string\r\n}\r\n\r\nexport function ToolbarDivider({ className }: ToolbarDividerProps) {\r\n const { direction, theme } = useToolbarContext()\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import { Box } from '../box'\r\nimport { Heading, Paragraph } from '../typography'\r\nimport { TourStep } from './types'\r\n\r\nexport function StepContent({ step }: { step: TourStep }) {\r\n return (\r\n \r\n {step.title && (\r\n \r\n {step.title}\r\n \r\n )}\r\n {step.body && {step.body}}\r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\nimport * as ReactDOM from 'react-dom/server'\r\nimport Shepherd from 'shepherd.js'\r\n\r\nimport {\r\n BUTTON_BASE_CLASS,\r\n BUTTON_FOCUS_STYLES,\r\n ButtonPadding,\r\n ButtonRounding,\r\n ButtonSize,\r\n ButtonTheme,\r\n getButtonTheme,\r\n} from '../button'\r\nimport { StepContent } from './step-content'\r\nimport { TourDefinition, TourStep } from './types'\r\n\r\ntype ExcludesFalse = (x: T | false) => x is T\r\n\r\n/**\r\n * Async load Shepherd module when we need it\r\n */\r\nlet shepherdLibrary: typeof Shepherd\r\nexport async function loadShepherdLibrary(setLoading: (state: boolean) => void) {\r\n if (shepherdLibrary) return shepherdLibrary\r\n\r\n try {\r\n setLoading(true)\r\n const shepherdPromise = await import('shepherd.js')\r\n shepherdLibrary = shepherdPromise.default\r\n setLoading(false)\r\n\r\n return shepherdLibrary\r\n } catch {}\r\n}\r\n\r\n/**\r\n * Get buttons based on index in the step array\r\n */\r\nconst buttonClasses = classnames(BUTTON_BASE_CLASS, BUTTON_FOCUS_STYLES, ButtonSize.regular, ButtonRounding.regular)\r\nfunction getStepButtons(tour: Shepherd.Tour, step: TourStep, index: number, arr: TourStep[]) {\r\n return [\r\n {\r\n action: tour.complete,\r\n classes: classnames(\r\n buttonClasses,\r\n 'mr-auto',\r\n getButtonTheme({ theme: ButtonTheme.light }).button,\r\n ButtonPadding.regular\r\n ),\r\n text: 'Exit',\r\n },\r\n index > 0 && {\r\n action: tour.back,\r\n classes: classnames(buttonClasses, getButtonTheme({ theme: ButtonTheme.light }).button, ButtonPadding.regular),\r\n text: step.backButton ?? 'Back',\r\n },\r\n {\r\n classes: classnames(buttonClasses, getButtonTheme({ theme: ButtonTheme.blue }).button, ButtonPadding.regular),\r\n action: tour.next,\r\n text: step.nextButton ?? (index === arr.length - 1 ? 'Finish' : 'Next'),\r\n },\r\n ].filter(Boolean as unknown as ExcludesFalse)\r\n}\r\n\r\n/**\r\n * Convert tour steps to Shepherd steps\r\n */\r\nexport function processSteps(tour: Shepherd.Tour, steps: TourStep[]): Shepherd.Step.StepOptions[] {\r\n return steps.map((step, index) => ({\r\n attachTo: { element: step.target, on: step.placement ?? 'auto' },\r\n classes: 'z-dialog',\r\n // Add offset\r\n popperOptions: {\r\n modifiers: [\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: step.offset ?? [0, 10],\r\n },\r\n },\r\n ],\r\n },\r\n // Render the body\r\n text: ReactDOM.renderToString(React.createElement(StepContent, { step })),\r\n // Add buttons\r\n buttons: getStepButtons(tour, step, index, steps),\r\n modalOverlayOpeningRadius: step.overlayRadius ?? 8,\r\n modalOverlayOpeningPadding: step.overlayPadding ?? 0,\r\n }))\r\n}\r\n\r\nexport function getTourKey() {\r\n return `tour${window.location.pathname.replace(/[/.]/g, '-')}`\r\n}\r\n\r\nexport function getStepsForUser(tours: TourDefinition[]) {\r\n const lastFinishedTour = localStorage?.getItem(getTourKey())\r\n const lastTourIndex = tours.findIndex((tour) => tour.id === lastFinishedTour)\r\n const allToursViewed = lastTourIndex === tours.length - 1 || tours.slice(lastTourIndex + 1).every((item) => item.skip)\r\n const toursToView = allToursViewed ? tours : tours.slice(lastTourIndex + 1)\r\n const userTour = toursToView.reduce(\r\n (acc, current) =>\r\n current.skip\r\n ? acc\r\n : {\r\n ...acc,\r\n id: current.id,\r\n steps: [...acc.steps, ...current.steps],\r\n },\r\n { id: 'tour', steps: [], initialTour: toursToView[0].id }\r\n )\r\n\r\n return { hasNewTours: !allToursViewed, tour: userTour }\r\n}\r\n\r\nexport function completeTour(key: string) {\r\n localStorage?.setItem(getTourKey(), key)\r\n}\r\n","import * as React from 'react'\r\nimport Shepherd from 'shepherd.js'\r\n\r\nimport { TourDefinition } from './types'\r\nimport * as tourUtils from './utils'\r\n\r\nexport const DEFAULT_OPTIONS = {\r\n exitOnEsc: true,\r\n useModalOverlay: true,\r\n}\r\n\r\n/**\r\n * Hook which controls shepherd.js. The library is lazy-loaded when the tour starts\r\n *\r\n * Returns:\r\n * - `isLoading`: state of the library loading\r\n * - `currentTour`: tour object, only defined after library has loaded\r\n * - `startTour`: load the library and start tour. Returns `currentTour`\r\n * - `getStepsForUser`: returns a list of tour steps based on tours the user finished\r\n * - `completeTour`: persists the last finished tour to local storage\r\n */\r\nexport function useTour(options?: Shepherd.Tour.TourOptions) {\r\n const [isLoading, setIsLoading] = React.useState(false)\r\n const [currentTour, setTour] = React.useState(null)\r\n\r\n /**\r\n * We’re loading shepherd asynchronously and want to have loading state so we use\r\n * AbortController to check if the component is still mounted.\r\n */\r\n const controller = React.useRef('AbortController' in window ? new AbortController() : undefined)\r\n const loadingSetter = React.useRef((state: boolean) => {\r\n if (controller.current?.signal.aborted) return\r\n\r\n setIsLoading(state)\r\n })\r\n // Cleanup effect to abort the controller\r\n React.useEffect(() => () => controller.current?.abort(), [])\r\n\r\n const startTour = React.useCallback(\r\n async (definition: TourDefinition, setComplete = true) => {\r\n const shepherdLibrary = await tourUtils.loadShepherdLibrary(loadingSetter.current)\r\n\r\n if (shepherdLibrary && !controller.current?.signal.aborted) {\r\n const tour = currentTour ?? new shepherdLibrary.Tour({ ...DEFAULT_OPTIONS, ...options })\r\n\r\n if (!currentTour) setTour(tour)\r\n\r\n // Reset the tour steps in case they were updated\r\n Array.from(tour.steps).forEach((step) => tour.removeStep(step.id))\r\n\r\n const processedSteps = tourUtils.processSteps(tour, definition.steps)\r\n tour.addSteps(processedSteps)\r\n\r\n if (setComplete) {\r\n tourUtils.completeTour(definition.id)\r\n }\r\n\r\n tour.start()\r\n window.gtag?.('event', 'tour-start', { event_label: definition.initialTour ?? definition.id })\r\n\r\n return tour\r\n }\r\n },\r\n [currentTour, options]\r\n )\r\n\r\n return {\r\n isLoading,\r\n currentTour,\r\n startTour,\r\n getStepsForUser: tourUtils.getStepsForUser,\r\n completeTour: tourUtils.completeTour,\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-duplicate-enum-values */\r\nimport * as Ariakit from '@ariakit/react'\r\nimport classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { BUTTON_DEFAULT_ELEMENT, Button, ButtonComponentProps } from '../button'\r\nimport { Icon, IconNameType, isValidIconName } from '../icon'\r\n\r\n// Must have the same keys as ButtonSize\r\nexport enum TabSpacing {\r\n xxsmall = 'space-x-0.5', // 2px spacing\r\n xsmall = 'space-x-1', // 4px spacing\r\n none = 'space-x-1.5', // 6px spacing\r\n small = 'space-x-1.5', // 6px spacing\r\n regular = 'space-x-1.5', // 6px spacing\r\n medium = 'space-x-2', // 8px spacing\r\n large = 'space-x-2', // 8px spacing\r\n xlarge = 'space-x-2', // 8px spacing\r\n}\r\n\r\nfunction getRightContent(content: JSX.Element | IconNameType | undefined, isActive: boolean) {\r\n if (isValidIconName(content)) return \r\n else if (React.isValidElement(content))\r\n return React.cloneElement(content as React.ReactElement<{ active: boolean }>, {\r\n active: isActive,\r\n })\r\n else return content\r\n}\r\n\r\nconst InternalTab = React.forwardRef(function InternalTab<\r\n TagType extends React.ElementType = typeof BUTTON_DEFAULT_ELEMENT,\r\n>(\r\n {\r\n rounding = 'none',\r\n theme = 'tab',\r\n size = 'medium',\r\n 'aria-selected': ariaSelected,\r\n children,\r\n ...props\r\n }: Omit, 'theme'>,\r\n ref: React.ForwardedRef\r\n) {\r\n const spacing = TabSpacing[size]\r\n const active = Boolean(ariaSelected)\r\n const rightContent = getRightContent(props.rightContent, active)\r\n\r\n return (\r\n )}\r\n ref={ref}\r\n active={active}\r\n theme={theme}\r\n size={size}\r\n rounding={rounding}\r\n rightContent={undefined}\r\n className={classNames('group/badge', props.className)}\r\n contentClass={classNames(spacing, 'flex', props.contentClass)}\r\n >\r\n {children}\r\n {rightContent}\r\n \r\n )\r\n})\r\n\r\nexport function Tab(\r\n props: React.PropsWithChildren>\r\n) {\r\n return } />\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classNames from 'classnames'\r\n\r\nexport function TabList(props: Ariakit.TabListProps) {\r\n return (\r\n \r\n )\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport React from 'react'\r\n\r\nexport function TabPanel(props: Ariakit.TabPanelProps) {\r\n return \r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport React from 'react'\r\n\r\nexport function Tabs({ children }: React.PropsWithChildren) {\r\n return (\r\n \r\n
{children}
\r\n
\r\n )\r\n}\r\n","import classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nenum BadgeSize {\r\n small = 'h-4 min-w-4', // 16px height\r\n medium = 'h-5 min-w-5', // 20px height\r\n}\r\ntype BadgeSizeType = keyof typeof BadgeSize\r\n\r\nenum BadgePadding {\r\n small = 'px-[5px] py-0', // 16px height\r\n medium = 'px-1.5 py-0.5', // 20px height\r\n}\r\ntype BadgePaddingType = keyof typeof BadgePadding\r\n\r\ntype BadgeProps = {\r\n size?: BadgeSizeType\r\n padding?: BadgePaddingType\r\n active?: boolean\r\n}\r\n\r\nexport function Badge({ size = 'medium', padding = size, active, children }: React.PropsWithChildren) {\r\n const badgePadding = BadgePadding[padding]\r\n const badgeSize = BadgeSize[size]\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nenum TagSize {\r\n small = 'h-4 min-w-4', // 16px height\r\n medium = 'h-5 min-w-5', // 20px height\r\n}\r\ntype TagSizeType = keyof typeof TagSize\r\n\r\nenum TagPadding {\r\n small = 'px-[5px] py-0', // 16px height\r\n medium = 'px-1.5 py-0.5', // 20px height\r\n}\r\ntype TagPaddingType = keyof typeof TagPadding\r\n\r\nenum TagFont {\r\n small = 'text-3xs leading-3', // 10px/12px\r\n medium = 'text-2xs leading-4', // 12px/16px\r\n}\r\n\r\ntype TagProps = {\r\n size?: TagSizeType\r\n padding?: TagPaddingType\r\n}\r\n\r\nexport function Tag({ size = 'medium', padding = size, children }: React.PropsWithChildren) {\r\n const tagPadding = TagPadding[padding]\r\n const tagSize = TagSize[size]\r\n const tagFont = TagFont[size]\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import { link } from '../services/routing'\r\nimport { Delayed, DelayedProps } from './delayed'\r\nimport { ErrorView } from './error-view'\r\nimport { Spinner } from './spinner'\r\n\r\ntype LoadingProps = Pick\r\n\r\nexport function Loading({ delay, timeout, throwOnTimeout }: LoadingProps) {\r\n return (\r\n \r\n There’s been an error loading the application.\r\n
\r\n Please make sure your internet connection is stable and refresh the page. If the error persists, please{' '}\r\n \r\n contact support\r\n \r\n .\r\n \r\n }\r\n />\r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport function LoadingScreen(props: LoadingProps) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n","import * as React from 'react'\r\n\r\nexport type NotificationContextType = ReturnType\r\n\r\nexport enum NotificationPosition {\r\n TopLeft,\r\n TopRight,\r\n BottomLeft,\r\n BottomRight,\r\n}\r\n\r\nexport interface NotificationOptions {\r\n position?: NotificationPosition\r\n inline?: boolean\r\n}\r\n\r\nexport const NotificationContext = React.createContext<{\r\n show: (element: JSX.Element, options?: NotificationOptions) => void\r\n hide: () => void\r\n}>({\r\n show: () => {},\r\n hide: () => {},\r\n})\r\n\r\nexport function useNotification() {\r\n return React.useContext(NotificationContext)\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { getVisualViewport, useVisualViewport } from '../../hooks/useVisualViewport'\r\nimport { NotificationContext, NotificationOptions, NotificationPosition } from './hooks'\r\n\r\ninterface NotificationState {\r\n element: JSX.Element\r\n options: Partial\r\n}\r\n\r\nexport function NotificationWrapper(props: React.PropsWithChildren) {\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n const [notification, setNotification] = React.useState(null)\r\n const { viewport, setViewport } = useVisualViewport({ enabled: !!notification })\r\n\r\n const context = React.useRef({\r\n show: (element: JSX.Element, options: Partial = {}) => {\r\n setViewport(() => getVisualViewport(window.visualViewport))\r\n setNotification({ element, options })\r\n setIsOpen(true)\r\n },\r\n hide: () => setIsOpen(false),\r\n })\r\n\r\n const positionClass = React.useMemo(() => {\r\n const { position = NotificationPosition.BottomLeft } = notification?.options ?? {}\r\n return {\r\n '[--inset-t:1rem] items-start pt-inset-top': [\r\n NotificationPosition.TopLeft,\r\n NotificationPosition.TopRight,\r\n ].includes(position),\r\n '[--inset-r:1rem] justify-end landscape-secondary:pr-inset-right': [\r\n NotificationPosition.TopRight,\r\n NotificationPosition.BottomRight,\r\n ].includes(position),\r\n '[--inset-b:1rem] items-end pb-inset-bottom': [\r\n NotificationPosition.BottomLeft,\r\n NotificationPosition.BottomRight,\r\n ].includes(position),\r\n '[--inset-l:1rem] justify-start landscape-primary:pl-inset-left': [\r\n NotificationPosition.TopLeft,\r\n NotificationPosition.BottomLeft,\r\n ].includes(position),\r\n }\r\n }, [notification?.options])\r\n\r\n const WrapperComponent = React.useMemo(\r\n () => (notification?.options.inline ? React.Fragment : Ariakit.Portal),\r\n [notification?.options.inline]\r\n )\r\n\r\n return (\r\n \r\n {props.children}\r\n {isOpen && (\r\n \r\n \r\n {notification?.element}\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import * as React from 'react'\r\n\r\nimport { NotificationContextType, useNotification } from './hooks'\r\n\r\nexport function withNotificationContext(\r\n WrappedComponent: React.ComponentType\r\n) {\r\n const displayName = WrappedComponent.displayName ?? WrappedComponent.name ?? 'Component'\r\n const WithNotificationContext = (props: Omit) => {\r\n const notification = useNotification()\r\n return \r\n }\r\n\r\n WithNotificationContext.displayName = `withNotificationContext(${displayName})`\r\n\r\n return WithNotificationContext\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Button } from '../button'\r\nimport { useNotification } from './hooks'\r\n\r\ninterface NotificationProps {\r\n className?: string\r\n /**\r\n * Default button text\r\n * @default Close\r\n */\r\n closeText?: string\r\n\r\n /**\r\n * Custom buttons. Overrides `closeText`\r\n */\r\n actions?: JSX.Element\r\n\r\n /**\r\n * When set, the notification will automatically close\r\n */\r\n timeoutInMs?: number\r\n}\r\n\r\nexport function Notification({\r\n className,\r\n closeText = 'Close',\r\n actions,\r\n timeoutInMs,\r\n children,\r\n}: React.PropsWithChildren) {\r\n const notification = useNotification()\r\n\r\n React.useEffect(() => {\r\n let timeoutId: number\r\n if (timeoutInMs) {\r\n timeoutId = window.setTimeout(() => {\r\n notification.hide()\r\n }, timeoutInMs)\r\n }\r\n\r\n return () => {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId)\r\n }\r\n }\r\n }, [notification, timeoutInMs])\r\n\r\n return (\r\n \r\n
{children}
\r\n
\r\n {actions ?? (\r\n \r\n )}\r\n
\r\n \r\n )\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport * as React from 'react'\r\n\r\nimport { Input, InputComponentProps } from './input'\r\nimport { Tooltip, TooltipColor, TooltipProps, TooltipTrigger } from './tooltip'\r\n\r\ninterface TooltipSettingsProps\r\n extends Pick,\r\n Pick {\r\n color?: keyof typeof TooltipColor\r\n}\r\n\r\ninterface TooltipInputProps extends InputComponentProps {\r\n /**\r\n * Optimization to turn off the tooltip functionality if the input isn’t visible on screen\r\n *\r\n * @default true\r\n */\r\n isInteractive?: boolean\r\n\r\n /**\r\n * Settings for Tooltip component and useTooltipStore\r\n */\r\n tooltipSettings?: TooltipSettingsProps\r\n}\r\n\r\nfunction TooltipInputComponent(\r\n { tooltipSettings, isInteractive = true, name, children, ...props }: React.PropsWithChildren,\r\n ref: React.ForwardedRef\r\n) {\r\n const { color, gutter, placement = 'bottom', isPointerEventsEnabled } = tooltipSettings ?? {}\r\n\r\n const input = \r\n\r\n if (!isInteractive || !children) {\r\n return input\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport const TooltipInput = React.forwardRef(TooltipInputComponent)\r\n","import throttle from 'lodash.throttle'\r\nimport * as React from 'react'\r\n\r\nexport function getVisualViewport(visualViewport: VisualViewport | null) {\r\n const width = visualViewport?.width ?? window.innerWidth\r\n const height = visualViewport?.height ?? window.innerHeight\r\n const scale = visualViewport?.scale ?? 1\r\n\r\n return {\r\n top: visualViewport?.offsetTop ?? 0,\r\n left: visualViewport?.offsetLeft ?? 0,\r\n scale: Math.round((1 / scale) * 100) / 100,\r\n width: Math.round(width * scale),\r\n height: Math.round(height * scale),\r\n unscaledWidth: width,\r\n unscaledHeight: height,\r\n }\r\n}\r\n\r\nexport function useVisualViewport({ enabled = true, onScroll = true }: { enabled?: boolean; onScroll?: boolean } = {}) {\r\n const [viewport, setViewport] = React.useState(getVisualViewport(window.visualViewport))\r\n\r\n React.useEffect(() => {\r\n if (!enabled) return\r\n\r\n const handleChange = throttle((ev: Event) => {\r\n const viewport = ev.currentTarget as VisualViewport\r\n if (viewport) {\r\n setViewport(() => getVisualViewport(viewport))\r\n }\r\n }, 50)\r\n\r\n window.visualViewport?.addEventListener('resize', handleChange)\r\n if (onScroll) window.visualViewport?.addEventListener('scroll', handleChange)\r\n handleChange({ currentTarget: window.visualViewport } as Event)\r\n\r\n return () => {\r\n window.visualViewport?.removeEventListener('resize', handleChange)\r\n window.visualViewport?.removeEventListener('scroll', handleChange)\r\n }\r\n }, [enabled, onScroll])\r\n\r\n return React.useMemo(() => ({ viewport, setViewport }), [viewport])\r\n}\r\n","/**\n * Module dependencies\n */\n\nvar debug = require('debug')('jsonp');\n\n/**\n * Module exports.\n */\n\nmodule.exports = jsonp;\n\n/**\n * Callback index.\n */\n\nvar count = 0;\n\n/**\n * Noop function.\n */\n\nfunction noop(){}\n\n/**\n * JSONP handler\n *\n * Options:\n * - param {String} qs parameter (`callback`)\n * - prefix {String} qs parameter (`__jp`)\n * - name {String} qs parameter (`prefix` + incr)\n * - timeout {Number} how long after a timeout error is emitted (`60000`)\n *\n * @param {String} url\n * @param {Object|Function} optional options / callback\n * @param {Function} optional callback\n */\n\nfunction jsonp(url, opts, fn){\n if ('function' == typeof opts) {\n fn = opts;\n opts = {};\n }\n if (!opts) opts = {};\n\n var prefix = opts.prefix || '__jp';\n\n // use the callback name that was passed if one was provided.\n // otherwise generate a unique name by incrementing our counter.\n var id = opts.name || (prefix + (count++));\n\n var param = opts.param || 'callback';\n var timeout = null != opts.timeout ? opts.timeout : 60000;\n var enc = encodeURIComponent;\n var target = document.getElementsByTagName('script')[0] || document.head;\n var script;\n var timer;\n\n\n if (timeout) {\n timer = setTimeout(function(){\n cleanup();\n if (fn) fn(new Error('Timeout'));\n }, timeout);\n }\n\n function cleanup(){\n if (script.parentNode) script.parentNode.removeChild(script);\n window[id] = noop;\n if (timer) clearTimeout(timer);\n }\n\n function cancel(){\n if (window[id]) {\n cleanup();\n }\n }\n\n window[id] = function(data){\n debug('jsonp got', data);\n cleanup();\n if (fn) fn(null, data);\n };\n\n // add qs component\n url += (~url.indexOf('?') ? '&' : '?') + param + '=' + enc(id);\n url = url.replace('?&', '?');\n\n debug('jsonp req \"%s\"', url);\n\n // create script\n script = document.createElement('script');\n script.src = url;\n target.parentNode.insertBefore(script, target);\n\n return cancel;\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\"use client\";\nimport {\n useButton\n} from \"./JJ3MV4KB.js\";\nimport {\n useDialogScopedContext\n} from \"./XXVAHUAO.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useEvent\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/dialog/dialog-dismiss.tsx\nimport { useMemo } from \"react\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar TagName = \"button\";\nvar useDialogDismiss = createHook(\n function useDialogDismiss2(_a) {\n var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n const context = useDialogScopedContext();\n store = store || context;\n const onClickProp = props.onClick;\n const onClick = useEvent((event) => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented)\n return;\n store == null ? void 0 : store.hide();\n });\n const children = useMemo(\n () => /* @__PURE__ */ jsxs(\n \"svg\",\n {\n \"aria-label\": \"Dismiss popup\",\n display: \"block\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"1.5pt\",\n viewBox: \"0 0 16 16\",\n height: \"1em\",\n width: \"1em\",\n children: [\n /* @__PURE__ */ jsx(\"line\", { x1: \"4\", y1: \"4\", x2: \"12\", y2: \"12\" }),\n /* @__PURE__ */ jsx(\"line\", { x1: \"4\", y1: \"12\", x2: \"12\", y2: \"4\" })\n ]\n }\n ),\n []\n );\n props = __spreadProps(__spreadValues({\n \"data-dialog-dismiss\": \"\",\n children\n }, props), {\n onClick\n });\n props = useButton(props);\n return props;\n }\n);\nvar DialogDismiss = forwardRef(function DialogDismiss2(props) {\n const htmlProps = useDialogDismiss(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useDialogDismiss,\n DialogDismiss\n};\n","\"use client\";\nimport {\n useCommand\n} from \"./KSZPJCUA.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useMergeRefs,\n useTagName\n} from \"./6O5OEQGF.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/button/button.ts\nimport { useEffect, useRef, useState } from \"react\";\nimport { isButton } from \"@ariakit/core/utils/dom\";\nvar TagName = \"button\";\nvar useButton = createHook(\n function useButton2(props) {\n const ref = useRef(null);\n const tagName = useTagName(ref, TagName);\n const [isNativeButton, setIsNativeButton] = useState(\n () => !!tagName && isButton({ tagName, type: props.type })\n );\n useEffect(() => {\n if (!ref.current)\n return;\n setIsNativeButton(isButton(ref.current));\n }, []);\n props = __spreadProps(__spreadValues({\n role: !isNativeButton && tagName !== \"a\" ? \"button\" : void 0\n }, props), {\n ref: useMergeRefs(ref, props.ref)\n });\n props = useCommand(props);\n return props;\n }\n);\nvar Button = forwardRef(function Button2(props) {\n const htmlProps = useButton(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useButton,\n Button\n};\n","import { getDefaultState } from './mutation.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { shallowEqualObjects } from './utils.mjs';\n\n// CLASS\nclass MutationObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.setOptions(options);\n this.bindMethods();\n this.updateResult();\n }\n\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n\n setOptions(options) {\n var _this$currentMutation;\n\n const prevOptions = this.options;\n this.options = this.client.defaultMutationOptions(options);\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this\n });\n }\n\n (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.setOptions(this.options);\n }\n\n onUnsubscribe() {\n if (!this.listeners.length) {\n var _this$currentMutation2;\n\n (_this$currentMutation2 = this.currentMutation) == null ? void 0 : _this$currentMutation2.removeObserver(this);\n }\n }\n\n onMutationUpdate(action) {\n this.updateResult(); // Determine which callbacks to trigger\n\n const notifyOptions = {\n listeners: true\n };\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error') {\n notifyOptions.onError = true;\n }\n\n this.notify(notifyOptions);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n reset() {\n this.currentMutation = undefined;\n this.updateResult();\n this.notify({\n listeners: true\n });\n }\n\n mutate(variables, options) {\n this.mutateOptions = options;\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this);\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, { ...this.options,\n variables: typeof variables !== 'undefined' ? variables : this.options.variables\n });\n this.currentMutation.addObserver(this);\n return this.currentMutation.execute();\n }\n\n updateResult() {\n const state = this.currentMutation ? this.currentMutation.state : getDefaultState();\n const result = { ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset\n };\n this.currentResult = result;\n }\n\n notify(options) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n var _this$mutateOptions$o, _this$mutateOptions, _this$mutateOptions$o2, _this$mutateOptions2;\n\n (_this$mutateOptions$o = (_this$mutateOptions = this.mutateOptions).onSuccess) == null ? void 0 : _this$mutateOptions$o.call(_this$mutateOptions, this.currentResult.data, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o2 = (_this$mutateOptions2 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o2.call(_this$mutateOptions2, this.currentResult.data, null, this.currentResult.variables, this.currentResult.context);\n } else if (options.onError) {\n var _this$mutateOptions$o3, _this$mutateOptions3, _this$mutateOptions$o4, _this$mutateOptions4;\n\n (_this$mutateOptions$o3 = (_this$mutateOptions3 = this.mutateOptions).onError) == null ? void 0 : _this$mutateOptions$o3.call(_this$mutateOptions3, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o4 = (_this$mutateOptions4 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o4.call(_this$mutateOptions4, undefined, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n }\n } // Then trigger the listeners\n\n\n if (options.listeners) {\n this.listeners.forEach(listener => {\n listener(this.currentResult);\n });\n }\n });\n }\n\n}\n\nexport { MutationObserver };\n//# sourceMappingURL=mutationObserver.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { useSyncExternalStore } from './useSyncExternalStore.mjs';\nimport { parseMutationArgs, MutationObserver, notifyManager } from '@tanstack/query-core';\nimport { useQueryClient } from './QueryClientProvider.mjs';\nimport { shouldThrowError } from './utils.mjs';\n\nfunction useMutation(arg1, arg2, arg3) {\n const options = parseMutationArgs(arg1, arg2, arg3);\n const queryClient = useQueryClient({\n context: options.context\n });\n const [observer] = React.useState(() => new MutationObserver(queryClient, options));\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = useSyncExternalStore(React.useCallback(onStoreChange => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n const mutate = React.useCallback((variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n }, [observer]);\n\n if (result.error && shouldThrowError(observer.options.useErrorBoundary, [result.error])) {\n throw result.error;\n }\n\n return { ...result,\n mutate,\n mutateAsync: result.mutate\n };\n} // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nfunction noop() {}\n\nexport { useMutation };\n//# sourceMappingURL=useMutation.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nimport { jsxs, jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useRef, useEffect, useCallback, useState } from \"react\";\nimport cx from \"classnames\";\nimport jsonp from \"jsonp\";\nfunction createIcon(iconConfig) {\n const Icon = (_a) => {\n var _b = _a, {\n bgStyle = {},\n borderRadius = 0,\n iconFillColor = \"white\",\n round = false,\n size = 64\n } = _b, rest = __objRest(_b, [\n \"bgStyle\",\n \"borderRadius\",\n \"iconFillColor\",\n \"round\",\n \"size\"\n ]);\n return /* @__PURE__ */ jsxs(\"svg\", __spreadProps(__spreadValues({ viewBox: \"0 0 64 64\", width: size, height: size }, rest), { children: [\n round ? /* @__PURE__ */ jsx(\"circle\", { cx: \"32\", cy: \"32\", r: \"32\", fill: iconConfig.color, style: bgStyle }) : /* @__PURE__ */ jsx(\n \"rect\",\n {\n width: \"64\",\n height: \"64\",\n rx: borderRadius,\n ry: borderRadius,\n fill: iconConfig.color,\n style: bgStyle\n }\n ),\n /* @__PURE__ */ jsx(\"path\", { d: iconConfig.path, fill: iconFillColor })\n ] }));\n };\n return Icon;\n}\nconst EmailIcon = createIcon({\n color: \"#7f7f7f\",\n networkName: \"email\",\n path: \"M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z\"\n});\nconst EmailIcon$1 = EmailIcon;\nfunction objectToGetParams(object) {\n const params = Object.entries(object).filter(([, value]) => value !== void 0 && value !== null).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n return params.length > 0 ? `?${params.join(\"&\")}` : \"\";\n}\nconst isPromise = (obj) => !!obj && (typeof obj === \"object\" || typeof obj === \"function\") && typeof obj.then === \"function\";\nconst getBoxPositionOnWindowCenter = (width, height) => ({\n left: window.outerWidth / 2 + (window.screenX || window.screenLeft || 0) - width / 2,\n top: window.outerHeight / 2 + (window.screenY || window.screenTop || 0) - height / 2\n});\nconst getBoxPositionOnScreenCenter = (width, height) => ({\n top: (window.screen.height - height) / 2,\n left: (window.screen.width - width) / 2\n});\nfunction windowOpen(url, _a, onClose) {\n var _b = _a, { height, width } = _b, configRest = __objRest(_b, [\"height\", \"width\"]);\n const config = __spreadValues({\n height,\n width,\n location: \"no\",\n toolbar: \"no\",\n status: \"no\",\n directories: \"no\",\n menubar: \"no\",\n scrollbars: \"yes\",\n resizable: \"no\",\n centerscreen: \"yes\",\n chrome: \"yes\"\n }, configRest);\n const shareDialog = window.open(\n url,\n \"\",\n Object.keys(config).map((key) => `${key}=${config[key]}`).join(\", \")\n );\n if (onClose) {\n const interval = window.setInterval(() => {\n try {\n if (shareDialog === null || shareDialog.closed) {\n window.clearInterval(interval);\n onClose(shareDialog);\n }\n } catch (e) {\n console.error(e);\n }\n }, 1e3);\n }\n return shareDialog;\n}\nfunction ShareButton(_c) {\n var _d = _c, {\n beforeOnClick,\n children,\n className,\n disabled,\n disabledStyle = { opacity: 0.6 },\n forwardedRef,\n htmlTitle,\n networkLink,\n networkName,\n onClick,\n onShareWindowClose,\n openShareDialogOnClick = true,\n opts,\n resetButtonStyle = true,\n style,\n url,\n windowHeight = 400,\n windowPosition = \"windowCenter\",\n windowWidth = 550\n } = _d, rest = __objRest(_d, [\n \"beforeOnClick\",\n \"children\",\n \"className\",\n \"disabled\",\n \"disabledStyle\",\n \"forwardedRef\",\n \"htmlTitle\",\n \"networkLink\",\n \"networkName\",\n \"onClick\",\n \"onShareWindowClose\",\n \"openShareDialogOnClick\",\n \"opts\",\n \"resetButtonStyle\",\n \"style\",\n \"url\",\n \"windowHeight\",\n \"windowPosition\",\n \"windowWidth\"\n ]);\n const handleClick = async (event) => {\n const link = networkLink(url, opts);\n if (disabled) {\n return;\n }\n event.preventDefault();\n if (beforeOnClick) {\n const returnVal = beforeOnClick();\n if (isPromise(returnVal)) {\n await returnVal;\n }\n }\n if (openShareDialogOnClick) {\n const windowConfig = __spreadValues({\n height: windowHeight,\n width: windowWidth\n }, windowPosition === \"windowCenter\" ? getBoxPositionOnWindowCenter(windowWidth, windowHeight) : getBoxPositionOnScreenCenter(windowWidth, windowHeight));\n windowOpen(link, windowConfig, onShareWindowClose);\n }\n if (onClick) {\n onClick(event, link);\n }\n };\n const newClassName = cx(\n \"react-share__ShareButton\",\n {\n \"react-share__ShareButton--disabled\": !!disabled,\n disabled: !!disabled\n },\n className\n );\n const newStyle = resetButtonStyle ? __spreadValues(__spreadValues({\n backgroundColor: \"transparent\",\n border: \"none\",\n padding: 0,\n font: \"inherit\",\n color: \"inherit\",\n cursor: \"pointer\"\n }, style), disabled && disabledStyle) : __spreadValues(__spreadValues({}, style), disabled && disabledStyle);\n return /* @__PURE__ */ jsx(\n \"button\",\n __spreadProps(__spreadValues({}, rest), {\n className: newClassName,\n onClick: handleClick,\n ref: forwardedRef,\n style: newStyle,\n title: htmlTitle,\n children\n })\n );\n}\nfunction createShareButton(networkName, link, optsMap, defaultProps) {\n function CreatedButton(props, ref) {\n const opts = optsMap(props);\n const passedProps = __spreadValues({}, props);\n const optsKeys = Object.keys(opts);\n optsKeys.forEach((key) => {\n delete passedProps[key];\n });\n return /* @__PURE__ */ jsx(\n ShareButton,\n __spreadProps(__spreadValues(__spreadValues({}, defaultProps), passedProps), {\n forwardedRef: ref,\n networkName,\n networkLink: link,\n opts: optsMap(props)\n })\n );\n }\n CreatedButton.displayName = `ShareButton-${networkName}`;\n return forwardRef(CreatedButton);\n}\nfunction emailLink(url, { subject, body, separator }) {\n return \"mailto:\" + objectToGetParams({ subject, body: body ? body + separator + url : url });\n}\nconst EmailShareButton = createShareButton(\n \"email\",\n emailLink,\n (props) => ({\n subject: props.subject,\n body: props.body,\n separator: props.separator || \" \"\n }),\n {\n openShareDialogOnClick: false,\n onClick: (_, link) => {\n window.location.href = link;\n }\n }\n);\nconst EmailShareButton$1 = EmailShareButton;\nconst FacebookIcon = createIcon({\n color: \"#0965FE\",\n networkName: \"facebook\",\n path: \"M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z\"\n});\nconst FacebookIcon$1 = FacebookIcon;\nconst FacebookMessengerIcon = createIcon({\n color: \"#0A7CFF\",\n networkName: \"facebookmessenger\",\n path: \"M 53.066406 21.871094 C 52.667969 21.339844 51.941406 21.179688 51.359375 21.496094 L 37.492188 29.058594 L 28.867188 21.660156 C 28.339844 21.207031 27.550781 21.238281 27.054688 21.730469 L 11.058594 37.726562 C 10.539062 38.25 10.542969 39.09375 11.0625 39.613281 C 11.480469 40.027344 12.121094 40.121094 12.640625 39.839844 L 26.503906 32.28125 L 35.136719 39.679688 C 35.667969 40.132812 36.457031 40.101562 36.949219 39.609375 L 52.949219 23.613281 C 53.414062 23.140625 53.464844 22.398438 53.066406 21.871094 Z M 53.066406 21.871094\"\n});\nconst FacebookMessengerIcon$1 = FacebookMessengerIcon;\nfunction facebookMessengerLink(url, { appId, redirectUri, to }) {\n return \"https://www.facebook.com/dialog/send\" + objectToGetParams({\n link: url,\n redirect_uri: redirectUri || url,\n app_id: appId,\n to\n });\n}\nconst FacebookMessengerShareButton = createShareButton(\n \"facebookmessenger\",\n facebookMessengerLink,\n (props) => ({\n appId: props.appId,\n redirectUri: props.redirectUri,\n to: props.to\n }),\n {\n windowWidth: 1e3,\n windowHeight: 820\n }\n);\nconst FacebookMessengerShareButton$1 = FacebookMessengerShareButton;\nclass AssertionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"AssertionError\";\n }\n}\nfunction assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}\nfunction facebookLink(url, { hashtag }) {\n assert(url, \"facebook.url\");\n return \"https://www.facebook.com/sharer/sharer.php\" + objectToGetParams({ u: url, hashtag });\n}\nconst FacebookShareButton = createShareButton(\n \"facebook\",\n facebookLink,\n (props) => ({ hashtag: props.hashtag }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst FacebookShareButton$1 = FacebookShareButton;\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return useCallback(() => isMounted.current, []);\n}\nfunction SocialMediaShareCount(_e) {\n var _f = _e, {\n children = (shareCount) => shareCount,\n className,\n getCount,\n url\n } = _f, rest = __objRest(_f, [\n \"children\",\n \"className\",\n \"getCount\",\n \"url\"\n ]);\n const isMounted = useIsMounted();\n const [count, setCount] = useState(void 0);\n const [isLoading, setIsLoading] = useState(false);\n useEffect(() => {\n setIsLoading(true);\n getCount(url, (count2) => {\n if (isMounted()) {\n setCount(count2);\n setIsLoading(false);\n }\n });\n }, [url]);\n return /* @__PURE__ */ jsx(\"span\", __spreadProps(__spreadValues({ className: cx(\"react-share__ShareCount\", className) }, rest), { children: !isLoading && count !== void 0 && children(count) }));\n}\nfunction createShareCount(getCount) {\n const ShareCount = (props) => /* @__PURE__ */ jsx(SocialMediaShareCount, __spreadValues({ getCount }, props));\n ShareCount.displayName = `ShareCount(${getCount.name})`;\n return ShareCount;\n}\nfunction getFacebookShareCount(shareUrl, callback) {\n const endpoint = `https://graph.facebook.com/?id=${shareUrl}&fields=og_object{engagement}`;\n jsonp(endpoint, (err, data) => {\n callback(\n !err && data && data.og_object && data.og_object.engagement ? data.og_object.engagement.count : void 0\n );\n });\n}\nconst FacebookShareCount = createShareCount(getFacebookShareCount);\nconst HatenaIcon = createIcon({\n color: \"#009ad9\",\n networkName: \"hatena\",\n path: \"M 36.164062 33.554688 C 34.988281 32.234375 33.347656 31.5 31.253906 31.34375 C 33.125 30.835938 34.476562 30.09375 35.335938 29.09375 C 36.191406 28.09375 36.609375 26.78125 36.609375 25.101562 C 36.628906 23.875 36.332031 22.660156 35.75 21.578125 C 35.160156 20.558594 34.292969 19.71875 33.253906 19.160156 C 32.304688 18.640625 31.175781 18.265625 29.847656 18.042969 C 28.523438 17.824219 26.195312 17.730469 22.867188 17.730469 L 14.769531 17.730469 L 14.769531 47.269531 L 23.113281 47.269531 C 26.46875 47.269531 28.886719 47.15625 30.367188 46.929688 C 31.851562 46.695312 33.085938 46.304688 34.085938 45.773438 C 35.289062 45.148438 36.28125 44.179688 36.933594 42.992188 C 37.597656 41.796875 37.933594 40.402344 37.933594 38.816406 C 37.933594 36.621094 37.347656 34.867188 36.164062 33.554688 Z M 22.257812 24.269531 L 23.984375 24.269531 C 25.988281 24.269531 27.332031 24.496094 28.015625 24.945312 C 28.703125 25.402344 29.042969 26.183594 29.042969 27.285156 C 29.042969 28.390625 28.664062 29.105469 27.9375 29.550781 C 27.210938 29.992188 25.84375 30.199219 23.855469 30.199219 L 22.257812 30.199219 Z M 29.121094 41.210938 C 28.328125 41.691406 26.976562 41.925781 25.078125 41.925781 L 22.257812 41.925781 L 22.257812 35.488281 L 25.195312 35.488281 C 27.144531 35.488281 28.496094 35.738281 29.210938 36.230469 C 29.925781 36.726562 30.304688 37.582031 30.304688 38.832031 C 30.304688 40.078125 29.914062 40.742188 29.105469 41.222656 Z M 29.121094 41.210938 M 46.488281 39.792969 C 44.421875 39.792969 42.742188 41.46875 42.742188 43.535156 C 42.742188 45.605469 44.421875 47.28125 46.488281 47.28125 C 48.554688 47.28125 50.230469 45.605469 50.230469 43.535156 C 50.230469 41.46875 48.554688 39.792969 46.488281 39.792969 Z M 46.488281 39.792969 M 43.238281 17.730469 L 49.738281 17.730469 L 49.738281 37.429688 L 43.238281 37.429688 Z M 43.238281 17.730469 \"\n});\nconst HatenaIcon$1 = HatenaIcon;\nfunction hatenaLink(url, { title }) {\n assert(url, \"hatena.url\");\n return `http://b.hatena.ne.jp/add?mode=confirm&url=${url}&title=${title}`;\n}\nconst HatenaShareButton = createShareButton(\n \"hatena\",\n hatenaLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 660,\n windowHeight: 460,\n windowPosition: \"windowCenter\"\n }\n);\nconst HatenaShareButton$1 = HatenaShareButton;\nfunction getHatenaShareCount(shareUrl, callback) {\n const url = \"https://bookmark.hatenaapis.com/count/entry\";\n jsonp(\n url + objectToGetParams({\n url: shareUrl\n }),\n (err, data) => {\n callback(data != null ? data : void 0);\n }\n );\n}\nconst HatenaShareCount = createShareCount(getHatenaShareCount);\nconst InstapaperIcon = createIcon({\n color: \"#1F1F1F\",\n networkName: \"instapaper\",\n path: \"M35.688 43.012c0 2.425.361 2.785 3.912 3.056V48H24.401v-1.932c3.555-.27 3.912-.63 3.912-3.056V20.944c0-2.379-.36-2.785-3.912-3.056V16H39.6v1.888c-3.55.27-3.912.675-3.912 3.056v22.068h.001z\"\n});\nconst InstapaperIcon$1 = InstapaperIcon;\nfunction instapaperLink(url, { title, description }) {\n assert(url, \"instapaper.url\");\n return \"http://www.instapaper.com/hello2\" + objectToGetParams({\n url,\n title,\n description\n });\n}\nconst InstapaperShareButton = createShareButton(\n \"instapaper\",\n instapaperLink,\n (props) => ({\n title: props.title,\n description: props.description\n }),\n {\n windowWidth: 500,\n windowHeight: 500,\n windowPosition: \"windowCenter\"\n }\n);\nconst InstapaperShareButton$1 = InstapaperShareButton;\nconst LineIcon = createIcon({\n color: \"#00b800\",\n networkName: \"line\",\n path: \"M52.62 30.138c0 3.693-1.432 7.019-4.42 10.296h.001c-4.326 4.979-14 11.044-16.201 11.972-2.2.927-1.876-.591-1.786-1.112l.294-1.765c.069-.527.142-1.343-.066-1.865-.232-.574-1.146-.872-1.817-1.016-9.909-1.31-17.245-8.238-17.245-16.51 0-9.226 9.251-16.733 20.62-16.733 11.37 0 20.62 7.507 20.62 16.733zM27.81 25.68h-1.446a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-8.985a.402.402 0 0 0-.402-.401zm9.956 0H36.32a.402.402 0 0 0-.402.401v5.338L31.8 25.858a.39.39 0 0 0-.031-.04l-.002-.003-.024-.025-.008-.007a.313.313 0 0 0-.032-.026.255.255 0 0 1-.021-.014l-.012-.007-.021-.012-.013-.006-.023-.01-.013-.005-.024-.008-.014-.003-.023-.005-.017-.002-.021-.003-.021-.002h-1.46a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-5.337l4.123 5.568c.028.04.063.072.101.099l.004.003a.236.236 0 0 0 .025.015l.012.006.019.01a.154.154 0 0 1 .019.008l.012.004.028.01.005.001a.442.442 0 0 0 .104.013h1.446a.4.4 0 0 0 .401-.4v-8.985a.402.402 0 0 0-.401-.401zm-13.442 7.537h-3.93v-7.136a.401.401 0 0 0-.401-.401h-1.447a.4.4 0 0 0-.401.401v8.984a.392.392 0 0 0 .123.29c.072.068.17.111.278.111h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401zm21.429-5.287c.222 0 .401-.18.401-.402v-1.446a.401.401 0 0 0-.401-.402h-5.778a.398.398 0 0 0-.279.113l-.005.004-.006.008a.397.397 0 0 0-.111.276v8.984c0 .108.043.206.112.278l.005.006a.401.401 0 0 0 .284.117h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401h-3.93v-1.519h3.93c.222 0 .401-.18.401-.402V29.85a.401.401 0 0 0-.401-.402h-3.93V27.93h3.93z\"\n});\nconst LineIcon$1 = LineIcon;\nfunction lineLink(url, { title }) {\n assert(url, \"line.url\");\n return \"https://social-plugins.line.me/lineit/share\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst LineShareButton = createShareButton(\n \"line\",\n lineLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 500,\n windowHeight: 500\n }\n);\nconst LineShareButton$1 = LineShareButton;\nconst LinkedinIcon = createIcon({\n color: \"#0077B5\",\n networkName: \"linkedin\",\n path: \"M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z\"\n});\nconst LinkedinIcon$1 = LinkedinIcon;\nfunction linkedinLink(url, { title, summary, source }) {\n assert(url, \"linkedin.url\");\n return \"https://linkedin.com/shareArticle\" + objectToGetParams({ url, mini: \"true\", title, summary, source });\n}\nconst LinkedinShareButton = createShareButton(\n \"linkedin\",\n linkedinLink,\n ({ title, summary, source }) => ({ title, summary, source }),\n {\n windowWidth: 750,\n windowHeight: 600\n }\n);\nconst LinkedinShareButton$1 = LinkedinShareButton;\nconst LivejournalIcon = createIcon({\n color: \"#21A5D8\",\n networkName: \"livejournal\",\n path: \"M18.3407821,28.1764706 L21.9441341,31.789916 L33.0055865,42.882353 C33.0055865,42.882353 33.0893855,42.9663866 33.0893855,42.9663866 L46.6648046,47 C46.6648046,47 46.6648046,47 46.7486034,47 C46.8324022,47 46.8324022,47 46.9162012,46.9159664 C47,46.8319327 47,46.8319327 47,46.7478991 L42.9776536,33.1344537 C42.9776536,33.1344537 42.9776536,33.1344537 42.8938548,33.0504202 L31.1620111,21.3697479 L31.1620111,21.3697479 L28.1452514,18.2605042 C27.3072626,17.4201681 26.5530726,17 25.7150838,17 C24.2905028,17 23.0335195,18.3445378 21.5251397,19.8571429 C21.273743,20.1092437 20.9385475,20.4453781 20.6871508,20.697479 C20.3519553,21.0336134 20.1005586,21.2857143 19.849162,21.5378151 C18.3407821,22.9663866 17.0837989,24.2268908 17,25.7394958 C17.0837989,26.4957983 17.5027933,27.3361345 18.3407821,28.1764706 Z M39.9012319,39.6134454 C39.7336341,39.4453781 39.4822374,37.6806724 40.2364275,36.8403362 C40.9906174,36.0840337 41.6610084,36 42.1638017,36 C42.3313995,36 42.4989973,36 42.5827961,36 L44.8453659,43.5630253 L43.5883828,44.8235295 L36.0464833,42.5546218 C35.9626843,42.2184874 35.8788855,41.2100841 36.8844722,40.2016807 C37.2196676,39.8655463 37.8900587,39.6134454 38.5604498,39.6134454 C39.147042,39.6134454 39.5660364,39.7815126 39.5660364,39.7815126 C39.6498353,39.8655463 39.8174331,39.8655463 39.8174331,39.7815126 C39.9850307,39.7815126 39.9850307,39.697479 39.9012319,39.6134454 Z\"\n});\nconst LivejournalIcon$1 = LivejournalIcon;\nfunction livejournalLink(url, { title, description }) {\n assert(url, \"livejournal.url\");\n return \"https://www.livejournal.com/update.bml\" + objectToGetParams({\n subject: title,\n event: description\n });\n}\nconst LivejournalShareButton = createShareButton(\n \"livejournal\",\n livejournalLink,\n (props) => ({\n title: props.title,\n description: props.description\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst LivejournalShareButton$1 = LivejournalShareButton;\nconst MailruIcon = createIcon({\n color: \"#168DE2\",\n networkName: \"mailru\",\n path: \"M39.7107745,17 C41.6619755,17 43.3204965,18.732852 43.3204965,21.0072202 C43.3204965,23.2815885 41.7595357,25.0144404 39.7107745,25.0144404 C37.7595732,25.0144404 36.1010522,23.2815885 36.1010522,21.0072202 C36.1010522,18.732852 37.7595732,17 39.7107745,17 Z M24.3938451,17 C26.3450463,17 28.0035672,18.732852 28.0035672,21.0072202 C28.0035672,23.2815885 26.4426063,25.0144404 24.3938451,25.0144404 C22.4426439,25.0144404 20.7841229,23.2815885 20.7841229,21.0072202 C20.7841229,18.732852 22.4426439,17 24.3938451,17 Z M51.9057817,43.4259928 C51.7106617,44.0758123 51.4179815,44.6173285 50.9301812,44.9422383 C50.637501,45.1588448 50.2472607,45.267148 49.8570205,45.267148 C49.07654,45.267148 48.3936197,44.833935 48.0033795,44.0758123 L46.2472985,40.7184115 L45.759498,41.2599278 C42.5400162,44.9422383 37.466893,47 32.0035297,47 C26.5401664,47 21.5646034,44.9422383 18.2475614,41.2599278 L17.7597611,40.7184115 L16.00368,44.0758123 C15.6134398,44.833935 14.9305194,45.267148 14.1500389,45.267148 C13.7597986,45.267148 13.3695584,45.1588448 13.0768782,44.9422383 C12.0037176,44.2924187 11.7110374,42.7761733 12.2963978,41.5848375 L16.7841605,33.0288807 C17.1744007,32.270758 17.8573211,31.8375453 18.6378016,31.8375453 C19.0280418,31.8375453 19.4182821,31.9458485 19.7109623,32.1624548 C20.7841229,32.8122743 21.0768031,34.3285197 20.4914427,35.5198555 L20.1012025,36.2779783 L20.2963226,36.602888 C22.4426439,39.9602888 27.0279667,42.234657 31.9059697,42.234657 C36.7839727,42.234657 41.3692955,40.068592 43.5156167,36.602888 L43.7107367,36.2779783 L43.3204965,35.6281587 C43.0278165,35.0866425 42.9302562,34.436823 43.1253765,33.7870035 C43.3204965,33.137184 43.6131767,32.5956678 44.100977,32.270758 C44.3936572,32.0541515 44.7838975,31.9458485 45.1741377,31.9458485 C45.9546182,31.9458485 46.6375385,32.3790613 47.0277787,33.137184 L51.5155415,41.6931408 C52.003342,42.234657 52.100902,42.8844765 51.9057817,43.4259928 Z\"\n});\nconst MailruIcon$1 = MailruIcon;\nfunction mailruLink(url, { title, description, imageUrl }) {\n assert(url, \"mailru.url\");\n return \"https://connect.mail.ru/share\" + objectToGetParams({\n url,\n title,\n description,\n image_url: imageUrl\n });\n}\nconst MailruShareButton = createShareButton(\n \"mailru\",\n mailruLink,\n (props) => ({\n title: props.title,\n description: props.description,\n imageUrl: props.imageUrl\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst MailruShareButton$1 = MailruShareButton;\nconst OKIcon = createIcon({\n color: \"#F97400\",\n networkName: \"ok\",\n path: \"M39,30c-1,0-3,2-7,2s-6-2-7-2c-1.1,0-2,0.9-2,2c0,1,0.6,1.5,1,1.7c1.2,0.7,5,2.3,5,2.3l-4.3,5.4 c0,0-0.8,0.9-0.8,1.6c0,1.1,0.9,2,2,2c1,0,1.5-0.7,1.5-0.7S32,39,32,39c0,0,4.5,5.3,4.5,5.3S37,45,38,45c1.1,0,2-0.9,2-2 c0-0.6-0.8-1.6-0.8-1.6L35,36c0,0,3.8-1.6,5-2.3c0.4-0.3,1-0.7,1-1.7C41,30.9,40.1,30,39,30z M32,15c-3.9,0-7,3.1-7,7s3.1,7,7,7c3.9,0,7-3.1,7-7S35.9,15,32,15z M32,25.5 c-1.9,0-3.5-1.6-3.5-3.5c0-1.9,1.6-3.5,3.5-3.5c1.9,0,3.5,1.6,3.5,3.5C35.5,23.9,33.9,22.5,35,22.5z \"\n});\nconst OKIcon$1 = OKIcon;\nfunction okLink(url, { title, description, image }) {\n assert(url, \"ok.url\");\n return \"https://connect.ok.ru/offer\" + objectToGetParams({\n url,\n title,\n description,\n imageUrl: image\n });\n}\nconst OKShareButton = createShareButton(\n \"ok\",\n okLink,\n (props) => ({\n title: props.title,\n description: props.description,\n image: props.image\n }),\n {\n windowWidth: 588,\n windowHeight: 480,\n windowPosition: \"screenCenter\"\n }\n);\nconst OKShareButton$1 = OKShareButton;\nfunction getOKShareCount(shareUrl, callback) {\n if (!window.OK) {\n window.OK = {\n Share: {\n count: function count(index2, _count) {\n var _a, _b;\n (_b = (_a = window.OK.callbacks)[index2]) == null ? void 0 : _b.call(_a, _count);\n }\n },\n callbacks: []\n };\n }\n const url = \"https://connect.ok.ru/dk\";\n const index = window.OK.callbacks.length;\n window.ODKL = {\n updateCount(index2, count) {\n var _a, _b;\n const callbackIndex = index2 === \"\" ? 0 : parseInt(index2.replace(\"react-share-\", \"\"), 10);\n (_b = (_a = window.OK.callbacks)[callbackIndex]) == null ? void 0 : _b.call(_a, count === \"\" ? void 0 : parseInt(count, 10));\n }\n };\n window.OK.callbacks.push(callback);\n return jsonp(\n url + objectToGetParams({\n \"st.cmd\": \"extLike\",\n uid: `react-share-${index}`,\n ref: shareUrl\n })\n );\n}\nconst OKShareCount = createShareCount(getOKShareCount);\nconst PinterestIcon = createIcon({\n color: \"#E60023\",\n networkName: \"pinterest\",\n path: \"M32,16c-8.8,0-16,7.2-16,16c0,6.6,3.9,12.2,9.6,14.7c0-1.1,0-2.5,0.3-3.7 c0.3-1.3,2.1-8.7,2.1-8.7s-0.5-1-0.5-2.5c0-2.4,1.4-4.1,3.1-4.1c1.5,0,2.2,1.1,2.2,2.4c0,1.5-0.9,3.7-1.4,5.7 c-0.4,1.7,0.9,3.1,2.5,3.1c3,0,5.1-3.9,5.1-8.5c0-3.5-2.4-6.1-6.7-6.1c-4.9,0-7.9,3.6-7.9,7.7c0,1.4,0.4,2.4,1.1,3.1 c0.3,0.3,0.3,0.5,0.2,0.9c-0.1,0.3-0.3,1-0.3,1.3c-0.1,0.4-0.4,0.6-0.8,0.4c-2.2-0.9-3.3-3.4-3.3-6.1c0-4.5,3.8-10,11.4-10 c6.1,0,10.1,4.4,10.1,9.2c0,6.3-3.5,11-8.6,11c-1.7,0-3.4-0.9-3.9-2c0,0-0.9,3.7-1.1,4.4c-0.3,1.2-1,2.5-1.6,3.4 c1.4,0.4,3,0.7,4.5,0.7c8.8,0,16-7.2,16-16C48,23.2,40.8,16,32,16z\"\n});\nconst PinterestIcon$1 = PinterestIcon;\nfunction pinterestLink(url, { media, description, pinId }) {\n if (pinId) {\n return `https://pinterest.com/pin/${pinId}/repin/x/`;\n }\n assert(url, \"pinterest.url\");\n assert(media, \"pinterest.media\");\n return \"https://pinterest.com/pin/create/button/\" + objectToGetParams({\n url,\n media,\n description\n });\n}\nconst PinterestShareButton = createShareButton(\n \"pinterest\",\n pinterestLink,\n (props) => ({\n media: props.media,\n description: props.description,\n pinId: props.pinId\n }),\n {\n windowWidth: 1e3,\n windowHeight: 730\n }\n);\nconst PinterestShareButton$1 = PinterestShareButton;\nfunction getPinterestShareCount(shareUrl, callback) {\n const url = \"https://api.pinterest.com/v1/urls/count.json\";\n jsonp(\n url + objectToGetParams({\n url: shareUrl\n }),\n (err, data) => {\n callback(data ? data.count : void 0);\n }\n );\n}\nconst PinterestShareCount = createShareCount(getPinterestShareCount);\nconst PocketIcon = createIcon({\n color: \"#EF3F56\",\n networkName: \"pocket\",\n path: \"M41.084 29.065l-7.528 7.882a2.104 2.104 0 0 1-1.521.666 2.106 2.106 0 0 1-1.522-.666l-7.528-7.882c-.876-.914-.902-2.43-.065-3.384.84-.955 2.228-.987 3.1-.072l6.015 6.286 6.022-6.286c.88-.918 2.263-.883 3.102.071.841.938.82 2.465-.06 3.383l-.015.002zm6.777-10.976C47.463 16.84 46.361 16 45.14 16H18.905c-1.2 0-2.289.82-2.716 2.044-.125.363-.189.743-.189 1.125v10.539l.112 2.096c.464 4.766 2.73 8.933 6.243 11.838.06.053.125.102.19.153l.04.033c1.882 1.499 3.986 2.514 6.259 3.014a14.662 14.662 0 0 0 6.13.052c.118-.042.235-.065.353-.087.03 0 .065-.022.098-.042a15.395 15.395 0 0 0 6.011-2.945l.039-.045.18-.153c3.502-2.902 5.765-7.072 6.248-11.852L48 29.674v-10.52c0-.366-.041-.728-.161-1.08l.022.015z\"\n});\nconst PocketIcon$1 = PocketIcon;\nfunction pocketLink(url, { title }) {\n assert(url, \"pocket.url\");\n return \"https://getpocket.com/save\" + objectToGetParams({\n url,\n title\n });\n}\nconst PocketShareButton = createShareButton(\n \"pocket\",\n pocketLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 500,\n windowHeight: 500\n }\n);\nconst PocketShareButton$1 = PocketShareButton;\nconst RedditIcon = createIcon({\n color: \"#FF5700\",\n networkName: \"reddit\",\n path: \"M 53.34375 32 C 53.277344 30.160156 52.136719 28.53125 50.429688 27.839844 C 48.722656 27.148438 46.769531 27.523438 45.441406 28.800781 C 41.800781 26.324219 37.519531 24.957031 33.121094 24.863281 L 35.199219 14.878906 L 42.046875 16.320312 C 42.214844 17.882812 43.496094 19.09375 45.066406 19.171875 C 46.636719 19.253906 48.03125 18.183594 48.359375 16.644531 C 48.6875 15.105469 47.847656 13.558594 46.382812 12.992188 C 44.914062 12.425781 43.253906 13.007812 42.464844 14.367188 L 34.625 12.800781 C 34.363281 12.742188 34.09375 12.792969 33.871094 12.9375 C 33.648438 13.082031 33.492188 13.308594 33.441406 13.566406 L 31.070312 24.671875 C 26.617188 24.738281 22.277344 26.105469 18.59375 28.609375 C 17.242188 27.339844 15.273438 26.988281 13.570312 27.707031 C 11.863281 28.429688 10.746094 30.089844 10.71875 31.941406 C 10.691406 33.789062 11.757812 35.484375 13.441406 36.257812 C 13.402344 36.726562 13.402344 37.195312 13.441406 37.664062 C 13.441406 44.832031 21.792969 50.65625 32.097656 50.65625 C 42.398438 50.65625 50.753906 44.832031 50.753906 37.664062 C 50.789062 37.195312 50.789062 36.726562 50.753906 36.257812 C 52.363281 35.453125 53.371094 33.800781 53.34375 32 Z M 21.34375 35.199219 C 21.34375 33.433594 22.777344 32 24.542969 32 C 26.3125 32 27.742188 33.433594 27.742188 35.199219 C 27.742188 36.96875 26.3125 38.398438 24.542969 38.398438 C 22.777344 38.398438 21.34375 36.96875 21.34375 35.199219 Z M 39.9375 44 C 37.664062 45.710938 34.871094 46.582031 32.03125 46.464844 C 29.191406 46.582031 26.398438 45.710938 24.128906 44 C 23.847656 43.65625 23.871094 43.15625 24.183594 42.839844 C 24.5 42.527344 25 42.503906 25.34375 42.785156 C 27.269531 44.195312 29.617188 44.90625 32 44.800781 C 34.386719 44.929688 36.746094 44.242188 38.6875 42.847656 C 39.042969 42.503906 39.605469 42.511719 39.953125 42.863281 C 40.296875 43.21875 40.289062 43.785156 39.9375 44.128906 Z M 39.359375 38.527344 C 37.59375 38.527344 36.160156 37.09375 36.160156 35.328125 C 36.160156 33.5625 37.59375 32.128906 39.359375 32.128906 C 41.128906 32.128906 42.558594 33.5625 42.558594 35.328125 C 42.59375 36.203125 42.269531 37.054688 41.65625 37.6875 C 41.046875 38.316406 40.203125 38.664062 39.328125 38.65625 Z M 39.359375 38.527344\"\n});\nconst RedditIcon$1 = RedditIcon;\nfunction redditLink(url, { title }) {\n assert(url, \"reddit.url\");\n return \"https://www.reddit.com/submit\" + objectToGetParams({\n url,\n title\n });\n}\nconst RedditShareButton = createShareButton(\n \"reddit\",\n redditLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 660,\n windowHeight: 460,\n windowPosition: \"windowCenter\"\n }\n);\nconst RedditShareButton$1 = RedditShareButton;\nfunction gabLink(url, { title }) {\n assert(url, \"gab.url\");\n return \"https://gab.com/compose\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst GabShareButton = createShareButton(\n \"gab\",\n gabLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 660,\n windowHeight: 640,\n windowPosition: \"windowCenter\"\n }\n);\nconst GabShareButton$1 = GabShareButton;\nconst GabIcon = createIcon({\n color: \"#00d178\",\n networkName: \"gab\",\n path: \"m17.0506,23.97457l5.18518,0l0,14.23933c0,6.82699 -3.72695,10.09328 -9.33471,10.09328c-2.55969,0 -4.82842,-0.87286 -6.22084,-2.0713l2.07477,-3.88283c1.19844,0.81051 2.33108,1.29543 3.85511,1.29543c2.75366,0 4.44049,-1.97432 4.44049,-4.82149l0,-0.87286c-1.16728,1.39242 -2.81947,2.0713 -4.63446,2.0713c-4.44048,0 -7.81068,-3.68885 -7.81068,-8.28521c0,-4.59289 3.37019,-8.28174 7.81068,-8.28174c1.81499,0 3.46718,0.67888 4.63446,2.0713l0,-1.55521zm-3.62997,11.39217c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm25.7077,4.13913l-5.18518,0l0,-1.29197c-1.00448,1.13264 -2.3969,1.81152 -4.21188,1.81152c-3.62997,0 -5.63893,-2.52504 -5.63893,-5.4034c0,-4.27076 5.251,-5.85715 9.78846,-4.49937c-0.09698,-1.39241 -0.9733,-2.39343 -2.78829,-2.39343c-1.26426,0 -2.72248,0.48492 -3.62997,1.00102l-1.5552,-3.72003c1.19844,-0.77587 3.40136,-1.55174 5.96452,-1.55174c3.78931,0 7.25648,2.13365 7.25648,7.95962l0,8.08777zm-5.18518,-6.14809c-2.42806,-0.77587 -4.66563,-0.3533 -4.66563,1.36124c0,1.00101 0.84168,1.6799 1.84616,1.6799c1.20191,0 2.56315,-0.96984 2.81947,-3.04115zm13.00626,-17.66495l0,9.83695c1.16727,-1.39242 2.81946,-2.0713 4.63445,-2.0713c4.44048,0 7.81068,3.68885 7.81068,8.28174c0,4.59636 -3.37019,8.28521 -7.81068,8.28521c-1.81499,0 -3.46718,-0.67888 -4.63445,-2.0713l0,1.55174l-5.18519,0l0,-23.81304l5.18519,0zm3.62997,19.67391c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm0,0\"\n});\nconst GabIcon$1 = GabIcon;\nfunction getRedditShareCount(shareUrl, callback) {\n const endpoint = `https://www.reddit.com/api/info.json?limit=1&url=${shareUrl}`;\n jsonp(endpoint, { param: \"jsonp\" }, (err, response) => {\n callback(\n !err && response && response.data && response.data.children.length > 0 && response.data.children[0].data.score ? response.data.children[0].data.score : void 0\n );\n });\n}\nconst RedditShareCount = createShareCount(getRedditShareCount);\nconst TelegramIcon = createIcon({\n color: \"#25A3E3\",\n networkName: \"telegram\",\n path: \"m45.90873,15.44335c-0.6901,-0.0281 -1.37668,0.14048 -1.96142,0.41265c-0.84989,0.32661 -8.63939,3.33986 -16.5237,6.39174c-3.9685,1.53296 -7.93349,3.06593 -10.98537,4.24067c-3.05012,1.1765 -5.34694,2.05098 -5.4681,2.09312c-0.80775,0.28096 -1.89996,0.63566 -2.82712,1.72788c-0.23354,0.27218 -0.46884,0.62161 -0.58825,1.10275c-0.11941,0.48114 -0.06673,1.09222 0.16682,1.5716c0.46533,0.96052 1.25376,1.35737 2.18443,1.71383c3.09051,0.99037 6.28638,1.93508 8.93263,2.8236c0.97632,3.44171 1.91401,6.89571 2.84116,10.34268c0.30554,0.69185 0.97105,0.94823 1.65764,0.95525l-0.00351,0.03512c0,0 0.53908,0.05268 1.06412,-0.07375c0.52679,-0.12292 1.18879,-0.42846 1.79109,-0.99212c0.662,-0.62161 2.45836,-2.38812 3.47683,-3.38552l7.6736,5.66477l0.06146,0.03512c0,0 0.84989,0.59703 2.09312,0.68132c0.62161,0.04214 1.4399,-0.07726 2.14229,-0.59176c0.70766,-0.51626 1.1765,-1.34683 1.396,-2.29506c0.65673,-2.86224 5.00979,-23.57745 5.75257,-27.00686l-0.02107,0.08077c0.51977,-1.93157 0.32837,-3.70159 -0.87096,-4.74991c-0.60054,-0.52152 -1.2924,-0.7498 -1.98425,-0.77965l0,0.00176zm-0.2072,3.29069c0.04741,0.0439 0.0439,0.0439 0.00351,0.04741c-0.01229,-0.00351 0.14048,0.2072 -0.15804,1.32576l-0.01229,0.04214l-0.00878,0.03863c-0.75858,3.50668 -5.15554,24.40802 -5.74203,26.96472c-0.08077,0.34417 -0.11414,0.31959 -0.09482,0.29852c-0.1756,-0.02634 -0.50045,-0.16506 -0.52679,-0.1756l-13.13468,-9.70175c4.4988,-4.33199 9.09945,-8.25307 13.744,-12.43229c0.8218,-0.41265 0.68483,-1.68573 -0.29852,-1.70681c-1.04305,0.24584 -1.92279,0.99564 -2.8798,1.47502c-5.49971,3.2626 -11.11882,6.13186 -16.55882,9.49279c-2.792,-0.97105 -5.57873,-1.77704 -8.15298,-2.57601c2.2336,-0.89555 4.00889,-1.55579 5.75608,-2.23009c3.05188,-1.1765 7.01687,-2.7042 10.98537,-4.24067c7.94051,-3.06944 15.92667,-6.16346 16.62028,-6.43037l0.05619,-0.02283l0.05268,-0.02283c0.19316,-0.0878 0.30378,-0.09658 0.35471,-0.10009c0,0 -0.01756,-0.05795 -0.00351,-0.04566l-0.00176,0zm-20.91715,22.0638l2.16687,1.60145c-0.93418,0.91311 -1.81743,1.77353 -2.45485,2.38812l0.28798,-3.98957\"\n});\nconst TelegramIcon$1 = TelegramIcon;\nfunction telegramLink(url, { title }) {\n assert(url, \"telegram.url\");\n return \"https://telegram.me/share/url\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst TelegramShareButton = createShareButton(\n \"telegram\",\n telegramLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst TelegramShareButton$1 = TelegramShareButton;\nconst TumblrIcon = createIcon({\n color: \"#34526f\",\n networkName: \"tumblr\",\n path: \"M39.2,41c-0.6,0.3-1.6,0.5-2.4,0.5c-2.4,0.1-2.9-1.7-2.9-3v-9.3h6v-4.5h-6V17c0,0-4.3,0-4.4,0 c-0.1,0-0.2,0.1-0.2,0.2c-0.3,2.3-1.4,6.4-5.9,8.1v3.9h3V39c0,3.4,2.5,8.1,9,8c2.2,0,4.7-1,5.2-1.8L39.2,41z\"\n});\nconst TumblrIcon$1 = TumblrIcon;\nfunction tumblrLink(url, {\n title,\n caption,\n tags,\n posttype\n}) {\n assert(url, \"tumblr.url\");\n return \"https://www.tumblr.com/widgets/share/tool\" + objectToGetParams({\n canonicalUrl: url,\n title,\n caption,\n tags,\n posttype\n });\n}\nconst TumblrShareButton = createShareButton(\n \"tumblr\",\n tumblrLink,\n (props) => ({\n title: props.title,\n tags: (props.tags || []).join(\",\"),\n caption: props.caption,\n posttype: props.posttype || \"link\"\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst TumblrShareButton$1 = TumblrShareButton;\nfunction getTumblrShareCount(shareUrl, callback) {\n const endpoint = \"https://api.tumblr.com/v2/share/stats\";\n return jsonp(\n endpoint + objectToGetParams({\n url: shareUrl\n }),\n (err, data) => {\n callback(!err && data && data.response ? data.response.note_count : void 0);\n }\n );\n}\nconst TumblrShareCount = createShareCount(getTumblrShareCount);\nconst TwitterIcon = createIcon({\n color: \"#00aced\",\n networkName: \"twitter\",\n path: \"M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z\"\n});\nconst TwitterIcon$1 = TwitterIcon;\nfunction twitterLink(url, {\n title,\n via,\n hashtags = [],\n related = []\n}) {\n assert(url, \"twitter.url\");\n assert(Array.isArray(hashtags), \"twitter.hashtags is not an array\");\n assert(Array.isArray(related), \"twitter.related is not an array\");\n return \"https://twitter.com/intent/tweet\" + objectToGetParams({\n url,\n text: title,\n via,\n hashtags: hashtags.length > 0 ? hashtags.join(\",\") : void 0,\n related: related.length > 0 ? related.join(\",\") : void 0\n });\n}\nconst TwitterShareButton = createShareButton(\n \"twitter\",\n twitterLink,\n (props) => ({\n hashtags: props.hashtags,\n title: props.title,\n via: props.via,\n related: props.related\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst TwitterShareButton$1 = TwitterShareButton;\nconst ViberIcon = createIcon({\n color: \"#7360f2\",\n networkName: \"viber\",\n path: \"m31.0,12.3c9.0,0.2 16.4,6.2 18.0,15.2c0.2,1.5 0.3,3.0 0.4,4.6a1.0,1.0 0 0 1 -0.8,1.2l-0.1,0a1.1,1.1 0 0 1 -1.0,-1.2l0,0c-0.0,-1.2 -0.1,-2.5 -0.3,-3.8a16.1,16.1 0 0 0 -13.0,-13.5c-1.0,-0.1 -2.0,-0.2 -3.0,-0.3c-0.6,-0.0 -1.4,-0.1 -1.6,-0.8a1.1,1.1 0 0 1 0.9,-1.2l0.6,0l0.0,-0.0zm10.6,39.2a19.9,19.9 0 0 1 -2.1,-0.6c-6.9,-2.9 -13.2,-6.6 -18.3,-12.2a47.5,47.5 0 0 1 -7.0,-10.7c-0.8,-1.8 -1.6,-3.7 -2.4,-5.6c-0.6,-1.7 0.3,-3.4 1.4,-4.7a11.3,11.3 0 0 1 3.7,-2.8a2.4,2.4 0 0 1 3.0,0.7a39.0,39.0 0 0 1 4.7,6.5a3.1,3.1 0 0 1 -0.8,4.2c-0.3,0.2 -0.6,0.5 -1.0,0.8a3.3,3.3 0 0 0 -0.7,0.7a2.1,2.1 0 0 0 -0.1,1.9c1.7,4.9 4.7,8.7 9.7,10.8a5.0,5.0 0 0 0 2.5,0.6c1.5,-0.1 2.0,-1.8 3.1,-2.7a2.9,2.9 0 0 1 3.5,-0.1c1.1,0.7 2.2,1.4 3.3,2.2a37.8,37.8 0 0 1 3.1,2.4a2.4,2.4 0 0 1 0.7,3.0a10.4,10.4 0 0 1 -4.4,4.8a10.8,10.8 0 0 1 -1.9,0.6c-0.7,-0.2 0.6,-0.2 0,0l0.0,0l0,-0.0zm3.1,-21.4a4.2,4.2 0 0 1 -0.0,0.6a1.0,1.0 0 0 1 -1.9,0.1a2.7,2.7 0 0 1 -0.1,-0.8a10.9,10.9 0 0 0 -1.4,-5.5a10.2,10.2 0 0 0 -4.2,-4.0a12.3,12.3 0 0 0 -3.4,-1.0c-0.5,-0.0 -1.0,-0.1 -1.5,-0.2a0.9,0.9 0 0 1 -0.9,-1.0l0,-0.1a0.9,0.9 0 0 1 0.9,-0.9l0.1,0a14.1,14.1 0 0 1 5.9,1.5a11.9,11.9 0 0 1 6.5,9.3c0,0.1 0.0,0.3 0.0,0.5c0,0.4 0.0,0.9 0.0,1.5l0,0l0.0,0.0zm-5.6,-0.2a1.1,1.1 0 0 1 -1.2,-0.9l0,-0.1a11.3,11.3 0 0 0 -0.2,-1.4a4.0,4.0 0 0 0 -1.5,-2.3a3.9,3.9 0 0 0 -1.2,-0.5c-0.5,-0.1 -1.1,-0.1 -1.6,-0.2a1.0,1.0 0 0 1 -0.8,-1.1l0,0l0,0a1.0,1.0 0 0 1 1.1,-0.8c3.4,0.2 6.0,2.0 6.3,6.2a2.8,2.8 0 0 1 0,0.8a0.8,0.8 0 0 1 -0.8,0.7l0,0l0.0,-0.0z\"\n});\nconst ViberIcon$1 = ViberIcon;\nfunction viberLink(url, { title, separator }) {\n assert(url, \"viber.url\");\n return \"viber://forward\" + objectToGetParams({\n text: title ? title + separator + url : url\n });\n}\nconst ViberShareButton = createShareButton(\n \"viber\",\n viberLink,\n (props) => ({\n title: props.title,\n separator: props.separator || \" \"\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst ViberShareButton$1 = ViberShareButton;\nconst VKIcon = createIcon({\n color: \"#4C75A3\",\n networkName: \"vk\",\n path: \"M44.94,44.84h-0.2c-2.17-.36-3.66-1.92-4.92-3.37C39.1,40.66,38,38.81,36.7,39c-1.85.3-.93,3.52-1.71,4.9-0.62,1.11-3.29.91-5.12,0.71-5.79-.62-8.75-3.77-11.35-7.14A64.13,64.13,0,0,1,11.6,26a10.59,10.59,0,0,1-1.51-4.49C11,20.7,12.56,21,14.11,21c1.31,0,3.36-.29,4.32.2C19,21.46,19.57,23,20,24a37.18,37.18,0,0,0,3.31,5.82c0.56,0.81,1.41,2.35,2.41,2.14s1.06-2.63,1.1-4.18c0-1.77,0-4-.5-4.9S25,22,24.15,21.47c0.73-1.49,2.72-1.63,5.12-1.63,2,0,4.84-.23,5.62,1.12s0.25,3.85.2,5.71c-0.06,2.09-.41,4.25,1,5.21,1.09-.12,1.68-1.2,2.31-2A28,28,0,0,0,41.72,24c0.44-1,.91-2.65,1.71-3,1.21-.47,3.15-0.1,4.92-0.1,1.46,0,4.05-.41,4.52.61,0.39,0.85-.75,3-1.1,3.57a61.88,61.88,0,0,1-4.12,5.61c-0.58.78-1.78,2-1.71,3.27,0.05,0.94,1,1.67,1.71,2.35a33.12,33.12,0,0,1,3.92,4.18c0.47,0.62,1.5,2,1.4,2.76C52.66,45.81,46.88,44.24,44.94,44.84Z\"\n});\nconst VKIcon$1 = VKIcon;\nfunction vkLink(url, { title, image, noParse, noVkLinks }) {\n assert(url, \"vk.url\");\n return \"https://vk.com/share.php\" + objectToGetParams({\n url,\n title,\n image,\n noparse: noParse ? 1 : 0,\n no_vk_links: noVkLinks ? 1 : 0\n });\n}\nconst VKShareButton = createShareButton(\n \"vk\",\n vkLink,\n (props) => ({\n title: props.title,\n image: props.image,\n noParse: props.noParse,\n noVkLinks: props.noVkLinks\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst VKShareButton$1 = VKShareButton;\nfunction getVKShareCount(shareUrl, callback) {\n if (!window.VK)\n window.VK = {};\n window.VK.Share = {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n count: (index2, count) => {\n var _a, _b;\n return (_b = (_a = window.VK.callbacks) == null ? void 0 : _a[index2]) == null ? void 0 : _b.call(_a, count);\n }\n };\n window.VK.callbacks = [];\n const url = \"https://vk.com/share.php\";\n const index = window.VK.callbacks.length;\n window.VK.callbacks.push(callback);\n return jsonp(\n url + objectToGetParams({\n act: \"count\",\n index,\n url: shareUrl\n })\n );\n}\nconst VKShareCount = createShareCount(getVKShareCount);\nconst WeiboIcon = createIcon({\n color: \"#DF2029\",\n networkName: \"weibo\",\n path: \"M40.9756152,15.0217119 C40.5000732,15.0546301 39.9999314,15.1204666 39.5325878,15.2192213 C38.6634928,15.4085016 38.0977589,16.2643757 38.2863368,17.1284787 C38.4667163,18.0008129 39.3194143,18.5686519 40.1885094,18.3793715 C42.8613908,17.8115326 45.7720411,18.6427174 47.7316073,20.8153207 C49.6911735,22.996153 50.2077122,25.975254 49.3714112,28.5840234 C49.1008441,29.4316684 49.5763861,30.3533789 50.4208857,30.6249537 C51.2653852,30.8965286 52.1754769,30.4192153 52.4542425,29.5715703 C53.6349013,25.9011885 52.9133876,21.7699494 50.1585171,18.7085538 C48.0923641,16.4042776 45.2063093,15.1533848 42.3530505,15.0217119 C41.8775084,14.9970227 41.4511594,14.9887937 40.9756152,15.0217119 Z M27.9227762,19.8277737 C24.9957268,20.140498 20.863421,22.4365431 17.2312548,26.0822378 C13.2711279,30.0571148 11,34.2871065 11,37.9328012 C11,44.9032373 19.8713401,49.125 28.5786978,49.125 C39.9917329,49.125 47.600423,42.4261409 47.600423,37.1427636 C47.600423,33.9496952 44.9603397,32.1638816 42.549827,31.4149913 C41.9594976,31.2339421 41.5167516,31.1434164 41.8283133,30.3616079 C42.5006339,28.66632 42.6236176,27.1932286 41.8939054,26.1480742 C40.5328692,24.1894405 36.7203236,24.2881952 32.448635,26.0822378 C32.448635,26.0822378 31.1203949,26.6912261 31.4647526,25.6213825 C32.1206742,23.4981576 32.0304845,21.712342 31.0056075,20.6836478 C30.2840938,19.9512176 29.2510184,19.6878718 27.9227762,19.8277737 Z M42.0906819,20.6836478 C41.6233383,20.6589586 41.1723917,20.716566 40.7132466,20.8153207 C39.9671353,20.9716828 39.4997917,21.7781784 39.6637721,22.5270687 C39.8277525,23.275959 40.5574647,23.7450433 41.303576,23.5804521 C42.1972686,23.3911718 43.2057485,23.6380596 43.8616701,24.3704897 C44.5175916,25.1029198 44.6733735,26.0657797 44.3864073,26.9381118 C44.1486363,27.6705419 44.5093932,28.4770397 45.2391054,28.7156963 C45.9688176,28.9461239 46.780521,28.5922524 47.0100936,27.8598223 C47.584026,26.0740087 47.2396661,24.0248493 45.8950269,22.5270687 C44.886547,21.4078489 43.4845162,20.7494842 42.0906819,20.6836478 Z M29.496988,29.9665891 C35.3100922,30.1723275 39.9917329,33.0691319 40.3852858,37.0769272 C40.8362324,41.6607904 35.5970585,45.9319315 28.6442899,46.6232144 C21.6915214,47.3144973 15.6488446,44.154347 15.197898,39.5787128 C14.7469514,34.9948495 20.059916,30.7237084 27.004486,30.0324256 C27.8735831,29.950131 28.6688875,29.9336709 29.496988,29.9665891 Z M25.5614586,34.3776322 C23.183744,34.5916017 20.9372116,35.9577073 19.9205332,37.9328012 C18.5348994,40.6238672 19.9041362,43.6029661 23.0689567,44.582284 C26.340366,45.5945202 30.1857056,44.0638213 31.5303448,41.1587879 C32.8503864,38.3195909 31.1613894,35.3734082 27.9227762,34.5751416 C27.1438688,34.3776322 26.356763,34.3035667 25.5614586,34.3776322 Z M24.052839,38.7228388 C24.3316067,38.7310678 24.5857748,38.8215935 24.8399449,38.9203482 C25.8648218,39.3400561 26.1845841,40.4428158 25.5614586,41.4221338 C24.9219361,42.3932227 23.5690963,42.8623069 22.5442194,42.4096807 C21.5357395,41.9652856 21.2487754,40.8542948 21.8882979,39.9078951 C22.3638421,39.2001542 23.2247386,38.7146097 24.052839,38.7228388 Z\"\n});\nconst WeiboIcon$1 = WeiboIcon;\nfunction weiboLink(url, { title, image }) {\n assert(url, \"weibo.url\");\n return \"http://service.weibo.com/share/share.php\" + objectToGetParams({\n url,\n title,\n pic: image\n });\n}\nconst WeiboShareButton = createShareButton(\n \"weibo\",\n weiboLink,\n (props) => ({\n title: props.title,\n image: props.image\n }),\n {\n windowWidth: 660,\n windowHeight: 550,\n windowPosition: \"screenCenter\"\n }\n);\nconst WeiboShareButton$1 = WeiboShareButton;\nconst WhatsappIcon = createIcon({\n color: \"#25D366\",\n networkName: \"whatsapp\",\n path: \"m42.32286,33.93287c-0.5178,-0.2589 -3.04726,-1.49644 -3.52105,-1.66732c-0.4712,-0.17346 -0.81554,-0.2589 -1.15987,0.2589c-0.34175,0.51004 -1.33075,1.66474 -1.63108,2.00648c-0.30032,0.33658 -0.60064,0.36247 -1.11327,0.12945c-0.5178,-0.2589 -2.17994,-0.80259 -4.14759,-2.56312c-1.53269,-1.37217 -2.56312,-3.05503 -2.86603,-3.57283c-0.30033,-0.5178 -0.03366,-0.80259 0.22524,-1.06149c0.23301,-0.23301 0.5178,-0.59547 0.7767,-0.90616c0.25372,-0.31068 0.33657,-0.5178 0.51262,-0.85437c0.17088,-0.36246 0.08544,-0.64725 -0.04402,-0.90615c-0.12945,-0.2589 -1.15987,-2.79613 -1.58964,-3.80584c-0.41424,-1.00971 -0.84142,-0.88027 -1.15987,-0.88027c-0.29773,-0.02588 -0.64208,-0.02588 -0.98382,-0.02588c-0.34693,0 -0.90616,0.12945 -1.37736,0.62136c-0.4712,0.5178 -1.80194,1.76053 -1.80194,4.27186c0,2.51134 1.84596,4.945 2.10227,5.30747c0.2589,0.33657 3.63497,5.51458 8.80262,7.74113c1.23237,0.5178 2.1903,0.82848 2.94111,1.08738c1.23237,0.38836 2.35599,0.33657 3.24402,0.20712c0.99159,-0.15534 3.04985,-1.24272 3.47963,-2.45956c0.44013,-1.21683 0.44013,-2.22654 0.31068,-2.45955c-0.12945,-0.23301 -0.46601,-0.36247 -0.98382,-0.59548m-9.40068,12.84407l-0.02589,0c-3.05503,0 -6.08417,-0.82849 -8.72495,-2.38189l-0.62136,-0.37023l-6.47252,1.68286l1.73463,-6.29129l-0.41424,-0.64725c-1.70875,-2.71846 -2.6149,-5.85116 -2.6149,-9.07706c0,-9.39809 7.68934,-17.06155 17.15993,-17.06155c4.58253,0 8.88029,1.78642 12.11655,5.02268c3.23625,3.21036 5.02267,7.50812 5.02267,12.06476c-0.0078,9.3981 -7.69712,17.06155 -17.14699,17.06155m14.58906,-31.58846c-3.93529,-3.80584 -9.1133,-5.95471 -14.62789,-5.95471c-11.36055,0 -20.60848,9.2065 -20.61625,20.52564c0,3.61684 0.94757,7.14565 2.75211,10.26282l-2.92557,10.63564l10.93337,-2.85309c3.0136,1.63108 6.4052,2.4958 9.85634,2.49839l0.01037,0c11.36574,0 20.61884,-9.2091 20.62403,-20.53082c0,-5.48093 -2.14111,-10.64081 -6.03239,-14.51915\"\n});\nconst WhatsappIcon$1 = WhatsappIcon;\nfunction isMobileOrTablet() {\n return /(android|iphone|ipad|mobile)/i.test(navigator.userAgent);\n}\nfunction whatsappLink(url, { title, separator }) {\n assert(url, \"whatsapp.url\");\n return \"https://\" + (isMobileOrTablet() ? \"api\" : \"web\") + \".whatsapp.com/send\" + objectToGetParams({\n text: title ? title + separator + url : url\n });\n}\nconst WhatsappShareButton = createShareButton(\n \"whatsapp\",\n whatsappLink,\n (props) => ({\n title: props.title,\n separator: props.separator || \" \"\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst WhatsappShareButton$1 = WhatsappShareButton;\nconst WorkplaceIcon = createIcon({\n color: \"#4326c4\",\n networkName: \"workplace\",\n path: \"M34.019,10.292c0.21,0.017,0.423,0.034,0.636,0.049 c3.657,0.262,6.976,1.464,9.929,3.635c3.331,2.448,5.635,5.65,6.914,9.584c0.699,2.152,0.983,4.365,0.885,6.623 c-0.136,3.171-1.008,6.13-2.619,8.867c-0.442,0.75-0.908,1.492-1.495,2.141c-0.588,0.651-1.29,1.141-2.146,1.383 c-1.496,0.426-3.247-0.283-3.961-1.642c-0.26-0.494-0.442-1.028-0.654-1.548c-1.156-2.838-2.311-5.679-3.465-8.519 c-0.017-0.042-0.037-0.082-0.065-0.145c-0.101,0.245-0.192,0.472-0.284,0.698c-1.237,3.051-2.475,6.103-3.711,9.155 c-0.466,1.153-1.351,1.815-2.538,2.045c-1.391,0.267-2.577-0.154-3.496-1.247c-0.174-0.209-0.31-0.464-0.415-0.717 c-2.128-5.22-4.248-10.442-6.37-15.665c-0.012-0.029-0.021-0.059-0.036-0.104c0.054-0.003,0.103-0.006,0.15-0.006 c1.498-0.001,2.997,0,4.495-0.004c0.12-0.001,0.176,0.03,0.222,0.146c1.557,3.846,3.117,7.691,4.679,11.536 c0.018,0.046,0.039,0.091,0.067,0.159c0.273-0.673,0.536-1.32,0.797-1.968c1.064-2.627,2.137-5.25,3.19-7.883 c0.482-1.208,1.376-1.917,2.621-2.135c1.454-0.255,2.644,0.257,3.522,1.449c0.133,0.18,0.229,0.393,0.313,0.603 c1.425,3.495,2.848,6.991,4.269,10.488c0.02,0.047,0.04,0.093,0.073,0.172c0.196-0.327,0.385-0.625,0.559-0.935 c0.783-1.397,1.323-2.886,1.614-4.461c0.242-1.312,0.304-2.634,0.187-3.962c-0.242-2.721-1.16-5.192-2.792-7.38 c-2.193-2.939-5.086-4.824-8.673-5.625c-1.553-0.346-3.124-0.405-4.705-0.257c-3.162,0.298-6.036,1.366-8.585,3.258 c-3.414,2.534-5.638,5.871-6.623,10.016c-0.417,1.76-0.546,3.547-0.384,5.348c0.417,4.601,2.359,8.444,5.804,11.517 c2.325,2.073,5.037,3.393,8.094,3.989c1.617,0.317,3.247,0.395,4.889,0.242c1-0.094,1.982-0.268,2.952-0.529 c0.04-0.01,0.081-0.018,0.128-0.028c0,1.526,0,3.047,0,4.586c-0.402,0.074-0.805,0.154-1.21,0.221 c-0.861,0.14-1.728,0.231-2.601,0.258c-0.035,0.002-0.071,0.013-0.108,0.021c-0.493,0-0.983,0-1.476,0 c-0.049-0.007-0.1-0.018-0.149-0.022c-0.315-0.019-0.629-0.033-0.945-0.058c-1.362-0.105-2.702-0.346-4.017-0.716 c-3.254-0.914-6.145-2.495-8.66-4.752c-2.195-1.971-3.926-4.29-5.176-6.963c-1.152-2.466-1.822-5.057-1.993-7.774 c-0.014-0.226-0.033-0.451-0.05-0.676c0-0.502,0-1.003,0-1.504c0.008-0.049,0.02-0.099,0.022-0.148 c0.036-1.025,0.152-2.043,0.338-3.052c0.481-2.616,1.409-5.066,2.8-7.331c2.226-3.625,5.25-6.386,9.074-8.254 c2.536-1.24,5.217-1.947,8.037-2.126c0.23-0.015,0.461-0.034,0.691-0.051C33.052,10.292,33.535,10.292,34.019,10.292z\"\n});\nconst WorkplaceIcon$1 = WorkplaceIcon;\nfunction workplaceLink(url, { quote, hashtag }) {\n assert(url, \"workplace.url\");\n return \"https://work.facebook.com/sharer.php\" + objectToGetParams({\n u: url,\n quote,\n hashtag\n });\n}\nconst WorkplaceShareButton = createShareButton(\n \"workplace\",\n workplaceLink,\n (props) => ({\n quote: props.quote,\n hashtag: props.hashtag\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst WorkplaceShareButton$1 = WorkplaceShareButton;\nconst XIcon = createIcon({\n color: \"#000000\",\n networkName: \"X\",\n path: \"M 41.116 18.375 h 4.962 l -10.8405 12.39 l 12.753 16.86 H 38.005 l -7.821 -10.2255 L 21.235 47.625 H 16.27 l 11.595 -13.2525 L 15.631 18.375 H 25.87 l 7.0695 9.3465 z m -1.7415 26.28 h 2.7495 L 24.376 21.189 H 21.4255 z\"\n});\nconst XIcon$1 = XIcon;\nexport {\n EmailIcon$1 as EmailIcon,\n EmailShareButton$1 as EmailShareButton,\n FacebookIcon$1 as FacebookIcon,\n FacebookMessengerIcon$1 as FacebookMessengerIcon,\n FacebookMessengerShareButton$1 as FacebookMessengerShareButton,\n FacebookShareButton$1 as FacebookShareButton,\n FacebookShareCount,\n GabIcon$1 as GabIcon,\n GabShareButton$1 as GabShareButton,\n HatenaIcon$1 as HatenaIcon,\n HatenaShareButton$1 as HatenaShareButton,\n HatenaShareCount,\n InstapaperIcon$1 as InstapaperIcon,\n InstapaperShareButton$1 as InstapaperShareButton,\n LineIcon$1 as LineIcon,\n LineShareButton$1 as LineShareButton,\n LinkedinIcon$1 as LinkedinIcon,\n LinkedinShareButton$1 as LinkedinShareButton,\n LivejournalIcon$1 as LivejournalIcon,\n LivejournalShareButton$1 as LivejournalShareButton,\n MailruIcon$1 as MailruIcon,\n MailruShareButton$1 as MailruShareButton,\n OKIcon$1 as OKIcon,\n OKShareButton$1 as OKShareButton,\n OKShareCount,\n PinterestIcon$1 as PinterestIcon,\n PinterestShareButton$1 as PinterestShareButton,\n PinterestShareCount,\n PocketIcon$1 as PocketIcon,\n PocketShareButton$1 as PocketShareButton,\n RedditIcon$1 as RedditIcon,\n RedditShareButton$1 as RedditShareButton,\n RedditShareCount,\n TelegramIcon$1 as TelegramIcon,\n TelegramShareButton$1 as TelegramShareButton,\n TumblrIcon$1 as TumblrIcon,\n TumblrShareButton$1 as TumblrShareButton,\n TumblrShareCount,\n TwitterIcon$1 as TwitterIcon,\n TwitterShareButton$1 as TwitterShareButton,\n VKIcon$1 as VKIcon,\n VKShareButton$1 as VKShareButton,\n VKShareCount,\n ViberIcon$1 as ViberIcon,\n ViberShareButton$1 as ViberShareButton,\n WeiboIcon$1 as WeiboIcon,\n WeiboShareButton$1 as WeiboShareButton,\n WhatsappIcon$1 as WhatsappIcon,\n WhatsappShareButton$1 as WhatsappShareButton,\n WorkplaceIcon$1 as WorkplaceIcon,\n WorkplaceShareButton$1 as WorkplaceShareButton,\n XIcon$1 as XIcon\n};\n//# sourceMappingURL=index.js.map\n"],"names":["MapSelectTheme","hasRedesign","FinvizSettings","hasRedesignEnabled","MapSelect","_ref","_props$rounding","_props$size","_props$listProps","label","ariaLabel","theme","items","onChange","props","selectTheme","React","dark","className","button","rounding","rightContent","_jsx","Icon","name","popover","light","classnames","getMapSelectTheme","itemOptions","map","item","isSelectItemGroup","hasBorder","_jsxs","children","Select","value","size","undefined","placeholder","defaultValue","listProps","classNames","Topbar","navContent","contentClass","mapControls","decodeQueryString","vars","arguments","length","window","location","search","substring","split","obj","forEach","pair","delimiterPos","indexOf","key","decodeURIComponent","encodeQueryString","values","whitelistedValues","Object","keys","reduce","prev","includes","encodeURIComponent","Share","dialogState","useDialogState","_Fragment","Button","leftContent","onClick","onShareClick","show","Dialog","state","DialogHeader","DialogBody","ShareDialogBody","isError","isLoading","data","DialogFooter","as","DialogDismiss","Loading","ErrorView","showRefresh","title","message","alt","document","src","imgUrl","CopyToClipboard","Heading","level","text","shareUrl","bottomLeftContent","FacebookShareButton","url","FacebookIcon","round","TwitterShareButton","via","TwitterIcon","async","drawShareMap","canvasEl","fontFamily","getTextFontFamily","ratio","getScaleRatio","width","height","canvas","createElement","context","getContext","isFirefoxDesktop","willReadFrequently","fillStyle","fillRect","logo","loadImage","logoBase64","drawImage","t","toUpperCase","x","textBaseline","textAlign","font","i","textWidth","measureText","fillText","divider","toDataURL","redGreenGradient","colors","nullColor","greenRedGradient","slice","reverse","redGradient","greenGradient","redGreenGradientBubbles","gradients","ScaleId","IntradayReduced","DayPerf","_5","_10","_15","_20","_25","_relvol","_pe","_fpe","_peg","_ps","_pb","_div","_eps5y","_short","_rec","_earndate","_portfolioPct","_portfolioUsd","bubbleGradients","gradientSmall","Promise","resolve","reject","image","Image","onload","onerror","_window$devicePixelRa","devicePixelRatio","retinafy","style","scale","formatDateToStringUS","date","toLocaleDateString","day","month","year","parseInitData","elementId","initDataElement","getElementById","JSON","parse","textContent","e","Sentry","captureException","getSidebarFromCookie","chartsUrl","getCookie","decodedCookie","sidebar","ColorVariant","CheckboxSize","CheckboxComponent","ref","_props$checked","color","default","checked","defaultChecked","disabled","type","violet","emerald","orange","teal","pink","lime","purple","green","yellow","blue","red","gray","Checkbox","forwardRef","clamp","num","min","max","isTouch","event","getRelativePosition","node","rect","getBoundingClientRect","pointer","touches","left","pageX","pageXOffset","top","pageY","pageYOffset","preventDefaultMove","preventDefault","DraggablePickerComponent","onMove","onKey","container","useRef","hasTouched","isDragging","setDragging","useState","isValid","current","handleMove","useCallback","buttons","handleMoveStart","_ref2","nativeEvent","handleKeyDown","keyCode","which","handleMoveEnd","toggleDocumentEvents","toggleEvent","addEventListener","removeEventListener","useLayoutEffect","onTouchStart","onMouseDown","onKeyDown","tabIndex","DraggablePicker","memo","Pointer","backgroundColor","hexStringToRGBA","hexString","hexColor","removeHashSymbol","r","g","b","a","Number","Math","hexStringToHSVA","rgbaToHSVA","alphaToHex","alpha","toString","padStart","rgbaToHexString","hsvaToHEXString","hsvaToRGBA","v","c","h","s","f","n","k","rgbaToRGBAString","rgbaStringToObject","colorParts","exec","String","parseInt","parseFloat","strColor","replace","isValidColor","isRgb","startsWith","Option","convertColorToHEX","getIsRgb","rgbKeys","push","some","getHSVAFromColor","Alpha","changeLightness","pos","gradientPreview","useMemo","backgroundImage","DEFAULT_COLORS","ColorPalette","lowerCaseColor","toLowerCase","colorObj","isSelected","HueSaturation","position","getPositionFromHSLA","colorPreview","changeSaturation","Lightness","ColorPreview","icon","Array","isArray","isTooLight","getLumaFromRGBA","getIsColorTooLightOrTransparent","isValidIconName","index","PickerInput","inputClass","hasColorPreview","colorInput","setColorInput","colorUtil","isRgba","useEffect","handleColorInputChange","currentTarget","colorValue","Input","ColorPicker","canSelectCustom","canSelectAlpha","outputFormat","onPaletteItemClick","cachedColor","hsvaColor","setColor","Ariakit","input","currentColor","newColor","onChangeCallback","stringColor","output","onSetCustomCodeClick","_prompt","prompt","trim","alert","isMobile","_hex","orignalColor","focus","preventScroll","InputColorPicker","inputDataTestId","popoverState","usePopoverState","isMobileDevice","PopoverTrigger","render","Popover","hideOnInteractOutside","backdrop","hide","MultiColorPicker","colorInputLabel","ColorTabButton","ButtonRounding","small","ButtonColorPicker","_ref3","buttonPickerDataTestId","isOpen","isMultiPicker","activeColorIndex","setActiveColorIndex","handleColorChange","originalColor","colorObject","appearance","active","_ref4","ButtonGroup","childComponent","hasDivider","_ref5","isCopied","setIsCopied","handleCopyToClipboard","copy","timeout","resetTimer","clearTimeout","setTimeout","Textarea","readOnly","select","Delayed","delay","throwOnTimeout","delayComponent","timeoutComponent","visible","setVisible","hasTimedOut","setHasTimedOut","visibilityTimeout","failedTimeout","Error","DropdownRounding","DropdownTheme","StatelessDropdown","trigger","modal","gutter","unmountOnHide","showOnHover","autoFocusOnShow","autoFocusOnHide","onFullyOpen","onFullyClosed","store","placement","zIndex","updatePosition","usePopoverPlacement","isFullyOpen","setIsFullyOpen","isMounted","wasMounted","usePrevious","menuGutter","parent","focusable","portal","hideOnHoverOutside","preventBodyScroll","focusWithoutScroll","blurWithoutScroll","none","onTransitionEnd","ev","target","Dropdown","orientation","focusLoop","virtualFocus","DropdownItemComponent","asComponent","OptionButton","DropdownItem","useDropdownState","ContextMenuInner","onClose","onContextMenu","MenuGroup","options","id","_item$onClick","_window$gtag","_window","call","gtag","assign","menu_option","ContextMenu","ChartGridCell","gridArea","GridLayout","columns","rows","border","gridTemplateColumns","gridTemplateRows","ChartGrid","defaultValueAccessor","InnerState","valueKey","changeKey","valueAccessor","setState","handleChange","RangeSize","RangeSlider","step","inputClassName","hasTrack","setHasTrack","trackRef","thumbRef","Boolean","thumbLeft","track","thumb","valuePercent","trackBox","thumbBox","Label","ToolbarTheme","ToolbarDirection","ToolbarContext","direction","vertical","chipTransparent","isWrapped","isStretched","useToolbarContext","getToolbarSettings","horizontal","alternative","Toolbar","hasFocusRings","toolbarRef","contextProviderValue","toolbarSettings","isSafariDesktop","forceReflow","throttle","originalWidth","offsetWidth","showTimeout","hideTimeout","Provider","querySelector","el","ToolbarButton","_props$appearance","_buttonSettings$size","_props$children","disabledTooltip","isInAction","isInActionProp","iconAction","buttonSettings","isActive","includeRedesign","grow","getButtonThemeSettings","getMainIcon","iconActive","menubar","blurOnHoverEnd","titleActive","Spinner","isMobileBrowser","ToolbarGroup","defaultItem","groupItems","groupTitle","useNativeSelect","rowId","selectedItem","setSelectedItem","groupId","toLocaleLowerCase","isAlternativeTheme","menu","menuButton","setMenuButton","open","mounted","anchorElement","parentMenu","menuContentElement","hideMenu","onMouseLeave","showMenu","handleMenuOpen","setDisclosureElement","setAnchorElement","NativeSelect","option","findIndex","onFocusVisible","onPointerDown","portalElement","ToolbarItem","isItemActive","ToolbarDivider","StepContent","Box","body","Paragraph","shepherdLibrary","loadShepherdLibrary","setLoading","shepherdPromise","buttonClasses","BUTTON_BASE_CLASS","BUTTON_FOCUS_STYLES","ButtonSize","regular","getStepButtons","tour","arr","_step$backButton","_step$nextButton","action","complete","classes","getButtonTheme","ButtonTheme","ButtonPadding","back","backButton","next","nextButton","filter","getTourKey","pathname","getStepsForUser","tours","_localStorage","lastFinishedTour","localStorage","getItem","lastTourIndex","allToursViewed","every","skip","toursToView","hasNewTours","acc","steps","initialTour","completeTour","_localStorage2","setItem","DEFAULT_OPTIONS","exitOnEsc","useModalOverlay","useTour","setIsLoading","currentTour","setTour","controller","AbortController","loadingSetter","_controller$current","signal","aborted","_controller$current2","abort","startTour","definition","_controller$current3","setComplete","tourUtils","_definition$initialTo","Tour","from","removeStep","processedSteps","_step$placement","_step$offset","_step$overlayRadius","_step$overlayPadding","attachTo","element","on","popperOptions","modifiers","offset","ReactDOM","modalOverlayOpeningRadius","overlayRadius","modalOverlayOpeningPadding","overlayPadding","addSteps","start","event_label","TabSpacing","InternalTab","ariaSelected","spacing","content","Tab","TabList","TabPanel","Tabs","BadgeSize","BadgePadding","Badge","padding","badgePadding","badgeSize","TagSize","TagPadding","TagFont","Tag","tagPadding","tagSize","tagFont","showContact","href","link","toContact","LoadingScreen","NotificationPosition","NotificationContext","useNotification","NotificationWrapper","setIsOpen","notification","setNotification","viewport","setViewport","useVisualViewport","enabled","getVisualViewport","visualViewport","positionClass","_notification$options","BottomLeft","TopLeft","TopRight","BottomRight","WrapperComponent","inline","role","hideOnEscape","transform","willChange","withNotificationContext","WrappedComponent","_WrappedComponent$dis","displayName","WithNotificationContext","notificationContext","Notification","closeText","actions","timeoutInMs","timeoutId","TooltipInputComponent","tooltipSettings","isInteractive","isPointerEventsEnabled","TooltipTrigger","hideOnBlur","Tooltip","TooltipInput","_visualViewport$width","_visualViewport$heigh","_visualViewport$scale","_visualViewport$offse","_visualViewport$offse2","innerWidth","innerHeight","offsetTop","offsetLeft","unscaledWidth","unscaledHeight","onScroll","_window$visualViewpor","_window$visualViewpor2","_window$visualViewpor3","_window$visualViewpor4","debug","module","exports","opts","fn","script","timer","prefix","count","param","enc","getElementsByTagName","head","cleanup","parentNode","removeChild","noop","insertBefore","load","storage","process","env","DEBUG","log","console","Function","prototype","apply","formatArgs","args","useColors","this","namespace","humanize","diff","splice","lastC","match","save","namespaces","removeItem","documentElement","WebkitAppearance","firebug","exception","table","navigator","userAgent","RegExp","$1","chrome","local","localstorage","formatters","j","stringify","err","enable","prevTime","createDebug","self","curr","Date","ms","coerce","unshift","format","formatter","val","bind","hash","charCodeAt","abs","selectColor","init","stack","disable","names","skips","len","substr","test","m","d","y","plural","floor","ceil","str","isNaN","long","fmtShort","useDialogDismiss","_a","_b","onClickProp","defaultPrevented","jsxs","display","fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","viewBox","jsx","x1","y1","x2","y2","htmlProps","TagName","useButton","tagName","isNativeButton","setIsNativeButton","MutationObserver","constructor","client","super","setOptions","bindMethods","updateResult","mutate","reset","_this$currentMutation","prevOptions","defaultMutationOptions","getMutationCache","notify","mutation","currentMutation","observer","onUnsubscribe","_this$currentMutation2","listeners","removeObserver","onMutationUpdate","notifyOptions","onSuccess","onError","getCurrentResult","currentResult","variables","mutateOptions","build","addObserver","execute","result","status","isSuccess","isIdle","notifyManager","batch","_this$mutateOptions$o","_this$mutateOptions","_this$mutateOptions$o2","_this$mutateOptions2","hasListeners","onSettled","_this$mutateOptions$o3","_this$mutateOptions3","_this$mutateOptions$o4","_this$mutateOptions4","error","listener","useMutation","arg1","arg2","arg3","queryClient","useSyncExternalStore","onStoreChange","subscribe","batchCalls","catch","useErrorBoundary","mutateAsync","__defProp","defineProperty","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","hasOwnProperty","__propIsEnum","propertyIsEnumerable","__defNormalProp","enumerable","configurable","writable","__spreadValues","prop","__spreadProps","__objRest","source","exclude","createIcon","iconConfig","bgStyle","borderRadius","iconFillColor","rest","cx","cy","rx","ry","path","networkName","objectToGetParams","object","params","entries","join","isPromise","then","getBoxPositionOnWindowCenter","outerWidth","screenX","screenLeft","outerHeight","screenY","screenTop","getBoxPositionOnScreenCenter","screen","ShareButton","_c","_d","beforeOnClick","disabledStyle","opacity","forwardedRef","htmlTitle","networkLink","onShareWindowClose","openShareDialogOnClick","resetButtonStyle","windowHeight","windowPosition","windowWidth","newClassName","newStyle","cursor","returnVal","configRest","config","toolbar","directories","scrollbars","resizable","centerscreen","shareDialog","interval","setInterval","closed","clearInterval","windowOpen","createShareButton","optsMap","defaultProps","CreatedButton","passedProps","subject","separator","_","FacebookIcon$1","appId","redirectUri","to","redirect_uri","app_id","AssertionError","assert","FacebookShareButton$1","hashtag","u","SocialMediaShareCount","_e","_f","shareCount","getCount","useIsMounted","setCount","count2","createShareCount","ShareCount","callback","og_object","engagement","description","summary","mini","imageUrl","image_url","OK","index2","_count","callbacks","ODKL","updateCount","callbackIndex","uid","media","pinId","response","score","caption","tags","posttype","canonicalUrl","note_count","TwitterIcon$1","TwitterShareButton$1","hashtags","related","noParse","noVkLinks","noparse","no_vk_links","VK","act","pic","quote"],"sourceRoot":""}