@dcl/explorer-website 0.0.1-1270489703.commit-39ace8e → 0.0.1-1287109520.commit-02691f9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asset-manifest.json +31 -32
- package/index.html +1 -1
- package/package.json +3 -3
- package/static/css/{main.6db855cf.chunk.css → main.327ef4e7.chunk.css} +2 -2
- package/static/css/{main.6db855cf.chunk.css.map → main.327ef4e7.chunk.css.map} +1 -1
- package/static/js/{2.4cd91c19.chunk.js → 2.f1a27a92.chunk.js} +3 -3
- package/static/js/{2.4cd91c19.chunk.js.LICENSE.txt → 2.f1a27a92.chunk.js.LICENSE.txt} +0 -0
- package/static/js/{2.4cd91c19.chunk.js.map → 2.f1a27a92.chunk.js.map} +1 -1
- package/static/js/main.53c342eb.chunk.js +2 -0
- package/static/js/{main.30d8331b.chunk.js.map → main.53c342eb.chunk.js.map} +1 -1
- package/static/js/{runtime-main.81b1ace7.js → runtime-main.29a2cd24.js} +2 -2
- package/static/js/{runtime-main.81b1ace7.js.map → runtime-main.29a2cd24.js.map} +1 -1
- package/static/js/main.30d8331b.chunk.js +0 -2
- package/static/media/error-robotdead.ac866adc.png +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["integration/browser.ts","kernel-loader/index.ts","utils/rolloutVersions.ts","state/actions.ts","kernel-loader/injector.ts","utils/tracking.ts","integration/queryParamsConfig.ts","state/selectors.ts","integration/analytics.ts","utils/errorToString.ts","state/reducers.ts","state/redux.ts","utils/callOnce.ts","integration/kernel.ts","images/errors/error-robotmobile.png","components/errors/ErrorAvatarLoading.tsx","images/errors/error-robotdead.png","components/errors/ErrorComms.tsx","images/errors/error-robotdown.png","components/errors/ErrorFatal.tsx","images/errors/robotsmiling.png","components/errors/ErrorMetamaskLocked.tsx","components/errors/ErrorNetworkMismatch.tsx","components/errors/ErrorNewLogin.tsx","components/errors/ErrorNoMobile.tsx","components/errors/ErrorNotSupported.tsx","components/errors/ErrorContainer.tsx","components/common/Logo.tsx","components/common/Isologotipo.tsx","components/common/Icon.tsx/Discord.tsx","components/auth/wallet/WalletButton.tsx","components/common/Navbar.tsx","images/login/avatars.png","images/login/avatars@2x.png","images/login/avatars@3x.png","components/common/Avatars.tsx","components/common/Modal.tsx","images/login/metamask.svg","images/login/dapper.png","images/login/samsung-blockchain-wallet.svg","images/login/fortmatic.svg","images/login/wallet-connect.svg","components/common/Spinner.tsx","components/auth/wallet/WalletSelector.tsx","components/common/MainIsologotipo.tsx","components/auth/LoginHeader.tsx","components/auth/EthLogin.tsx","components/common/Container.tsx","components/common/Accordion.tsx","components/auth/BeginnersGuide.tsx","components/common/Icon.tsx/Reddit.tsx","components/common/Icon.tsx/Github.tsx","components/common/Icon.tsx/Twitter.tsx","components/common/BigFooter.tsx","components/banners/BannerNotSupported.tsx","components/banners/BannerContainer.tsx","components/auth/LoginContainer.tsx","components/common/Audio.tsx","components/App.tsx","index.tsx","eth/provider.ts"],"names":["initializeBrowserRecommendation","callOnce","isRecommendedBrowser","store","dispatch","setBanner","BannerType","NOT_RECOMMENDED","detected","detect","navigator","userAgent","name","getChainIdFromProvider","provider","a","rm","RequestManager","parseInt","net_version","getWantedChainId","chainId","NETWORK","authenticate","providerType","wantedChainId","getEthereumProvider","providerChainId","setKernelError","error","Error","code","ErrorType","NET_MISMATCH","kernel","getState","includes","message","METAMASK_LOCKED","disconnect","catch","defaultWebsiteErrorTracker","resolveBaseUrl","urn","startsWith","resolveUrlFromUrn","t","replace","URL","global","location","toString","cdnFromRollout","rollout","cdnFromPrefixVersion","prefix","version","getVersions","flags","qs","URLSearchParams","document","search","globalThis","ROLLOUTS","KERNEL_BASE_URL","RENDERER_BASE_URL","has","get","variants","identify","lastIdentity","identifyUser","isGuest","email","container","getElementById","fetchFlags","applicationName","injectKernel","baseUrl","configurations","kernelOptions","rendererOptions","on","eventName","eventData","internalTrackEvent","context","url","newWindow","window","open","opener","undefined","account","identity","address","setKernelAccountState","data","trackError","extra","track","errorToString","disableAnalytics","event","setRendererVisible","visible","setRendererLoading","restoreConnection","hasStoredSession","provider_type","startKernel","FATAL","ENV","injectVersions","initKernel","then","setKernelLoaded","initLogin","process","versions","rolloutsInfo","component","SET_KERNEL_ACCOUNT_STATE","SET_KERNEL_ERROR","SET_KERNEL_LOADED","SET_RENDERER_LOADING","SET_RENDERER_VISIBLE","SET_BANNER","accountState","action","progressEvent","banner","options","kernelUrl","injectScript","console","log","DecentralandKernel","theFuture","future","theScript","createElement","persistMessage","src","async","type","crossOrigin","addEventListener","resolve","e","reject","body","appendChild","ethereum","getWalletName","isMetaMask","isDapper","isCucumber","isTrust","isToshi","isGoWallet","isAlphaWallet","isStatus","getWalletProps","Object","keys","filter","prop","join","environmentType","rendererType","RENDERER_TYPE","properties","wallet","walletProps","recommendedBrowser","DEBUG_ANALYTICS","getRequiredAnalyticsContext","state","sessionId","session","AnalyticsAccount","analyticsDisabled","authFlags","isAuthenticated","afterFatalError","configureSegment","host","endsWith","initialize","PRD","DEV","injectTrackingMetadata","payload","realm","position","dcl_is_authenticated","dcl_is_guest","dcl_disabled_analytics","dcl_renderer_type","configureRollbar","Rollbar","configure","transform","enabled","info","critical","assign","fullErrorStack","analytics","userTraits","segmentKey","load","page","ready","timeout","JSON","stringify","prototype","call","defaultSession","v4","kernelState","reducers","combineReducers","renderer","loading","details","middleware","x","createStore","fun","result","value","initializeKernel","initial","style","opacity","setTimeout","remove","ErrorAvatarLoading","id","className","href","alt","errorImage","ErrorComms","onClick","reload","defaultDetails","ErrorFatal","props","length","map","$","ix","key","ErrorMetamaskLocked","closeError","ErrorNetworkMismatch","onLogout","finally","ErrorNewLogin","ErrorNoMobile","zIndex","width","height","backgroundColor","margin","ErrorNotSupported","connect","COMMS","NEW_LOGIN","NOT_MOBILE","NOT_SUPPORTED","AVATAR_ERROR","Fragment","Logo","viewBox","xmlns","x1","x2","y1","y2","stopColor","offset","y","fill","d","clipRule","fillRule","Isologotipo","gradientUnits","Discord","WalletButtonLogo","Navbar","full","target","rel","onClickLogo","Avatars","avatars1x","srcSet","avatars2x","avatars3x","Modal","onClose","withAvatars","withFlatBackground","withOverlay","children","containerClassName","popupClassName","handleClose","stopPropagation","title","METAMASK","DAPPER","FORTMATIC","WALLET_CONNECT","SAMSUNG_BLOCKCHAIN_WALLET","img","MetamaskLogo","DapperLogo","FortmaticLogo","WalletConnect","SamsungBlockchainWalletLogo","ProviderType","INJECTED","description","WalletButton","active","preventDefault","Spinner","display","WalletSelector","availableProviders","onLogin","onCancel","hasWallet","handleLogin","wallets","useMemo","isCucumberProvider","push","isDapperProvider","isActive","MainIsologotipo","filterUnits","colorInterpolationFilters","floodOpacity","in","values","dy","mode","in2","LoginHeader","EthLogin","useState","showWalletSelector","setShowWalletSelector","signing","Container","Content","Accordion","setOpen","ref","useRef","current","offsetHeight","BeginnersGuide","Reddit","Github","Twitter","year","Math","max","Date","getFullYear","BigFooter","BannerNotSupported","enableProviders","Set","connection","getAvailableProviders","stage","loginStatus","kernelReady","rendererReady","LoginState","SIGNATURE_PENDING","WAITING_PROFILE","LOADING","COMPLETED","Audio","player","this","updatePlayer","play","pause","audio","autoPlay","loop","React","Component","rendererVisible","sound","ReactDOM","chainIdRpc","Map","rpc","WebSocketProvider","tryPreviousConnection"],"mappings":"sIAAA,wGAKaA,EAAkCC,aAAS,WACjDC,KACHC,IAAMC,SAASC,YAAUC,IAAWC,qBAI3BL,EAAuBD,aAAS,WAC3C,IAAMO,EAAWC,YAAOC,UAAUC,WAElC,IAAKH,EACH,OAAO,EAGT,OAAQA,EAASI,MACf,IAAK,SACL,IAAK,mBACL,IAAK,gBACL,IAAK,UACH,OAAO,EAET,QACE,OAAO,O,kQCFEC,E,8EAAf,WAAsCC,GAAtC,eAAAC,EAAA,6DACQC,EAAK,IAAIC,iBAAeH,GADhC,KAESI,SAFT,SAEwBF,EAAGG,cAF3B,0DAE0C,KAF1C,4C,sBAKA,SAASC,IACP,IAAIC,EAAU,EAMd,MAJgB,YAAZC,MACFD,EAAU,GAGLA,EAGF,SAAeE,EAAtB,kC,4CAAO,WAA4BC,GAA5B,yBAAAT,EAAA,sEAEGU,EAAgBL,IAFnB,SAIkDM,YAAoBF,EAAcC,GAJpF,mBAIKX,EAJL,EAIKA,UAAmBa,EAJxB,EAIeN,WAEMI,EANrB,wBAODtB,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAJ,wGAC4FL,EAD5F,oBACqHE,EADrH,WAGPI,KAAMC,IAAUC,gBAZnB,4CAmB6BpB,EAAuBC,GAnBpD,YAmBKa,EAnBL,UAoBuBF,EApBvB,wBAqBCtB,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAJ,wGAC4FL,EAD5F,oBACqHE,EADrH,WAGPI,KAAMC,IAAUC,gBA1BrB,8BAiCGC,EAAS/B,IAAMgC,WAAWD,OAAOA,OAjCpC,uBAmCgB,IAAIJ,MAAM,2BAnC1B,QAqCHI,EAAOX,aAAaT,EAA0B,MAAhBU,GArC3B,sDAwCD,MACe,kBAAR,EAAP,KACA,CAAC,yCAA0C,kCAAkCY,SAAS,KAAIC,SA1CzF,uDAgDD,MACe,kBAAR,EAAP,IACsB,iBAAf,KAAIA,UACV,KAAIA,QAAQD,SAAS,6CAA8C,KAAIC,QAAQD,SAAS,gBAnDxF,wBAsDDjC,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAM,oEACjBC,KAAMC,IAAUM,mBAzDnB,2BAgEHC,cAAaC,MAAMC,KAEnBA,YAA2B,EAAD,IAE1BtC,IAAMC,SACJwB,YAAe,CACbC,MAAM,EAAD,MAtEN,2D,+BA2FQa,E,8EAAf,WAA8BC,GAA9B,eAAA5B,EAAA,0DACM4B,EAAIC,WAAW,QADrB,gCAEoBC,4BAAkBF,GAFtC,YAEUG,EAFV,kDAIcA,EAAI,KAAKC,QAAQ,SAAU,MAJzC,aAMU,IAAIjB,MAAM,kCAAoCa,GANxD,iCAQU,IAAIK,IAAJ,UAAWL,GAAOM,EAAOC,SAASC,YAAYA,WAAa,KAAKJ,QAAQ,SAAU,MAR5F,4C,sBAWA,SAASK,EAAeC,GACtB,OAAOC,EAAqBD,EAAQE,OAAQF,EAAQG,SAGtD,SAASF,EAAqBC,EAAgBC,GAC5C,MAAM,gCAAN,OAAuCD,EAAvC,YAAiDC,G,SAGpCC,E,8EAAf,WAA2BC,GAA3B,mBAAA3C,EAAA,sDACQ4C,EAAK,IAAIC,gBAAgBC,SAASX,SAASY,QAG7CC,WAAWC,UAAYD,WAAWC,SAAS,iBAC7CD,WAAWE,gBAAkBb,EAAeW,WAAWC,SAAS,iBAE9DD,WAAWC,UAAYD,WAAWC,SAAS,yBAC7CD,WAAWG,kBAAoBd,EAAeW,WAAWC,SAAS,yBAIhEL,EAAGQ,IAAI,cACTJ,WAAWG,kBAAoBP,EAAGS,IAAI,aAEpCT,EAAGQ,IAAI,gBACTJ,WAAWE,gBAAkBN,EAAGS,IAAI,eAIlCT,EAAGQ,IAAI,qBACTJ,WAAWG,kBAAX,6DAAqFP,EAAGS,IAAI,qBAE1FT,EAAGQ,IAAI,mBACTJ,WAAWE,gBAAX,mEAAyFN,EAAGS,IAAI,mBAI9FT,EAAGQ,IAAI,sBACTJ,WAAWG,kBAAoBZ,EAAqB,sBAAuBK,EAAGS,IAAI,sBAEhFT,EAAGQ,IAAI,oBACTJ,WAAWE,gBAAkBX,EAAqB,cAAeK,EAAGS,IAAI,oBAIrEL,WAAWE,iBACVP,EAAMW,SAAS,qCACXb,EAAUE,EAAMW,SAAS,mCAAmCzD,KAClEmD,WAAWE,gBAAX,gDAAsET,IAIrEO,WAAWG,mBACVR,EAAMW,SAAS,6CACXb,EAAUE,EAAMW,SAAS,2CAA2CzD,KAC1EmD,WAAWG,kBAAX,wDAAgFV,IA9CtF,6C,kEAmDA,6BAiCWc,EAjCX,SAAAvD,EAAA,6DAiCWuD,EAjCX,WAkCQC,GACFC,YAAaD,EAAcE,EAASC,IAlClCC,EAAYd,SAASe,eAAe,iBAD5C,SAGsBC,qBAAW,CAAEC,gBAAiB,aAHpD,cAGQpB,EAHR,gBAKQD,EAAYC,GALpB,mBAOuBqB,IAPvB,UASqBrC,EAAeqB,WAAWE,iBAAX,gDATpC,gCAUsB,GAVtB,MASMe,QATN,KAUMC,eAVN,WAaMN,EAbN,UAcqBjC,EACbqB,WAAWG,mBAAX,wDAfR,iCAaMS,UAbN,KAcMK,QAdN,YAQIE,cARJ,KAYIC,gBAZJ,8CAOQjD,EAPR,QAoBSkD,GAAG,iBAAiB,YAA+B,IAA5BC,EAA2B,EAA3BA,UAAWC,EAAgB,EAAhBA,UACvCC,YAAmBF,EAAD,YAAC,eAAgBC,GAAjB,IAA4BE,QAASF,EAAUE,SAAW,eAG9EtD,EAAOkD,GAAG,WAAW,YAAc,IAAXK,EAAU,EAAVA,IAChBC,EAAYC,OAAOC,KAAKH,EAAK,SAAU,uBAC5B,MAAbC,IAAmBA,EAAUG,OAAS,SAGxCpB,GAAU,EACVF,EAA8B,KAC9BG,OAA4BoB,EAQhC5D,EAAOkD,GAAG,gBAAgB,SAACW,GACrBA,EAAQC,WACVvB,IAAYsB,EAAQtB,QACpBF,EAAewB,EAAQC,SAASC,QAChC3B,KAGFnE,IAAMC,SAAS8F,YAAsBH,OAGvC7D,EAAOkD,GAAG,UAAU,SAACe,GACnBzB,EAAQyB,EAAKzB,MACbJ,OAIFpC,EAAOkD,GAAG,SAAS,SAACvD,GAClB1B,IAAMC,SAASwB,YAAeC,IAG9BuE,YAAWvE,EAAMA,MAAP,aAAgB2D,QAAS,UAAc3D,EAAMwE,OAAS,KAIhEC,YAAM,wBAAyB,CAE7BzE,MAAO0E,YAAc1E,KAIvB2E,iBAGFtE,EAAOkD,GAAG,mBAAmB,SAACqB,GAC5BtG,IAAMC,SAASsG,YAAmBD,EAAME,UAIpCF,EAAME,UACRL,YAAM,kBAAmB,IACzBnG,IAAMC,SAASwB,YAAe,WAIlCM,EAAOkD,GAAG,mBAAmB,SAACqB,GAC5BtG,IAAMC,SAASwG,YAAmBH,OAGpCvE,EAAOkD,GAAG,UAAU,WAClB7C,cAAaC,MAAMC,QAxFvB,kBA2FSP,GA3FT,6C,kEA8FA,WAAyBA,GAAzB,iBAAAnB,EAAA,sEACyB8F,cADzB,YACQ/F,EADR,UAEkBA,EAASiF,QAF3B,iCAGkClF,EAAuBC,EAASA,UAHlE,cAGUa,EAHV,gBAOgCO,EAAO4E,iBAAiBhG,EAASiF,QAASpE,GAP1E,gBAUM2E,YAAM,oBAAqB,CAAES,cAAejG,EAASU,eACrDD,EAAaT,EAASU,cAAcgB,MAAMC,MAXhD,6C,sBAgBO,SAASuE,IACV1F,KAAuB,YAAZA,KAAqC,YAAZA,IACtCnB,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAJ,wEACPC,KAAMC,IAAUiF,SAMlBC,IACF/G,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAJ,mHAGPC,KAAMC,IAAUiF,UAMtBX,YAAM,sBAAuBa,YAAe,K,0CAE5CC,GACGC,MAAK,SAACnF,GAGL,OAFA/B,IAAMC,SAASkH,YAAgBpF,I,2CAExBqF,CAAUrF,MAElBM,OAAM,SAACX,GACN1B,IAAMC,SAASwB,YAAe,CAAEC,WAChCY,YAA2BZ,OAxNjCkC,WAAWE,gBAAkBuD,GAC7BzD,WAAWG,kBAAoBsD,K,mDC9HxB,SAASL,EAA8CM,GAC5D,IAAIC,EAAgB3D,WAAmBC,UAAY,GAEnD,IAAK,IAAI2D,KAAaD,GACF,UAAdC,GAAyBA,EAAU/E,WAAW,UAC5C8E,EAAaC,IAAcD,EAAaC,GAAWnE,UACrDiE,EAASE,GAAwBD,EAAaC,GAAWnE,SAK/D,OAAOiE,EAbT,mC,gCCAA,oaAWaG,EAA2B,2BAC3BC,EAAmB,mBACnBC,EAAoB,oBACpBC,EAAuB,uBACvBC,EAAuB,uBACvBC,EAAa,aAEb/B,EAAwB,SAACgC,GAAD,OACnCC,iBAAOP,EAA0BM,IACtBtG,EAAiB,SAACC,GAAD,OAA+BsG,iBAAON,EAAkBhG,IACzEyF,EAAkB,SAACpF,GAAD,OAA0BiG,iBAAOL,EAAmB5F,IACtE0E,EAAqB,SAACwB,GAAD,OAA0CD,iBAAOJ,EAAsBK,IAC5F1B,EAAqB,SAACC,GAAD,OAAsBwB,iBAAOH,EAAsB,CAAErB,aAC1EtG,EAAY,SAACgI,GAAD,OAA+BF,iBAAOF,EAAY,CAAEI,a,gHCrBtE,SAAetD,EAAtB,kC,4CAAO,WAA4BuD,GAA5B,iBAAAvH,EAAA,6DACCwH,EAAY,IAAIvF,IAAJ,gBAAyBsF,EAAQpD,cAAcF,SAAS7B,WADrE,SAGCqF,EAAaD,GAHd,UAKLE,QAAQC,IAAI,WAAYH,GAElBI,EAA2C5E,WAAmB4E,mBAP/D,sBAS0B,IAAI7G,MAAM,0CATpC,uBAWQ6G,EAAmBvB,WAAWkB,GAXtC,qF,+BAcQE,E,8EAAf,WAA4B/C,GAA5B,mBAAA1E,EAAA,6DACQ6H,EAAYC,MACZC,EAAYjF,SAASkF,cAAc,UACnCC,EACJ,iGACFF,EAAUG,IAAMxD,EAChBqD,EAAUI,OAAQ,EAClBJ,EAAUK,KAAO,yBACjBL,EAAUM,YAAc,YACxBN,EAAUO,iBAAiB,OAAQT,EAAUU,SAC7CR,EAAUO,iBAAiB,SAAS,SAACE,GAAD,OAClCX,EAAUY,OAAOD,EAAE1H,OAAS,IAAIC,MAAJ,qBAAwB2D,EAAxB,6BAAgDuD,QAE9EF,EAAUO,iBAAiB,SAAS,kBAClCT,EAAUY,OACR,IAAI1H,MAAJ,kCAC6B2D,EAD7B,0GACkIuD,QAItInF,SAAS4F,KAAKC,YAAYZ,GApB5B,kBAqBSF,GArBT,6C,iLCVMe,EAAWhE,OAAOgE,SAElBC,EAAgB3J,aAAS,WAC7B,OAAK0J,GAEE,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAUE,YACZ,YACF,OAAIF,QAAJ,IAAIA,OAAJ,EAAIA,EAAUG,UACZ,UACF,OAAIH,QAAJ,IAAIA,OAAJ,EAAIA,EAAUI,YACZ,YACF,OAAIJ,QAAJ,IAAIA,OAAJ,EAAIA,EAAUK,SACZ,SACF,OAAIL,QAAJ,IAAIA,OAAJ,EAAIA,EAAUM,SACZ,YACF,OAAIN,QAAJ,IAAIA,OAAJ,EAAIA,EAAUO,YACZ,YACF,OAAIP,QAAJ,IAAIA,OAAJ,EAAIA,EAAUQ,eACZ,eACF,OAAIR,QAAJ,IAAIA,OAAJ,EAAIA,EAAUS,UACZ,SAEA,QAlBA,UAsBLC,EAAiBpK,aAAS,WAC9B,OAAOqK,OAAOC,KAAKZ,GAAY,IAC5Ba,QAAO,SAACC,GAAD,OAAUA,EAAK7H,WAAW,OAAmC,mBAAnB+G,EAASc,MAC1DC,KAAK,QAGJC,EAAkB,CAAEC,aAAcC,KAOjC,SAASvE,EAAsCG,EAAUqE,GAC9D,IAAMC,EAASnB,IACToB,EAAcX,IACdY,EAAqB/K,cAC3BqF,YAAmBkB,EAAD,YAAC,aAASsE,SAAQC,cAAaC,sBAAuBH,GAAeH,IAOlF,SAASlI,EAA2BZ,GACzC4G,QAAQ5G,MAAMA,GACduE,YAAWvE,EAAO,CAAE2D,QAAS,qBAC7Bc,EAAM,yBAA0B,CAE9BzE,MAAO0E,YAAc1E,O,gCC9DzB,4IAAM8B,EAAK,IAAIC,gBAAgBC,SAASX,SAASY,QAAU,IAE9CoH,EAAkBvH,EAAGQ,IAAI,mBACzB+C,EAAMvD,EAAGS,IAAI,OACb9C,EAAUqC,EAAGS,IAAI,WACjByG,EAAgBlH,EAAGS,IAAI,MAAQ,SAAW,O,0SCDhD,SAAS+G,EAA4BC,GAC1C,MAAO,CACLC,UAAWD,EAAME,QAAQD,W,ICExBE,E,wBAFDC,GAAoB,G,SAEnBD,K,uCAAAA,E,wCAAAA,M,KAKL,IAAME,EAAY,CAChBC,iBAAiB,EACjBjH,SAAS,EACTkH,iBAAiB,GAIZ,SAASC,IAEd,OAAI7H,WAAWb,SAAS2I,KAAKC,SAAS,qBAC7BC,EAAWR,EAAiBS,KAG9BD,EAAWR,EAAiBU,KAGrC,SAASC,EAAuBC,GAC9B,IAAMxI,EAAK,IAAIC,gBAAgBG,WAAWb,SAASY,QAAU,IAGzDH,EAAGQ,IAAI,WACTgI,EAAQC,MAAQzI,EAAGS,IAAI,UAIrBT,EAAGQ,IAAI,cACTgI,EAAQE,SAAW1I,EAAGS,IAAI,aAG5B+H,EAAQG,qBAAuBb,EAAUC,gBACzCS,EAAQI,aAAed,EAAUhH,QACjC0H,EAAQK,uBAAyBf,EAAUE,gBAC3CQ,EAAQM,kBAAoB5B,IAGvB,SAAS6B,IAKT/G,OAAegH,SAChBhH,OAAegH,QAAQC,UAAU,CAAEC,UALvC,SAA4BV,GAC1BD,EAAuBC,MASpB,SAAS3F,IACdF,YAAM,oBAAqB,IAE3BmF,EAAUE,iBAAkB,EAC5BH,GAAoB,EAEf7F,OAAegH,SAChBhH,OAAegH,QAAQC,UAAU,CAAEE,SAAS,IAG5C5B,KACFzC,QAAQsE,KAAK,sDAIV,SAAS3G,EAAWvE,EAAuBsK,GAC5CX,IAEAN,KACFzC,QAAQsE,KAAK,wDAAyDlL,GAElE8D,OAAegH,UAEA,kBAAV9K,EACP8D,OAAegH,QAAQK,SAASzG,YAAc1E,GAAQsK,GAC/CtK,GAASA,aAAiBC,MACjC6D,OAAegH,QAAQK,SACvBzG,YAAc1E,GACdyI,OAAO2C,OAAOpL,EAAOsK,EAAS,CAAEe,eAAgBrL,EAAMsB,cAGtDwC,OAAegH,QAAQK,SAASzG,YAAc1E,GAAQsK,KAIrD,SAAS3H,EAAayB,EAAiBxB,EAAkBC,GAI9D,GAHA+G,EAAUhH,QAAUA,EACpBgH,EAAUC,kBAAoBzF,EAE1BN,OAAOwH,UAAW,CACpB,IAAMC,EAAa,CACjB/B,UAAWF,EAA4BhL,IAAMgC,YAAYkJ,UACzD3G,SAGEwG,KACFzC,QAAQsE,KAAK,iDAAkD9G,EAASmH,GAGtE3I,EACFkB,OAAOwH,UAAU7I,SAAS8I,GAE1BzH,OAAOwH,UAAU7I,SAAS2B,EAASmH,I,SAK1BrB,E,8EAAf,WAA0BsB,GAA1B,SAAAtM,EAAA,sDACM4E,OAAOwH,UAAUG,OAEnB3H,OAAOwH,UAAUG,KAAKD,GACtB1H,OAAOwH,UAAUI,OACjB5H,OAAOwH,UAAUK,OAAM,WACrB7H,OAAOwH,UAAUM,QAAQ,SAN/B,4C,sBAYO,SAASlI,EAAmBF,EAAmBC,GACpD,GAAKK,OAAOwH,YAAa3B,EAAzB,CAIA,IAAMrF,EAAI,2BAAQb,GAAc6F,EAA4BhL,IAAMgC,aAElE+J,EAAuB/F,GAEnB+E,KACFzC,QAAQsE,KAAK,+CAAgD1H,EAAWc,GAG1ER,OAAOwH,UAAU7G,MAAMjB,EAAWc,M,wJC5I7B,SAASI,EAAc1E,GAC5B,MAAqB,kBAAVA,EACLA,EAAMQ,QAAgBR,EAAMQ,QACP,oBAArBR,EAAMsB,WACDuK,KAAKC,UAAU9L,GAEjBA,EAAMsB,WAEM,kBAAVtB,EAA2BA,EAC/ByI,OAAOsD,UAAUzK,SAAS0K,KAAKhM,GATxC,mC,kQCaMiM,EAA+B,CACnCzC,UAAW0C,eACXC,YAAa,M,ICeHhM,EAgBA1B,E,iBAhBA0B,K,kBAAAA,E,cAAAA,E,cAAAA,E,qBAAAA,E,sBAAAA,E,6BAAAA,E,+BAAAA,E,2BAAAA,E,mCAAAA,M,cAgBA1B,K,kCAAAA,M,KAYZ,IAAM2N,EAAWC,0BAA2B,CAC1ChM,ODzCK,SAAuBkJ,EAAgCjD,GAC5D,OAAIA,EAAOgB,OAASrB,IACX,2BAAKsD,GAAZ,IAAmBoC,OAAO,EAAMtL,OAAQiG,EAAOgE,UAG/Cf,GAAS,CACPoC,OAAO,EACPtL,OAAQ,OCmCZoJ,QD9BK,SAAwBF,EAAiCjD,GAC9D,OAAKiD,EAEDjD,EAAOgB,OAASvB,IACX,2BAAKwD,GAAZ,IAAmB4C,YAAa7F,EAAOgE,UAGlCf,EANY0C,GC8BnBK,SDrBK,SAAyB/C,EAAkCjD,GAChE,OAAIiD,GAASjD,EAAOgB,OAASnB,IACpB,2BAAKoD,GAAZ,IAAmBzE,QAASwB,EAAOgE,QAAQxF,UAClCyE,GAASjD,EAAOgB,OAASpB,IAC3B,2BAAKqD,GAAZ,IAAmBgD,QAASjG,EAAOgE,UAGnCf,GAAS,CACPoC,OAAO,EACPhK,QAAS,SACTmD,SAAS,EACTyH,QAAS,OCWbvM,MDNK,SAAsBuJ,EAA+BjD,GAC1D,GAAIA,EAAOgB,OAAStB,IAAkB,CACpC,IAAMsE,EAAuBhE,EAAOgE,QAEpC,OAAKA,EAIE,CACLtK,MAAO,CACLwM,QAAS9H,YAAc4F,EAAQtK,OAC/BsH,KAAMgD,EAAQpK,OANT,CAAEF,MAAO,MAWpB,OAAOuJ,GAAS,CAAEvJ,MAAO,OCTzBwG,ODYK,SAAuB+C,EAAgCjD,GAC5D,OAAIA,EAAOgB,OAASlB,IACX,CAAEI,OAAQF,EAAOgE,QAAQ9D,QAG3B+C,GAAS,CAAE/C,OAAQ,SCdtBiG,EAC0D,SAACC,GAAD,OAAYA,GAE/DpO,EAAQqO,sBAAYP,EAAU,GAAIK,M,yECtExC,SAASrO,EAAYwO,GAC1B,IAAIC,EAA8B,KAClC,OAAO,WAKL,OAJKA,IACHA,EAAS,CAAEC,MAAOF,MAGbC,EAAOC,OAPlB,mC,iaCGaC,EAAmB3O,aAAS,WACvC+G,cAEA,IAAM6H,EAAUhL,SAASe,eAAe,gBACpCiK,IACFA,EAAQC,MAAMC,QAAU,IACxBC,YAAW,WACTH,EAAQI,WACP,S,yBCXQ,G,MAAA,IAA0B,+CCK5BC,EAA+B,kBAC1C,yBAAKC,GAAG,oBAAoBC,UAAU,mBACpC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,SAAf,WACA,yBAAKA,UAAU,sBAAf,sFAGA,yBAAKA,UAAU,oBAAf,2GAC2G,IACzG,uBAAGC,KAAK,iCAAR,4BAGJ,yBAAKD,UAAU,kBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,QCpBlC,MAA0B,4CCI5BC,EAAuB,kBAClC,yBAAKL,GAAG,cAAcC,UAAU,mBAC9B,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,SAAf,SACA,yBAAKA,UAAU,sBAAf,oCAEE,6BAFF,gCAKA,yBAAKA,UAAU,oBAAf,4HAEsB,6BACpB,6BAHF,gDAIgD,IAC9C,uBAAGC,KAAK,iCAAR,0BALF,IAMG,6BACD,6BAPF,qCAUA,yBAAKD,UAAU,OACb,4BACEA,UAAU,QACVK,QAAS,WACP9J,OAAOzC,SAASwM,WAHpB,eAUJ,yBAAKN,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,SCtCpC,MAA0B,4CCKnCI,EAA2C,CAC/C,0CACA,sCACA,GACA,uDACA,kEACA,uBAAGN,KAAK,qEAAR,eAGWO,EAAa,SAACC,GACzB,IAAMxB,EAAUwB,EAAMxB,SAAWwB,EAAMxB,QAAQyB,OAASD,EAAMxB,QAAUsB,EAExE,OACE,yBAAKR,GAAG,cAAcC,UAAU,mBAC9B,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,SAAf,SACA,yBAAKA,UAAU,sBAAf,wBACA,yBAAKA,UAAU,oBACZf,EAAQ0B,KAAI,SAACC,EAAGC,GAAJ,OACX,yBAAKC,IAAKD,GAAKD,OAGnB,yBAAKZ,UAAU,OACb,4BACEA,UAAU,QACVK,QAAS,WACP9J,OAAOzC,SAASwM,WAHpB,YAUJ,yBAAKN,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,SC1CtC,MAA0B,yCCU5BY,EAA2D,SAACN,GACvE,OACE,yBAAKV,GAAG,wBAAwBC,UAAU,mBACxC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,sBAAf,sBACCS,EAAMxB,SAAW,yBAAKe,UAAU,oBAAoBS,EAAMxB,SAC3D,yBAAKe,UAAU,OACb,4BAAQA,UAAU,QAAQK,QAASI,EAAMO,YAAzC,WAKJ,yBAAKhB,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,S,QCfxCc,EAA4D,SAACR,GACxE,OACE,yBAAKV,GAAG,wBAAwBC,UAAU,mBACxC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,sBAAf,mCACA,yBAAKA,UAAU,oBAAf,gDAC+C,4BAAQD,GAAG,OAAO7N,KAAW,WAD5E,+DAIA,yBAAK8N,UAAU,oBAAf,oEACoE,IAClE,4BAAQD,GAAG,eAAe7N,KAAW,WAFvC,wBAICuO,EAAMxB,SAAW,yBAAKe,UAAU,oBAAf,YAA4CS,EAAMxB,SACpE,yBAAKe,UAAU,OACb,4BACEA,UAAU,QACVK,QAAS,WACP9J,OAAOzC,SAASwM,WAHpB,UAQA,6BACA,4BAAQN,UAAU,QAAQK,QAAS,kBAAMI,EAAMS,WAAWC,SAAQ,kBAAM5K,OAAOzC,SAASwM,cAAxF,aAKJ,yBAAKN,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,SCvCxCiB,EAA0B,kBACrC,yBAAKrB,GAAG,iBAAiBC,UAAU,mBACjC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,4BAAf,gCACA,yBAAKA,UAAU,oBAAf,gGAEE,6BAFF,2FAKA,yBAAKA,UAAU,OACb,4BACEA,UAAU,QACVK,QAAS,WACP9J,OAAOzC,SAASwM,WAHpB,YAUJ,yBAAKN,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,SCxBtCkB,EAA0B,kBACrC,yBAAKtB,GAAG,iBAAiBC,UAAU,gBACjC,yBACEA,UAAU,mBACVN,MAAO,CACL4B,OAAQ,GACRC,MAAO,OACPC,OAAQ,OACRC,gBAAiB,aAGrB,yBAAKzB,UAAU,aAAaN,MAAO,CAAE4B,OAAQ,KAC3C,yBACEtB,UAAU,OACVN,MAAO,CACL6B,MAAO,QACPC,OAAQ,OACRvE,SAAU,WACVyE,OAAQ,SAGV,yBAAK1B,UAAU,oBAAf,sDACA,yBAAKE,IAAI,GAAGF,UAAU,0BAA0BnG,IAAKsG,IACrD,yBAAKH,UAAU,OACb,yBACEA,UAAU,SACVK,QAAS,WACP9J,OAAOzC,SAASmM,KAAO,6BAH3B,sCCxBG0B,EAA8B,kBACzC,yBAAK5B,GAAG,qBAAqBC,UAAU,mBACrC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,SAAf,SACA,yBAAKA,UAAU,sBAAf,2CACA,yBAAKA,UAAU,oBAAf,+EAIF,yBAAKA,UAAU,kBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,QCoClCyB,eAvCS,SAAC5F,GACvB,MAAO,CACLvJ,MAAOuJ,EAAMvJ,MAAMA,OAAS,SAIL,SAACzB,EAA4BgL,GACtD,MAAO,CACLgF,WAAY,kBAAMhQ,EAASwB,YAAe,QAC1C0O,SAAU,kBAAM/N,kBA8BLyO,EApB8C,SAACnB,GAC5D,OAAKA,EAAMhO,MAEPgO,EAAMhO,MAAMsH,OAASnH,IAAUiP,MAAc,kBAAC,EAAD,MAC7CpB,EAAMhO,MAAMsH,OAASnH,IAAUM,gBAC1B,kBAAC,EAAD,CAAqB+L,QAASwB,EAAMhO,MAAMwM,QAAS+B,WAAYP,EAAMO,aAC1EP,EAAMhO,MAAMsH,OAASnH,IAAUkP,UAAkB,kBAAC,EAAD,MACjDrB,EAAMhO,MAAMsH,OAASnH,IAAUmP,WAAmB,kBAAC,EAAD,MAClDtB,EAAMhO,MAAMsH,OAASnH,IAAUoP,cAAsB,kBAAC,EAAD,MACrDvB,EAAMhO,MAAMsH,OAASnH,IAAUC,aAC1B,kBAAC,EAAD,CAAsBoM,QAASwB,EAAMhO,MAAMwM,QAASiC,SAAUT,EAAMS,WACzET,EAAMhO,MAAMsH,OAASnH,IAAUqP,aAAqB,kBAAC,EAAD,MAGtD,kBAAC,IAAMC,SAAP,KACE,kBAAC,EAAD,CAAYjD,QAAS,CAACwB,EAAMhO,MAAMwM,SAAW,oDAdxB,kBAAC,IAAMiD,SAAP,S,gBChCdC,EAAO,SAAC1B,GAAD,OAClB,uCACEe,OAAO,KACPD,MAAM,KACNa,QAAQ,aACJ3B,EAJN,CAKET,UAAW,aAAeS,EAAMT,WAAa,IAC7CqC,MAAM,+BAEN,8BACE,oCAAgBtC,GAAG,IAAIuC,GAAG,KAAKC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAC1D,0BAAMC,UAAU,UAAUC,OAAO,MACjC,0BAAMD,UAAU,UAAUC,OAAO,OAEnC,oCAAgB5C,GAAG,IAAIuC,GAAG,UAAUC,GAAG,UAAUE,GAAG,KAClD,0BAAMC,UAAU,UAAUC,OAAO,MACjC,0BAAMD,UAAU,UAAUC,OAAO,OAEnC,oCAAgB5C,GAAG,IAAIuC,GAAG,UAAUC,GAAG,UAAUE,GAAG,KAClD,0BAAMC,UAAU,UAAUC,OAAO,MACjC,0BAAMD,UAAU,UAAUC,OAAO,QAGrC,2BACE,6CACA,0BAAMxD,EAAE,KAAKyD,EAAE,KAAKrB,MAAM,SAASC,OAAO,SAASqB,KAAK,UAE1D,2BACE,0CACA,0BACEC,EAAE,8JACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BAAMF,EAAE,+CAA+CC,SAAS,UAAUF,KAAK,UAAUG,SAAS,YAClG,0BAAMF,EAAE,8CAA8CC,SAAS,UAAUF,KAAK,OAAOG,SAAS,YAC9F,0BACEF,EAAE,4FACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BACEF,EAAE,gHACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BACEF,EAAE,yFACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BAAMF,EAAE,+CAA+CC,SAAS,UAAUF,KAAK,UAAUG,SAAS,YAClG,0BAAMF,EAAE,6CAA6CC,SAAS,UAAUF,KAAK,OAAOG,SAAS,YAC7F,0BACEF,EAAE,sKACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BACEF,EAAE,yJACFC,SAAS,UACTF,KAAK,UACLG,SAAS,eCnEJC,EAAc,SAACxC,GAAD,OACzB,uCACEc,MAAM,MACNC,OAAO,KACPY,QAAQ,cACJ3B,EAJN,CAKET,UAAW,oBAAsBS,EAAMT,WAAa,IACpD6C,KAAK,OACLR,MAAM,+BAEN,8BACE,oCACEtC,GAAG,gBACHuC,GAAG,SACHE,GAAG,UACHD,GAAG,SACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,aAE7B,oCACE3C,GAAG,gBACHuC,GAAG,UACHE,GAAG,UACHD,GAAG,UACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,aAE7B,oCACE3C,GAAG,gBACHuC,GAAG,UACHE,GAAG,UACHD,GAAG,UACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,cAG/B,2BACE,0BACEjF,UAAU,kBACVuF,SAAS,UACTD,SAAS,UACTD,EAAE,+yIACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,+yIACFD,KAAK,UAEP,0BACEpF,UAAU,kBACVuF,SAAS,UACTD,SAAS,UACTD,EAAE,uKACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,uKACFD,KAAK,wBAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oDACFD,KAAK,wBAEP,0BAAMG,SAAS,UAAUD,SAAS,UAAUD,EAAE,mDAAmDD,KAAK,UACtG,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,4HACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,mIACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oGACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,mDACFD,KAAK,wBAEP,0BAAMG,SAAS,UAAUD,SAAS,UAAUD,EAAE,gDAAgDD,KAAK,UACnG,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oNACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,iNACFD,KAAK,eClHN,SAASM,EAAQ1C,GACtB,OACE,yCAASA,EAAT,CAAgBc,MAAM,KAAKC,OAAO,KAAKY,QAAQ,cAC7C,0BACES,KAAK,eACLC,EAAE,g2EACFrF,UAAU,oB,qBCCN2F,ECECC,EAAS,SAAC5C,GAAD,OACpB,yBAAKT,UAAU,WACZS,EAAM6C,KACL,oCACE,uBAAGrD,KAAK,4BAA4BsD,OAAO,SAASC,IAAI,uBACtD,kBAAC,EAAD,CAAMnD,QAASI,EAAMgD,eAEvB,yBAAKzD,UAAU,mBACb,yBAAKA,UAAU,YACb,gDAEF,uBAAGA,UAAU,cAAcC,KAAK,6BAA6BsD,OAAO,eAClE,kBAACJ,EAAD,MACA,oDAKN,kBAAC,EAAD,CAAa9C,QAASI,EAAMgD,gB,kBC7BnB,G,OAAA,IAA0B,qCCA1B,MAA0B,uCCA1B,MAA0B,uCCM5BC,EAAoB,kBAC/B,yBAAK1D,UAAU,eACb,yBACEnG,IAAK8J,EACLC,OAAM,UAAKD,EAAL,gBAAsBE,EAAtB,gBAAuCC,EAAvC,OACN5D,IAAI,UACJqB,MAAM,MACNC,OAAO,UCDAuC,G,OAA8B,SAAC,GAOrC,IANLC,EAMI,EANJA,QACAC,EAKI,EALJA,YACAC,EAII,EAJJA,mBACAC,EAGI,EAHJA,YACAnE,EAEI,EAFJA,UACAoE,EACI,EADJA,SAEIC,EAAqB,kBAErBJ,IACFI,GAAsB,iBAGpBF,IACFE,GAAsB,iBAGpBH,IACFG,GAAsB,yBAGxB,IAAIC,EAAiB,QAMrB,SAASC,IACHP,GACFA,IAIJ,OAVIhE,IACFsE,GAAkB,IAAMtE,GAUxB,yBAAKA,UAAWqE,EAAoBhE,QAASkE,GAC3C,yBAAKvE,UAAWsE,EAAgBjE,QAAS,SAAClG,GAAD,OAAOA,EAAEqK,oBAC/CR,GAAW,yBAAKhE,UAAU,QAAQK,QAASkE,IAC3CH,GAEFH,GAAe,kBAAC,EAAD,S,OCpDP,MAA0B,qCCA1B,MAA0B,mCCA1B,MAA0B,sDCA1B,MAA0B,sCCA1B,OAA0B,2C,iBXS7Bb,K,oBAAAA,E,gBAAAA,E,sBAAAA,E,+BAAAA,E,qDAAAA,M,KAQZ,IAAMlK,GAAU,CACduL,OAAK,mBACFrB,EAAiBsB,SAAW,YAD1B,cAEFtB,EAAiBuB,OAAS,UAFxB,cAGFvB,EAAiBwB,UAAY,aAH3B,cAIFxB,EAAiByB,eAAiB,kBAJhC,cAKFzB,EAAiB0B,0BAA4B,kBAL3C,GAQLC,KAAG,mBACA3B,EAAiBsB,SAAWM,GAD5B,cAEA5B,EAAiBuB,OAASM,GAF1B,cAGA7B,EAAiBwB,UAAYM,GAH7B,cAIA9B,EAAiByB,eAAiBM,IAJlC,cAKA/B,EAAiB0B,0BAA4BM,GAL7C,GAQH7B,QAAM,mBACHH,EAAiBsB,SAAW,wBADzB,cAEHtB,EAAiBuB,OAAS,+BAFvB,cAGHvB,EAAiBwB,UAAY,0BAH1B,cAIHxB,EAAiByB,eAAiB,8BAJ/B,cAKHzB,EAAiB0B,0BAA4B,kEAL1C,GAQNpT,UAAQ,mBACL0R,EAAiBsB,SAAWW,eAAaC,UADpC,cAELlC,EAAiBuB,OAASU,eAAaC,UAFlC,cAGLlC,EAAiBwB,UAAYS,eAAaT,WAHrC,cAILxB,EAAiByB,eAAiBQ,eAAaR,gBAJ1C,cAKLzB,EAAiB0B,0BAA4BO,eAAaC,UALrD,GAQRC,aAAW,mBACRnC,EAAiBsB,SAAW,8BADpB,cAERtB,EAAiBuB,OAAS,8BAFlB,cAGRvB,EAAiBwB,UAAY,4BAHrB,cAIRxB,EAAiByB,eAAiB,6BAJ1B,cAKRzB,EAAiB0B,0BAA4B,6BALrC,IAeAU,GAA4C,SAAC,GAA+B,IAA7BzL,EAA4B,EAA5BA,KAAM0L,EAAsB,EAAtBA,OAAQpF,EAAc,EAAdA,QAUxE,OACE,uBACEL,UAAS,uBAAkByF,EAAS,SAAW,YAC/CxF,KAAM/G,GAAQqK,OAAOxJ,GACrBsG,QAbJ,SAAqBhJ,IACJ,IAAXoO,IACFpO,EAAMqO,iBACFrF,GACFA,EAAQnH,GAAQxH,SAASqI,MAU3BwJ,OAAO,SACPC,IAAI,uBAEJ,yBAAKxD,UAAU,eACb,yBAAKE,IAAKnG,EAAMF,IAAKX,GAAQ6L,IAAIhL,GAAOiG,UAAWjG,KAErD,yBAAKiG,UAAU,eACb,4BAAK9G,GAAQuL,MAAM1K,KAErB,yBAAKiG,UAAU,qBACb,2BAAI9G,GAAQqM,YAAYxL,OYvFnB4L,I,OAAoB,kBAC/B,yBAAK3F,UAAU,SAASN,MAAO,CAAEkG,QAAS,UACvC,OCWQC,I,OAAgD,SAAC,GAMvD,IALLrP,EAKI,EALJA,KACAwI,EAII,EAJJA,QACA8G,EAGI,EAHJA,mBACAC,EAEI,EAFJA,QACAC,EACI,EADJA,SAEMC,GAAaH,GAAsB,IAAI9S,SAASqS,eAAaC,UACnE,SAASY,EAAYxU,IACfA,IAAa2T,eAAaC,UAAaW,IAIvCF,GACFA,EAAQrU,GASZ,IAAMyU,EAAUC,mBAAQ,WACtB,IAAM9G,EAA6B,GAqBnC,OApBI2G,IACEI,+BACF/G,EAAOgH,KAAKlD,EAAiB0B,2BACpByB,8BACTjH,EAAOgH,KAAKlD,EAAiBuB,SAIX,IAAlBrF,EAAOoB,QACTpB,EAAOgH,KAAKlD,EAAiBsB,WAG1BoB,GAAsB,IAAI9S,SAASqS,eAAaT,YACnDtF,EAAOgH,KAAKlD,EAAiBwB,YAG1BkB,GAAsB,IAAI9S,SAASqS,eAAaR,iBACnDvF,EAAOgH,KAAKlD,EAAiByB,gBAGxBvF,IACN,CAACwG,EAAoBG,IAExB,SAASO,EAAS7K,GAChB,OAAQA,GACN,KAAKyH,EAAiBsB,SACtB,KAAKtB,EAAiBuB,OACtB,KAAKvB,EAAiB0B,0BACpB,OAAOmB,EACT,QACE,OAAO,GAIb,OAAOzP,EACL,kBAAC,EAAD,CAAOwJ,UAAU,sBAAsBgE,QAASgC,EAAU9B,oBAAkB,EAACC,aAAW,GACtF,yBAAKnE,UAAU,kBACb,wBAAIA,UAAU,uBAAd,gCACChB,GACC,yBAAKgB,UAAU,yBACb,kBAAC,GAAD,QAGFhB,GACA,yBAAKgB,UAAU,yBACZmG,EAAQxF,KAAI,SAAChF,GAAD,OACX,kBAAC,GAAD,CAAcmF,IAAKnF,EAAQ5B,KAAM4B,EAAQ8J,OAAQe,EAAS7K,GAAS0E,QAAS6F,QAIlF,uBAAGlG,UAAU,oBAAb,4IACA,uBACEC,KAAK,sDACLsD,OAAO,SACPC,IAAI,uBAHN,WAQAxE,GACA,uBAAGgB,UAAU,gBAAgBC,KAAK,SAASI,QAnEjD,SAA0BlG,GACxBA,EAAEuL,iBACFQ,EAAY,QAiER,kBAKF,OCxGOO,GAAkB,SAAChG,GAAD,OAC7B,uCACEc,MAAM,MACNC,OAAO,KACPY,QAAQ,cACJ3B,EAJN,CAKET,UAAW,yBAA2BS,EAAMT,WAAa,IACzD6C,KAAK,OACLR,MAAM,+BAEN,uBAAGjH,OAAO,mBACR,0BACE4H,SAAS,UACTD,SAAS,UACTD,EAAE,ozIACFD,KAAK,WAGT,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,2MACFD,KAAK,wBAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,mDACFD,KAAK,wBAEP,0BAAMG,SAAS,UAAUD,SAAS,UAAUD,EAAE,oDAAoDD,KAAK,UACvG,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,4HACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oIACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oGACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oDACFD,KAAK,wBAEP,0BAAMG,SAAS,UAAUD,SAAS,UAAUD,EAAE,oDAAoDD,KAAK,UACvG,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,yMACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,8MACFD,KAAK,YAEP,8BACE,4BACE9C,GAAG,YACHZ,EAAE,UACFyD,EAAE,UACFrB,MAAM,UACNC,OAAO,UACPkF,YAAY,iBACZC,0BAA0B,QAE1B,6BAASC,aAAa,IAAItH,OAAO,uBACjC,mCAAeuH,GAAG,cAAc9M,KAAK,SAAS+M,OAAO,8CACrD,8BAAUC,GAAG,aACb,mCAAehN,KAAK,SAAS+M,OAAO,8CACpC,6BAASE,KAAK,SAASC,IAAI,qBAAqB3H,OAAO,uBACvD,6BAAS0H,KAAK,SAASH,GAAG,gBAAgBI,IAAI,qBAAqB3H,OAAO,WAE5E,oCACES,GAAG,gBACHuC,GAAG,OACHE,GAAG,WACHD,GAAG,WACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,aAE7B,oCACE3C,GAAG,gBACHuC,GAAG,SACHE,GAAG,UACHD,GAAG,SACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,aAE7B,oCACE3C,GAAG,gBACHuC,GAAG,UACHE,GAAG,UACHD,GAAG,UACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,gBCnHtBwE,GAAwB,kBACnC,yBAAKlH,UAAU,yBACb,kBAAC,GAAD,MACA,wG,SCSSmH,I,OAAoC,SAAC1G,GAChD,MAAoD2G,oBAAS,GAA7D,mBAAOC,EAAP,KAA2BC,EAA3B,KAOA,SAASpB,EAAYxU,GACnBwF,aAAM,qBAAsB,CAAES,cAAejG,GAAY,UACrD+O,EAAMsF,SACRtF,EAAMsF,QAAQrU,GAQlB,OACE,yBAAKsO,UAAU,aACb,kBAAC,GAAD,MACA,kBAAC,EAAD,MACA,yBAAKD,GAAG,kCACLU,EAAM8G,QACL,kBAAC,GAAD,MAEA,kBAAC,IAAMrF,SAAP,KACE,4BAAQlC,UAAU,2BAA2BK,QAzBvD,WACEnJ,aAAM,oBACNoQ,GAAsB,KAuBd,QAGA,4BAAQtH,UAAU,yBAAyBK,QAhBrD,WACE6F,EAAY,QAeJ,mBAMN,kBAAC,GAAD,CACE1P,KAAM6Q,EACNrI,QAASyB,EAAM8G,QACfxB,QAASG,EACTJ,mBAAoBrF,EAAMqF,mBAC1BE,SAAU,kBAAMsB,GAAsB,SCtDjCE,I,OAA4D,SAAC/G,GAAD,OACvE,yCAASA,EAAT,CAAgBT,UAAW,kBAAoBS,EAAMT,WAAa,SAGvDyH,GAA0D,SAAChH,GAAD,OACrE,yCAASA,EAAT,CAAgBT,UAAW,gBAAkBS,EAAMT,WAAa,Q,OCC3D,SAAS0H,GAAUjH,GACxB,MAAwB2G,oBAAS,GAAjC,mBAAO5Q,EAAP,KAAamR,EAAb,KACMC,EAAMC,iBAAuB,MAC7BrG,EAAS4E,mBAAQ,WACrB,OAAKwB,EAAIE,SAAYtR,EAIdoR,EAAIE,QAAQC,aAAe,GAHzB,IAIR,CAACvR,IAEAwJ,EAAY,gBAKhB,OAJIxJ,IACFwJ,GAAa,uBAIb,yBAAKA,UAAWA,GACd,yBAAKA,UAAU,sBAAsBK,QAAS,kBAAMsH,GAASnR,KAC1DiK,EAAMgE,OAET,yBAAKzE,UAAU,4BAA4BN,MAAO,CAAE8B,OAAO,GAAD,OAAKA,EAAL,QACxD,yBAAKoG,IAAKA,GAAMnH,EAAM2D,Y,WC1BjB4D,GAAiE,SAACvH,GAAD,OAC5E,yBAAKT,UAAU,uBACb,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,gDACA,kBAAC,GAAD,CACEyE,MACE,iDACoB,mCADpB,MAKF,oEACA,4BACE,4BACE,6DACA,2GAEF,4BACE,oEACA,wJAKF,4BACE,6DACA,4JAON,kBAAC,GAAD,CACEA,MACE,yCACY,qCADZ,4BAKF,sRAKA,8XAMA,uHACuF,IACrF,uBAAGxE,KAAK,uDAAuDsD,OAAO,SAASC,IAAI,cAAnF,uCAFF,MAQF,kBAAC,GAAD,CACEiB,MACE,uCACU,mCADV,MAKF,0SAGoD,IAClD,uBAAGxE,KAAK,uDAAuDsD,OAAO,SAASC,IAAI,cAAnF,YAJF,0BAUF,kBAAC,GAAD,CACEiB,MACE,uCACU,mCADV,MAKF,8ZAOF,kBAAC,GAAD,CACEA,MACE,2CACc,0CADd,MAKF,4HACA,uDAC4B,IAC1B,uBAAGxE,KAAK,kCAAkCsD,OAAO,SAASC,IAAI,cAA9D,2BAFF,KAOA,6DACA,4BACE,4BACE,8JAKF,4BACE,sGAEF,4BACE,kFAEF,4BACE,4IC5HP,SAASyE,GAAOxH,GACrB,OACE,yCAASA,EAAT,CAAgBc,MAAM,KAAKC,OAAO,KAAKY,QAAQ,cAC7C,0BACES,KAAK,eACLC,EAAE,0uIACFrF,UAAU,oBCNX,SAASyK,GAAOzH,GACrB,OACE,yCAASA,EAAT,CAAgBc,MAAM,KAAKC,OAAO,KAAKY,QAAQ,cAC7C,0BACES,KAAK,eACLC,EAAE,qjIACFrF,UAAU,oBCNX,SAAS0K,GAAQ1H,GACtB,OACE,yCAASA,EAAT,CAAgBc,MAAM,KAAKC,OAAO,KAAKY,QAAQ,cAC7C,0BACES,KAAK,eACLC,EAAE,wvCACFrF,UAAU,oB,qBCEZ2K,GAAOC,KAAKC,KAAI,IAAIC,MAAOC,cAAe,MAEnCC,GAAY,WACvB,IAAIpQ,EAAWN,aAAe,IAE9B,OACE,4BAAQiI,UAAU,cAChB,kBAAC,GAAD,KACE,6BACE,6BACE,8CAEF,6BACE,uBAAGA,UAAU,oBAAoBC,KAAK,6BAA6BsD,OAAO,eACxE,kBAACJ,EAAD,MADF,uBAKJ,6BACE,6BACE,0CAEF,6BACE,uBAAGnD,UAAU,kBAAkBC,KAAK,yCAAyCsD,OAAO,eAClF,kBAAC0E,GAAD,OAEF,uBAAGjI,UAAU,kBAAkBC,KAAK,iCAAiCsD,OAAO,eAC1E,kBAAC2E,GAAD,OAEF,uBAAGlI,UAAU,kBAAkBC,KAAK,mCAAmCsD,OAAO,eAC5E,kBAAC4E,GAAD,UAKR,kBAAC,GAAD,KACE,uBAAGnI,UAAU,YAAYyE,MAAO,aAAenG,KAAKC,UAAUlG,EAAU,KAAM,IAA9E,QACK+P,GADL,oB,kBCzCKM,I,OAAsE,SAACjI,GAAD,OACjF,yBAAKV,GAAG,sBAAsBC,UAAU,oBACtC,yBAAKA,UAAU,sBAAsBK,QAASI,EAAMuD,UACpD,yBAAKhE,UAAU,eAAf,+HAGK,IACD,uBAAGC,KAAK,iCAAiCuD,IAAI,sBAAsBD,OAAO,UAA1E,YACC,OACD,uBAAGtD,KAAK,6CAA6CuD,IAAI,sBAAsBD,OAAO,UAAtF,WANJ,QCoBW3B,gBArBS,SAAC5F,GACvB,MAAO,CACL/C,OAAQ+C,EAAM/C,OAAOA,WAIE,SAACjI,EAA4BgL,GACtD,MAAO,CACLgI,QAAS,kBAAMhT,EAASC,YAAU,WAavB2Q,EATgD,SAACnB,GAC9D,OAAQA,EAAMxH,QACZ,KAAK/H,IAAWC,gBACd,OAAO,kBAAC,GAAD,CAAoB6S,QAASvD,EAAMuD,UAC5C,QACE,OAAO,SCkDEpC,gBA3DS,SAAC5F,GAA2C,IAAD,EAE3D2M,EAAkB,IAAIC,IAAI,CAACvD,eAAaC,SAAUD,eAAaT,UAAWS,eAAaR,iBACvFiB,EAAqB+C,aAAWC,wBAAwB1N,QAAO,SAAC1J,GAAD,OAAciX,EAAgB5T,IAAIrD,MACvG,MAAO,CACLqX,MAAK,UAAE/M,EAAME,QAAQ0C,mBAAhB,aAAE,EAA2BoK,YAClClD,qBACAmD,YAAajN,EAAMlJ,OAAOsL,MAC1B8K,cAAelN,EAAM+C,SAASX,UAIP,SAACpN,GAAD,MAAoB,CAC7C+U,QAAS,SAAC3T,GACRD,YAAaC,OA6CFwP,EA9BuE,SAACnB,GACrF,IAAMzB,EACJyB,EAAMsI,QAAUI,cAAWC,mBAC3B3I,EAAMsI,QAAUI,cAAWE,iBAC3B5I,EAAMsI,QAAUI,cAAWG,UAC1B7I,EAAMwI,YAET,OAAIxI,EAAMsI,QAAUI,cAAWI,UACtB,kBAAC,IAAMrH,SAAP,MAIP,kBAAC,IAAMA,SAAP,KACE,yBAAKlC,UAAW,4BACd,kBAAC,GAAD,MAEA,kBAAC,EAAD,CAAQsD,MAAM,IACd,8BACE,kBAAC,GAAD,CAAWtD,UAAU,mBACnB,kBAAC,GAAD,CAAU8F,mBAAoBrF,EAAMqF,mBAAoBC,QAAStF,EAAMsF,QAASwB,QAASvI,MAK7F,kBAAC,GAAD,MACA,kBAAC,GAAD,W,oCC9DKwK,GAAb,+MACUC,OAAkC,KAD5C,wDAGE,WACEC,KAAKC,iBAJT,gCAOE,WACED,KAAKC,iBART,0BAWE,WACOD,KAAKD,SAGTC,KAAKjJ,MAAMmJ,KAA6BF,KAAKD,OAAOG,OAAOxW,OAAM,SAAC+G,OAAhDuP,KAAKD,OAAOI,WAfnC,oBAkBE,WAAU,IAAD,OACP,OACE,2BAAOjC,IAAK,SAACkC,GAAD,OAAY,EAAKL,OAASK,GAAQC,UAAQ,EAACC,MAAI,GACzD,4BAAQnQ,IAAK6P,KAAKjJ,MAAMvJ,MAAO6C,KAAK,oBArB5C,GAA2BkQ,IAAMC,W,OCejC,IAiBetI,gBA/Bf,SAAyB5F,GACvB,MAAO,CACLmO,gBAAiBnO,EAAM+C,SAASxH,QAChC9E,QAASuJ,EAAMvJ,MAAMA,MACrB2X,OAAO,KA2BIxI,EAjBiB,SAACnB,GAC/B,OAAIA,EAAMhO,MACD,kBAAC,EAAD,MAGLgO,EAAM0J,gBACD,kBAAC,IAAMjI,SAAP,MAIP,6BACGzB,EAAM2J,OAAS,kBAAC,GAAD,CAAOlT,MAAM,aAAa0S,MAAM,IAChD,kBAAC,GAAD,UCzBNpN,cACAc,cAEA+M,SACE,gBAAC,aAAD,KACE,gBAAC,IAAD,CAAUtZ,MAAOA,KACf,gBAAC,GAAD,QAGJ0D,SAASe,eAAe,SACxB,WACEgK,IACA5O,kB,0LCfS0Z,EAAa,IAAIC,IAAoB,CAChD,CAAC,EAAG,kEACJ,CAAC,EAAG,oEAGC,SAAejY,EAAtB,oC,4CAAO,WACLyH,EACA9H,GAFK,iBAAAN,EAAA,yDAIQ,OAAToI,EAJC,mBAKGyQ,EAAMF,EAAWtV,IAAI/C,GALxB,sBAMa,IAAIS,MAAM,6BAA+BT,GANtD,gCAOI,CACLP,SAAU,IAAI+Y,oBAAkBD,GAChCvY,YATC,uBAagB4W,aAAWjH,QAAQ7H,EAAM9H,GAbzC,cAaCqN,EAbD,yBAiBE,CAAE5N,SAAU4N,EAAO5N,SAAUO,QAASqN,EAAOrN,UAjB/C,4C,sBAoBA,SAAewF,IAAtB,+B,4CAAO,sBAAA9F,EAAA,+EAEUkX,aAAW6B,wBAFrB,iGAII,MAJJ,yD,sBAQA,SAAevX,IAAtB,+B,4CAAO,sBAAAxB,EAAA,+EAEUkX,aAAW1V,aAFrB,+EAIHE,YAA2B,EAAD,IAJvB,6E","file":"static/js/main.30d8331b.chunk.js","sourcesContent":["import { detect } from \"detect-browser\"\nimport { setBanner } from \"../state/actions\"\nimport { BannerType, store } from \"../state/redux\"\nimport { callOnce } from \"../utils/callOnce\"\n\nexport const initializeBrowserRecommendation = callOnce(() => {\n if (!isRecommendedBrowser()) {\n store.dispatch(setBanner(BannerType.NOT_RECOMMENDED))\n }\n})\n\nexport const isRecommendedBrowser = callOnce(() => {\n const detected = detect(navigator.userAgent)\n\n if (!detected) {\n return false\n }\n\n switch (detected.name) {\n case 'chrome':\n case 'chromium-webview':\n case 'edge-chromium':\n case 'firefox':\n return true\n\n default:\n return false\n }\n})\n","import { disconnect, getEthereumProvider, restoreConnection } from '../eth/provider'\nimport { internalTrackEvent, identifyUser, trackError, disableAnalytics } from '../integration/analytics'\nimport { injectKernel } from './injector'\nimport {\n setKernelAccountState,\n setKernelError,\n setRendererLoading,\n setKernelLoaded,\n setRendererVisible\n} from '../state/actions'\nimport { ErrorType, store } from '../state/redux'\nimport { ProviderType } from 'decentraland-connect'\nimport { FeatureFlagsResult, fetchFlags } from '@dcl/feature-flags'\nimport { resolveUrlFromUrn } from '@dcl/urn-resolver'\nimport { defaultWebsiteErrorTracker, track } from '../utils/tracking'\nimport { injectVersions } from '../utils/rolloutVersions'\nimport { KernelResult } from '@dcl/kernel-interface'\nimport { ENV, NETWORK } from '../integration/queryParamsConfig'\nimport { RequestManager } from 'eth-connect'\nimport { errorToString } from '../utils/errorToString'\n\n// this function exists because decentraland-connect seems to return\n// invalid or cached values in chainId, ignoring network changes in the\n// real provider.\nasync function getChainIdFromProvider(provider: any) {\n const rm = new RequestManager(provider)\n return parseInt(await rm.net_version(), 10)\n}\n\nfunction getWantedChainId() {\n let chainId = 1 // mainnet\n\n if (NETWORK === 'ropsten') {\n chainId = 3\n }\n\n return chainId\n}\n\nexport async function authenticate(providerType: ProviderType | null) {\n try {\n const wantedChainId = getWantedChainId()\n\n const { provider, chainId: providerChainId } = await getEthereumProvider(providerType, wantedChainId)\n\n if (providerChainId !== wantedChainId) {\n store.dispatch(\n setKernelError({\n error: new Error(\n `Network mismatch NETWORK url param is not equal to the provided by Ethereum Provider (wanted: ${wantedChainId} actual: ${providerChainId}, E01)`\n ),\n code: ErrorType.NET_MISMATCH\n })\n )\n return\n }\n\n {\n const providerChainId = await getChainIdFromProvider(provider)\n if (providerChainId !== wantedChainId) {\n store.dispatch(\n setKernelError({\n error: new Error(\n `Network mismatch NETWORK url param is not equal to the provided by Ethereum Provider (wanted: ${wantedChainId} actual: ${providerChainId}, E02)`\n ),\n code: ErrorType.NET_MISMATCH\n })\n )\n return\n }\n }\n\n const kernel = store.getState().kernel.kernel\n\n if (!kernel) throw new Error('Kernel did not load yet')\n\n kernel.authenticate(provider, providerType == null /* isGuest */)\n } catch (err) {\n if (\n err &&\n typeof err === 'object' &&\n ['Fortmatic: User denied account access.', 'The user rejected the request.'].includes(err.message)\n ) {\n return\n }\n\n if (\n err &&\n typeof err === 'object' &&\n typeof err.message == 'string' &&\n (err.message.includes('Already processing eth_requestAccounts.') || err.message.includes('Please wait.'))\n ) {\n // https://github.com/decentraland/explorer-website/issues/46\n store.dispatch(\n setKernelError({\n error: new Error('Metamask is locked, please open the extension before continuing.'),\n code: ErrorType.METAMASK_LOCKED\n })\n )\n return\n }\n\n // If something went wrong, disconnect to prevent future errors next reload\n disconnect().catch(defaultWebsiteErrorTracker)\n\n defaultWebsiteErrorTracker(err)\n\n store.dispatch(\n setKernelError({\n error: err\n })\n )\n }\n}\n\ntype RolloutRecord = {\n version: string\n percentage: number\n prefix: string\n}\n\ndeclare var globalThis: {\n KERNEL_BASE_URL?: string\n RENDERER_BASE_URL?: string\n ROLLOUTS?: Record<string, RolloutRecord>\n}\n\nglobalThis.KERNEL_BASE_URL = process.env.REACT_APP_KERNEL_BASE_URL\nglobalThis.RENDERER_BASE_URL = process.env.REACT_APP_RENDERER_BASE_URL\n\nasync function resolveBaseUrl(urn: string): Promise<string> {\n if (urn.startsWith('urn:')) {\n const t = await resolveUrlFromUrn(urn)\n if (t) {\n return (t + '/').replace(/(\\/)+$/, '/')\n }\n throw new Error('Cannot resolve content for URN ' + urn)\n }\n return (new URL(`${urn}`, global.location.toString()).toString() + '/').replace(/(\\/)+$/, '/')\n}\n\nfunction cdnFromRollout(rollout: RolloutRecord): string {\n return cdnFromPrefixVersion(rollout.prefix, rollout.version)\n}\n\nfunction cdnFromPrefixVersion(prefix: string, version: string): string {\n return `https://cdn.decentraland.org/${prefix}/${version}`\n}\n\nasync function getVersions(flags: FeatureFlagsResult) {\n const qs = new URLSearchParams(document.location.search)\n\n // 1. load from ROLLOUTS + CDN\n if (globalThis.ROLLOUTS && globalThis.ROLLOUTS['@dcl/kernel']) {\n globalThis.KERNEL_BASE_URL = cdnFromRollout(globalThis.ROLLOUTS['@dcl/kernel'])\n }\n if (globalThis.ROLLOUTS && globalThis.ROLLOUTS['@dcl/unity-renderer']) {\n globalThis.RENDERER_BASE_URL = cdnFromRollout(globalThis.ROLLOUTS['@dcl/unity-renderer'])\n }\n\n // 2. load from URN/URL PARAM\n if (qs.has('renderer')) {\n globalThis.RENDERER_BASE_URL = qs.get('renderer')!\n }\n if (qs.has('kernel-urn')) {\n globalThis.KERNEL_BASE_URL = qs.get('kernel-urn')!\n }\n\n // 3. load hot-branch\n if (qs.has('renderer-branch')) {\n globalThis.RENDERER_BASE_URL = `https://renderer-artifacts.decentraland.org/branch/${qs.get('renderer-branch')!}`\n }\n if (qs.has('kernel-branch')) {\n globalThis.KERNEL_BASE_URL = `https://sdk-team-cdn.decentraland.org/@dcl/kernel/branch/${qs.get('kernel-branch')!}`\n }\n\n // 4. specific cdn versions\n if (qs.has('renderer-version')) {\n globalThis.RENDERER_BASE_URL = cdnFromPrefixVersion('@dcl/unity-renderer', qs.get('renderer-version')!)\n }\n if (qs.has('kernel-version')) {\n globalThis.KERNEL_BASE_URL = cdnFromPrefixVersion('@dcl/kernel', qs.get('kernel-version')!)\n }\n\n // default fallback\n if (!globalThis.KERNEL_BASE_URL) {\n if (flags.variants['explorer-rollout-kernel-version']) {\n const version = flags.variants['explorer-rollout-kernel-version'].name\n globalThis.KERNEL_BASE_URL = `urn:decentraland:off-chain:kernel-cdn:${version}`\n }\n }\n\n if (!globalThis.RENDERER_BASE_URL) {\n if (flags.variants['explorer-rollout-unity-renderer-version']) {\n const version = flags.variants['explorer-rollout-unity-renderer-version'].name\n globalThis.RENDERER_BASE_URL = `urn:decentraland:off-chain:unity-renderer-cdn:${version}`\n }\n }\n}\n\nasync function initKernel() {\n const container = document.getElementById('gameContainer') as HTMLDivElement\n\n const flags = await fetchFlags({ applicationName: 'explorer' })\n\n await getVersions(flags)\n\n const kernel = await injectKernel({\n kernelOptions: {\n baseUrl: await resolveBaseUrl(globalThis.KERNEL_BASE_URL || `urn:decentraland:off-chain:kernel-cdn:latest`),\n configurations: {}\n },\n rendererOptions: {\n container,\n baseUrl: await resolveBaseUrl(\n globalThis.RENDERER_BASE_URL || `urn:decentraland:off-chain:unity-renderer-cdn:latest`\n )\n }\n })\n\n kernel.on('trackingEvent', ({ eventName, eventData }) => {\n internalTrackEvent(eventName, { ...eventData, context: eventData.context || 'kernel' })\n })\n\n kernel.on('openUrl', ({ url }) => {\n const newWindow = window.open(url, '_blank', 'noopener,noreferrer')\n if (newWindow != null) newWindow.opener = null\n })\n\n let isGuest = true\n let lastIdentity: string | null = null\n let email: string | undefined = undefined\n\n function identify() {\n if (lastIdentity) {\n identifyUser(lastIdentity, isGuest, email)\n }\n }\n\n kernel.on('accountState', (account) => {\n if (account.identity) {\n isGuest = !!account.isGuest\n lastIdentity = account.identity.address\n identify()\n }\n\n store.dispatch(setKernelAccountState(account))\n })\n\n kernel.on('signUp', (data) => {\n email = data.email\n identify()\n })\n\n // all errors are also sent as trackingEvent\n kernel.on('error', (error) => {\n store.dispatch(setKernelError(error))\n\n // TODO: move this into a saga for setKernelError\n trackError(error.error, { context: 'kernel', ...(error.extra || {}) })\n\n // trackError only sends information to rollbar, we must get statistical information of errors in segment\n // via this track() function\n track('explorer_kernel_error', {\n // this string concatenation exists on purpose, it is a safe way to do (error).toString in case (error) is nullish\n error: errorToString(error)\n })\n\n // since setKernelError(error) produces an unrecoverable black screen of death, we disable analytics\n disableAnalytics()\n })\n\n kernel.on('rendererVisible', (event) => {\n store.dispatch(setRendererVisible(event.visible))\n\n // TODO: move this into a saga for setRendererVisible\n // if the kernel and renderer decides to load, we cleanup the error window\n if (event.visible) {\n track('enable_renderer', {})\n store.dispatch(setKernelError(null))\n }\n })\n\n kernel.on('loadingProgress', (event) => {\n store.dispatch(setRendererLoading(event))\n })\n\n kernel.on('logout', () => {\n disconnect().catch(defaultWebsiteErrorTracker)\n })\n\n return kernel\n}\n\nasync function initLogin(kernel: KernelResult) {\n const provider = await restoreConnection()\n if (provider && provider.account) {\n const providerChainId = await getChainIdFromProvider(provider.provider)\n\n // BUG OF decentraland-connect:\n // provider.chainId DOES NOT reflect the selected chain in the real provider\n const storedSession = await kernel.hasStoredSession(provider.account, providerChainId /* provider.chainId */)\n\n if (storedSession) {\n track('automatic_relogin', { provider_type: provider.providerType })\n authenticate(provider.providerType).catch(defaultWebsiteErrorTracker)\n }\n }\n}\n\nexport function startKernel() {\n if (NETWORK && NETWORK !== 'mainnet' && NETWORK !== 'ropsten') {\n store.dispatch(\n setKernelError({\n error: new Error(`Invalid NETWORK url param, valid options are 'ropsten' and 'mainnet'`),\n code: ErrorType.FATAL\n })\n )\n return\n }\n\n if (ENV) {\n store.dispatch(\n setKernelError({\n error: new Error(\n `The \"ENV\" URL parameter is no longer supported. Please use NETWORK=ropsten in the cases where ENV=zone was used`\n ),\n code: ErrorType.FATAL\n })\n )\n return\n }\n\n track('initialize_versions', injectVersions({}))\n\n initKernel()\n .then((kernel) => {\n store.dispatch(setKernelLoaded(kernel))\n\n return initLogin(kernel)\n })\n .catch((error) => {\n store.dispatch(setKernelError({ error }))\n defaultWebsiteErrorTracker(error)\n })\n}\n","// this function injects rollout versions to records based on the rollouts\n// {a: asd} -> {a: asd, _site: 1.0.0, @dcl/unity-renderer: 6.0.0}\nexport function injectVersions<T extends Record<string, any>>(versions: T): T & Record<string, string> {\n var rolloutsInfo = (globalThis as any).ROLLOUTS || {}\n\n for (let component in rolloutsInfo) {\n if (component === '_site' || component.startsWith('@dcl')) {\n if (rolloutsInfo[component] && rolloutsInfo[component].version) {\n versions[component as keyof T] = rolloutsInfo[component].version\n }\n }\n }\n\n return versions\n}\n","import { action } from 'typesafe-actions'\nimport {\n IEthereumProvider,\n KernelAccountState,\n KernelError,\n KernelLoadingProgress,\n KernelResult\n} from '@dcl/kernel-interface'\nimport { BannerType } from './redux'\n\nexport const KERNEL_AUTHENTICATE = '[Authenticate]'\nexport const SET_KERNEL_ACCOUNT_STATE = 'Set kernel account state'\nexport const SET_KERNEL_ERROR = 'Set kernel error'\nexport const SET_KERNEL_LOADED = 'Set kernel loaded'\nexport const SET_RENDERER_LOADING = 'Set renderer loading'\nexport const SET_RENDERER_VISIBLE = 'Set renderer visible'\nexport const SET_BANNER = 'Set banenr'\n\nexport const setKernelAccountState = (accountState: KernelAccountState) =>\n action(SET_KERNEL_ACCOUNT_STATE, accountState)\nexport const setKernelError = (error: KernelError | null) => action(SET_KERNEL_ERROR, error)\nexport const setKernelLoaded = (kernel: KernelResult) => action(SET_KERNEL_LOADED, kernel)\nexport const setRendererLoading = (progressEvent: KernelLoadingProgress) => action(SET_RENDERER_LOADING, progressEvent)\nexport const setRendererVisible = (visible: boolean) => action(SET_RENDERER_VISIBLE, { visible })\nexport const setBanner = (banner: BannerType | null) => action(SET_BANNER, { banner })\n\nexport const authenticate = (provider: IEthereumProvider, isGuest: boolean) =>\n action(KERNEL_AUTHENTICATE, { provider, isGuest })\n","import future from 'fp-future'\nimport { KernelOptions, KernelResult, IDecentralandKernel } from '@dcl/kernel-interface'\n\nexport async function injectKernel(options: KernelOptions): Promise<KernelResult> {\n const kernelUrl = new URL(`index.js?cors`, options.kernelOptions.baseUrl).toString()\n\n await injectScript(kernelUrl)\n\n console.log('Kernel: ', kernelUrl)\n\n const DecentralandKernel: IDecentralandKernel = (globalThis as any).DecentralandKernel\n\n if (!DecentralandKernel) throw new Error('DecentralandKernel could not be loaded')\n\n return await DecentralandKernel.initKernel(options)\n}\n\nasync function injectScript(url: string) {\n const theFuture = future<Event>()\n const theScript = document.createElement('script')\n const persistMessage =\n 'If this error persists, please try emptying the cache of your browser and reloading this page.'\n theScript.src = url\n theScript.async = true\n theScript.type = 'application/javascript'\n theScript.crossOrigin = 'anonymous'\n theScript.addEventListener('load', theFuture.resolve)\n theScript.addEventListener('error', (e) =>\n theFuture.reject(e.error || new Error(`The script ${url} failed to load.\\n${persistMessage}`))\n )\n theScript.addEventListener('abort', () =>\n theFuture.reject(\n new Error(\n `Script loading aborted: ${url}.\\nThis may be caused because you manually stopped the loading or because of a network error.\\n${persistMessage}`\n )\n )\n )\n document.body.appendChild(theScript)\n return theFuture\n}\n","import { TrackingEvents } from '../trackingEvents'\nimport { internalTrackEvent, trackError } from '../integration/analytics'\nimport { errorToString } from './errorToString'\nimport { callOnce } from './callOnce'\nimport { isRecommendedBrowser } from '../integration/browser'\nimport { RENDERER_TYPE } from '../integration/queryParamsConfig'\n\nconst ethereum = window.ethereum as any\n\nconst getWalletName = callOnce(() => {\n if (!ethereum) {\n return 'none'\n } else if (ethereum?.isMetaMask) {\n return 'metamask'\n } else if (ethereum?.isDapper) {\n return 'dapper'\n } else if (ethereum?.isCucumber) {\n return 'cucumber'\n } else if (ethereum?.isTrust) {\n return 'trust'\n } else if (ethereum?.isToshi) {\n return 'coinbase'\n } else if (ethereum?.isGoWallet) {\n return 'goWallet'\n } else if (ethereum?.isAlphaWallet) {\n return 'alphaWallet'\n } else if (ethereum?.isStatus) {\n return 'status'\n } else {\n return 'other'\n }\n})\n\nconst getWalletProps = callOnce(() => {\n return Object.keys(ethereum || {})\n .filter((prop) => prop.startsWith('is') && typeof ethereum[prop] === 'boolean')\n .join(',')\n})\n\nconst environmentType = { rendererType: RENDERER_TYPE }\n\n/**\n * The only function used by this react app to track its own events.\n * Please do not use internalTrackEvent directly, it is meant to be used by kernel\n * and this function adds relevant information and proper types.\n */\nexport function track<E extends keyof TrackingEvents>(event: E, properties?: TrackingEvents[E]) {\n const wallet = getWalletName()\n const walletProps = getWalletProps()\n const recommendedBrowser = isRecommendedBrowser()\n internalTrackEvent(event, { wallet, walletProps, recommendedBrowser, ...properties, ...environmentType })\n}\n\n\n/**\n * Default \"catch\" for promises and to print errors in the console.\n */\nexport function defaultWebsiteErrorTracker(error: any) {\n console.error(error)\n trackError(error, { context: 'explorer-website' })\n track('explorer_website_error', {\n // this string concatenation exists on purpose, it is a safe way to do (error).toString in case (error) is nullish\n error: errorToString(error)\n })\n}\n","const qs = new URLSearchParams(document.location.search || '')\n\nexport const DEBUG_ANALYTICS = qs.has('DEBUG_ANALYTICS')\nexport const ENV = qs.get('ENV')\nexport const NETWORK = qs.get('NETWORK')\nexport const RENDERER_TYPE = qs.get('ws') ? 'native' : 'web'","import { SessionTraits } from '../trackingEvents'\nimport { StoreType } from './redux'\n\n// This function is used for every rollbar and segment events.\nexport function getRequiredAnalyticsContext(state: StoreType): SessionTraits {\n return {\n sessionId: state.session.sessionId\n }\n}\n","import { store } from '../state/redux'\nimport { getRequiredAnalyticsContext } from '../state/selectors'\nimport { errorToString } from '../utils/errorToString'\nimport { track } from '../utils/tracking'\nimport { DEBUG_ANALYTICS, RENDERER_TYPE } from './queryParamsConfig'\n\nlet analyticsDisabled = false\n\nenum AnalyticsAccount {\n PRD = '1plAT9a2wOOgbPCrTaU8rgGUMzgUTJtU',\n DEV = 'a4h4BC4dL1v7FhIQKKuPHEdZIiNRDVhc'\n}\n\nconst authFlags = {\n isAuthenticated: false,\n isGuest: false,\n afterFatalError: false\n}\n\n// TODO fill with segment keys and integrate identity server\nexport function configureSegment() {\n // all decentraland.org domains are considered PRD\n if (globalThis.location.host.endsWith('.decentraland.org')) {\n return initialize(AnalyticsAccount.PRD)\n }\n\n return initialize(AnalyticsAccount.DEV)\n}\n\nfunction injectTrackingMetadata(payload: Record<string, any>): void {\n const qs = new URLSearchParams(globalThis.location.search || '')\n\n // inject realm\n if (qs.has('realm')) {\n payload.realm = qs.get('realm')\n }\n\n // inject position\n if (qs.has('position')) {\n payload.position = qs.get('position')\n }\n\n payload.dcl_is_authenticated = authFlags.isAuthenticated\n payload.dcl_is_guest = authFlags.isGuest\n payload.dcl_disabled_analytics = authFlags.afterFatalError\n payload.dcl_renderer_type = RENDERER_TYPE\n}\n\nexport function configureRollbar() {\n function rollbarTransformer(payload: Record<string, any>): void {\n injectTrackingMetadata(payload)\n }\n\n if ((window as any).Rollbar) {\n ;(window as any).Rollbar.configure({ transform: rollbarTransformer })\n }\n}\n\n// once this function is called, no more errors will be tracked neither reported to rollbar\nexport function disableAnalytics() {\n track('disable_analytics', {})\n\n authFlags.afterFatalError = true\n analyticsDisabled = true\n\n if ((window as any).Rollbar) {\n ;(window as any).Rollbar.configure({ enabled: false })\n }\n\n if (DEBUG_ANALYTICS) {\n console.info('explorer-website: DEBUG_ANALYTICS disableAnalytics')\n }\n}\n\nexport function trackError(error: string | Error, payload?: Record<string, any>) {\n if (analyticsDisabled) return\n\n if (DEBUG_ANALYTICS) {\n console.info('explorer-website: DEBUG_ANALYTICS trackCriticalError ', error)\n }\n if (!(window as any).Rollbar) return\n\n if (typeof error === 'string') {\n ;(window as any).Rollbar.critical(errorToString(error), payload)\n } else if (error && error instanceof Error) {\n ;(window as any).Rollbar.critical(\n errorToString(error),\n Object.assign(error, payload, { fullErrorStack: error.toString() })\n )\n } else {\n ;(window as any).Rollbar.critical(errorToString(error), payload)\n }\n}\n\nexport function identifyUser(address: string, isGuest: boolean, email?: string) {\n authFlags.isGuest = isGuest\n authFlags.isAuthenticated = !!address\n\n if (window.analytics) {\n const userTraits = {\n sessionId: getRequiredAnalyticsContext(store.getState()).sessionId,\n email\n }\n\n if (DEBUG_ANALYTICS) {\n console.info('explorer-website: DEBUG_ANALYTICS identifyUser', address, userTraits)\n }\n\n if (isGuest) {\n window.analytics.identify(userTraits)\n } else {\n window.analytics.identify(address, userTraits)\n }\n }\n}\n\nasync function initialize(segmentKey: string): Promise<void> {\n if (window.analytics.load) {\n // loading client for the first time\n window.analytics.load(segmentKey)\n window.analytics.page()\n window.analytics.ready(() => {\n window.analytics.timeout(1000)\n })\n }\n}\n\n// please use src/utils \"track\" function.\nexport function internalTrackEvent(eventName: string, eventData: Record<string, any>) {\n if (!window.analytics || analyticsDisabled) {\n return\n }\n\n const data = { ...eventData, ...getRequiredAnalyticsContext(store.getState()) }\n\n injectTrackingMetadata(data)\n\n if (DEBUG_ANALYTICS) {\n console.info('explorer-website: DEBUG_ANALYTICS trackEvent', eventName, data)\n }\n\n window.analytics.track(eventName, data)\n}\n","\nexport function errorToString(error: any) {\n if (typeof error === 'object') {\n if (error.message) return error.message\n if (error.toString() === '[object Object]') {\n return JSON.stringify(error)\n }\n return error.toString()\n }\n if (typeof error === 'string') return error\n return Object.prototype.toString.call(error)\n}","import { AnyAction } from 'redux'\nimport { KernelAccountState, KernelResult, KernelError } from '@dcl/kernel-interface'\nimport {\n SET_BANNER,\n SET_KERNEL_ACCOUNT_STATE,\n SET_KERNEL_ERROR,\n SET_KERNEL_LOADED,\n SET_RENDERER_LOADING,\n SET_RENDERER_VISIBLE\n} from './actions'\nimport { KernelState, SessionState, RendererState, ErrorState, BannerState } from './redux'\nimport { v4 } from 'uuid'\nimport { errorToString } from '../utils/errorToString'\n\nconst defaultSession: SessionState = {\n sessionId: v4(),\n kernelState: null\n}\n\nexport function kernelReducer(state: KernelState | undefined, action: AnyAction): KernelState {\n if (action.type === SET_KERNEL_LOADED) {\n return { ...state, ready: true, kernel: action.payload as KernelResult }\n }\n return (\n state || {\n ready: false,\n kernel: null\n }\n )\n}\n\nexport function sessionReducer(state: SessionState | undefined, action: AnyAction): SessionState {\n if (!state) return defaultSession\n\n if (action.type === SET_KERNEL_ACCOUNT_STATE) {\n return { ...state, kernelState: action.payload as KernelAccountState }\n }\n\n return state\n}\n\nexport function rendererReducer(state: RendererState | undefined, action: AnyAction): RendererState {\n if (state && action.type === SET_RENDERER_VISIBLE) {\n return { ...state, visible: action.payload.visible }\n } else if (state && action.type === SET_RENDERER_LOADING) {\n return { ...state, loading: action.payload }\n }\n return (\n state || {\n ready: false,\n version: 'latest',\n visible: false,\n loading: null\n }\n )\n}\n\nexport function errorReducer(state: ErrorState | undefined, action: AnyAction): ErrorState {\n if (action.type === SET_KERNEL_ERROR) {\n const payload: KernelError = action.payload\n\n if (!payload) {\n return { error: null }\n }\n\n return {\n error: {\n details: errorToString(payload.error),\n type: payload.code as any\n }\n }\n }\n\n return state || { error: null }\n}\n\nexport function bannerReducer(state: BannerState | undefined, action: AnyAction): BannerState {\n if (action.type === SET_BANNER) {\n return { banner: action.payload.banner }\n }\n\n return state || { banner: null }\n}\n","import { combineReducers, createStore } from 'redux'\nimport { KernelAccountState, KernelResult, KernelLoadingProgress } from '@dcl/kernel-interface'\nimport { kernelReducer, sessionReducer, rendererReducer, errorReducer, bannerReducer } from './reducers'\nimport { composeWithDevTools } from 'redux-devtools-extension'\n\nexport type KernelState = {\n ready: boolean\n kernel: KernelResult | null\n}\n\nexport type RendererState = {\n ready: boolean\n version: string\n visible: boolean\n loading: KernelLoadingProgress | null\n}\n\nexport type SessionState = {\n // It is important that this ID is autogenerated in every user session (reload)\n // and it _never_ changes during the session\n sessionId: string\n kernelState: KernelAccountState | null\n}\n\nexport type ErrorState = {\n error: {\n type: string | ErrorType\n details: string\n } | null\n}\n\nexport enum ErrorType {\n LOADING = 'loading',\n FATAL = 'fatal',\n COMMS = 'comms',\n NEW_LOGIN = 'newlogin',\n NOT_MOBILE = 'nomobile',\n NOT_SUPPORTED = 'notsupported',\n NET_MISMATCH = 'networkmismatch',\n AVATAR_ERROR = 'avatarerror',\n METAMASK_LOCKED = 'METAMASK_LOCKED'\n}\n\nexport type BannerState = {\n banner: BannerType | null\n}\n\nexport enum BannerType {\n NOT_RECOMMENDED = 'notrecommended',\n}\n\nexport type StoreType = {\n kernel: KernelState\n renderer: RendererState\n session: SessionState\n error: ErrorState\n banner: BannerState\n}\n\nconst reducers = combineReducers<StoreType>({\n kernel: kernelReducer,\n session: sessionReducer,\n renderer: rendererReducer,\n error: errorReducer,\n banner: bannerReducer,\n})\n\nconst middleware: typeof composeWithDevTools =\n process.env.NODE_ENV !== 'production' ? composeWithDevTools : (x: any) => x\n\nexport const store = createStore(reducers, {}, middleware())\n","export function callOnce<T>(fun: () => T): () => T {\n let result: { value: T } | null = null\n return () => {\n if (!result) {\n result = { value: fun() }\n }\n\n return result.value\n }\n}","import { startKernel } from \"../kernel-loader\"\nimport { callOnce } from \"../utils/callOnce\"\n\nexport const initializeKernel = callOnce(() => {\n startKernel()\n\n const initial = document.getElementById('root-loading')\n if (initial) {\n initial.style.opacity = '0'\n setTimeout(() => {\n initial.remove()\n }, 300)\n }\n})\n","export default __webpack_public_path__ + \"static/media/error-robotmobile.9df34375.png\";","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotmobile.png'\n\nexport const ErrorAvatarLoading: React.FC = () => (\n <div id=\"error-avatarerror\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error\">Oops...</div>\n <div className=\"communicationslink\">\n There was a technical issue and we were unable to retrieve your avatar information\n </div>\n <div className=\"givesomedetailof\">\n Please try again later, and if the problem persists you can contact us through the Discord channel or at{' '}\n <a href=\"mailto:hello@decentraland.org\">hello@decentraland.org</a>\n </div>\n </div>\n <div className=\"errorimage col\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n)\n","export default __webpack_public_path__ + \"static/media/error-robotdead.ac866adc.png\";","import React from 'react'\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotdead.png'\n\nexport const ErrorComms: React.FC = () => (\n <div id=\"error-comms\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error\">Error</div>\n <div className=\"communicationslink\">\n A communication link could not be\n <br />\n established with other peers\n </div>\n <div className=\"givesomedetailof\">\n This might be because you are behind a restrictive network firewall, or a temporary problem with our\n coordinator server. <br />\n <br />\n Please try again later, or reach out to us at{' '}\n <a href=\"mailto:hello@decentraland.org\">hello@decentraland.org</a>\n .<br />\n <br />\n Thank you for helping us improve!\n </div>\n <div className=\"cta\">\n <button\n className=\"retry\"\n onClick={() => {\n window.location.reload()\n }}\n >\n Try again\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n)\n","export default __webpack_public_path__ + \"static/media/error-robotdown.ee4685c4.png\";","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotdown.png'\n\nconst defaultDetails: (string | JSX.Element)[] = [\n 'If you have any ad blocking extensions,',\n 'try turning them off for this site.',\n '',\n 'Loading should not take any longer than 2-3 minutes.',\n 'If you seem to be stuck, make sure hardware acceleration is on.',\n <a href=\"https://docs.decentraland.org/decentraland/hardware-acceleration/\">LEARN MORE</a>\n]\n\nexport const ErrorFatal = (props: { details?: typeof defaultDetails }) => {\n const details = props.details && props.details.length ? props.details : defaultDetails\n\n return (\n <div id=\"error-fatal\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error\">Oops!</div>\n <div className=\"communicationslink\">Something went wrong</div>\n <div className=\"givesomedetailof\">\n {details.map(($, ix) => (\n <div key={ix}>{$}</div>\n ))}\n </div>\n <div className=\"cta\">\n <button\n className=\"retry\"\n onClick={() => {\n window.location.reload()\n }}\n >\n Reload\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n )\n}\n","export default __webpack_public_path__ + \"static/media/robotsmiling.e182d216.png\";","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/robotsmiling.png'\n\nexport interface ErrorNetworkMismatchProps {\n details: string | null\n closeError(): void\n}\n\nexport const ErrorMetamaskLocked: React.FC<ErrorNetworkMismatchProps> = (props: ErrorNetworkMismatchProps) => {\n return (\n <div id=\"error-networkmismatch\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"communicationslink\">Before we continue</div>\n {props.details && <div className=\"givesomedetailof\">{props.details}</div>}\n <div className=\"cta\">\n <button className=\"retry\" onClick={props.closeError}>\n Retry\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/robotsmiling.png'\nimport { NETWORK } from '../../integration/queryParamsConfig'\n\nexport interface ErrorNetworkMismatchProps {\n details: string | null\n onLogout: () => Promise<void>\n}\n\nexport const ErrorNetworkMismatch: React.FC<ErrorNetworkMismatchProps> = (props: ErrorNetworkMismatchProps) => {\n return (\n <div id=\"error-networkmismatch\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"communicationslink\">A network mismatch was detected</div>\n <div className=\"givesomedetailof\">\n We detected that you are trying to enter the <strong id=\"tld\">{NETWORK || 'mainnet'}</strong> network, and\n your Ethereum wallet is set to other network.\n </div>\n <div className=\"givesomedetailof\">\n To continue, please change the Ethereum network in your wallet to{' '}\n <strong id=\"web3NetGoal\">{NETWORK || 'mainnet'}</strong> and click \"Reload\".\n </div>\n {props.details && <div className=\"givesomedetailof\">Details: {props.details}</div>}\n <div className=\"cta\">\n <button\n className=\"retry\"\n onClick={() => {\n window.location.reload()\n }}\n >\n Reload\n </button>\n <br />\n <button className=\"retry\" onClick={() => props.onLogout().finally(() => window.location.reload())}>\n Log out\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/robotsmiling.png'\n\nexport const ErrorNewLogin: React.FC = () => (\n <div id=\"error-newlogin\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error communicationslink\">Another session was detected</div>\n <div className=\"givesomedetailof\">\n It seems that the explorer was opened with your account from another device, browser, or tab.\n <br />\n Please, close the prior session and click \"Reload\" to explore the world in this window.\n </div>\n <div className=\"cta\">\n <button\n className=\"retry\"\n onClick={() => {\n window.location.reload()\n }}\n >\n Reload\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n)\n","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotmobile.png'\n\nexport const ErrorNoMobile: React.FC = () => (\n <div id=\"error-nomobile\" className=\"hidden-error\">\n <div\n className=\"error-background\"\n style={{\n zIndex: 10,\n width: '100%',\n height: '100%',\n backgroundColor: '#0d0c0f'\n }}\n />\n <div className=\"iphone8916\" style={{ zIndex: 11 }}>\n <div\n className=\"div1\"\n style={{\n width: '375px',\n height: '100%',\n position: 'relative',\n margin: 'auto'\n }}\n >\n <div className=\"theclientisonlya\">The client is only available on desktop right now.</div>\n <img alt=\"\" className=\"robotmobilebrowsererror\" src={errorImage} />\n <div className=\"cta\">\n <div\n className=\"signup\"\n onClick={() => {\n window.location.href = 'https://decentraland.org'\n }}\n >\n Learn more about decentraland\n </div>\n </div>\n </div>\n </div>\n </div>\n)\n","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotmobile.png'\n\nexport const ErrorNotSupported: React.FC = () => (\n <div id=\"error-notsupported\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error\">Error</div>\n <div className=\"communicationslink\">Your browser or device is not supported</div>\n <div className=\"givesomedetailof\">\n The Explorer only works on Chrome or Firefox for Windows, Linux and macOS.\n </div>\n </div>\n <div className=\"errorimage col\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n)\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport { setKernelError } from '../../state/actions'\nimport { disconnect } from '../../eth/provider'\nimport { ErrorState, ErrorType, StoreType } from '../../state/redux'\nimport { ErrorAvatarLoading } from './ErrorAvatarLoading'\nimport { ErrorComms } from './ErrorComms'\nimport { ErrorFatal } from './ErrorFatal'\nimport { ErrorMetamaskLocked } from './ErrorMetamaskLocked'\nimport { ErrorNetworkMismatch } from './ErrorNetworkMismatch'\nimport { ErrorNewLogin } from './ErrorNewLogin'\nimport { ErrorNoMobile } from './ErrorNoMobile'\nimport { ErrorNotSupported } from './ErrorNotSupported'\n\nconst mapStateToProps = (state: StoreType): Pick<ErrorContainerProps, 'error'> => {\n return {\n error: state.error.error || null\n }\n}\n\nconst mapDispatchToProps = (dispatch: (a: any) => void, state: StoreType): Pick<ErrorContainerProps, 'closeError'> => {\n return {\n closeError: () => dispatch(setKernelError(null)),\n onLogout: () => disconnect()\n }\n}\n\nexport interface ErrorContainerProps {\n error: ErrorState['error']\n onLogout(): void\n closeError(): void\n}\n\nexport const ErrorContainer: React.FC<ErrorContainerProps> = (props) => {\n if (!props.error) return <React.Fragment></React.Fragment>\n\n if (props.error.type === ErrorType.COMMS) return <ErrorComms />\n if (props.error.type === ErrorType.METAMASK_LOCKED)\n return <ErrorMetamaskLocked details={props.error.details} closeError={props.closeError} />\n if (props.error.type === ErrorType.NEW_LOGIN) return <ErrorNewLogin />\n if (props.error.type === ErrorType.NOT_MOBILE) return <ErrorNoMobile />\n if (props.error.type === ErrorType.NOT_SUPPORTED) return <ErrorNotSupported />\n if (props.error.type === ErrorType.NET_MISMATCH)\n return <ErrorNetworkMismatch details={props.error.details} onLogout={props.onLogout} />\n if (props.error.type === ErrorType.AVATAR_ERROR) return <ErrorAvatarLoading />\n\n return (\n <React.Fragment>\n <ErrorFatal details={[props.error.details || 'An error happened while loading Decentraland.']} />\n </React.Fragment>\n )\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ErrorContainer)\n","import React from 'react'\n\nexport const Logo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n height=\"31\"\n width=\"31\"\n viewBox=\"0 0 31 31\"\n {...props}\n className={'dcl-logo ' + (props.className || '')}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient id=\"c\" x1=\".5\" x2=\"-.20734\" y1=\"-.20711\" y2=\".49977\">\n <stop stopColor=\"#FF2D55\" offset=\"0\" />\n <stop stopColor=\"#FFBC5B\" offset=\"1\" />\n </linearGradient>\n <linearGradient id=\"b\" x1=\"-.00033\" x2=\"-.00033\" y2=\"1\">\n <stop stopColor=\"#A524B3\" offset=\"0\" />\n <stop stopColor=\"#FF2D55\" offset=\"1\" />\n </linearGradient>\n <linearGradient id=\"a\" x1=\"-.00034\" x2=\"-.00034\" y2=\"1\">\n <stop stopColor=\"#A524B3\" offset=\"0\" />\n <stop stopColor=\"#FF2D55\" offset=\"1\" />\n </linearGradient>\n </defs>\n <g>\n <title>background</title>\n <rect x=\"-1\" y=\"-1\" width=\"10.267\" height=\"10.267\" fill=\"none\" />\n </g>\n <g>\n <title>Layer 1</title>\n <path\n d=\"m15.45 30.91c8.5327 0 15.45-6.9194 15.45-15.455 0-8.5355-6.9171-15.455-15.45-15.455-8.5328 0-15.45 6.9194-15.45 15.455 0 8.5356 6.9171 15.455 15.45 15.455z\"\n clipRule=\"evenodd\"\n fill=\"url(#c)\"\n fillRule=\"evenodd\"\n />\n <path d=\"m10.948 10.046v11.591h9.6561l-9.6561-11.591z\" clipRule=\"evenodd\" fill=\"url(#b)\" fillRule=\"evenodd\" />\n <path d=\"m1.29 21.637h9.6561v-11.591l-9.6561 11.591z\" clipRule=\"evenodd\" fill=\"#fff\" fillRule=\"evenodd\" />\n <path\n d=\"m6.1802 27.819c2.5801 1.9396 5.7937 3.091 9.2699 3.091s6.6898-1.1514 9.2699-3.091h-18.54z\"\n clipRule=\"evenodd\"\n fill=\"#FF2D55\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"m3.0901 24.728c0.88064 1.1669 1.9235 2.2101 3.09 3.091h18.54c1.1664-0.8809 2.2093-1.9241 3.0899-3.091h-24.72z\"\n clipRule=\"evenodd\"\n fill=\"#FC9965\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"m20.726 21.637h-19.436c0.47894 1.105 1.0892 2.1405 1.7999 3.091h17.644v-3.091h-0.0077z\"\n clipRule=\"evenodd\"\n fill=\"#FFBC5B\"\n fillRule=\"evenodd\"\n />\n <path d=\"m20.727 16.228v8.5003h7.0838l-7.0838-8.5003z\" clipRule=\"evenodd\" fill=\"url(#a)\" fillRule=\"evenodd\" />\n <path d=\"m13.65 24.728h7.076v-8.5003l-7.076 8.5003z\" clipRule=\"evenodd\" fill=\"#fff\" fillRule=\"evenodd\" />\n <path\n d=\"m20.727 13.909c2.1331 0 3.8624-1.7298 3.8624-3.8637 0-2.1339-1.7293-3.8637-3.8624-3.8637-2.1332 0-3.8625 1.7299-3.8625 3.8637 0 2.1339 1.7293 3.8637 3.8625 3.8637z\"\n clipRule=\"evenodd\"\n fill=\"#FFC95B\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"m10.947 7.7278c1.0666 0 1.9312-0.86493 1.9312-1.9319s-0.8646-1.9319-1.9312-1.9319c-1.0666 0-1.9312 0.86493-1.9312 1.9319s0.86464 1.9319 1.9312 1.9319z\"\n clipRule=\"evenodd\"\n fill=\"#FFC95B\"\n fillRule=\"evenodd\"\n />\n </g>\n </svg>\n)\n","import React from 'react'\n\nexport const Isologotipo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n width=\"179\"\n height=\"35\"\n viewBox=\"0 0 179 35\"\n {...props}\n className={'dcl-isologotipo ' + (props.className || '')}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"16.863\"\n y1=\"6.98716\"\n x2=\"6.9927\"\n y2=\"16.8607\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FF2D55\" />\n <stop offset=\"1\" stopColor=\"#FFBC5B\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear\"\n x1=\"11.9437\"\n y1=\"10.9645\"\n x2=\"11.9437\"\n y2=\"23.6159\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#A524B3\" />\n <stop offset=\"1\" stopColor=\"#FF2D55\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear\"\n x1=\"22.6187\"\n y1=\"17.7117\"\n x2=\"22.6187\"\n y2=\"26.9893\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#A524B3\" />\n <stop offset=\"1\" stopColor=\"#FF2D55\" />\n </linearGradient>\n </defs>\n <g>\n <path\n transform=\"translate(0, 1)\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M136.67 24.8339H139.862V8.229H136.67V24.8339ZM48.0383 22.0884H45.6552V11.7213H48.0383C50.9459 11.7213 52.5857 13.5442 52.5857 16.861C52.5857 20.2874 50.9897 22.0884 48.0383 22.0884ZM55.9524 16.8501C55.9524 11.8202 53.165 8.98677 48.4318 8.98677H42.3542V24.834H48.4318C53.165 24.834 55.9524 21.8797 55.9524 16.8501ZM65.6344 17.5421H60.442C60.5514 15.9937 61.6225 14.9285 63.0765 14.9285C64.5521 14.9285 65.5796 15.9607 65.6344 17.5421ZM63.164 25.043C66.0934 25.043 68.2689 23.4833 68.6187 21.1442H65.6781C65.3721 22.0776 64.4209 22.6488 63.2185 22.6488C61.5351 22.6488 60.4092 21.4736 60.4092 19.7275V19.5298H68.7169V18.5416C68.7169 14.8624 66.509 12.5343 63.0436 12.5343C59.513 12.5343 57.261 14.9943 57.261 18.8379C57.261 22.6816 59.502 25.043 63.164 25.043ZM78.2023 17.2017C78.0274 15.9497 77.1529 15.0601 75.7647 15.0601C74.125 15.0601 73.0866 16.4658 73.0866 18.7831C73.0866 21.1442 74.125 22.5061 75.7756 22.5061C77.12 22.5061 78.0055 21.7703 78.2132 20.4414H81.1865C81.0007 23.2528 78.9019 25.043 75.7427 25.043C72.1464 25.043 69.8508 22.6708 69.8508 18.7831C69.8508 14.9505 72.1464 12.5343 75.7208 12.5343C78.9564 12.5343 81.0226 14.5112 81.1756 17.2017H78.2023ZM90.5727 17.5421H85.3803C85.4897 15.9937 86.5608 14.9285 88.0148 14.9285C89.4904 14.9285 90.5179 15.9607 90.5727 17.5421ZM88.1023 25.043C91.0317 25.043 93.2072 23.4833 93.557 21.1442H90.6164C90.3105 22.0776 89.3592 22.6488 88.1569 22.6488C86.4734 22.6488 85.3475 21.4736 85.3475 19.7275V19.5298H93.6552V18.5416C93.6552 14.8624 91.4473 12.5343 87.982 12.5343C84.4514 12.5343 82.1994 14.9943 82.1994 18.8379C82.1994 22.6816 84.4404 25.043 88.1023 25.043ZM95.2375 12.7429H98.3201V14.9062H98.3856C99.0743 13.3799 100.299 12.5671 102.146 12.5671C104.813 12.5671 106.322 14.2584 106.322 17.0809V24.8341H103.13V17.7507C103.13 16.1472 102.386 15.2359 100.878 15.2359C99.3476 15.2359 98.4295 16.334 98.4295 17.9374V24.8341H95.2375V12.7429ZM112.341 12.7425V10.052H109.149V12.7425H107.521V15.1697H109.149V21.5722C109.149 23.9334 110.243 24.8778 113.03 24.8778C113.675 24.8778 114.243 24.8119 114.571 24.7461V22.374C114.375 22.4068 114.057 22.4288 113.773 22.4288C112.801 22.4288 112.341 21.9785 112.341 21.0451V15.1697H114.571V12.7425H112.341ZM116.285 12.7429H119.368V14.9063H119.433C119.838 13.4127 120.876 12.6002 122.297 12.6002C122.669 12.6002 122.997 12.644 123.226 12.7209V15.5543C122.953 15.4444 122.516 15.3676 122.046 15.3676C120.428 15.3676 119.477 16.378 119.477 18.0691V24.8341H116.285V12.7429ZM131.437 19.5077V20.3973C131.437 21.7152 130.257 22.6378 128.781 22.6378C127.622 22.6378 126.868 22.0776 126.868 21.188C126.868 20.2985 127.578 19.7713 128.912 19.6835L131.437 19.5077ZM128.431 17.7288C125.359 17.9156 123.687 19.1566 123.687 21.353C123.687 23.5166 125.425 24.9771 127.742 24.9771C129.284 24.9771 130.77 24.2302 131.426 22.9674H131.492V24.8342H134.574V16.5429C134.574 14.1267 132.552 12.5343 129.459 12.5343C126.452 12.5343 124.376 14.1267 124.288 16.433H127.207C127.36 15.5544 128.168 14.9394 129.327 14.9394C130.639 14.9394 131.437 15.5765 131.437 16.7406V17.5421L128.431 17.7288ZM149.227 19.5077V20.3973C149.227 21.7152 148.047 22.6378 146.571 22.6378C145.412 22.6378 144.658 22.0776 144.658 21.188C144.658 20.2985 145.368 19.7713 146.702 19.6835L149.227 19.5077ZM146.22 17.7288C143.149 17.9156 141.477 19.1566 141.477 21.353C141.477 23.5166 143.215 24.9771 145.532 24.9771C147.073 24.9771 148.56 24.2302 149.216 22.9674H149.281V24.8342H152.364V16.5429C152.364 14.1267 150.342 12.5343 147.248 12.5343C144.242 12.5343 142.165 14.1267 142.078 16.433H144.996C145.149 15.5544 145.958 14.9394 147.117 14.9394C148.429 14.9394 149.227 15.5765 149.227 16.7406V17.5421L146.22 17.7288ZM154.372 12.7429H157.455V14.9062H157.521C158.209 13.3799 159.433 12.5671 161.281 12.5671C163.948 12.5671 165.456 14.2584 165.456 17.0809V24.8341H162.265V17.7507C162.265 16.1472 161.521 15.2359 160.013 15.2359C158.482 15.2359 157.564 16.334 157.564 17.9374V24.8341H154.372V12.7429ZM173.108 22.385C171.447 22.385 170.386 21.0013 170.386 18.7829C170.386 16.5864 171.447 15.1917 173.108 15.1917C174.759 15.1917 175.83 16.6085 175.83 18.7939C175.83 20.9793 174.759 22.385 173.108 22.385ZM172.059 12.5998C169.063 12.5998 167.118 14.983 167.118 18.7718C167.118 22.5827 169.052 24.9766 172.048 24.9766C173.819 24.9766 175.207 24.098 175.797 22.7694H175.852V24.8339H179V8.229H175.808V14.8073H175.742C175.141 13.4676 173.797 12.5998 172.059 12.5998Z\"\n fill=\"#16141A\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M136.67 24.8339H139.862V8.229H136.67V24.8339ZM48.0383 22.0884H45.6552V11.7213H48.0383C50.9459 11.7213 52.5857 13.5442 52.5857 16.861C52.5857 20.2874 50.9897 22.0884 48.0383 22.0884ZM55.9524 16.8501C55.9524 11.8202 53.165 8.98677 48.4318 8.98677H42.3542V24.834H48.4318C53.165 24.834 55.9524 21.8797 55.9524 16.8501ZM65.6344 17.5421H60.442C60.5514 15.9937 61.6225 14.9285 63.0765 14.9285C64.5521 14.9285 65.5796 15.9607 65.6344 17.5421ZM63.164 25.043C66.0934 25.043 68.2689 23.4833 68.6187 21.1442H65.6781C65.3721 22.0776 64.4209 22.6488 63.2185 22.6488C61.5351 22.6488 60.4092 21.4736 60.4092 19.7275V19.5298H68.7169V18.5416C68.7169 14.8624 66.509 12.5343 63.0436 12.5343C59.513 12.5343 57.261 14.9943 57.261 18.8379C57.261 22.6816 59.502 25.043 63.164 25.043ZM78.2023 17.2017C78.0274 15.9497 77.1529 15.0601 75.7647 15.0601C74.125 15.0601 73.0866 16.4658 73.0866 18.7831C73.0866 21.1442 74.125 22.5061 75.7756 22.5061C77.12 22.5061 78.0055 21.7703 78.2132 20.4414H81.1865C81.0007 23.2528 78.9019 25.043 75.7427 25.043C72.1464 25.043 69.8508 22.6708 69.8508 18.7831C69.8508 14.9505 72.1464 12.5343 75.7208 12.5343C78.9564 12.5343 81.0226 14.5112 81.1756 17.2017H78.2023ZM90.5727 17.5421H85.3803C85.4897 15.9937 86.5608 14.9285 88.0148 14.9285C89.4904 14.9285 90.5179 15.9607 90.5727 17.5421ZM88.1023 25.043C91.0317 25.043 93.2072 23.4833 93.557 21.1442H90.6164C90.3105 22.0776 89.3592 22.6488 88.1569 22.6488C86.4734 22.6488 85.3475 21.4736 85.3475 19.7275V19.5298H93.6552V18.5416C93.6552 14.8624 91.4473 12.5343 87.982 12.5343C84.4514 12.5343 82.1994 14.9943 82.1994 18.8379C82.1994 22.6816 84.4404 25.043 88.1023 25.043ZM95.2375 12.7429H98.3201V14.9062H98.3856C99.0743 13.3799 100.299 12.5671 102.146 12.5671C104.813 12.5671 106.322 14.2584 106.322 17.0809V24.8341H103.13V17.7507C103.13 16.1472 102.386 15.2359 100.878 15.2359C99.3476 15.2359 98.4295 16.334 98.4295 17.9374V24.8341H95.2375V12.7429ZM112.341 12.7425V10.052H109.149V12.7425H107.521V15.1697H109.149V21.5722C109.149 23.9334 110.243 24.8778 113.03 24.8778C113.675 24.8778 114.243 24.8119 114.571 24.7461V22.374C114.375 22.4068 114.057 22.4288 113.773 22.4288C112.801 22.4288 112.341 21.9785 112.341 21.0451V15.1697H114.571V12.7425H112.341ZM116.285 12.7429H119.368V14.9063H119.433C119.838 13.4127 120.876 12.6002 122.297 12.6002C122.669 12.6002 122.997 12.644 123.226 12.7209V15.5543C122.953 15.4444 122.516 15.3676 122.046 15.3676C120.428 15.3676 119.477 16.378 119.477 18.0691V24.8341H116.285V12.7429ZM131.437 19.5077V20.3973C131.437 21.7152 130.257 22.6378 128.781 22.6378C127.622 22.6378 126.868 22.0776 126.868 21.188C126.868 20.2985 127.578 19.7713 128.912 19.6835L131.437 19.5077ZM128.431 17.7288C125.359 17.9156 123.687 19.1566 123.687 21.353C123.687 23.5166 125.425 24.9771 127.742 24.9771C129.284 24.9771 130.77 24.2302 131.426 22.9674H131.492V24.8342H134.574V16.5429C134.574 14.1267 132.552 12.5343 129.459 12.5343C126.452 12.5343 124.376 14.1267 124.288 16.433H127.207C127.36 15.5544 128.168 14.9394 129.327 14.9394C130.639 14.9394 131.437 15.5765 131.437 16.7406V17.5421L128.431 17.7288ZM149.227 19.5077V20.3973C149.227 21.7152 148.047 22.6378 146.571 22.6378C145.412 22.6378 144.658 22.0776 144.658 21.188C144.658 20.2985 145.368 19.7713 146.702 19.6835L149.227 19.5077ZM146.22 17.7288C143.149 17.9156 141.477 19.1566 141.477 21.353C141.477 23.5166 143.215 24.9771 145.532 24.9771C147.073 24.9771 148.56 24.2302 149.216 22.9674H149.281V24.8342H152.364V16.5429C152.364 14.1267 150.342 12.5343 147.248 12.5343C144.242 12.5343 142.165 14.1267 142.078 16.433H144.996C145.149 15.5544 145.958 14.9394 147.117 14.9394C148.429 14.9394 149.227 15.5765 149.227 16.7406V17.5421L146.22 17.7288ZM154.372 12.7429H157.455V14.9062H157.521C158.209 13.3799 159.433 12.5671 161.281 12.5671C163.948 12.5671 165.456 14.2584 165.456 17.0809V24.8341H162.265V17.7507C162.265 16.1472 161.521 15.2359 160.013 15.2359C158.482 15.2359 157.564 16.334 157.564 17.9374V24.8341H154.372V12.7429ZM173.108 22.385C171.447 22.385 170.386 21.0013 170.386 18.7829C170.386 16.5864 171.447 15.1917 173.108 15.1917C174.759 15.1917 175.83 16.6085 175.83 18.7939C175.83 20.9793 174.759 22.385 173.108 22.385ZM172.059 12.5998C169.063 12.5998 167.118 14.983 167.118 18.7718C167.118 22.5827 169.052 24.9766 172.048 24.9766C173.819 24.9766 175.207 24.098 175.797 22.7694H175.852V24.8339H179V8.229H175.808V14.8073H175.742C175.141 13.4676 173.797 12.5998 172.059 12.5998Z\"\n fill=\"white\"\n />\n <path\n transform=\"translate(0, 1)\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.863 33.737C26.1761 33.737 33.7259 26.1847 33.7259 16.8685C33.7259 7.55229 26.1761 0 16.863 0C7.5498 0 0 7.55229 0 16.8685C0 26.1847 7.5498 33.737 16.863 33.737Z\"\n fill=\"#16141A\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.863 33.737C26.1761 33.737 33.7259 26.1847 33.7259 16.8685C33.7259 7.55229 26.1761 0 16.863 0C7.5498 0 0 7.55229 0 16.8685C0 26.1847 7.5498 33.737 16.863 33.737Z\"\n fill=\"url(#paint0_linear)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.9473 10.9645V23.6159H22.4865L11.9473 10.9645Z\"\n fill=\"url(#paint1_linear)\"\n />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M1.40771 23.6161H11.947V10.9647L1.40771 23.6161Z\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.74487 30.3634C9.56098 32.4804 13.0685 33.7371 16.8626 33.7371C20.6568 33.7371 24.1643 32.4804 26.9804 30.3634H6.74487Z\"\n fill=\"#FF2D55\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.37207 26.9896C4.33326 28.2632 5.4715 29.4018 6.74466 30.3633H26.9802C28.2533 29.4018 29.3916 28.2632 30.3528 26.9896H3.37207Z\"\n fill=\"#FC9965\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.6212 23.6161H1.40771C1.93046 24.8222 2.59655 25.9524 3.37224 26.9898H22.6297V23.6161H22.6212Z\"\n fill=\"#FFBC5B\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.6213 17.7117V26.9893H30.353L22.6213 17.7117Z\"\n fill=\"url(#paint2_linear)\"\n />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M14.8984 26.99H22.6216V17.7123L14.8984 26.99Z\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.6215 15.1816C24.9498 15.1816 26.8372 13.2935 26.8372 10.9644C26.8372 8.63539 24.9498 6.74731 22.6215 6.74731C20.2932 6.74731 18.4058 8.63539 18.4058 10.9644C18.4058 13.2935 20.2932 15.1816 22.6215 15.1816Z\"\n fill=\"#FFC95B\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.947 8.43441C13.1111 8.43441 14.0548 7.49037 14.0548 6.32585C14.0548 5.16132 13.1111 4.21729 11.947 4.21729C10.7828 4.21729 9.83911 5.16132 9.83911 6.32585C9.83911 7.49037 10.7828 8.43441 11.947 8.43441Z\"\n fill=\"#FFC95B\"\n />\n </g>\n </svg>\n)\n","import React from 'react'\n\nexport function Discord(props: React.SVGAttributes<SVGElement>) {\n return (\n <svg {...props} width=\"22\" height=\"22\" viewBox=\"0 0 22 22\">\n <path\n fill=\"currentColor\"\n d=\"M5.0677998,1.36000287e-05 C4.8822277,0.000761200029 3.34704426,0.0443327002 1.72750578,1.24773952 C1.72750578,1.24773952 0,4.35487581 0,8.18178463 C0,8.18178463 1.00769549,9.90927375 3.65893934,9.99324995 C3.65893934,9.99324995 4.10281088,9.46539815 4.46270818,9.00952847 C2.93914264,8.55365809 2.3633099,7.60596477 2.3633099,7.60596477 C2.3633099,7.60596477 2.4833011,7.68992641 2.69923962,7.80989241 C2.71123608,7.80989241 2.7231967,7.82187053 2.7471899,7.83386741 C2.78317956,7.85786019 2.8191807,7.86985875 2.8551705,7.89385167 C3.15508494,8.06180379 3.45498972,8.19378319 3.7309111,8.30175301 C4.22277072,8.50569507 4.8106212,8.68562615 5.49442614,8.81758875 C6.39416918,8.98554115 7.44984898,9.04551491 8.60152062,8.82957625 C9.16535998,8.72160713 9.74123178,8.56566883 10.3410607,8.31374051 C10.7609405,8.15778485 11.2287902,7.92987255 11.7206494,7.60596477 C11.7206494,7.60596477 11.120831,8.57768909 9.54927932,9.02156259 C9.9091769,9.46543553 10.3410607,9.98126231 10.3410607,9.98126231 C12.9923042,9.89728709 14,8.16978775 14,8.18178463 C14,4.35487581 12.2724939,1.24773952 12.2724939,1.24773952 C10.5569839,-0.0358942998 8.91342886,0.000106700029 8.91342886,0.000106700029 L8.74551048,0.192046422 C10.7849293,0.803871902 11.7326367,1.70363743 11.7326367,1.70363743 C10.4849923,1.031829 9.26136876,0.695901242 8.121694,0.563938922 C7.25794034,0.467966262 6.43014414,0.491987742 5.69835336,0.587960262 C5.62637418,0.587960262 5.5664056,0.599939082 5.49442614,0.611935262 C5.07454598,0.659921942 4.0548452,0.803868682 2.77121124,1.36770776 C2.32733802,1.55965289 2.0633893,1.70363743 2.0633893,1.70363743 C2.0633893,1.70363743 3.04710882,0.755875562 5.20649276,0.144049942 L5.08652452,0.000106700029 C5.08652452,0.000106700029 5.08017132,-3.60999713e-05 5.0677998,8.70002873e-06 L5.0677998,1.36000287e-05 Z M4.76262892,4.42685219 C5.44643372,4.42685219 5.99828264,5.01466585 5.98628674,5.74645663 C5.98628674,6.47824839 5.44643372,7.06610783 4.76262892,7.06610783 C4.09082044,7.06610783 3.5389711,6.47824839 3.5389711,5.74645663 C3.5389711,5.01466585 4.07882384,4.42685219 4.76262892,4.42685219 Z M9.14137784,4.42685219 C9.81318618,4.42685219 10.3650357,5.01466585 10.3650357,5.74645663 C10.3650357,6.47824839 9.8251832,7.06610783 9.14137784,7.06610783 C8.46956964,7.06610783 7.91772002,6.47824839 7.91772002,5.74645663 C7.91772002,5.01466585 8.45757276,4.42685219 9.14137784,4.42685219 Z\"\n transform=\"translate(4 6)\"\n />\n </svg>\n )\n}\n","import React from 'react'\nimport { ProviderType } from 'decentraland-connect'\nimport MetamaskLogo from '../../../images/login/metamask.svg'\nimport DapperLogo from '../../../images/login/dapper.png'\nimport SamsungBlockchainWalletLogo from '../../../images/login/samsung-blockchain-wallet.svg'\nimport FortmaticLogo from '../../../images/login/fortmatic.svg'\nimport WalletConnect from '../../../images/login/wallet-connect.svg'\nimport './WalletButton.css'\n\nexport enum WalletButtonLogo {\n METAMASK = 'Metamask',\n DAPPER = 'Dapper',\n FORTMATIC = 'Fortmatic',\n WALLET_CONNECT = 'WalletConnect',\n SAMSUNG_BLOCKCHAIN_WALLET = 'SamsungBlockChainWallet'\n}\n\nconst options = {\n title: {\n [WalletButtonLogo.METAMASK]: 'Metamask',\n [WalletButtonLogo.DAPPER]: 'Dapper',\n [WalletButtonLogo.FORTMATIC]: 'Fortmatic',\n [WalletButtonLogo.WALLET_CONNECT]: 'Wallet Connect',\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: 'Samsung Wallet'\n },\n\n img: {\n [WalletButtonLogo.METAMASK]: MetamaskLogo,\n [WalletButtonLogo.DAPPER]: DapperLogo,\n [WalletButtonLogo.FORTMATIC]: FortmaticLogo,\n [WalletButtonLogo.WALLET_CONNECT]: WalletConnect,\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: SamsungBlockchainWalletLogo\n },\n\n target: {\n [WalletButtonLogo.METAMASK]: 'https://metamask.io/',\n [WalletButtonLogo.DAPPER]: 'https://www.meetdapper.com/',\n [WalletButtonLogo.FORTMATIC]: 'https://fortmatic.com/',\n [WalletButtonLogo.WALLET_CONNECT]: 'https://walletconnect.org/',\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: 'https://www.samsung.com/global/galaxy/apps/samsung-blockchain/'\n },\n\n provider: {\n [WalletButtonLogo.METAMASK]: ProviderType.INJECTED,\n [WalletButtonLogo.DAPPER]: ProviderType.INJECTED,\n [WalletButtonLogo.FORTMATIC]: ProviderType.FORTMATIC,\n [WalletButtonLogo.WALLET_CONNECT]: ProviderType.WALLET_CONNECT,\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: ProviderType.INJECTED\n },\n\n description: {\n [WalletButtonLogo.METAMASK]: 'Using your browser account',\n [WalletButtonLogo.DAPPER]: 'Using your browser account',\n [WalletButtonLogo.FORTMATIC]: 'Using your email account',\n [WalletButtonLogo.WALLET_CONNECT]: 'Using your mobile account',\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: 'Using your mobile account'\n }\n}\n\nexport interface WalletButtonProps {\n type: WalletButtonLogo\n active?: boolean\n onClick: (providerType: ProviderType) => void\n}\n\nexport const WalletButton: React.FC<WalletButtonProps> = ({ type, active, onClick }) => {\n function handleClick(event: React.MouseEvent<HTMLAnchorElement>) {\n if (active !== false) {\n event.preventDefault()\n if (onClick) {\n onClick(options.provider[type])\n }\n }\n }\n\n return (\n <a\n className={`walletButton ${active ? 'active' : 'inactive'}`}\n href={options.target[type]}\n onClick={handleClick}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div className=\"walletImage\">\n <img alt={type} src={options.img[type]} className={type} />\n </div>\n <div className=\"walletTitle\">\n <h3>{options.title[type]}</h3>\n </div>\n <div className=\"walletDescription\">\n <p>{options.description[type]}</p>\n </div>\n </a>\n )\n}\n","import React from 'react'\nimport { Logo } from './Logo'\nimport { Isologotipo } from './Isologotipo'\nimport { Discord } from './Icon.tsx/Discord'\nimport './Navbar.css'\n\nexport type NavbarProps = {\n full?: boolean\n onClickLogo?: (event: React.MouseEvent<SVGElement>) => void\n}\n\nexport const Navbar = (props: NavbarProps) => (\n <nav className=\"nav-bar\">\n {props.full ? (\n <>\n <a href=\"https://decentraland.org/\" target=\"_blank\" rel=\"noopener noreferrer\">\n <Logo onClick={props.onClickLogo} />\n </a>\n <div className=\"nav-bar-content\">\n <div className=\"nav-text\">\n <span>Need support?</span>\n </div>\n <a className=\"nav-discord\" href=\"https://discord.gg/k5ydeZp\" target=\"about:blank\">\n <Discord />\n <div>Join our discord</div>\n </a>\n </div>\n </>\n ) : (\n <Isologotipo onClick={props.onClickLogo} />\n )}\n </nav>\n)\n","export default __webpack_public_path__ + \"static/media/avatars.183d79bf.png\";","export default __webpack_public_path__ + \"static/media/avatars@2x.fdd7a431.png\";","export default __webpack_public_path__ + \"static/media/avatars@3x.71ab6dc8.png\";","import React from 'react'\nimport './Footer.css'\nimport avatars1x from '../../images/login/avatars.png'\nimport avatars2x from '../../images/login/avatars@2x.png'\nimport avatars3x from '../../images/login/avatars@3x.png'\n\nexport const Avatars: React.FC = () => (\n <div className=\"eth-avatars\">\n <img\n src={avatars1x}\n srcSet={`${avatars1x} 1x, ${avatars2x} 2x, ${avatars3x} 3x`}\n alt=\"Avatars\"\n width=\"480\"\n height=\"600\"\n />\n </div>\n)\n","import React from 'react'\nimport { Avatars } from './Avatars'\nimport './Modal.css'\n\nexport interface ModalProps {\n withAvatars?: boolean\n withOverlay?: boolean\n withFlatBackground?: boolean\n className?: string\n onClose?: () => void\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n onClose,\n withAvatars,\n withFlatBackground,\n withOverlay,\n className,\n children\n}) => {\n let containerClassName = 'popup-container'\n\n if (withAvatars) {\n containerClassName += ' with-avatars'\n }\n\n if (withOverlay) {\n containerClassName += ' with-overlay'\n }\n\n if (withFlatBackground) {\n containerClassName += ' with-flat-background'\n }\n\n let popupClassName = 'popup'\n\n if (className) {\n popupClassName += ' ' + className\n }\n\n function handleClose() {\n if (onClose) {\n onClose()\n }\n }\n\n return (\n <div className={containerClassName} onClick={handleClose}>\n <div className={popupClassName} onClick={(e) => e.stopPropagation()}>\n {onClose && <div className=\"close\" onClick={handleClose} />}\n {children}\n </div>\n {withAvatars && <Avatars />}\n </div>\n )\n}\n","export default __webpack_public_path__ + \"static/media/metamask.bb710fa5.svg\";","export default __webpack_public_path__ + \"static/media/dapper.0e5fcabf.png\";","export default __webpack_public_path__ + \"static/media/samsung-blockchain-wallet.3f042de1.svg\";","export default __webpack_public_path__ + \"static/media/fortmatic.17a8d20a.svg\";","export default __webpack_public_path__ + \"static/media/wallet-connect.f9cb81fb.svg\";","import React from 'react'\nimport './Spinner.css'\n\nexport const Spinner: React.FC = () => (\n <div className=\"loader\" style={{ display: 'block' }}>\n {' '}\n </div>\n)\n","import React, { useMemo } from 'react'\nimport { ProviderType } from 'decentraland-connect'\nimport { isCucumberProvider, isDapperProvider } from 'decentraland-dapps/dist/lib/eth'\nimport { Modal } from '../../common/Modal'\nimport { WalletButton, WalletButtonLogo } from './WalletButton'\nimport { Spinner } from '../../common/Spinner'\nimport './WalletSelector.css'\n\nexport interface WalletSelectorProps {\n open: boolean\n loading: boolean\n availableProviders: ProviderType[]\n onLogin: (provider: ProviderType | null) => void\n onCancel: () => void\n}\n\nexport const WalletSelector: React.FC<WalletSelectorProps> = ({\n open,\n loading,\n availableProviders,\n onLogin,\n onCancel\n}) => {\n const hasWallet = (availableProviders || []).includes(ProviderType.INJECTED)\n function handleLogin(provider: ProviderType | null) {\n if (provider === ProviderType.INJECTED && !hasWallet) {\n return\n }\n\n if (onLogin) {\n onLogin(provider)\n }\n }\n\n function handleGuestLogin(e: React.MouseEvent<any>) {\n e.preventDefault()\n handleLogin(null)\n }\n\n const wallets = useMemo(() => {\n const result: WalletButtonLogo[] = []\n if (hasWallet) {\n if (isCucumberProvider()) {\n result.push(WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET)\n } else if (isDapperProvider()) {\n result.push(WalletButtonLogo.DAPPER)\n }\n }\n\n if (result.length === 0) {\n result.push(WalletButtonLogo.METAMASK)\n }\n\n if ((availableProviders || []).includes(ProviderType.FORTMATIC)) {\n result.push(WalletButtonLogo.FORTMATIC)\n }\n\n if ((availableProviders || []).includes(ProviderType.WALLET_CONNECT)) {\n result.push(WalletButtonLogo.WALLET_CONNECT)\n }\n\n return result\n }, [availableProviders, hasWallet])\n\n function isActive(wallet: WalletButtonLogo) {\n switch (wallet) {\n case WalletButtonLogo.METAMASK:\n case WalletButtonLogo.DAPPER:\n case WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET:\n return hasWallet\n default:\n return true\n }\n }\n\n return open ? (\n <Modal className=\"walletSelectorPopup\" onClose={onCancel} withFlatBackground withOverlay>\n <div className=\"walletSelector\">\n <h2 className=\"walletSelectorTitle\">Sign In or Create an Account</h2>\n {loading && (\n <div className=\"walletButtonContainer\">\n <Spinner />\n </div>\n )}\n {!loading && (\n <div className=\"walletButtonContainer\">\n {wallets.map((wallet) => (\n <WalletButton key={wallet} type={wallet} active={isActive(wallet)} onClick={handleLogin} />\n ))}\n </div>\n )}\n <p className=\"supportedWallets\">Trezor and smart contract wallets like Dapper, Argent or Gnosis safe, do not work with Polygon. Read more about the Trezor support status\n <a\n href=\"https://github.com/trezor/trezor-firmware/pull/1568\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n here\n </a>\n </p>\n </div>\n {!loading && (\n <a className=\"guestSelector\" href=\"#guest\" onClick={handleGuestLogin}>\n Play as Guest\n </a>\n )}\n </Modal>\n ) : null\n}\n","import React from 'react'\n\nexport const MainIsologotipo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n width=\"266\"\n height=\"51\"\n viewBox=\"0 0 266 51\"\n {...props}\n className={'dcl-main-isologotipo ' + (props.className || '')}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g filter=\"url(#filter0_d)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M202.864 37.113H207.594V12.5037H202.864V37.113ZM71.5014 33.0439H67.9696V17.6793H71.5014C75.8105 17.6793 78.2409 20.381 78.2409 25.2966C78.2409 30.3748 75.8755 33.0439 71.5014 33.0439ZM83.2329 25.2806C83.2329 17.8261 79.1019 13.6268 72.087 13.6268H63.0797V37.1133H72.087C79.1019 37.1133 83.2329 32.7348 83.2329 25.2806ZM97.5838 26.3065H89.8884C90.0505 24.0117 91.6379 22.4329 93.7928 22.4329C95.9798 22.4329 97.5025 23.9627 97.5838 26.3065ZM93.9203 37.423C98.2619 37.423 101.486 35.1115 102.005 31.6449H97.6464C97.1929 33.0282 95.7832 33.8747 94.0012 33.8747C91.5062 33.8747 89.8376 32.1331 89.8376 29.5452V29.2522H102.15V27.7876C102.15 22.3348 98.8778 18.8845 93.742 18.8845C88.5094 18.8845 85.1719 22.5303 85.1719 28.2268C85.1719 33.9233 88.4932 37.423 93.9203 37.423ZM116.208 25.8017C115.948 23.9461 114.652 22.6277 112.595 22.6277C110.165 22.6277 108.626 24.7111 108.626 28.1454C108.626 31.6447 110.165 33.6631 112.611 33.6631C114.604 33.6631 115.916 32.5725 116.224 30.6031H120.63C120.355 34.7697 117.244 37.4229 112.562 37.4229C107.232 37.4229 103.83 33.9072 103.83 28.1454C103.83 22.4652 107.232 18.8843 112.53 18.8843C117.325 18.8843 120.387 21.8142 120.614 25.8017H116.208ZM134.542 26.3061H126.846C127.008 24.0113 128.596 22.4325 130.751 22.4325C132.938 22.4325 134.461 23.9624 134.542 26.3061ZM130.88 37.4229C135.222 37.4229 138.446 35.1114 138.964 31.6447H134.606C134.153 33.0281 132.743 33.8746 130.961 33.8746C128.466 33.8746 126.798 32.1329 126.798 29.5451V29.252H139.11V27.7875C139.11 22.3347 135.838 18.8843 130.702 18.8843C125.469 18.8843 122.132 22.5302 122.132 28.2267C122.132 33.9232 125.453 37.4229 130.88 37.4229ZM141.453 19.1934H146.021V22.3996H146.119C147.139 20.1375 148.954 18.933 151.692 18.933C155.644 18.933 157.88 21.4396 157.88 25.6226V37.1132H153.149V26.6153C153.149 24.2389 152.048 22.8882 149.812 22.8882C147.544 22.8882 146.184 24.5156 146.184 26.892V37.1132H141.453V19.1934ZM166.804 19.193V15.2055H162.073V19.193H159.66V22.7902H162.073V32.2791C162.073 35.7784 163.694 37.178 167.825 37.178C168.781 37.178 169.623 37.0805 170.109 36.9829V33.4673C169.818 33.5159 169.348 33.5485 168.927 33.5485C167.485 33.5485 166.804 32.8812 166.804 31.4978V22.7902H170.109V19.193H166.804ZM172.645 19.1933H177.214V22.3996H177.311C177.91 20.186 179.449 18.9819 181.555 18.9819C182.106 18.9819 182.592 19.0468 182.933 19.1607V23.36C182.527 23.1971 181.879 23.0832 181.183 23.0832C178.785 23.0832 177.376 24.5808 177.376 27.0871V37.1131H172.645V19.1933ZM195.105 29.2192V30.5376C195.105 32.4907 193.355 33.8581 191.168 33.8581C189.451 33.8581 188.333 33.0279 188.333 31.7095C188.333 30.3911 189.386 29.6098 191.363 29.4796L195.105 29.2192ZM190.646 26.583C186.094 26.8597 183.615 28.6989 183.615 31.9541C183.615 35.1607 186.191 37.3253 189.626 37.3253C191.91 37.3253 194.113 36.2184 195.085 34.3468H195.182V37.1135H199.751V24.8253C199.751 21.2444 196.754 18.8843 192.169 18.8843C187.714 18.8843 184.636 21.2444 184.506 24.6625H188.832C189.059 23.3604 190.257 22.4489 191.975 22.4489C193.919 22.4489 195.101 23.393 195.101 25.1184V26.3062L190.646 26.583ZM221.474 29.2192V30.5376C221.474 32.4907 219.724 33.8581 217.537 33.8581C215.82 33.8581 214.702 33.0279 214.702 31.7095C214.702 30.3911 215.755 29.6098 217.732 29.4796L221.474 29.2192ZM217.015 26.583C212.463 26.8597 209.985 28.6989 209.985 31.9541C209.985 35.1607 212.56 37.3253 215.995 37.3253C218.279 37.3253 220.483 36.2184 221.454 34.3468H221.552V37.1135H226.12V24.8253C226.12 21.2444 223.123 18.8843 218.538 18.8843C214.083 18.8843 211.005 21.2444 210.876 24.6625H215.201C215.428 23.3604 216.627 22.4489 218.344 22.4489C220.288 22.4489 221.471 23.393 221.471 25.1184V26.3062L217.015 26.583ZM229.094 19.1934H233.663V22.3996H233.76C234.781 20.1375 236.595 18.933 239.333 18.933C243.286 18.933 245.522 21.4396 245.522 25.6226V37.1132H240.791V26.6153C240.791 24.2389 239.689 22.8882 237.454 22.8882C235.186 22.8882 233.825 24.5156 233.825 26.892V37.1132H229.094V19.1934ZM256.865 33.4837C254.402 33.4837 252.831 31.433 252.831 28.1452C252.831 24.89 254.402 22.823 256.865 22.823C259.311 22.823 260.899 24.9226 260.899 28.1615C260.899 31.4004 259.311 33.4837 256.865 33.4837ZM255.309 18.9814C250.87 18.9814 247.987 22.5134 247.987 28.1286C247.987 33.7766 250.854 37.3245 255.293 37.3245C257.918 37.3245 259.975 36.0224 260.85 34.0533H260.931V37.113H265.597V12.5037H260.866V22.253H260.769C259.878 20.2675 257.885 18.9814 255.309 18.9814Z\"\n fill=\"white\"\n />\n </g>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M25.3 50.308C39.1025 50.308 50.2917 39.1152 50.2917 25.3081C50.2917 11.501 39.1025 0.308105 25.3 0.308105C11.4974 0.308105 0.308228 11.501 0.308228 25.3081C0.308228 39.1152 11.4974 50.308 25.3 50.308Z\"\n fill=\"url(#paint0_linear)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.0172 16.5577V35.3077H33.637L18.0172 16.5577Z\"\n fill=\"url(#paint1_linear)\"\n />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M2.39709 35.3078H18.0168V16.5579L2.39709 35.3078Z\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.3043 45.3081C14.4779 48.4456 19.6762 50.3081 25.2993 50.3081C30.9225 50.3081 36.1208 48.4456 40.2944 45.3081H10.3043Z\"\n fill=\"#FF2D55\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.30786 40.3077C6.73239 42.1952 8.41933 43.8827 10.3062 45.3077H40.2963C42.1831 43.8827 43.8701 42.1952 45.2946 40.3077H5.30786Z\"\n fill=\"#FC9965\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M33.8366 35.3082H2.39709C3.17184 37.0957 4.15901 38.7707 5.30862 40.3082H33.8491V35.3082H33.8366Z\"\n fill=\"#FFBC5B\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M33.8363 26.5577V40.3077H45.2951L33.8363 26.5577Z\"\n fill=\"url(#paint2_linear)\"\n />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M22.3887 40.3083H33.8348V26.5583L22.3887 40.3083Z\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M33.8324 22.808C37.283 22.808 40.0803 20.0098 40.0803 16.558C40.0803 13.1062 37.283 10.308 33.8324 10.308C30.3818 10.308 27.5845 13.1062 27.5845 16.558C27.5845 20.0098 30.3818 22.808 33.8324 22.808Z\"\n fill=\"#FFC95B\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.0161 12.8083C19.7414 12.8083 21.14 11.4092 21.14 9.68335C21.14 7.95746 19.7414 6.55835 18.0161 6.55835C16.2907 6.55835 14.8921 7.95746 14.8921 9.68335C14.8921 11.4092 16.2907 12.8083 18.0161 12.8083Z\"\n fill=\"#FFC95B\"\n />\n <defs>\n <filter\n id=\"filter0_d\"\n x=\"63.0797\"\n y=\"12.5037\"\n width=\"202.517\"\n height=\"25.8221\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy=\"0.902767\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"25.3\"\n y1=\"-10.0472\"\n x2=\"-10.0553\"\n y2=\"25.2965\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FF2D55\" />\n <stop offset=\"1\" stopColor=\"#FFBC5B\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear\"\n x1=\"18.012\"\n y1=\"16.5578\"\n x2=\"18.012\"\n y2=\"35.3077\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#A524B3\" />\n <stop offset=\"1\" stopColor=\"#FF2D55\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear\"\n x1=\"33.8325\"\n y1=\"26.5577\"\n x2=\"33.8325\"\n y2=\"40.3077\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#A524B3\" />\n <stop offset=\"1\" stopColor=\"#FF2D55\" />\n </linearGradient>\n </defs>\n </svg>\n)\n","import React from 'react'\nimport { MainIsologotipo } from '../common/MainIsologotipo'\n\nexport const LoginHeader: React.FC = () => (\n <div className=\"eth-login-description\">\n <MainIsologotipo />\n <p>Immerse yourself into the first virtual world fully owned by its users.</p>\n </div>\n)\n","import React, { useState } from 'react'\nimport { ProviderType } from 'decentraland-connect/dist/types'\nimport { WalletSelector } from './wallet/WalletSelector'\nimport { LoginHeader } from './LoginHeader'\nimport { Spinner } from '../common/Spinner'\nimport { Avatars } from '../common/Avatars'\nimport { track } from '../../utils/tracking'\nimport './EthLogin.css'\n\nexport interface EthLoginProps {\n availableProviders: ProviderType[]\n onLogin: (provider: ProviderType | null) => void\n signing: boolean\n}\n\nexport const EthLogin: React.FC<EthLoginProps> = (props) => {\n const [showWalletSelector, setShowWalletSelector] = useState(false)\n\n function handlePlay() {\n track('open_login_popup')\n setShowWalletSelector(true)\n }\n\n function handleLogin(provider: ProviderType | null) {\n track('click_login_button', { provider_type: provider || 'guest' })\n if (props.onLogin) {\n props.onLogin(provider)\n }\n }\n\n function handlePlayAsGuest() {\n handleLogin(null)\n }\n\n return (\n <div className=\"eth-login\">\n <LoginHeader />\n <Avatars />\n <div id=\"eth-login-confirmation-wrapper\">\n {props.signing ? (\n <Spinner />\n ) : (\n <React.Fragment>\n <button className=\"eth-login-confirm-button\" onClick={handlePlay}>\n Play\n </button>\n <button className=\"eth-login-guest-button\" onClick={handlePlayAsGuest}>\n Play as Guest\n </button>\n </React.Fragment>\n )}\n </div>\n <WalletSelector\n open={showWalletSelector}\n loading={props.signing}\n onLogin={handleLogin}\n availableProviders={props.availableProviders}\n onCancel={() => setShowWalletSelector(false)}\n />\n </div>\n )\n}\n","import React from 'react'\nimport './Container.css'\n\nexport const Container: React.FC<React.HTMLAttributes<HTMLDivElement>> = (props) => (\n <div {...props} className={'eth-container ' + (props.className || '')} />\n)\n\nexport const Content: React.FC<React.HTMLAttributes<HTMLDivElement>> = (props) => (\n <div {...props} className={'eth-content ' + (props.className || '')} />\n)\n","import React, { useState, useRef, useMemo } from 'react'\nimport './Accordion.css'\n\nexport interface AccordionProps {\n title?: React.ReactNode\n children?: React.ReactNode\n open?: boolean\n}\n\nexport function Accordion(props: AccordionProps) {\n const [open, setOpen] = useState(false)\n const ref = useRef<HTMLDivElement>(null)\n const height = useMemo(() => {\n if (!ref.current || !open) {\n return 0\n }\n\n return ref.current.offsetHeight + 50\n }, [open])\n\n let className = 'eth-accordion'\n if (open) {\n className += ' eth-accordion-open'\n }\n\n return (\n <div className={className}>\n <div className=\"eth-accordion-title\" onClick={() => setOpen(!open)}>\n {props.title}\n </div>\n <div className=\"eth-accordion-description\" style={{ height: `${height}px` }}>\n <div ref={ref}>{props.children}</div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { Accordion } from '../common/Accordion'\nimport { Container, Content } from '../common/Container'\nimport './BeginnersGuide.css'\n\nexport const BeginnersGuide: React.FC<React.HTMLAttributes<HTMLDivElement>> = (props) => (\n <div className=\"eth-beginners-guide\">\n <Container>\n <Content>\n <h2>Beginner's Guide</h2>\n <Accordion\n title={\n <h3>\n What do I need to <b>play</b>?\n </h3>\n }\n >\n <p>A PC or Mac running Chrome or Firefox</p>\n <ul>\n <li>\n <p>Can I play on a mobile device?</p>\n <p>For the moment we don’t support mobile devices. But please stay tuned!</p>\n </li>\n <li>\n <p>Can I log in from multiple computers?</p>\n <p>\n Yes, you can run Decentraland from multiple computers as long as you have your digital wallet installed\n on each machine.\n </p>\n </li>\n <li>\n <p>Can I use a different browser?</p>\n <p>\n While it may be technically possible to use another browser, we recommend Chrome or Firefox to ensure\n optimal performance.\n </p>\n </li>\n </ul>\n </Accordion>\n <Accordion\n title={\n <h3>\n What is a <b>Wallet</b> and why do I need one?\n </h3>\n }\n >\n <p>\n If you want to fully enjoy the Decentraland experience, we recommend you get yourself a digital wallet.\n Digital wallets work as your personal account, keeping all your digital assets (such as names, collectibles,\n LANDs) and in-world progress safe.\n </p>\n <p>\n If you choose to experience Decentraland Explorer without a wallet, the information will only be stored\n locally: you will be able to walk around, customize your Avatar and chat with others in-world, but you won’t\n have the chance to receive daily rewards, participate in events or log in with a different device using the\n same Guest ID and Avatar.\n </p>\n <p>\n If this is the first time you’re hearing about digital wallets, we recommend reading{' '}\n <a href=\"https://docs.decentraland.org/examples/get-a-wallet/\" target=\"_blank\" rel=\"noreferrer\">\n Get a Wallet – Beginners Guide\n </a>\n .\n </p>\n </Accordion>\n <Accordion\n title={\n <h3>\n What is <b>MANA</b>?\n </h3>\n }\n >\n <p>\n MANA is Decentraland’s fungible, ERC20 cryptocurrency token. MANA is burned, or spent, in exchange for LAND\n parcels. For a current summary of critical stats like total and circulating supply, please visit our MANA\n Token Information transparency dashboard. See the{' '}\n <a href=\"https://docs.decentraland.org/decentraland/glossary/\" target=\"_blank\" rel=\"noreferrer\">\n Glossary\n </a>\n for more information.\n </p>\n </Accordion>\n <Accordion\n title={\n <h3>\n What is <b>LAND</b>?\n </h3>\n }\n >\n <p>\n LAND is a non-fungible digital asset maintained in an Ethereum smart contract. LAND is divided into parcels\n that are referenced using unique x,y cartesian coordinates. Each LAND token includes a record of its\n coordinates, its owner, and a reference to a content description file or parcel manifest that describes and\n encodes the content the owner wishes to serve on his or her land.\n </p>\n </Accordion>\n <Accordion\n title={\n <h3>\n What is the <b>Marketplace</b>?\n </h3>\n }\n >\n <p>The Marketplace is the go-to place to trade and manage all your Decentraland on-chain assets.</p>\n <p>\n Access the Marketplace at{' '}\n <a href=\"https://market.decentraland.org\" target=\"_blank\" rel=\"noreferrer\">\n market.decentraland.org\n </a>\n .\n </p>\n <p>The Marketplace allows you to:</p>\n <ul>\n <li>\n <p>\n Sell parcels and Estates of LAND, wearables and unique names. Set your own price in MANA and an\n expiration date for the offer.\n </p>\n </li>\n <li>\n <p>Buy parcels and Estates, wearables and unique names that are for sale.</p>\n </li>\n <li>\n <p>Transfer your parcels and Estates to another user.</p>\n </li>\n <li>\n <p>\n Explore the world through a map to see who owns what, what wearables exist and what names are claimed.\n </p>\n </li>\n </ul>\n </Accordion>\n </Content>\n </Container>\n </div>\n)\n","import React from 'react'\n\nexport function Reddit(props: React.SVGAttributes<SVGElement>) {\n return (\n <svg {...props} width=\"22\" height=\"22\" viewBox=\"0 0 22 22\">\n <path\n fill=\"currentColor\"\n d=\"M14,6.63157895 C14,6.95987493 13.9345794,7.22251172 13.7383178,7.48514851 C13.6074766,7.7477853 13.411215,7.9447629 13.1495327,8.07608129 C13.2149533,8.33871808 13.2149533,8.53569567 13.2149533,8.79833246 C13.2149533,9.58624283 12.953271,10.3741532 12.364486,11.0307452 C11.8411215,11.6873372 11.0560748,12.2782699 10.1401869,12.6722251 C9.22429907,13.0661803 8.17757009,13.2631579 7,13.2631579 C5.88785047,13.2631579 4.8411215,13.0661803 3.92523364,12.6722251 C2.94392523,12.2782699 2.22429907,11.7529964 1.70093458,11.0307452 C1.17757009,10.3741532 0.85046729,9.58624283 0.85046729,8.79833246 C0.85046729,8.53569567 0.85046729,8.33871808 0.91588785,8.07608129 C0.654205607,7.9447629 0.457943925,7.7477853 0.261682243,7.48514851 C0.130841121,7.22251172 0,6.95987493 0,6.63157895 C0,6.23762376 0.130841121,5.84366858 0.457943925,5.51537259 C0.785046729,5.1870766 1.11214953,5.05575821 1.57009346,5.05575821 C2.02803738,5.05575821 2.35514019,5.1870766 2.68224299,5.51537259 C3.79439252,4.72746222 5.1682243,4.33350703 6.6728972,4.26784784 L7.58878505,0.196977592 C7.58878505,0.131318395 7.65420561,0.0656591975 7.71962617,0.0656591975 C7.78504673,0 7.85046729,0 7.91588785,0 L10.7943925,0.656591975 C10.8598131,0.459614382 11.0560748,0.328295987 11.1869159,0.196977592 C11.3831776,0.0656591975 11.5794393,0 11.7757009,0 C12.1028037,0 12.364486,0.131318395 12.6261682,0.328295987 C12.8224299,0.52527358 12.953271,0.853569567 12.953271,1.18186555 C12.953271,1.51016154 12.8224299,1.77279833 12.6261682,2.03543512 C12.4299065,2.29807191 12.1028037,2.36373111 11.7757009,2.36373111 C11.4485981,2.36373111 11.1869159,2.23241271 10.9252336,2.03543512 C10.728972,1.83845753 10.5981308,1.51016154 10.5981308,1.18186555 L7.98130841,0.590932777 L7.19626168,4.26784784 C8.76635514,4.33350703 10.0747664,4.72746222 11.2523364,5.51537259 C11.5794393,5.1870766 11.9065421,5.05575821 12.364486,5.05575821 C12.8224299,5.05575821 13.1495327,5.1870766 13.4766355,5.51537259 C13.8691589,5.84366858 14,6.23762376 14,6.63157895 Z M3.3364486,8.20739969 C3.3364486,8.53569567 3.46728972,8.79833246 3.6635514,9.06096925 C3.85981308,9.32360604 4.18691589,9.38926524 4.51401869,9.38926524 C4.8411215,9.38926524 5.10280374,9.25794685 5.36448598,9.06096925 C5.56074766,8.86399166 5.69158879,8.53569567 5.69158879,8.20739969 C5.69158879,7.8791037 5.56074766,7.61646691 5.36448598,7.35383012 C5.1682243,7.15685253 4.8411215,7.02553413 4.51401869,7.02553413 C4.18691589,7.02553413 3.92523364,7.15685253 3.72897196,7.35383012 C3.53271028,7.55080771 3.3364486,7.8791037 3.3364486,8.20739969 Z M9.61682243,10.965086 C9.68224299,10.8994268 9.68224299,10.8337676 9.68224299,10.7681084 C9.68224299,10.7024492 9.68224299,10.63679 9.61682243,10.5711308 C9.55140187,10.5054716 9.48598131,10.5054716 9.42056075,10.5054716 C9.35514019,10.5054716 9.28971963,10.5054716 9.22429907,10.5711308 C9.02803738,10.7681084 8.70093458,10.965086 8.30841121,11.0307452 C7.91588785,11.1620636 7.45794393,11.1620636 7.06542056,11.1620636 C6.6728972,11.1620636 6.21495327,11.0964044 5.82242991,11.0307452 C5.42990654,10.8994268 5.10280374,10.7681084 4.90654206,10.5711308 C4.8411215,10.5054716 4.77570093,10.5054716 4.71028037,10.5054716 C4.64485981,10.5054716 4.57943925,10.5054716 4.51401869,10.5711308 C4.44859813,10.63679 4.44859813,10.7024492 4.44859813,10.7681084 C4.44859813,10.8337676 4.44859813,10.8994268 4.51401869,10.965086 C4.71028037,11.1620636 5.03738318,11.3590412 5.42990654,11.4903596 C5.82242991,11.621678 6.14953271,11.6873372 6.41121495,11.7529964 C6.6728972,11.7529964 6.86915888,11.8186555 7.13084112,11.8186555 C7.39252336,11.8186555 7.58878505,11.8186555 7.85046729,11.7529964 C8.11214953,11.7529964 8.43925234,11.621678 8.8317757,11.4903596 C9.09345794,11.3590412 9.42056075,11.2277228 9.61682243,10.965086 Z M9.61682243,9.38926524 C9.94392523,9.38926524 10.2056075,9.25794685 10.4672897,9.06096925 C10.728972,8.86399166 10.7943925,8.53569567 10.7943925,8.20739969 C10.7943925,7.8791037 10.6635514,7.61646691 10.4672897,7.41948932 C10.271028,7.22251172 9.94392523,7.09119333 9.68224299,7.09119333 C9.35514019,7.09119333 9.09345794,7.22251172 8.8317757,7.41948932 C8.63551402,7.61646691 8.5046729,7.9447629 8.5046729,8.27305888 C8.5046729,8.60135487 8.63551402,8.86399166 8.8317757,9.12662845 C9.02803738,9.25794685 9.28971963,9.38926524 9.61682243,9.38926524 Z\"\n transform=\"translate(4 4)\"\n />\n </svg>\n )\n}\n","import React from 'react'\n\nexport function Github(props: React.SVGAttributes<SVGElement>) {\n return (\n <svg {...props} width=\"22\" height=\"22\" viewBox=\"0 0 22 22\">\n <path\n fill=\"currentColor\"\n d=\"M7.88857838,9.78302833 C7.88857838,9.92796208 7.88857838,10.0728958 7.88857838,10.2902965 C7.88857838,11.159899 7.88857838,11.9570346 7.88857838,12.8266371 C7.88857838,12.9715709 7.88857838,13.0440378 7.73831975,12.9715709 C6.6865093,12.9715709 5.63469884,12.9715709 4.58288839,12.9715709 C4.43262976,12.9715709 4.43262976,12.899104 4.43262976,12.8266371 C4.43262976,12.3918359 4.43262976,11.8845677 4.43262976,11.4497665 C4.43262976,11.3772996 4.50775908,11.3048327 4.35750044,11.3048327 C4.35750044,11.3048327 4.28237112,11.3048327 4.28237112,11.3048327 C4.2072418,11.3048327 4.2072418,11.3048327 4.13211249,11.3048327 C3.68133658,11.3772996 3.30568999,11.3772996 2.85491408,11.3048327 C2.1036209,11.0874321 1.57771568,10.7250977 1.2771984,10.000429 C1.05181045,9.5656277 0.751293179,9.13082644 0.450775908,8.76849206 C0.37564659,8.6235583 0.150258636,8.6235583 0.0751293179,8.47862455 C0,8.40615767 0,8.40615767 0,8.3336908 C0,8.26122392 0.0751293179,8.26122392 0.150258636,8.26122392 C0.826422497,8.18875704 1.35232772,8.55109143 1.65284499,9.05835956 C1.95336227,9.5656277 2.40413817,9.92796208 2.9300434,10.0728958 C3.38081931,10.1453627 3.7564659,10.1453627 4.2072418,10.000429 C4.28237112,10.000429 4.35750044,9.92796208 4.35750044,9.78302833 C4.35750044,9.34822707 4.50775908,8.98589269 4.80827635,8.6235583 C4.65801771,8.6235583 4.58288839,8.55109143 4.50775908,8.55109143 C3.7564659,8.47862455 3.08030204,8.18875704 2.55439681,7.75395579 C1.87823295,7.24668765 1.50258636,6.59448576 1.35232772,5.869817 C1.2771984,5.14514823 1.2771984,4.49294634 1.35232772,3.76827758 C1.42745704,3.26100944 1.57771568,2.75374131 1.95336227,2.31894005 C2.1036209,2.17400629 2.1036209,2.10153942 2.02849158,1.88413879 C1.80310363,1.30440378 1.87823295,0.724668765 2.1036209,0.144933753 C2.1036209,0 2.17875022,0 2.32900886,0 C2.77978476,0.144933753 3.15543135,0.362334382 3.45594862,0.652201888 C3.60620726,0.797135641 3.7564659,0.942069394 3.90672453,1.15947002 C3.98185385,1.2319369 3.98185385,1.2319369 4.05698317,1.15947002 C4.28237112,0.942069394 4.58288839,0.942069394 4.88340567,0.869602518 C5.70982816,0.724668765 6.61137998,0.724668765 7.43780247,0.869602518 C7.73831975,0.942069394 8.03883702,0.942069394 8.26422497,1.15947002 C8.41448361,1.2319369 8.41448361,1.2319369 8.48961293,1.08700315 C8.71500088,0.797135641 9.01551815,0.507268135 9.31603542,0.289867506 C9.54142338,0.144933753 9.76681133,0.0724668765 9.99219928,0 C10.0673286,0 10.1424579,0 10.2175872,0.0724668765 C10.4429752,0.724668765 10.5181045,1.30440378 10.2175872,1.95660567 C10.2175872,2.02907254 10.1424579,2.10153942 10.2175872,2.17400629 C10.6683631,2.53634068 10.8186218,3.04360881 10.8937511,3.55087695 C10.9688804,4.20307884 11.0440097,4.85528073 10.9688804,5.50748261 C10.8186218,6.59448576 10.2175872,7.46408828 9.24090611,7.97135641 C9.16577679,7.97135641 9.16577679,7.97135641 9.16577679,8.04382329 C9.16577679,8.04382329 9.09064747,8.04382329 9.09064747,8.11629017 C9.01551815,8.11629017 8.94038883,8.18875704 8.86525952,8.18875704 C8.86525952,8.18875704 8.7901302,8.18875704 8.7901302,8.18875704 C8.71500088,8.18875704 8.71500088,8.18875704 8.71500088,8.26122392 C8.71500088,8.26122392 8.63987156,8.26122392 8.63987156,8.26122392 C8.48961293,8.26122392 8.33935429,8.3336908 8.26422497,8.40615767 C8.26422497,8.40615767 8.18909565,8.40615767 8.18909565,8.40615767 C8.11396634,8.40615767 7.9637077,8.40615767 7.88857838,8.47862455 C7.81344906,8.47862455 7.73831975,8.47862455 7.66319043,8.47862455 C7.58806111,8.47862455 7.51293179,8.47862455 7.51293179,8.47862455 C7.43780247,8.47862455 7.51293179,8.55109143 7.51293179,8.55109143 C7.51293179,8.6235583 7.51293179,8.6235583 7.58806111,8.6235583 C7.58806111,8.69602518 7.66319043,8.69602518 7.66319043,8.76849206 C7.66319043,8.84095893 7.66319043,8.91342581 7.73831975,8.98589269 C7.73831975,8.98589269 7.73831975,9.05835956 7.73831975,9.05835956 C7.73831975,9.13082644 7.73831975,9.27576019 7.81344906,9.34822707 C7.81344906,9.34822707 7.81344906,9.42069394 7.81344906,9.42069394 C7.81344906,9.49316082 7.81344906,9.49316082 7.81344906,9.5656277 C7.88857838,9.71056145 7.88857838,9.71056145 7.88857838,9.78302833 Z\"\n transform=\"translate(5 5)\"\n />\n </svg>\n )\n}\n","import React from 'react'\n\nexport function Twitter(props: React.SVGAttributes<SVGElement>) {\n return (\n <svg {...props} width=\"22\" height=\"22\" viewBox=\"0 0 22 22\">\n <path\n fill=\"currentColor\"\n d=\"M13,1.82494005 C12.5384615,2.058753 12,2.2146283 11.4615385,2.2146283 C12,1.9028777 12.4615385,1.35731415 12.6153846,0.73381295 C12.0769231,1.04556355 11.5384615,1.2793765 10.9230769,1.35731415 C10.4615385,0.8117506 9.76923077,0.5 9,0.5 C7.53846154,0.5 6.30769231,1.7470024 6.30769231,3.22781775 C6.30769231,3.4616307 6.30769231,3.617506 6.38461538,3.85131894 C4.15384615,3.77338129 2.15384615,2.6822542 0.846153846,1.04556355 C0.615384615,1.4352518 0.461538462,1.9028777 0.461538462,2.44844125 C0.461538462,3.38369305 0.923076923,4.24100719 1.69230769,4.70863309 C1.23076923,4.70863309 0.846153846,4.55275779 0.461538462,4.39688249 C0.461538462,5.72182254 1.38461538,6.81294964 2.61538462,7.04676259 C2.38461538,7.12470024 2.15384615,7.12470024 1.92307692,7.12470024 C1.76923077,7.12470024 1.61538462,7.12470024 1.38461538,7.04676259 C1.69230769,8.13788969 2.69230769,8.91726619 3.92307692,8.91726619 C3,9.61870504 1.84615385,10.0863309 0.615384615,10.0863309 C0.384615385,10.0863309 0.153846154,10.0863309 0,10.0863309 C1.15384615,10.8657074 2.61538462,11.3333333 4.07692308,11.3333333 C9,11.3333333 11.6923077,7.20263789 11.6923077,3.617506 C11.6923077,3.4616307 11.6923077,3.38369305 11.6923077,3.22781775 C12.1538462,2.91606715 12.6153846,2.3705036 13,1.82494005 Z\"\n transform=\"translate(5 5)\"\n />\n </svg>\n )\n}\n","import React from 'react'\nimport { Container } from './Container'\nimport { Reddit } from './Icon.tsx/Reddit'\nimport { Github } from './Icon.tsx/Github'\nimport { Twitter } from './Icon.tsx/Twitter'\nimport { Discord } from './Icon.tsx/Discord'\n\nimport './BigFooter.css'\nimport { injectVersions } from '../../utils/rolloutVersions'\n\nconst year = Math.max(new Date().getFullYear(), 2020)\n\nexport const BigFooter = () => {\n let versions = injectVersions({})\n\n return (\n <footer className=\"big-footer\">\n <Container>\n <div>\n <div>\n <h4>NEED SUPPORT?</h4>\n </div>\n <div>\n <a className=\"big-footer-button\" href=\"https://discord.gg/k5ydeZp\" target=\"about:blank\">\n <Discord /> Join our Discord\n </a>\n </div>\n </div>\n <div>\n <div>\n <h4>FOLLOW US</h4>\n </div>\n <div>\n <a className=\"big-footer-icon\" href=\"https://www.reddit.com/r/decentraland/\" target=\"about:blank\">\n <Reddit />\n </a>\n <a className=\"big-footer-icon\" href=\"http://github.com/decentraland\" target=\"about:blank\">\n <Github />\n </a>\n <a className=\"big-footer-icon\" href=\"https://twitter.com/decentraland\" target=\"about:blank\">\n <Twitter />\n </a>\n </div>\n </div>\n </Container>\n <Container>\n <p className=\"copyright\" title={'Versions: ' + JSON.stringify(versions, null, 2)}>\n © {year} Decentraland\n </p>\n </Container>\n </footer>\n )\n}\n","import React from 'react'\nimport { BannerContainerProps } from './BannerContainer.types'\n\nimport './banners.css'\n\nexport const BannerNotSupported: React.FC<Pick<BannerContainerProps, 'onClose'>> = (props) => (\n <div id=\"banner-notsupported\" className=\"banner-container\">\n <div className=\"banner-close-button\" onClick={props.onClose} />\n <div className=\"banner-text\">\n Your browser is not among the recommended choices for an optimal experience in Decentraland.\n We suggest you use one based on\n {' '}\n <a href=\"https://www.google.com/chrome/\" rel=\"noreferrer noopener\" target=\"_blank\">Chromium</a>\n {' or '}\n <a href=\"https://www.mozilla.org/en-US/firefox/new/\" rel=\"noreferrer noopener\" target=\"_blank\">Firefox</a>.\n </div>\n </div>\n)\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport { setBanner } from '../../state/actions'\nimport { BannerType, StoreType } from '../../state/redux'\nimport { BannerContainerProps } from './BannerContainer.types'\nimport { BannerNotSupported } from './BannerNotSupported'\n\nconst mapStateToProps = (state: StoreType): Pick<BannerContainerProps, 'banner'> => {\n return {\n banner: state.banner.banner\n }\n}\n\nconst mapDispatchToProps = (dispatch: (a: any) => void, state: StoreType): Pick<BannerContainerProps, 'onClose'> => {\n return {\n onClose: () => dispatch(setBanner(null))\n }\n}\n\nexport const BannerContainer: React.FC<BannerContainerProps> = (props) => {\n switch (props.banner) {\n case BannerType.NOT_RECOMMENDED:\n return <BannerNotSupported onClose={props.onClose}/>\n default:\n return null\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BannerContainer)\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport { connection } from 'decentraland-connect/dist/index'\nimport { ProviderType } from 'decentraland-connect/dist/types'\nimport { Navbar } from '../common/Navbar'\nimport { EthLogin } from './EthLogin'\nimport { Container } from '../common/Container'\nimport { BeginnersGuide } from './BeginnersGuide'\nimport { BigFooter } from '../common/BigFooter'\nimport './LoginContainer.css'\nimport { StoreType } from '../../state/redux'\nimport { LoginState } from '@dcl/kernel-interface'\nimport { authenticate } from '../../kernel-loader'\nimport BannerContainer from '../banners/BannerContainer'\n\nconst mapStateToProps = (state: StoreType): LoginContainerProps => {\n // test all connectors\n const enableProviders = new Set([ProviderType.INJECTED, ProviderType.FORTMATIC, ProviderType.WALLET_CONNECT])\n const availableProviders = connection.getAvailableProviders().filter((provider) => enableProviders.has(provider))\n return {\n stage: state.session.kernelState?.loginStatus,\n availableProviders,\n kernelReady: state.kernel.ready,\n rendererReady: state.renderer.ready\n }\n}\n\nconst mapDispatchToProps = (dispatch: any) => ({\n onLogin: (providerType: ProviderType | null) => {\n authenticate(providerType)\n }\n})\n\nexport interface LoginContainerProps {\n stage?: LoginState\n availableProviders: ProviderType[]\n kernelReady: boolean\n rendererReady: boolean\n}\n\nexport interface LoginContainerDispathc {\n onLogin: (provider: ProviderType | null) => void\n}\n\nexport const LoginContainer: React.FC<LoginContainerProps & LoginContainerDispathc> = (props) => {\n const loading =\n props.stage === LoginState.SIGNATURE_PENDING ||\n props.stage === LoginState.WAITING_PROFILE ||\n props.stage === LoginState.LOADING ||\n !props.kernelReady\n\n if (props.stage === LoginState.COMPLETED) {\n return <React.Fragment />\n }\n\n return (\n <React.Fragment>\n <div className={'LoginContainer FullPage'}>\n <BannerContainer />\n {/* Nabvar */}\n <Navbar full={true} />\n <main>\n <Container className=\"eth-login-popup\">\n <EthLogin availableProviders={props.availableProviders} onLogin={props.onLogin} signing={loading} />\n {/* {props.stage === LoginState.CONNECT_ADVICE && <EthConnectAdvice onLogin={props.onLogin} />} */}\n {/* {props.stage === LoginState.SIGN_ADVICE && <EthSignAdvice />} */}\n </Container>\n </main>\n <BeginnersGuide />\n <BigFooter />\n </div>\n </React.Fragment>\n )\n}\nexport default connect(mapStateToProps, mapDispatchToProps)(LoginContainer)\n","import React from 'react'\n\nexport interface AudioProps {\n play: boolean\n track: string\n}\n\nexport class Audio extends React.Component<AudioProps> {\n private player: HTMLAudioElement | null = null\n\n componentDidMount() {\n this.updatePlayer()\n }\n\n componentDidUpdate() {\n this.updatePlayer()\n }\n\n updatePlayer() {\n if (!this.player) {\n return\n }\n !this.props.play ? this.player.pause() : this.player.play().catch((e) => {})\n }\n\n render() {\n return (\n <audio ref={(audio) => (this.player = audio)} autoPlay loop>\n <source src={this.props.track} type=\"audio/mpeg\" />\n </audio>\n )\n }\n}\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport ErrorContainer from './errors/ErrorContainer'\nimport LoginContainer from './auth/LoginContainer'\nimport { Audio } from './common/Audio'\nimport { StoreType } from '../state/redux'\nimport './App.css'\n\nfunction mapStateToProps(state: StoreType): AppProps {\n return {\n rendererVisible: state.renderer.visible,\n error: !!state.error.error,\n sound: true // TODO: sound must be true after the first click\n }\n}\n\nexport interface AppProps {\n rendererVisible: boolean\n error: boolean\n sound: boolean\n}\n\nconst App: React.FC<AppProps> = (props) => {\n if (props.error) {\n return <ErrorContainer />\n }\n\n if (props.rendererVisible) {\n return <React.Fragment />\n }\n\n return (\n <div>\n {props.sound && <Audio track=\"/tone4.mp3\" play={true} />}\n <LoginContainer />\n </div>\n )\n}\n\nexport default connect(mapStateToProps)(App)\n","import * as React from 'react'\nimport * as ReactDOM from 'react-dom'\nimport { Provider } from 'react-redux'\nimport { configureRollbar, configureSegment } from './integration/analytics'\nimport { store } from './state/redux'\nimport { initializeKernel } from './integration/kernel'\nimport { initializeBrowserRecommendation } from './integration/browser'\nimport App from './components/App'\n\nconfigureSegment()\nconfigureRollbar()\n\nReactDOM.render(\n <React.StrictMode>\n <Provider store={store}>\n <App />\n </Provider>\n </React.StrictMode>,\n document.getElementById('root'),\n () => {\n initializeKernel()\n initializeBrowserRecommendation()\n }\n)\n","import { connection, ProviderType, ConnectionResponse } from 'decentraland-connect'\nimport { WebSocketProvider } from 'eth-connect'\nimport { ChainId } from '@dcl/schemas'\nimport { IEthereumProvider } from '@dcl/kernel-interface'\nimport { defaultWebsiteErrorTracker } from '../utils/tracking'\n\nexport const chainIdRpc = new Map<number, string>([\n [1, 'wss://mainnet.infura.io/ws/v3/074a68d50a7c4e6cb46aec204a50cbf0'],\n [3, 'wss://ropsten.infura.io/ws/v3/074a68d50a7c4e6cb46aec204a50cbf0']\n])\n\nexport async function getEthereumProvider(\n type: ProviderType | null,\n chainId: ChainId\n): Promise<{ provider: IEthereumProvider; chainId: number }> {\n if (type === null) {\n const rpc = chainIdRpc.get(chainId)\n if (!rpc) throw new Error(\"Can't get RPC for chainId \" + chainId)\n return {\n provider: new WebSocketProvider(rpc),\n chainId\n }\n }\n\n const result = await connection.connect(type, chainId)\n // console.log('11111111111 PERSONAL SIGGGGGGGGGN 11111111111')\n // console.log('PERSONAL SIGGGGGGGGGN 11111111111')\n\n return { provider: result.provider, chainId: result.chainId }\n}\n\nexport async function restoreConnection(): Promise<ConnectionResponse | null> {\n try {\n return await connection.tryPreviousConnection()\n } catch (err) {\n return null\n }\n}\n\nexport async function disconnect(): Promise<void> {\n try {\n return await connection.disconnect()\n } catch (err) {\n defaultWebsiteErrorTracker(err)\n return\n }\n}\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["integration/browser.ts","kernel-loader/index.ts","utils/rolloutVersions.ts","state/actions.ts","kernel-loader/injector.ts","utils/tracking.ts","integration/queryParamsConfig.ts","state/selectors.ts","integration/analytics.ts","utils/errorToString.ts","state/reducers.ts","state/redux.ts","utils/callOnce.ts","integration/kernel.ts","images/errors/error-robotmobile.png","components/errors/ErrorAvatarLoading.tsx","images/errors/error-robotdown.png","components/errors/ErrorComms.tsx","components/errors/ErrorFatal.tsx","images/errors/robotsmiling.png","components/errors/ErrorMetamaskLocked.tsx","components/errors/ErrorNetworkMismatch.tsx","components/errors/ErrorNewLogin.tsx","components/errors/ErrorNoMobile.tsx","components/errors/ErrorNotSupported.tsx","components/errors/ErrorContainer.tsx","components/common/Logo.tsx","components/common/Isologotipo.tsx","components/common/Icon.tsx/Discord.tsx","components/auth/wallet/WalletButton.tsx","components/common/Navbar.tsx","images/login/avatars.png","images/login/avatars@2x.png","images/login/avatars@3x.png","components/common/Avatars.tsx","components/common/Modal.tsx","images/login/metamask.svg","images/login/dapper.png","images/login/samsung-blockchain-wallet.svg","images/login/fortmatic.svg","images/login/wallet-connect.svg","components/common/Spinner.tsx","components/auth/wallet/WalletSelector.tsx","components/common/MainIsologotipo.tsx","components/auth/LoginHeader.tsx","components/auth/EthLogin.tsx","components/common/Container.tsx","components/common/Accordion.tsx","components/auth/BeginnersGuide.tsx","components/common/Icon.tsx/Reddit.tsx","components/common/Icon.tsx/Github.tsx","components/common/Icon.tsx/Twitter.tsx","components/common/BigFooter.tsx","components/banners/BannerNotSupported.tsx","components/banners/BannerContainer.tsx","components/auth/LoginContainer.tsx","components/common/Audio.tsx","components/App.tsx","index.tsx","eth/provider.ts"],"names":["initializeBrowserRecommendation","callOnce","isRecommendedBrowser","store","dispatch","setBanner","BannerType","NOT_RECOMMENDED","detected","detect","navigator","userAgent","name","getChainIdFromProvider","provider","a","rm","RequestManager","parseInt","net_version","getWantedChainId","chainId","NETWORK","authenticate","providerType","wantedChainId","getEthereumProvider","providerChainId","setKernelError","error","Error","code","ErrorType","NET_MISMATCH","kernel","getState","includes","message","METAMASK_LOCKED","disconnect","catch","defaultWebsiteErrorTracker","resolveBaseUrl","urn","startsWith","resolveUrlFromUrn","t","replace","URL","global","location","toString","cdnFromRollout","rollout","cdnFromPrefixVersion","prefix","version","getVersions","flags","qs","URLSearchParams","document","search","globalThis","ROLLOUTS","KERNEL_BASE_URL","RENDERER_BASE_URL","has","get","variants","identify","lastIdentity","identifyUser","isGuest","email","container","getElementById","fetchFlags","applicationName","injectKernel","baseUrl","configurations","kernelOptions","rendererOptions","on","eventName","eventData","internalTrackEvent","context","url","newWindow","window","open","opener","undefined","account","identity","address","setKernelAccountState","data","trackError","extra","track","errorToString","disableAnalytics","event","setRendererVisible","visible","setRendererLoading","restoreConnection","hasStoredSession","provider_type","startKernel","FATAL","ENV","injectVersions","initKernel","then","setKernelLoaded","initLogin","process","versions","rolloutsInfo","component","SET_KERNEL_ACCOUNT_STATE","SET_KERNEL_ERROR","SET_KERNEL_LOADED","SET_RENDERER_LOADING","SET_RENDERER_VISIBLE","SET_BANNER","accountState","action","progressEvent","banner","options","kernelUrl","injectScript","console","log","DecentralandKernel","theFuture","future","theScript","createElement","persistMessage","src","async","type","crossOrigin","addEventListener","resolve","e","reject","body","appendChild","ethereum","getWalletName","isMetaMask","isDapper","isCucumber","isTrust","isToshi","isGoWallet","isAlphaWallet","isStatus","getWalletProps","Object","keys","filter","prop","join","environmentType","rendererType","RENDERER_TYPE","properties","wallet","walletProps","recommendedBrowser","DEBUG_ANALYTICS","getRequiredAnalyticsContext","state","sessionId","session","AnalyticsAccount","analyticsDisabled","authFlags","isAuthenticated","afterFatalError","configureSegment","host","endsWith","initialize","PRD","DEV","injectTrackingMetadata","payload","realm","position","dcl_is_authenticated","dcl_is_guest","dcl_disabled_analytics","dcl_renderer_type","configureRollbar","Rollbar","configure","transform","enabled","info","critical","assign","fullErrorStack","analytics","userTraits","segmentKey","load","page","ready","timeout","JSON","stringify","prototype","call","defaultSession","v4","kernelState","reducers","combineReducers","renderer","loading","details","middleware","x","createStore","fun","result","value","initializeKernel","initial","style","opacity","setTimeout","remove","ErrorAvatarLoading","id","className","href","alt","errorImage","ErrorComms","onClick","reload","defaultDetails","ErrorFatal","props","length","map","$","ix","key","ErrorMetamaskLocked","closeError","ErrorNetworkMismatch","onLogout","finally","ErrorNewLogin","ErrorNoMobile","zIndex","width","height","backgroundColor","margin","ErrorNotSupported","connect","COMMS","NEW_LOGIN","NOT_MOBILE","NOT_SUPPORTED","AVATAR_ERROR","Fragment","Logo","viewBox","xmlns","x1","x2","y1","y2","stopColor","offset","y","fill","d","clipRule","fillRule","Isologotipo","gradientUnits","Discord","WalletButtonLogo","Navbar","full","target","rel","onClickLogo","Avatars","avatars1x","srcSet","avatars2x","avatars3x","Modal","onClose","withAvatars","withFlatBackground","withOverlay","children","containerClassName","popupClassName","handleClose","stopPropagation","title","METAMASK","DAPPER","FORTMATIC","WALLET_CONNECT","SAMSUNG_BLOCKCHAIN_WALLET","img","MetamaskLogo","DapperLogo","FortmaticLogo","WalletConnect","SamsungBlockchainWalletLogo","ProviderType","INJECTED","description","WalletButton","active","preventDefault","Spinner","display","WalletSelector","availableProviders","onLogin","onCancel","hasWallet","handleLogin","wallets","useMemo","isCucumberProvider","push","isDapperProvider","isActive","MainIsologotipo","filterUnits","colorInterpolationFilters","floodOpacity","in","values","dy","mode","in2","LoginHeader","EthLogin","useState","showWalletSelector","setShowWalletSelector","signing","Container","Content","Accordion","setOpen","ref","useRef","current","offsetHeight","BeginnersGuide","Reddit","Github","Twitter","year","Math","max","Date","getFullYear","BigFooter","BannerNotSupported","enableProviders","Set","connection","getAvailableProviders","stage","loginStatus","kernelReady","rendererReady","LoginState","SIGNATURE_PENDING","WAITING_PROFILE","LOADING","COMPLETED","Audio","player","this","updatePlayer","play","pause","audio","autoPlay","loop","React","Component","rendererVisible","sound","ReactDOM","chainIdRpc","Map","rpc","WebSocketProvider","tryPreviousConnection"],"mappings":"sIAAA,wGAKaA,EAAkCC,aAAS,WACjDC,KACHC,IAAMC,SAASC,YAAUC,IAAWC,qBAI3BL,EAAuBD,aAAS,WAC3C,IAAMO,EAAWC,YAAOC,UAAUC,WAElC,IAAKH,EACH,OAAO,EAGT,OAAQA,EAASI,MACf,IAAK,SACL,IAAK,mBACL,IAAK,gBACL,IAAK,UACH,OAAO,EAET,QACE,OAAO,O,kQCFEC,E,8EAAf,WAAsCC,GAAtC,eAAAC,EAAA,6DACQC,EAAK,IAAIC,iBAAeH,GADhC,KAESI,SAFT,SAEwBF,EAAGG,cAF3B,0DAE0C,KAF1C,4C,sBAKA,SAASC,IACP,IAAIC,EAAU,EAMd,MAJgB,YAAZC,MACFD,EAAU,GAGLA,EAGF,SAAeE,EAAtB,kC,4CAAO,WAA4BC,GAA5B,yBAAAT,EAAA,sEAEGU,EAAgBL,IAFnB,SAIkDM,YAAoBF,EAAcC,GAJpF,mBAIKX,EAJL,EAIKA,UAAmBa,EAJxB,EAIeN,WAEMI,EANrB,wBAODtB,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAJ,wGAC4FL,EAD5F,oBACqHE,EADrH,WAGPI,KAAMC,IAAUC,gBAZnB,4CAmB6BpB,EAAuBC,GAnBpD,YAmBKa,EAnBL,UAoBuBF,EApBvB,wBAqBCtB,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAJ,wGAC4FL,EAD5F,oBACqHE,EADrH,WAGPI,KAAMC,IAAUC,gBA1BrB,8BAiCGC,EAAS/B,IAAMgC,WAAWD,OAAOA,OAjCpC,uBAmCgB,IAAIJ,MAAM,2BAnC1B,QAqCHI,EAAOX,aAAaT,EAA0B,MAAhBU,GArC3B,sDAwCD,MACe,kBAAR,EAAP,KACA,CAAC,yCAA0C,kCAAkCY,SAAS,KAAIC,SA1CzF,uDAgDD,MACe,kBAAR,EAAP,IACsB,iBAAf,KAAIA,UACV,KAAIA,QAAQD,SAAS,6CAA8C,KAAIC,QAAQD,SAAS,gBAnDxF,wBAsDDjC,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAM,oEACjBC,KAAMC,IAAUM,mBAzDnB,2BAgEHC,cAAaC,MAAMC,KAEnBA,YAA2B,EAAD,IAE1BtC,IAAMC,SACJwB,YAAe,CACbC,MAAM,EAAD,MAtEN,2D,+BA2FQa,E,8EAAf,WAA8BC,GAA9B,eAAA5B,EAAA,0DACM4B,EAAIC,WAAW,QADrB,gCAEoBC,4BAAkBF,GAFtC,YAEUG,EAFV,kDAIcA,EAAI,KAAKC,QAAQ,SAAU,MAJzC,aAMU,IAAIjB,MAAM,kCAAoCa,GANxD,iCAQU,IAAIK,IAAJ,UAAWL,GAAOM,EAAOC,SAASC,YAAYA,WAAa,KAAKJ,QAAQ,SAAU,MAR5F,4C,sBAWA,SAASK,EAAeC,GACtB,OAAOC,EAAqBD,EAAQE,OAAQF,EAAQG,SAGtD,SAASF,EAAqBC,EAAgBC,GAC5C,MAAM,gCAAN,OAAuCD,EAAvC,YAAiDC,G,SAGpCC,E,8EAAf,WAA2BC,GAA3B,mBAAA3C,EAAA,sDACQ4C,EAAK,IAAIC,gBAAgBC,SAASX,SAASY,QAG7CC,WAAWC,UAAYD,WAAWC,SAAS,iBAC7CD,WAAWE,gBAAkBb,EAAeW,WAAWC,SAAS,iBAE9DD,WAAWC,UAAYD,WAAWC,SAAS,yBAC7CD,WAAWG,kBAAoBd,EAAeW,WAAWC,SAAS,yBAIhEL,EAAGQ,IAAI,cACTJ,WAAWG,kBAAoBP,EAAGS,IAAI,aAEpCT,EAAGQ,IAAI,gBACTJ,WAAWE,gBAAkBN,EAAGS,IAAI,eAIlCT,EAAGQ,IAAI,qBACTJ,WAAWG,kBAAX,6DAAqFP,EAAGS,IAAI,qBAE1FT,EAAGQ,IAAI,mBACTJ,WAAWE,gBAAX,mEAAyFN,EAAGS,IAAI,mBAI9FT,EAAGQ,IAAI,sBACTJ,WAAWG,kBAAoBZ,EAAqB,sBAAuBK,EAAGS,IAAI,sBAEhFT,EAAGQ,IAAI,oBACTJ,WAAWE,gBAAkBX,EAAqB,cAAeK,EAAGS,IAAI,oBAIrEL,WAAWE,iBACVP,EAAMW,SAAS,qCACXb,EAAUE,EAAMW,SAAS,mCAAmCzD,KAClEmD,WAAWE,gBAAX,gDAAsET,IAIrEO,WAAWG,mBACVR,EAAMW,SAAS,6CACXb,EAAUE,EAAMW,SAAS,2CAA2CzD,KAC1EmD,WAAWG,kBAAX,wDAAgFV,IA9CtF,6C,kEAmDA,6BAiCWc,EAjCX,SAAAvD,EAAA,6DAiCWuD,EAjCX,WAkCQC,GACFC,YAAaD,EAAcE,EAASC,IAlClCC,EAAYd,SAASe,eAAe,iBAD5C,SAGsBC,qBAAW,CAAEC,gBAAiB,aAHpD,cAGQpB,EAHR,gBAKQD,EAAYC,GALpB,mBAOuBqB,IAPvB,UASqBrC,EAAeqB,WAAWE,iBAAX,gDATpC,gCAUsB,GAVtB,MASMe,QATN,KAUMC,eAVN,WAaMN,EAbN,UAcqBjC,EACbqB,WAAWG,mBAAX,wDAfR,iCAaMS,UAbN,KAcMK,QAdN,YAQIE,cARJ,KAYIC,gBAZJ,8CAOQjD,EAPR,QAoBSkD,GAAG,iBAAiB,YAA+B,IAA5BC,EAA2B,EAA3BA,UAAWC,EAAgB,EAAhBA,UACvCC,YAAmBF,EAAD,YAAC,eAAgBC,GAAjB,IAA4BE,QAASF,EAAUE,SAAW,eAG9EtD,EAAOkD,GAAG,WAAW,YAAc,IAAXK,EAAU,EAAVA,IAChBC,EAAYC,OAAOC,KAAKH,EAAK,SAAU,uBAC5B,MAAbC,IAAmBA,EAAUG,OAAS,SAGxCpB,GAAU,EACVF,EAA8B,KAC9BG,OAA4BoB,EAQhC5D,EAAOkD,GAAG,gBAAgB,SAACW,GACrBA,EAAQC,WACVvB,IAAYsB,EAAQtB,QACpBF,EAAewB,EAAQC,SAASC,QAChC3B,KAGFnE,IAAMC,SAAS8F,YAAsBH,OAGvC7D,EAAOkD,GAAG,UAAU,SAACe,GACnBzB,EAAQyB,EAAKzB,MACbJ,OAIFpC,EAAOkD,GAAG,SAAS,SAACvD,GAClB1B,IAAMC,SAASwB,YAAeC,IAG9BuE,YAAWvE,EAAMA,MAAP,aAAgB2D,QAAS,UAAc3D,EAAMwE,OAAS,KAIhEC,YAAM,wBAAyB,CAE7BzE,MAAO0E,YAAc1E,KAIvB2E,iBAGFtE,EAAOkD,GAAG,mBAAmB,SAACqB,GAC5BtG,IAAMC,SAASsG,YAAmBD,EAAME,UAIpCF,EAAME,UACRL,YAAM,kBAAmB,IACzBnG,IAAMC,SAASwB,YAAe,WAIlCM,EAAOkD,GAAG,mBAAmB,SAACqB,GAC5BtG,IAAMC,SAASwG,YAAmBH,OAGpCvE,EAAOkD,GAAG,UAAU,WAClB7C,cAAaC,MAAMC,QAxFvB,kBA2FSP,GA3FT,6C,kEA8FA,WAAyBA,GAAzB,iBAAAnB,EAAA,sEACyB8F,cADzB,YACQ/F,EADR,UAEkBA,EAASiF,QAF3B,iCAGkClF,EAAuBC,EAASA,UAHlE,cAGUa,EAHV,gBAOgCO,EAAO4E,iBAAiBhG,EAASiF,QAASpE,GAP1E,gBAUM2E,YAAM,oBAAqB,CAAES,cAAejG,EAASU,eACrDD,EAAaT,EAASU,cAAcgB,MAAMC,MAXhD,6C,sBAgBO,SAASuE,IACV1F,KAAuB,YAAZA,KAAqC,YAAZA,IACtCnB,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAJ,wEACPC,KAAMC,IAAUiF,SAMlBC,IACF/G,IAAMC,SACJwB,YAAe,CACbC,MAAO,IAAIC,MAAJ,mHAGPC,KAAMC,IAAUiF,UAMtBX,YAAM,sBAAuBa,YAAe,K,0CAE5CC,GACGC,MAAK,SAACnF,GAGL,OAFA/B,IAAMC,SAASkH,YAAgBpF,I,2CAExBqF,CAAUrF,MAElBM,OAAM,SAACX,GACN1B,IAAMC,SAASwB,YAAe,CAAEC,WAChCY,YAA2BZ,OAxNjCkC,WAAWE,gBAAkBuD,GAC7BzD,WAAWG,kBAAoBsD,K,mDC9HxB,SAASL,EAA8CM,GAC5D,IAAIC,EAAgB3D,WAAmBC,UAAY,GAEnD,IAAK,IAAI2D,KAAaD,GACF,UAAdC,GAAyBA,EAAU/E,WAAW,UAC5C8E,EAAaC,IAAcD,EAAaC,GAAWnE,UACrDiE,EAASE,GAAwBD,EAAaC,GAAWnE,SAK/D,OAAOiE,EAbT,mC,gCCAA,oaAWaG,EAA2B,2BAC3BC,EAAmB,mBACnBC,EAAoB,oBACpBC,EAAuB,uBACvBC,EAAuB,uBACvBC,EAAa,aAEb/B,EAAwB,SAACgC,GAAD,OACnCC,iBAAOP,EAA0BM,IACtBtG,EAAiB,SAACC,GAAD,OAA+BsG,iBAAON,EAAkBhG,IACzEyF,EAAkB,SAACpF,GAAD,OAA0BiG,iBAAOL,EAAmB5F,IACtE0E,EAAqB,SAACwB,GAAD,OAA0CD,iBAAOJ,EAAsBK,IAC5F1B,EAAqB,SAACC,GAAD,OAAsBwB,iBAAOH,EAAsB,CAAErB,aAC1EtG,EAAY,SAACgI,GAAD,OAA+BF,iBAAOF,EAAY,CAAEI,a,gHCrBtE,SAAetD,EAAtB,kC,4CAAO,WAA4BuD,GAA5B,iBAAAvH,EAAA,6DACCwH,EAAY,IAAIvF,IAAJ,gBAAyBsF,EAAQpD,cAAcF,SAAS7B,WADrE,SAGCqF,EAAaD,GAHd,UAKLE,QAAQC,IAAI,WAAYH,GAElBI,EAA2C5E,WAAmB4E,mBAP/D,sBAS0B,IAAI7G,MAAM,0CATpC,uBAWQ6G,EAAmBvB,WAAWkB,GAXtC,qF,+BAcQE,E,8EAAf,WAA4B/C,GAA5B,mBAAA1E,EAAA,6DACQ6H,EAAYC,MACZC,EAAYjF,SAASkF,cAAc,UACnCC,EACJ,iGACFF,EAAUG,IAAMxD,EAChBqD,EAAUI,OAAQ,EAClBJ,EAAUK,KAAO,yBACjBL,EAAUM,YAAc,YACxBN,EAAUO,iBAAiB,OAAQT,EAAUU,SAC7CR,EAAUO,iBAAiB,SAAS,SAACE,GAAD,OAClCX,EAAUY,OAAOD,EAAE1H,OAAS,IAAIC,MAAJ,qBAAwB2D,EAAxB,6BAAgDuD,QAE9EF,EAAUO,iBAAiB,SAAS,kBAClCT,EAAUY,OACR,IAAI1H,MAAJ,kCAC6B2D,EAD7B,0GACkIuD,QAItInF,SAAS4F,KAAKC,YAAYZ,GApB5B,kBAqBSF,GArBT,6C,iLCVMe,EAAWhE,OAAOgE,SAElBC,EAAgB3J,aAAS,WAC7B,OAAK0J,GAEE,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAUE,YACZ,YACF,OAAIF,QAAJ,IAAIA,OAAJ,EAAIA,EAAUG,UACZ,UACF,OAAIH,QAAJ,IAAIA,OAAJ,EAAIA,EAAUI,YACZ,YACF,OAAIJ,QAAJ,IAAIA,OAAJ,EAAIA,EAAUK,SACZ,SACF,OAAIL,QAAJ,IAAIA,OAAJ,EAAIA,EAAUM,SACZ,YACF,OAAIN,QAAJ,IAAIA,OAAJ,EAAIA,EAAUO,YACZ,YACF,OAAIP,QAAJ,IAAIA,OAAJ,EAAIA,EAAUQ,eACZ,eACF,OAAIR,QAAJ,IAAIA,OAAJ,EAAIA,EAAUS,UACZ,SAEA,QAlBA,UAsBLC,EAAiBpK,aAAS,WAC9B,OAAOqK,OAAOC,KAAKZ,GAAY,IAC5Ba,QAAO,SAACC,GAAD,OAAUA,EAAK7H,WAAW,OAAmC,mBAAnB+G,EAASc,MAC1DC,KAAK,QAGJC,EAAkB,CAAEC,aAAcC,KAOjC,SAASvE,EAAsCG,EAAUqE,GAC9D,IAAMC,EAASnB,IACToB,EAAcX,IACdY,EAAqB/K,cAC3BqF,YAAmBkB,EAAD,YAAC,aAASsE,SAAQC,cAAaC,sBAAuBH,GAAeH,IAOlF,SAASlI,EAA2BZ,GACzC4G,QAAQ5G,MAAMA,GACduE,YAAWvE,EAAO,CAAE2D,QAAS,qBAC7Bc,EAAM,yBAA0B,CAE9BzE,MAAO0E,YAAc1E,O,gCC9DzB,4IAAM8B,EAAK,IAAIC,gBAAgBC,SAASX,SAASY,QAAU,IAE9CoH,EAAkBvH,EAAGQ,IAAI,mBACzB+C,EAAMvD,EAAGS,IAAI,OACb9C,EAAUqC,EAAGS,IAAI,WACjByG,EAAgBlH,EAAGS,IAAI,MAAQ,SAAW,O,0SCDhD,SAAS+G,EAA4BC,GAC1C,MAAO,CACLC,UAAWD,EAAME,QAAQD,W,ICExBE,E,wBAFDC,GAAoB,G,SAEnBD,K,uCAAAA,E,wCAAAA,M,KAKL,IAAME,EAAY,CAChBC,iBAAiB,EACjBjH,SAAS,EACTkH,iBAAiB,GAIZ,SAASC,IAEd,OAAI7H,WAAWb,SAAS2I,KAAKC,SAAS,qBAC7BC,EAAWR,EAAiBS,KAG9BD,EAAWR,EAAiBU,KAGrC,SAASC,EAAuBC,GAC9B,IAAMxI,EAAK,IAAIC,gBAAgBG,WAAWb,SAASY,QAAU,IAGzDH,EAAGQ,IAAI,WACTgI,EAAQC,MAAQzI,EAAGS,IAAI,UAIrBT,EAAGQ,IAAI,cACTgI,EAAQE,SAAW1I,EAAGS,IAAI,aAG5B+H,EAAQG,qBAAuBb,EAAUC,gBACzCS,EAAQI,aAAed,EAAUhH,QACjC0H,EAAQK,uBAAyBf,EAAUE,gBAC3CQ,EAAQM,kBAAoB5B,IAGvB,SAAS6B,IAKT/G,OAAegH,SAChBhH,OAAegH,QAAQC,UAAU,CAAEC,UALvC,SAA4BV,GAC1BD,EAAuBC,MASpB,SAAS3F,IACdF,YAAM,oBAAqB,IAE3BmF,EAAUE,iBAAkB,EAC5BH,GAAoB,EAEf7F,OAAegH,SAChBhH,OAAegH,QAAQC,UAAU,CAAEE,SAAS,IAG5C5B,KACFzC,QAAQsE,KAAK,sDAIV,SAAS3G,EAAWvE,EAAuBsK,GAC5CX,IAEAN,KACFzC,QAAQsE,KAAK,wDAAyDlL,GAElE8D,OAAegH,UAEA,kBAAV9K,EACP8D,OAAegH,QAAQK,SAASzG,YAAc1E,GAAQsK,GAC/CtK,GAASA,aAAiBC,MACjC6D,OAAegH,QAAQK,SACvBzG,YAAc1E,GACdyI,OAAO2C,OAAOpL,EAAOsK,EAAS,CAAEe,eAAgBrL,EAAMsB,cAGtDwC,OAAegH,QAAQK,SAASzG,YAAc1E,GAAQsK,KAIrD,SAAS3H,EAAayB,EAAiBxB,EAAkBC,GAI9D,GAHA+G,EAAUhH,QAAUA,EACpBgH,EAAUC,kBAAoBzF,EAE1BN,OAAOwH,UAAW,CACpB,IAAMC,EAAa,CACjB/B,UAAWF,EAA4BhL,IAAMgC,YAAYkJ,UACzD3G,SAGEwG,KACFzC,QAAQsE,KAAK,iDAAkD9G,EAASmH,GAGtE3I,EACFkB,OAAOwH,UAAU7I,SAAS8I,GAE1BzH,OAAOwH,UAAU7I,SAAS2B,EAASmH,I,SAK1BrB,E,8EAAf,WAA0BsB,GAA1B,SAAAtM,EAAA,sDACM4E,OAAOwH,UAAUG,OAEnB3H,OAAOwH,UAAUG,KAAKD,GACtB1H,OAAOwH,UAAUI,OACjB5H,OAAOwH,UAAUK,OAAM,WACrB7H,OAAOwH,UAAUM,QAAQ,SAN/B,4C,sBAYO,SAASlI,EAAmBF,EAAmBC,GACpD,GAAKK,OAAOwH,YAAa3B,EAAzB,CAIA,IAAMrF,EAAI,2BAAQb,GAAc6F,EAA4BhL,IAAMgC,aAElE+J,EAAuB/F,GAEnB+E,KACFzC,QAAQsE,KAAK,+CAAgD1H,EAAWc,GAG1ER,OAAOwH,UAAU7G,MAAMjB,EAAWc,M,wJC5I7B,SAASI,EAAc1E,GAC5B,MAAqB,kBAAVA,EACLA,EAAMQ,QAAgBR,EAAMQ,QACP,oBAArBR,EAAMsB,WACDuK,KAAKC,UAAU9L,GAEjBA,EAAMsB,WAEM,kBAAVtB,EAA2BA,EAC/ByI,OAAOsD,UAAUzK,SAAS0K,KAAKhM,GATxC,mC,kQCaMiM,EAA+B,CACnCzC,UAAW0C,eACXC,YAAa,M,ICeHhM,EAgBA1B,E,iBAhBA0B,K,kBAAAA,E,cAAAA,E,cAAAA,E,qBAAAA,E,sBAAAA,E,6BAAAA,E,+BAAAA,E,2BAAAA,E,mCAAAA,M,cAgBA1B,K,kCAAAA,M,KAYZ,IAAM2N,EAAWC,0BAA2B,CAC1ChM,ODzCK,SAAuBkJ,EAAgCjD,GAC5D,OAAIA,EAAOgB,OAASrB,IACX,2BAAKsD,GAAZ,IAAmBoC,OAAO,EAAMtL,OAAQiG,EAAOgE,UAG/Cf,GAAS,CACPoC,OAAO,EACPtL,OAAQ,OCmCZoJ,QD9BK,SAAwBF,EAAiCjD,GAC9D,OAAKiD,EAEDjD,EAAOgB,OAASvB,IACX,2BAAKwD,GAAZ,IAAmB4C,YAAa7F,EAAOgE,UAGlCf,EANY0C,GC8BnBK,SDrBK,SAAyB/C,EAAkCjD,GAChE,OAAIiD,GAASjD,EAAOgB,OAASnB,IACpB,2BAAKoD,GAAZ,IAAmBzE,QAASwB,EAAOgE,QAAQxF,UAClCyE,GAASjD,EAAOgB,OAASpB,IAC3B,2BAAKqD,GAAZ,IAAmBgD,QAASjG,EAAOgE,UAGnCf,GAAS,CACPoC,OAAO,EACPhK,QAAS,SACTmD,SAAS,EACTyH,QAAS,OCWbvM,MDNK,SAAsBuJ,EAA+BjD,GAC1D,GAAIA,EAAOgB,OAAStB,IAAkB,CACpC,IAAMsE,EAAuBhE,EAAOgE,QAEpC,OAAKA,EAIE,CACLtK,MAAO,CACLwM,QAAS9H,YAAc4F,EAAQtK,OAC/BsH,KAAMgD,EAAQpK,OANT,CAAEF,MAAO,MAWpB,OAAOuJ,GAAS,CAAEvJ,MAAO,OCTzBwG,ODYK,SAAuB+C,EAAgCjD,GAC5D,OAAIA,EAAOgB,OAASlB,IACX,CAAEI,OAAQF,EAAOgE,QAAQ9D,QAG3B+C,GAAS,CAAE/C,OAAQ,SCdtBiG,EAC0D,SAACC,GAAD,OAAYA,GAE/DpO,EAAQqO,sBAAYP,EAAU,GAAIK,M,yECtExC,SAASrO,EAAYwO,GAC1B,IAAIC,EAA8B,KAClC,OAAO,WAKL,OAJKA,IACHA,EAAS,CAAEC,MAAOF,MAGbC,EAAOC,OAPlB,mC,iaCGaC,EAAmB3O,aAAS,WACvC+G,cAEA,IAAM6H,EAAUhL,SAASe,eAAe,gBACpCiK,IACFA,EAAQC,MAAMC,QAAU,IACxBC,YAAW,WACTH,EAAQI,WACP,S,yBCXQ,G,MAAA,IAA0B,+CCK5BC,EAA+B,kBAC1C,yBAAKC,GAAG,oBAAoBC,UAAU,mBACpC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,SAAf,WACA,yBAAKA,UAAU,sBAAf,sFAGA,yBAAKA,UAAU,oBAAf,2GAC2G,IACzG,uBAAGC,KAAK,iCAAR,4BAGJ,yBAAKD,UAAU,kBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,QCpBlC,MAA0B,4CCI5BC,EAAuB,kBAClC,yBAAKL,GAAG,cAAcC,UAAU,mBAC9B,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,SAAf,QACA,yBAAKA,UAAU,sBAAf,oCAEE,6BAFF,gCAKA,yBAAKA,UAAU,oBAAf,wHACuH,6BACrH,6BAFF,8FAIE,6BAJF,uCAOA,yBAAKA,UAAU,OACb,4BACEA,UAAU,QACVK,QAAS,WACP9J,OAAOzC,SAASwM,WAHpB,YAUJ,yBAAKN,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,SC9B7CI,EAA2C,CAC/C,0CACA,sCACA,GACA,uDACA,kEACA,uBAAGN,KAAK,qEAAR,eAGWO,EAAa,SAACC,GACzB,IAAMxB,EAAUwB,EAAMxB,SAAWwB,EAAMxB,QAAQyB,OAASD,EAAMxB,QAAUsB,EAExE,OACE,yBAAKR,GAAG,cAAcC,UAAU,mBAC9B,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,SAAf,SACA,yBAAKA,UAAU,sBAAf,wBACA,yBAAKA,UAAU,oBACZf,EAAQ0B,KAAI,SAACC,EAAGC,GAAJ,OACX,yBAAKC,IAAKD,GAAKD,OAGnB,yBAAKZ,UAAU,OACb,4BACEA,UAAU,QACVK,QAAS,WACP9J,OAAOzC,SAASwM,WAHpB,YAUJ,yBAAKN,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,SC1CtC,MAA0B,yCCU5BY,EAA2D,SAACN,GACvE,OACE,yBAAKV,GAAG,wBAAwBC,UAAU,mBACxC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,sBAAf,sBACCS,EAAMxB,SAAW,yBAAKe,UAAU,oBAAoBS,EAAMxB,SAC3D,yBAAKe,UAAU,OACb,4BAAQA,UAAU,QAAQK,QAASI,EAAMO,YAAzC,WAKJ,yBAAKhB,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,S,QCfxCc,EAA4D,SAACR,GACxE,OACE,yBAAKV,GAAG,wBAAwBC,UAAU,mBACxC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,sBAAf,mCACA,yBAAKA,UAAU,oBAAf,gDAC+C,4BAAQD,GAAG,OAAO7N,KAAW,WAD5E,+DAIA,yBAAK8N,UAAU,oBAAf,oEACoE,IAClE,4BAAQD,GAAG,eAAe7N,KAAW,WAFvC,wBAICuO,EAAMxB,SAAW,yBAAKe,UAAU,oBAAf,YAA4CS,EAAMxB,SACpE,yBAAKe,UAAU,OACb,4BACEA,UAAU,QACVK,QAAS,WACP9J,OAAOzC,SAASwM,WAHpB,UAQA,6BACA,4BAAQN,UAAU,QAAQK,QAAS,kBAAMI,EAAMS,WAAWC,SAAQ,kBAAM5K,OAAOzC,SAASwM,cAAxF,aAKJ,yBAAKN,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,SCvCxCiB,EAA0B,kBACrC,yBAAKrB,GAAG,iBAAiBC,UAAU,mBACjC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,4BAAf,gCACA,yBAAKA,UAAU,oBAAf,gGAEE,6BAFF,2FAKA,yBAAKA,UAAU,OACb,4BACEA,UAAU,QACVK,QAAS,WACP9J,OAAOzC,SAASwM,WAHpB,YAUJ,yBAAKN,UAAU,kBACb,yBAAKA,UAAU,gBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,SCxBtCkB,EAA0B,kBACrC,yBAAKtB,GAAG,iBAAiBC,UAAU,gBACjC,yBACEA,UAAU,mBACVN,MAAO,CACL4B,OAAQ,GACRC,MAAO,OACPC,OAAQ,OACRC,gBAAiB,aAGrB,yBAAKzB,UAAU,aAAaN,MAAO,CAAE4B,OAAQ,KAC3C,yBACEtB,UAAU,OACVN,MAAO,CACL6B,MAAO,QACPC,OAAQ,OACRvE,SAAU,WACVyE,OAAQ,SAGV,yBAAK1B,UAAU,oBAAf,sDACA,yBAAKE,IAAI,GAAGF,UAAU,0BAA0BnG,IAAKsG,IACrD,yBAAKH,UAAU,OACb,yBACEA,UAAU,SACVK,QAAS,WACP9J,OAAOzC,SAASmM,KAAO,6BAH3B,sCCxBG0B,EAA8B,kBACzC,yBAAK5B,GAAG,qBAAqBC,UAAU,mBACrC,yBAAKA,UAAU,qBACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,SAAf,SACA,yBAAKA,UAAU,sBAAf,2CACA,yBAAKA,UAAU,oBAAf,+EAIF,yBAAKA,UAAU,kBACb,yBAAKE,IAAI,GAAGF,UAAU,cAAcnG,IAAKsG,QCoClCyB,eAvCS,SAAC5F,GACvB,MAAO,CACLvJ,MAAOuJ,EAAMvJ,MAAMA,OAAS,SAIL,SAACzB,EAA4BgL,GACtD,MAAO,CACLgF,WAAY,kBAAMhQ,EAASwB,YAAe,QAC1C0O,SAAU,kBAAM/N,kBA8BLyO,EApB8C,SAACnB,GAC5D,OAAKA,EAAMhO,MAEPgO,EAAMhO,MAAMsH,OAASnH,IAAUiP,MAAc,kBAAC,EAAD,MAC7CpB,EAAMhO,MAAMsH,OAASnH,IAAUM,gBAC1B,kBAAC,EAAD,CAAqB+L,QAASwB,EAAMhO,MAAMwM,QAAS+B,WAAYP,EAAMO,aAC1EP,EAAMhO,MAAMsH,OAASnH,IAAUkP,UAAkB,kBAAC,EAAD,MACjDrB,EAAMhO,MAAMsH,OAASnH,IAAUmP,WAAmB,kBAAC,EAAD,MAClDtB,EAAMhO,MAAMsH,OAASnH,IAAUoP,cAAsB,kBAAC,EAAD,MACrDvB,EAAMhO,MAAMsH,OAASnH,IAAUC,aAC1B,kBAAC,EAAD,CAAsBoM,QAASwB,EAAMhO,MAAMwM,QAASiC,SAAUT,EAAMS,WACzET,EAAMhO,MAAMsH,OAASnH,IAAUqP,aAAqB,kBAAC,EAAD,MAGtD,kBAAC,IAAMC,SAAP,KACE,kBAAC,EAAD,CAAYjD,QAAS,CAACwB,EAAMhO,MAAMwM,SAAW,oDAdxB,kBAAC,IAAMiD,SAAP,S,gBChCdC,EAAO,SAAC1B,GAAD,OAClB,uCACEe,OAAO,KACPD,MAAM,KACNa,QAAQ,aACJ3B,EAJN,CAKET,UAAW,aAAeS,EAAMT,WAAa,IAC7CqC,MAAM,+BAEN,8BACE,oCAAgBtC,GAAG,IAAIuC,GAAG,KAAKC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAC1D,0BAAMC,UAAU,UAAUC,OAAO,MACjC,0BAAMD,UAAU,UAAUC,OAAO,OAEnC,oCAAgB5C,GAAG,IAAIuC,GAAG,UAAUC,GAAG,UAAUE,GAAG,KAClD,0BAAMC,UAAU,UAAUC,OAAO,MACjC,0BAAMD,UAAU,UAAUC,OAAO,OAEnC,oCAAgB5C,GAAG,IAAIuC,GAAG,UAAUC,GAAG,UAAUE,GAAG,KAClD,0BAAMC,UAAU,UAAUC,OAAO,MACjC,0BAAMD,UAAU,UAAUC,OAAO,QAGrC,2BACE,6CACA,0BAAMxD,EAAE,KAAKyD,EAAE,KAAKrB,MAAM,SAASC,OAAO,SAASqB,KAAK,UAE1D,2BACE,0CACA,0BACEC,EAAE,8JACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BAAMF,EAAE,+CAA+CC,SAAS,UAAUF,KAAK,UAAUG,SAAS,YAClG,0BAAMF,EAAE,8CAA8CC,SAAS,UAAUF,KAAK,OAAOG,SAAS,YAC9F,0BACEF,EAAE,4FACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BACEF,EAAE,gHACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BACEF,EAAE,yFACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BAAMF,EAAE,+CAA+CC,SAAS,UAAUF,KAAK,UAAUG,SAAS,YAClG,0BAAMF,EAAE,6CAA6CC,SAAS,UAAUF,KAAK,OAAOG,SAAS,YAC7F,0BACEF,EAAE,sKACFC,SAAS,UACTF,KAAK,UACLG,SAAS,YAEX,0BACEF,EAAE,yJACFC,SAAS,UACTF,KAAK,UACLG,SAAS,eCnEJC,EAAc,SAACxC,GAAD,OACzB,uCACEc,MAAM,MACNC,OAAO,KACPY,QAAQ,cACJ3B,EAJN,CAKET,UAAW,oBAAsBS,EAAMT,WAAa,IACpD6C,KAAK,OACLR,MAAM,+BAEN,8BACE,oCACEtC,GAAG,gBACHuC,GAAG,SACHE,GAAG,UACHD,GAAG,SACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,aAE7B,oCACE3C,GAAG,gBACHuC,GAAG,UACHE,GAAG,UACHD,GAAG,UACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,aAE7B,oCACE3C,GAAG,gBACHuC,GAAG,UACHE,GAAG,UACHD,GAAG,UACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,cAG/B,2BACE,0BACEjF,UAAU,kBACVuF,SAAS,UACTD,SAAS,UACTD,EAAE,+yIACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,+yIACFD,KAAK,UAEP,0BACEpF,UAAU,kBACVuF,SAAS,UACTD,SAAS,UACTD,EAAE,uKACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,uKACFD,KAAK,wBAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oDACFD,KAAK,wBAEP,0BAAMG,SAAS,UAAUD,SAAS,UAAUD,EAAE,mDAAmDD,KAAK,UACtG,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,4HACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,mIACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oGACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,mDACFD,KAAK,wBAEP,0BAAMG,SAAS,UAAUD,SAAS,UAAUD,EAAE,gDAAgDD,KAAK,UACnG,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oNACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,iNACFD,KAAK,eClHN,SAASM,EAAQ1C,GACtB,OACE,yCAASA,EAAT,CAAgBc,MAAM,KAAKC,OAAO,KAAKY,QAAQ,cAC7C,0BACES,KAAK,eACLC,EAAE,g2EACFrF,UAAU,oB,qBCCN2F,ECECC,EAAS,SAAC5C,GAAD,OACpB,yBAAKT,UAAU,WACZS,EAAM6C,KACL,oCACE,uBAAGrD,KAAK,4BAA4BsD,OAAO,SAASC,IAAI,uBACtD,kBAAC,EAAD,CAAMnD,QAASI,EAAMgD,eAEvB,yBAAKzD,UAAU,mBACb,yBAAKA,UAAU,YACb,gDAEF,uBAAGA,UAAU,cAAcC,KAAK,6BAA6BsD,OAAO,eAClE,kBAACJ,EAAD,MACA,oDAKN,kBAAC,EAAD,CAAa9C,QAASI,EAAMgD,gB,kBC7BnB,G,OAAA,IAA0B,qCCA1B,MAA0B,uCCA1B,MAA0B,uCCM5BC,EAAoB,kBAC/B,yBAAK1D,UAAU,eACb,yBACEnG,IAAK8J,EACLC,OAAM,UAAKD,EAAL,gBAAsBE,EAAtB,gBAAuCC,EAAvC,OACN5D,IAAI,UACJqB,MAAM,MACNC,OAAO,UCDAuC,G,OAA8B,SAAC,GAOrC,IANLC,EAMI,EANJA,QACAC,EAKI,EALJA,YACAC,EAII,EAJJA,mBACAC,EAGI,EAHJA,YACAnE,EAEI,EAFJA,UACAoE,EACI,EADJA,SAEIC,EAAqB,kBAErBJ,IACFI,GAAsB,iBAGpBF,IACFE,GAAsB,iBAGpBH,IACFG,GAAsB,yBAGxB,IAAIC,EAAiB,QAMrB,SAASC,IACHP,GACFA,IAIJ,OAVIhE,IACFsE,GAAkB,IAAMtE,GAUxB,yBAAKA,UAAWqE,EAAoBhE,QAASkE,GAC3C,yBAAKvE,UAAWsE,EAAgBjE,QAAS,SAAClG,GAAD,OAAOA,EAAEqK,oBAC/CR,GAAW,yBAAKhE,UAAU,QAAQK,QAASkE,IAC3CH,GAEFH,GAAe,kBAAC,EAAD,S,OCpDP,MAA0B,qCCA1B,MAA0B,mCCA1B,MAA0B,sDCA1B,MAA0B,sCCA1B,MAA0B,2C,iBXS7Bb,K,oBAAAA,E,gBAAAA,E,sBAAAA,E,+BAAAA,E,qDAAAA,M,KAQZ,IAAMlK,GAAU,CACduL,OAAK,mBACFrB,EAAiBsB,SAAW,YAD1B,cAEFtB,EAAiBuB,OAAS,UAFxB,cAGFvB,EAAiBwB,UAAY,aAH3B,cAIFxB,EAAiByB,eAAiB,kBAJhC,cAKFzB,EAAiB0B,0BAA4B,kBAL3C,GAQLC,KAAG,mBACA3B,EAAiBsB,SAAWM,GAD5B,cAEA5B,EAAiBuB,OAASM,GAF1B,cAGA7B,EAAiBwB,UAAYM,GAH7B,cAIA9B,EAAiByB,eAAiBM,GAJlC,cAKA/B,EAAiB0B,0BAA4BM,GAL7C,GAQH7B,QAAM,mBACHH,EAAiBsB,SAAW,wBADzB,cAEHtB,EAAiBuB,OAAS,+BAFvB,cAGHvB,EAAiBwB,UAAY,0BAH1B,cAIHxB,EAAiByB,eAAiB,8BAJ/B,cAKHzB,EAAiB0B,0BAA4B,kEAL1C,GAQNpT,UAAQ,mBACL0R,EAAiBsB,SAAWW,eAAaC,UADpC,cAELlC,EAAiBuB,OAASU,eAAaC,UAFlC,cAGLlC,EAAiBwB,UAAYS,eAAaT,WAHrC,cAILxB,EAAiByB,eAAiBQ,eAAaR,gBAJ1C,cAKLzB,EAAiB0B,0BAA4BO,eAAaC,UALrD,GAQRC,aAAW,mBACRnC,EAAiBsB,SAAW,8BADpB,cAERtB,EAAiBuB,OAAS,8BAFlB,cAGRvB,EAAiBwB,UAAY,4BAHrB,cAIRxB,EAAiByB,eAAiB,6BAJ1B,cAKRzB,EAAiB0B,0BAA4B,6BALrC,IAeAU,GAA4C,SAAC,GAA+B,IAA7BzL,EAA4B,EAA5BA,KAAM0L,EAAsB,EAAtBA,OAAQpF,EAAc,EAAdA,QAUxE,OACE,uBACEL,UAAS,uBAAkByF,EAAS,SAAW,YAC/CxF,KAAM/G,GAAQqK,OAAOxJ,GACrBsG,QAbJ,SAAqBhJ,IACJ,IAAXoO,IACFpO,EAAMqO,iBACFrF,GACFA,EAAQnH,GAAQxH,SAASqI,MAU3BwJ,OAAO,SACPC,IAAI,uBAEJ,yBAAKxD,UAAU,eACb,yBAAKE,IAAKnG,EAAMF,IAAKX,GAAQ6L,IAAIhL,GAAOiG,UAAWjG,KAErD,yBAAKiG,UAAU,eACb,4BAAK9G,GAAQuL,MAAM1K,KAErB,yBAAKiG,UAAU,qBACb,2BAAI9G,GAAQqM,YAAYxL,OYvFnB4L,I,OAAoB,kBAC/B,yBAAK3F,UAAU,SAASN,MAAO,CAAEkG,QAAS,UACvC,OCWQC,I,OAAgD,SAAC,GAMvD,IALLrP,EAKI,EALJA,KACAwI,EAII,EAJJA,QACA8G,EAGI,EAHJA,mBACAC,EAEI,EAFJA,QACAC,EACI,EADJA,SAEMC,GAAaH,GAAsB,IAAI9S,SAASqS,eAAaC,UACnE,SAASY,EAAYxU,IACfA,IAAa2T,eAAaC,UAAaW,IAIvCF,GACFA,EAAQrU,GASZ,IAAMyU,EAAUC,mBAAQ,WACtB,IAAM9G,EAA6B,GAqBnC,OApBI2G,IACEI,+BACF/G,EAAOgH,KAAKlD,EAAiB0B,2BACpByB,8BACTjH,EAAOgH,KAAKlD,EAAiBuB,SAIX,IAAlBrF,EAAOoB,QACTpB,EAAOgH,KAAKlD,EAAiBsB,WAG1BoB,GAAsB,IAAI9S,SAASqS,eAAaT,YACnDtF,EAAOgH,KAAKlD,EAAiBwB,YAG1BkB,GAAsB,IAAI9S,SAASqS,eAAaR,iBACnDvF,EAAOgH,KAAKlD,EAAiByB,gBAGxBvF,IACN,CAACwG,EAAoBG,IAExB,SAASO,EAAS7K,GAChB,OAAQA,GACN,KAAKyH,EAAiBsB,SACtB,KAAKtB,EAAiBuB,OACtB,KAAKvB,EAAiB0B,0BACpB,OAAOmB,EACT,QACE,OAAO,GAIb,OAAOzP,EACL,kBAAC,EAAD,CAAOwJ,UAAU,sBAAsBgE,QAASgC,EAAU9B,oBAAkB,EAACC,aAAW,GACtF,yBAAKnE,UAAU,kBACb,wBAAIA,UAAU,uBAAd,gCACChB,GACC,yBAAKgB,UAAU,yBACb,kBAAC,GAAD,QAGFhB,GACA,yBAAKgB,UAAU,yBACZmG,EAAQxF,KAAI,SAAChF,GAAD,OACX,kBAAC,GAAD,CAAcmF,IAAKnF,EAAQ5B,KAAM4B,EAAQ8J,OAAQe,EAAS7K,GAAS0E,QAAS6F,QAIlF,uBAAGlG,UAAU,oBAAb,4IACA,uBACEC,KAAK,sDACLsD,OAAO,SACPC,IAAI,uBAHN,WAQAxE,GACA,uBAAGgB,UAAU,gBAAgBC,KAAK,SAASI,QAnEjD,SAA0BlG,GACxBA,EAAEuL,iBACFQ,EAAY,QAiER,kBAKF,OCxGOO,GAAkB,SAAChG,GAAD,OAC7B,uCACEc,MAAM,MACNC,OAAO,KACPY,QAAQ,cACJ3B,EAJN,CAKET,UAAW,yBAA2BS,EAAMT,WAAa,IACzD6C,KAAK,OACLR,MAAM,+BAEN,uBAAGjH,OAAO,mBACR,0BACE4H,SAAS,UACTD,SAAS,UACTD,EAAE,ozIACFD,KAAK,WAGT,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,2MACFD,KAAK,wBAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,mDACFD,KAAK,wBAEP,0BAAMG,SAAS,UAAUD,SAAS,UAAUD,EAAE,oDAAoDD,KAAK,UACvG,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,4HACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oIACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oGACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,oDACFD,KAAK,wBAEP,0BAAMG,SAAS,UAAUD,SAAS,UAAUD,EAAE,oDAAoDD,KAAK,UACvG,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,yMACFD,KAAK,YAEP,0BACEG,SAAS,UACTD,SAAS,UACTD,EAAE,8MACFD,KAAK,YAEP,8BACE,4BACE9C,GAAG,YACHZ,EAAE,UACFyD,EAAE,UACFrB,MAAM,UACNC,OAAO,UACPkF,YAAY,iBACZC,0BAA0B,QAE1B,6BAASC,aAAa,IAAItH,OAAO,uBACjC,mCAAeuH,GAAG,cAAc9M,KAAK,SAAS+M,OAAO,8CACrD,8BAAUC,GAAG,aACb,mCAAehN,KAAK,SAAS+M,OAAO,8CACpC,6BAASE,KAAK,SAASC,IAAI,qBAAqB3H,OAAO,uBACvD,6BAAS0H,KAAK,SAASH,GAAG,gBAAgBI,IAAI,qBAAqB3H,OAAO,WAE5E,oCACES,GAAG,gBACHuC,GAAG,OACHE,GAAG,WACHD,GAAG,WACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,aAE7B,oCACE3C,GAAG,gBACHuC,GAAG,SACHE,GAAG,UACHD,GAAG,SACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,aAE7B,oCACE3C,GAAG,gBACHuC,GAAG,UACHE,GAAG,UACHD,GAAG,UACHE,GAAG,UACHS,cAAc,kBAEd,0BAAMR,UAAU,YAChB,0BAAMC,OAAO,IAAID,UAAU,gBCnHtBwE,GAAwB,kBACnC,yBAAKlH,UAAU,yBACb,kBAAC,GAAD,MACA,wG,SCSSmH,I,OAAoC,SAAC1G,GAChD,MAAoD2G,oBAAS,GAA7D,mBAAOC,EAAP,KAA2BC,EAA3B,KAOA,SAASpB,EAAYxU,GACnBwF,aAAM,qBAAsB,CAAES,cAAejG,GAAY,UACrD+O,EAAMsF,SACRtF,EAAMsF,QAAQrU,GAQlB,OACE,yBAAKsO,UAAU,aACb,kBAAC,GAAD,MACA,kBAAC,EAAD,MACA,yBAAKD,GAAG,kCACLU,EAAM8G,QACL,kBAAC,GAAD,MAEA,kBAAC,IAAMrF,SAAP,KACE,4BAAQlC,UAAU,2BAA2BK,QAzBvD,WACEnJ,aAAM,oBACNoQ,GAAsB,KAuBd,QAGA,4BAAQtH,UAAU,yBAAyBK,QAhBrD,WACE6F,EAAY,QAeJ,mBAMN,kBAAC,GAAD,CACE1P,KAAM6Q,EACNrI,QAASyB,EAAM8G,QACfxB,QAASG,EACTJ,mBAAoBrF,EAAMqF,mBAC1BE,SAAU,kBAAMsB,GAAsB,SCtDjCE,I,OAA4D,SAAC/G,GAAD,OACvE,yCAASA,EAAT,CAAgBT,UAAW,kBAAoBS,EAAMT,WAAa,SAGvDyH,GAA0D,SAAChH,GAAD,OACrE,yCAASA,EAAT,CAAgBT,UAAW,gBAAkBS,EAAMT,WAAa,Q,OCC3D,SAAS0H,GAAUjH,GACxB,MAAwB2G,oBAAS,GAAjC,mBAAO5Q,EAAP,KAAamR,EAAb,KACMC,EAAMC,iBAAuB,MAC7BrG,EAAS4E,mBAAQ,WACrB,OAAKwB,EAAIE,SAAYtR,EAIdoR,EAAIE,QAAQC,aAAe,GAHzB,IAIR,CAACvR,IAEAwJ,EAAY,gBAKhB,OAJIxJ,IACFwJ,GAAa,uBAIb,yBAAKA,UAAWA,GACd,yBAAKA,UAAU,sBAAsBK,QAAS,kBAAMsH,GAASnR,KAC1DiK,EAAMgE,OAET,yBAAKzE,UAAU,4BAA4BN,MAAO,CAAE8B,OAAO,GAAD,OAAKA,EAAL,QACxD,yBAAKoG,IAAKA,GAAMnH,EAAM2D,Y,WC1BjB4D,GAAiE,SAACvH,GAAD,OAC5E,yBAAKT,UAAU,uBACb,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,gDACA,kBAAC,GAAD,CACEyE,MACE,iDACoB,mCADpB,MAKF,oEACA,4BACE,4BACE,6DACA,2GAEF,4BACE,oEACA,wJAKF,4BACE,6DACA,4JAON,kBAAC,GAAD,CACEA,MACE,yCACY,qCADZ,4BAKF,sRAKA,8XAMA,uHACuF,IACrF,uBAAGxE,KAAK,uDAAuDsD,OAAO,SAASC,IAAI,cAAnF,uCAFF,MAQF,kBAAC,GAAD,CACEiB,MACE,uCACU,mCADV,MAKF,0SAGoD,IAClD,uBAAGxE,KAAK,uDAAuDsD,OAAO,SAASC,IAAI,cAAnF,YAJF,0BAUF,kBAAC,GAAD,CACEiB,MACE,uCACU,mCADV,MAKF,8ZAOF,kBAAC,GAAD,CACEA,MACE,2CACc,0CADd,MAKF,4HACA,uDAC4B,IAC1B,uBAAGxE,KAAK,kCAAkCsD,OAAO,SAASC,IAAI,cAA9D,2BAFF,KAOA,6DACA,4BACE,4BACE,8JAKF,4BACE,sGAEF,4BACE,kFAEF,4BACE,4IC5HP,SAASyE,GAAOxH,GACrB,OACE,yCAASA,EAAT,CAAgBc,MAAM,KAAKC,OAAO,KAAKY,QAAQ,cAC7C,0BACES,KAAK,eACLC,EAAE,0uIACFrF,UAAU,oBCNX,SAASyK,GAAOzH,GACrB,OACE,yCAASA,EAAT,CAAgBc,MAAM,KAAKC,OAAO,KAAKY,QAAQ,cAC7C,0BACES,KAAK,eACLC,EAAE,qjIACFrF,UAAU,oBCNX,SAAS0K,GAAQ1H,GACtB,OACE,yCAASA,EAAT,CAAgBc,MAAM,KAAKC,OAAO,KAAKY,QAAQ,cAC7C,0BACES,KAAK,eACLC,EAAE,wvCACFrF,UAAU,oB,qBCEZ2K,GAAOC,KAAKC,KAAI,IAAIC,MAAOC,cAAe,MAEnCC,GAAY,WACvB,IAAIpQ,EAAWN,aAAe,IAE9B,OACE,4BAAQiI,UAAU,cAChB,kBAAC,GAAD,KACE,6BACE,6BACE,8CAEF,6BACE,uBAAGA,UAAU,oBAAoBC,KAAK,6BAA6BsD,OAAO,eACxE,kBAACJ,EAAD,MADF,uBAKJ,6BACE,6BACE,0CAEF,6BACE,uBAAGnD,UAAU,kBAAkBC,KAAK,yCAAyCsD,OAAO,eAClF,kBAAC0E,GAAD,OAEF,uBAAGjI,UAAU,kBAAkBC,KAAK,iCAAiCsD,OAAO,eAC1E,kBAAC2E,GAAD,OAEF,uBAAGlI,UAAU,kBAAkBC,KAAK,mCAAmCsD,OAAO,eAC5E,kBAAC4E,GAAD,UAKR,kBAAC,GAAD,KACE,uBAAGnI,UAAU,YAAYyE,MAAO,aAAenG,KAAKC,UAAUlG,EAAU,KAAM,IAA9E,QACK+P,GADL,oB,kBCzCKM,I,OAAsE,SAACjI,GAAD,OACjF,yBAAKV,GAAG,sBAAsBC,UAAU,oBACtC,yBAAKA,UAAU,sBAAsBK,QAASI,EAAMuD,UACpD,yBAAKhE,UAAU,eAAf,+HAGK,IACD,uBAAGC,KAAK,iCAAiCuD,IAAI,sBAAsBD,OAAO,UAA1E,YACC,OACD,uBAAGtD,KAAK,6CAA6CuD,IAAI,sBAAsBD,OAAO,UAAtF,WANJ,QCoBW3B,gBArBS,SAAC5F,GACvB,MAAO,CACL/C,OAAQ+C,EAAM/C,OAAOA,WAIE,SAACjI,EAA4BgL,GACtD,MAAO,CACLgI,QAAS,kBAAMhT,EAASC,YAAU,WAavB2Q,EATgD,SAACnB,GAC9D,OAAQA,EAAMxH,QACZ,KAAK/H,IAAWC,gBACd,OAAO,kBAAC,GAAD,CAAoB6S,QAASvD,EAAMuD,UAC5C,QACE,OAAO,SCkDEpC,gBA3DS,SAAC5F,GAA2C,IAAD,EAE3D2M,EAAkB,IAAIC,IAAI,CAACvD,eAAaC,SAAUD,eAAaT,UAAWS,eAAaR,iBACvFiB,EAAqB+C,aAAWC,wBAAwB1N,QAAO,SAAC1J,GAAD,OAAciX,EAAgB5T,IAAIrD,MACvG,MAAO,CACLqX,MAAK,UAAE/M,EAAME,QAAQ0C,mBAAhB,aAAE,EAA2BoK,YAClClD,qBACAmD,YAAajN,EAAMlJ,OAAOsL,MAC1B8K,cAAelN,EAAM+C,SAASX,UAIP,SAACpN,GAAD,MAAoB,CAC7C+U,QAAS,SAAC3T,GACRD,YAAaC,OA6CFwP,EA9BuE,SAACnB,GACrF,IAAMzB,EACJyB,EAAMsI,QAAUI,cAAWC,mBAC3B3I,EAAMsI,QAAUI,cAAWE,iBAC3B5I,EAAMsI,QAAUI,cAAWG,UAC1B7I,EAAMwI,YAET,OAAIxI,EAAMsI,QAAUI,cAAWI,UACtB,kBAAC,IAAMrH,SAAP,MAIP,kBAAC,IAAMA,SAAP,KACE,yBAAKlC,UAAW,4BACd,kBAAC,GAAD,MAEA,kBAAC,EAAD,CAAQsD,MAAM,IACd,8BACE,kBAAC,GAAD,CAAWtD,UAAU,mBACnB,kBAAC,GAAD,CAAU8F,mBAAoBrF,EAAMqF,mBAAoBC,QAAStF,EAAMsF,QAASwB,QAASvI,MAK7F,kBAAC,GAAD,MACA,kBAAC,GAAD,W,oCC9DKwK,GAAb,+MACUC,OAAkC,KAD5C,wDAGE,WACEC,KAAKC,iBAJT,gCAOE,WACED,KAAKC,iBART,0BAWE,WACOD,KAAKD,SAGTC,KAAKjJ,MAAMmJ,KAA6BF,KAAKD,OAAOG,OAAOxW,OAAM,SAAC+G,OAAhDuP,KAAKD,OAAOI,WAfnC,oBAkBE,WAAU,IAAD,OACP,OACE,2BAAOjC,IAAK,SAACkC,GAAD,OAAY,EAAKL,OAASK,GAAQC,UAAQ,EAACC,MAAI,GACzD,4BAAQnQ,IAAK6P,KAAKjJ,MAAMvJ,MAAO6C,KAAK,oBArB5C,GAA2BkQ,IAAMC,W,OCejC,IAiBetI,gBA/Bf,SAAyB5F,GACvB,MAAO,CACLmO,gBAAiBnO,EAAM+C,SAASxH,QAChC9E,QAASuJ,EAAMvJ,MAAMA,MACrB2X,OAAO,KA2BIxI,EAjBiB,SAACnB,GAC/B,OAAIA,EAAMhO,MACD,kBAAC,EAAD,MAGLgO,EAAM0J,gBACD,kBAAC,IAAMjI,SAAP,MAIP,6BACGzB,EAAM2J,OAAS,kBAAC,GAAD,CAAOlT,MAAM,aAAa0S,MAAM,IAChD,kBAAC,GAAD,UCzBNpN,cACAc,cAEA+M,SACE,gBAAC,aAAD,KACE,gBAAC,IAAD,CAAUtZ,MAAOA,KACf,gBAAC,GAAD,QAGJ0D,SAASe,eAAe,SACxB,WACEgK,IACA5O,kB,0LCfS0Z,EAAa,IAAIC,IAAoB,CAChD,CAAC,EAAG,kEACJ,CAAC,EAAG,oEAGC,SAAejY,EAAtB,oC,4CAAO,WACLyH,EACA9H,GAFK,iBAAAN,EAAA,yDAIQ,OAAToI,EAJC,mBAKGyQ,EAAMF,EAAWtV,IAAI/C,GALxB,sBAMa,IAAIS,MAAM,6BAA+BT,GANtD,gCAOI,CACLP,SAAU,IAAI+Y,oBAAkBD,GAChCvY,YATC,uBAagB4W,aAAWjH,QAAQ7H,EAAM9H,GAbzC,cAaCqN,EAbD,yBAiBE,CAAE5N,SAAU4N,EAAO5N,SAAUO,QAASqN,EAAOrN,UAjB/C,4C,sBAoBA,SAAewF,IAAtB,+B,4CAAO,sBAAA9F,EAAA,+EAEUkX,aAAW6B,wBAFrB,iGAII,MAJJ,yD,sBAQA,SAAevX,IAAtB,+B,4CAAO,sBAAAxB,EAAA,+EAEUkX,aAAW1V,aAFrB,+EAIHE,YAA2B,EAAD,IAJvB,6E","file":"static/js/main.53c342eb.chunk.js","sourcesContent":["import { detect } from \"detect-browser\"\nimport { setBanner } from \"../state/actions\"\nimport { BannerType, store } from \"../state/redux\"\nimport { callOnce } from \"../utils/callOnce\"\n\nexport const initializeBrowserRecommendation = callOnce(() => {\n if (!isRecommendedBrowser()) {\n store.dispatch(setBanner(BannerType.NOT_RECOMMENDED))\n }\n})\n\nexport const isRecommendedBrowser = callOnce(() => {\n const detected = detect(navigator.userAgent)\n\n if (!detected) {\n return false\n }\n\n switch (detected.name) {\n case 'chrome':\n case 'chromium-webview':\n case 'edge-chromium':\n case 'firefox':\n return true\n\n default:\n return false\n }\n})\n","import { disconnect, getEthereumProvider, restoreConnection } from '../eth/provider'\nimport { internalTrackEvent, identifyUser, trackError, disableAnalytics } from '../integration/analytics'\nimport { injectKernel } from './injector'\nimport {\n setKernelAccountState,\n setKernelError,\n setRendererLoading,\n setKernelLoaded,\n setRendererVisible\n} from '../state/actions'\nimport { ErrorType, store } from '../state/redux'\nimport { ProviderType } from 'decentraland-connect'\nimport { FeatureFlagsResult, fetchFlags } from '@dcl/feature-flags'\nimport { resolveUrlFromUrn } from '@dcl/urn-resolver'\nimport { defaultWebsiteErrorTracker, track } from '../utils/tracking'\nimport { injectVersions } from '../utils/rolloutVersions'\nimport { KernelResult } from '@dcl/kernel-interface'\nimport { ENV, NETWORK } from '../integration/queryParamsConfig'\nimport { RequestManager } from 'eth-connect'\nimport { errorToString } from '../utils/errorToString'\n\n// this function exists because decentraland-connect seems to return\n// invalid or cached values in chainId, ignoring network changes in the\n// real provider.\nasync function getChainIdFromProvider(provider: any) {\n const rm = new RequestManager(provider)\n return parseInt(await rm.net_version(), 10)\n}\n\nfunction getWantedChainId() {\n let chainId = 1 // mainnet\n\n if (NETWORK === 'ropsten') {\n chainId = 3\n }\n\n return chainId\n}\n\nexport async function authenticate(providerType: ProviderType | null) {\n try {\n const wantedChainId = getWantedChainId()\n\n const { provider, chainId: providerChainId } = await getEthereumProvider(providerType, wantedChainId)\n\n if (providerChainId !== wantedChainId) {\n store.dispatch(\n setKernelError({\n error: new Error(\n `Network mismatch NETWORK url param is not equal to the provided by Ethereum Provider (wanted: ${wantedChainId} actual: ${providerChainId}, E01)`\n ),\n code: ErrorType.NET_MISMATCH\n })\n )\n return\n }\n\n {\n const providerChainId = await getChainIdFromProvider(provider)\n if (providerChainId !== wantedChainId) {\n store.dispatch(\n setKernelError({\n error: new Error(\n `Network mismatch NETWORK url param is not equal to the provided by Ethereum Provider (wanted: ${wantedChainId} actual: ${providerChainId}, E02)`\n ),\n code: ErrorType.NET_MISMATCH\n })\n )\n return\n }\n }\n\n const kernel = store.getState().kernel.kernel\n\n if (!kernel) throw new Error('Kernel did not load yet')\n\n kernel.authenticate(provider, providerType == null /* isGuest */)\n } catch (err) {\n if (\n err &&\n typeof err === 'object' &&\n ['Fortmatic: User denied account access.', 'The user rejected the request.'].includes(err.message)\n ) {\n return\n }\n\n if (\n err &&\n typeof err === 'object' &&\n typeof err.message == 'string' &&\n (err.message.includes('Already processing eth_requestAccounts.') || err.message.includes('Please wait.'))\n ) {\n // https://github.com/decentraland/explorer-website/issues/46\n store.dispatch(\n setKernelError({\n error: new Error('Metamask is locked, please open the extension before continuing.'),\n code: ErrorType.METAMASK_LOCKED\n })\n )\n return\n }\n\n // If something went wrong, disconnect to prevent future errors next reload\n disconnect().catch(defaultWebsiteErrorTracker)\n\n defaultWebsiteErrorTracker(err)\n\n store.dispatch(\n setKernelError({\n error: err\n })\n )\n }\n}\n\ntype RolloutRecord = {\n version: string\n percentage: number\n prefix: string\n}\n\ndeclare var globalThis: {\n KERNEL_BASE_URL?: string\n RENDERER_BASE_URL?: string\n ROLLOUTS?: Record<string, RolloutRecord>\n}\n\nglobalThis.KERNEL_BASE_URL = process.env.REACT_APP_KERNEL_BASE_URL\nglobalThis.RENDERER_BASE_URL = process.env.REACT_APP_RENDERER_BASE_URL\n\nasync function resolveBaseUrl(urn: string): Promise<string> {\n if (urn.startsWith('urn:')) {\n const t = await resolveUrlFromUrn(urn)\n if (t) {\n return (t + '/').replace(/(\\/)+$/, '/')\n }\n throw new Error('Cannot resolve content for URN ' + urn)\n }\n return (new URL(`${urn}`, global.location.toString()).toString() + '/').replace(/(\\/)+$/, '/')\n}\n\nfunction cdnFromRollout(rollout: RolloutRecord): string {\n return cdnFromPrefixVersion(rollout.prefix, rollout.version)\n}\n\nfunction cdnFromPrefixVersion(prefix: string, version: string): string {\n return `https://cdn.decentraland.org/${prefix}/${version}`\n}\n\nasync function getVersions(flags: FeatureFlagsResult) {\n const qs = new URLSearchParams(document.location.search)\n\n // 1. load from ROLLOUTS + CDN\n if (globalThis.ROLLOUTS && globalThis.ROLLOUTS['@dcl/kernel']) {\n globalThis.KERNEL_BASE_URL = cdnFromRollout(globalThis.ROLLOUTS['@dcl/kernel'])\n }\n if (globalThis.ROLLOUTS && globalThis.ROLLOUTS['@dcl/unity-renderer']) {\n globalThis.RENDERER_BASE_URL = cdnFromRollout(globalThis.ROLLOUTS['@dcl/unity-renderer'])\n }\n\n // 2. load from URN/URL PARAM\n if (qs.has('renderer')) {\n globalThis.RENDERER_BASE_URL = qs.get('renderer')!\n }\n if (qs.has('kernel-urn')) {\n globalThis.KERNEL_BASE_URL = qs.get('kernel-urn')!\n }\n\n // 3. load hot-branch\n if (qs.has('renderer-branch')) {\n globalThis.RENDERER_BASE_URL = `https://renderer-artifacts.decentraland.org/branch/${qs.get('renderer-branch')!}`\n }\n if (qs.has('kernel-branch')) {\n globalThis.KERNEL_BASE_URL = `https://sdk-team-cdn.decentraland.org/@dcl/kernel/branch/${qs.get('kernel-branch')!}`\n }\n\n // 4. specific cdn versions\n if (qs.has('renderer-version')) {\n globalThis.RENDERER_BASE_URL = cdnFromPrefixVersion('@dcl/unity-renderer', qs.get('renderer-version')!)\n }\n if (qs.has('kernel-version')) {\n globalThis.KERNEL_BASE_URL = cdnFromPrefixVersion('@dcl/kernel', qs.get('kernel-version')!)\n }\n\n // default fallback\n if (!globalThis.KERNEL_BASE_URL) {\n if (flags.variants['explorer-rollout-kernel-version']) {\n const version = flags.variants['explorer-rollout-kernel-version'].name\n globalThis.KERNEL_BASE_URL = `urn:decentraland:off-chain:kernel-cdn:${version}`\n }\n }\n\n if (!globalThis.RENDERER_BASE_URL) {\n if (flags.variants['explorer-rollout-unity-renderer-version']) {\n const version = flags.variants['explorer-rollout-unity-renderer-version'].name\n globalThis.RENDERER_BASE_URL = `urn:decentraland:off-chain:unity-renderer-cdn:${version}`\n }\n }\n}\n\nasync function initKernel() {\n const container = document.getElementById('gameContainer') as HTMLDivElement\n\n const flags = await fetchFlags({ applicationName: 'explorer' })\n\n await getVersions(flags)\n\n const kernel = await injectKernel({\n kernelOptions: {\n baseUrl: await resolveBaseUrl(globalThis.KERNEL_BASE_URL || `urn:decentraland:off-chain:kernel-cdn:latest`),\n configurations: {}\n },\n rendererOptions: {\n container,\n baseUrl: await resolveBaseUrl(\n globalThis.RENDERER_BASE_URL || `urn:decentraland:off-chain:unity-renderer-cdn:latest`\n )\n }\n })\n\n kernel.on('trackingEvent', ({ eventName, eventData }) => {\n internalTrackEvent(eventName, { ...eventData, context: eventData.context || 'kernel' })\n })\n\n kernel.on('openUrl', ({ url }) => {\n const newWindow = window.open(url, '_blank', 'noopener,noreferrer')\n if (newWindow != null) newWindow.opener = null\n })\n\n let isGuest = true\n let lastIdentity: string | null = null\n let email: string | undefined = undefined\n\n function identify() {\n if (lastIdentity) {\n identifyUser(lastIdentity, isGuest, email)\n }\n }\n\n kernel.on('accountState', (account) => {\n if (account.identity) {\n isGuest = !!account.isGuest\n lastIdentity = account.identity.address\n identify()\n }\n\n store.dispatch(setKernelAccountState(account))\n })\n\n kernel.on('signUp', (data) => {\n email = data.email\n identify()\n })\n\n // all errors are also sent as trackingEvent\n kernel.on('error', (error) => {\n store.dispatch(setKernelError(error))\n\n // TODO: move this into a saga for setKernelError\n trackError(error.error, { context: 'kernel', ...(error.extra || {}) })\n\n // trackError only sends information to rollbar, we must get statistical information of errors in segment\n // via this track() function\n track('explorer_kernel_error', {\n // this string concatenation exists on purpose, it is a safe way to do (error).toString in case (error) is nullish\n error: errorToString(error)\n })\n\n // since setKernelError(error) produces an unrecoverable black screen of death, we disable analytics\n disableAnalytics()\n })\n\n kernel.on('rendererVisible', (event) => {\n store.dispatch(setRendererVisible(event.visible))\n\n // TODO: move this into a saga for setRendererVisible\n // if the kernel and renderer decides to load, we cleanup the error window\n if (event.visible) {\n track('enable_renderer', {})\n store.dispatch(setKernelError(null))\n }\n })\n\n kernel.on('loadingProgress', (event) => {\n store.dispatch(setRendererLoading(event))\n })\n\n kernel.on('logout', () => {\n disconnect().catch(defaultWebsiteErrorTracker)\n })\n\n return kernel\n}\n\nasync function initLogin(kernel: KernelResult) {\n const provider = await restoreConnection()\n if (provider && provider.account) {\n const providerChainId = await getChainIdFromProvider(provider.provider)\n\n // BUG OF decentraland-connect:\n // provider.chainId DOES NOT reflect the selected chain in the real provider\n const storedSession = await kernel.hasStoredSession(provider.account, providerChainId /* provider.chainId */)\n\n if (storedSession) {\n track('automatic_relogin', { provider_type: provider.providerType })\n authenticate(provider.providerType).catch(defaultWebsiteErrorTracker)\n }\n }\n}\n\nexport function startKernel() {\n if (NETWORK && NETWORK !== 'mainnet' && NETWORK !== 'ropsten') {\n store.dispatch(\n setKernelError({\n error: new Error(`Invalid NETWORK url param, valid options are 'ropsten' and 'mainnet'`),\n code: ErrorType.FATAL\n })\n )\n return\n }\n\n if (ENV) {\n store.dispatch(\n setKernelError({\n error: new Error(\n `The \"ENV\" URL parameter is no longer supported. Please use NETWORK=ropsten in the cases where ENV=zone was used`\n ),\n code: ErrorType.FATAL\n })\n )\n return\n }\n\n track('initialize_versions', injectVersions({}))\n\n initKernel()\n .then((kernel) => {\n store.dispatch(setKernelLoaded(kernel))\n\n return initLogin(kernel)\n })\n .catch((error) => {\n store.dispatch(setKernelError({ error }))\n defaultWebsiteErrorTracker(error)\n })\n}\n","// this function injects rollout versions to records based on the rollouts\n// {a: asd} -> {a: asd, _site: 1.0.0, @dcl/unity-renderer: 6.0.0}\nexport function injectVersions<T extends Record<string, any>>(versions: T): T & Record<string, string> {\n var rolloutsInfo = (globalThis as any).ROLLOUTS || {}\n\n for (let component in rolloutsInfo) {\n if (component === '_site' || component.startsWith('@dcl')) {\n if (rolloutsInfo[component] && rolloutsInfo[component].version) {\n versions[component as keyof T] = rolloutsInfo[component].version\n }\n }\n }\n\n return versions\n}\n","import { action } from 'typesafe-actions'\nimport {\n IEthereumProvider,\n KernelAccountState,\n KernelError,\n KernelLoadingProgress,\n KernelResult\n} from '@dcl/kernel-interface'\nimport { BannerType } from './redux'\n\nexport const KERNEL_AUTHENTICATE = '[Authenticate]'\nexport const SET_KERNEL_ACCOUNT_STATE = 'Set kernel account state'\nexport const SET_KERNEL_ERROR = 'Set kernel error'\nexport const SET_KERNEL_LOADED = 'Set kernel loaded'\nexport const SET_RENDERER_LOADING = 'Set renderer loading'\nexport const SET_RENDERER_VISIBLE = 'Set renderer visible'\nexport const SET_BANNER = 'Set banenr'\n\nexport const setKernelAccountState = (accountState: KernelAccountState) =>\n action(SET_KERNEL_ACCOUNT_STATE, accountState)\nexport const setKernelError = (error: KernelError | null) => action(SET_KERNEL_ERROR, error)\nexport const setKernelLoaded = (kernel: KernelResult) => action(SET_KERNEL_LOADED, kernel)\nexport const setRendererLoading = (progressEvent: KernelLoadingProgress) => action(SET_RENDERER_LOADING, progressEvent)\nexport const setRendererVisible = (visible: boolean) => action(SET_RENDERER_VISIBLE, { visible })\nexport const setBanner = (banner: BannerType | null) => action(SET_BANNER, { banner })\n\nexport const authenticate = (provider: IEthereumProvider, isGuest: boolean) =>\n action(KERNEL_AUTHENTICATE, { provider, isGuest })\n","import future from 'fp-future'\nimport { KernelOptions, KernelResult, IDecentralandKernel } from '@dcl/kernel-interface'\n\nexport async function injectKernel(options: KernelOptions): Promise<KernelResult> {\n const kernelUrl = new URL(`index.js?cors`, options.kernelOptions.baseUrl).toString()\n\n await injectScript(kernelUrl)\n\n console.log('Kernel: ', kernelUrl)\n\n const DecentralandKernel: IDecentralandKernel = (globalThis as any).DecentralandKernel\n\n if (!DecentralandKernel) throw new Error('DecentralandKernel could not be loaded')\n\n return await DecentralandKernel.initKernel(options)\n}\n\nasync function injectScript(url: string) {\n const theFuture = future<Event>()\n const theScript = document.createElement('script')\n const persistMessage =\n 'If this error persists, please try emptying the cache of your browser and reloading this page.'\n theScript.src = url\n theScript.async = true\n theScript.type = 'application/javascript'\n theScript.crossOrigin = 'anonymous'\n theScript.addEventListener('load', theFuture.resolve)\n theScript.addEventListener('error', (e) =>\n theFuture.reject(e.error || new Error(`The script ${url} failed to load.\\n${persistMessage}`))\n )\n theScript.addEventListener('abort', () =>\n theFuture.reject(\n new Error(\n `Script loading aborted: ${url}.\\nThis may be caused because you manually stopped the loading or because of a network error.\\n${persistMessage}`\n )\n )\n )\n document.body.appendChild(theScript)\n return theFuture\n}\n","import { TrackingEvents } from '../trackingEvents'\nimport { internalTrackEvent, trackError } from '../integration/analytics'\nimport { errorToString } from './errorToString'\nimport { callOnce } from './callOnce'\nimport { isRecommendedBrowser } from '../integration/browser'\nimport { RENDERER_TYPE } from '../integration/queryParamsConfig'\n\nconst ethereum = window.ethereum as any\n\nconst getWalletName = callOnce(() => {\n if (!ethereum) {\n return 'none'\n } else if (ethereum?.isMetaMask) {\n return 'metamask'\n } else if (ethereum?.isDapper) {\n return 'dapper'\n } else if (ethereum?.isCucumber) {\n return 'cucumber'\n } else if (ethereum?.isTrust) {\n return 'trust'\n } else if (ethereum?.isToshi) {\n return 'coinbase'\n } else if (ethereum?.isGoWallet) {\n return 'goWallet'\n } else if (ethereum?.isAlphaWallet) {\n return 'alphaWallet'\n } else if (ethereum?.isStatus) {\n return 'status'\n } else {\n return 'other'\n }\n})\n\nconst getWalletProps = callOnce(() => {\n return Object.keys(ethereum || {})\n .filter((prop) => prop.startsWith('is') && typeof ethereum[prop] === 'boolean')\n .join(',')\n})\n\nconst environmentType = { rendererType: RENDERER_TYPE }\n\n/**\n * The only function used by this react app to track its own events.\n * Please do not use internalTrackEvent directly, it is meant to be used by kernel\n * and this function adds relevant information and proper types.\n */\nexport function track<E extends keyof TrackingEvents>(event: E, properties?: TrackingEvents[E]) {\n const wallet = getWalletName()\n const walletProps = getWalletProps()\n const recommendedBrowser = isRecommendedBrowser()\n internalTrackEvent(event, { wallet, walletProps, recommendedBrowser, ...properties, ...environmentType })\n}\n\n\n/**\n * Default \"catch\" for promises and to print errors in the console.\n */\nexport function defaultWebsiteErrorTracker(error: any) {\n console.error(error)\n trackError(error, { context: 'explorer-website' })\n track('explorer_website_error', {\n // this string concatenation exists on purpose, it is a safe way to do (error).toString in case (error) is nullish\n error: errorToString(error)\n })\n}\n","const qs = new URLSearchParams(document.location.search || '')\n\nexport const DEBUG_ANALYTICS = qs.has('DEBUG_ANALYTICS')\nexport const ENV = qs.get('ENV')\nexport const NETWORK = qs.get('NETWORK')\nexport const RENDERER_TYPE = qs.get('ws') ? 'native' : 'web'","import { SessionTraits } from '../trackingEvents'\nimport { StoreType } from './redux'\n\n// This function is used for every rollbar and segment events.\nexport function getRequiredAnalyticsContext(state: StoreType): SessionTraits {\n return {\n sessionId: state.session.sessionId\n }\n}\n","import { store } from '../state/redux'\nimport { getRequiredAnalyticsContext } from '../state/selectors'\nimport { errorToString } from '../utils/errorToString'\nimport { track } from '../utils/tracking'\nimport { DEBUG_ANALYTICS, RENDERER_TYPE } from './queryParamsConfig'\n\nlet analyticsDisabled = false\n\nenum AnalyticsAccount {\n PRD = '1plAT9a2wOOgbPCrTaU8rgGUMzgUTJtU',\n DEV = 'a4h4BC4dL1v7FhIQKKuPHEdZIiNRDVhc'\n}\n\nconst authFlags = {\n isAuthenticated: false,\n isGuest: false,\n afterFatalError: false\n}\n\n// TODO fill with segment keys and integrate identity server\nexport function configureSegment() {\n // all decentraland.org domains are considered PRD\n if (globalThis.location.host.endsWith('.decentraland.org')) {\n return initialize(AnalyticsAccount.PRD)\n }\n\n return initialize(AnalyticsAccount.DEV)\n}\n\nfunction injectTrackingMetadata(payload: Record<string, any>): void {\n const qs = new URLSearchParams(globalThis.location.search || '')\n\n // inject realm\n if (qs.has('realm')) {\n payload.realm = qs.get('realm')\n }\n\n // inject position\n if (qs.has('position')) {\n payload.position = qs.get('position')\n }\n\n payload.dcl_is_authenticated = authFlags.isAuthenticated\n payload.dcl_is_guest = authFlags.isGuest\n payload.dcl_disabled_analytics = authFlags.afterFatalError\n payload.dcl_renderer_type = RENDERER_TYPE\n}\n\nexport function configureRollbar() {\n function rollbarTransformer(payload: Record<string, any>): void {\n injectTrackingMetadata(payload)\n }\n\n if ((window as any).Rollbar) {\n ;(window as any).Rollbar.configure({ transform: rollbarTransformer })\n }\n}\n\n// once this function is called, no more errors will be tracked neither reported to rollbar\nexport function disableAnalytics() {\n track('disable_analytics', {})\n\n authFlags.afterFatalError = true\n analyticsDisabled = true\n\n if ((window as any).Rollbar) {\n ;(window as any).Rollbar.configure({ enabled: false })\n }\n\n if (DEBUG_ANALYTICS) {\n console.info('explorer-website: DEBUG_ANALYTICS disableAnalytics')\n }\n}\n\nexport function trackError(error: string | Error, payload?: Record<string, any>) {\n if (analyticsDisabled) return\n\n if (DEBUG_ANALYTICS) {\n console.info('explorer-website: DEBUG_ANALYTICS trackCriticalError ', error)\n }\n if (!(window as any).Rollbar) return\n\n if (typeof error === 'string') {\n ;(window as any).Rollbar.critical(errorToString(error), payload)\n } else if (error && error instanceof Error) {\n ;(window as any).Rollbar.critical(\n errorToString(error),\n Object.assign(error, payload, { fullErrorStack: error.toString() })\n )\n } else {\n ;(window as any).Rollbar.critical(errorToString(error), payload)\n }\n}\n\nexport function identifyUser(address: string, isGuest: boolean, email?: string) {\n authFlags.isGuest = isGuest\n authFlags.isAuthenticated = !!address\n\n if (window.analytics) {\n const userTraits = {\n sessionId: getRequiredAnalyticsContext(store.getState()).sessionId,\n email\n }\n\n if (DEBUG_ANALYTICS) {\n console.info('explorer-website: DEBUG_ANALYTICS identifyUser', address, userTraits)\n }\n\n if (isGuest) {\n window.analytics.identify(userTraits)\n } else {\n window.analytics.identify(address, userTraits)\n }\n }\n}\n\nasync function initialize(segmentKey: string): Promise<void> {\n if (window.analytics.load) {\n // loading client for the first time\n window.analytics.load(segmentKey)\n window.analytics.page()\n window.analytics.ready(() => {\n window.analytics.timeout(1000)\n })\n }\n}\n\n// please use src/utils \"track\" function.\nexport function internalTrackEvent(eventName: string, eventData: Record<string, any>) {\n if (!window.analytics || analyticsDisabled) {\n return\n }\n\n const data = { ...eventData, ...getRequiredAnalyticsContext(store.getState()) }\n\n injectTrackingMetadata(data)\n\n if (DEBUG_ANALYTICS) {\n console.info('explorer-website: DEBUG_ANALYTICS trackEvent', eventName, data)\n }\n\n window.analytics.track(eventName, data)\n}\n","\nexport function errorToString(error: any) {\n if (typeof error === 'object') {\n if (error.message) return error.message\n if (error.toString() === '[object Object]') {\n return JSON.stringify(error)\n }\n return error.toString()\n }\n if (typeof error === 'string') return error\n return Object.prototype.toString.call(error)\n}","import { AnyAction } from 'redux'\nimport { KernelAccountState, KernelResult, KernelError } from '@dcl/kernel-interface'\nimport {\n SET_BANNER,\n SET_KERNEL_ACCOUNT_STATE,\n SET_KERNEL_ERROR,\n SET_KERNEL_LOADED,\n SET_RENDERER_LOADING,\n SET_RENDERER_VISIBLE\n} from './actions'\nimport { KernelState, SessionState, RendererState, ErrorState, BannerState } from './redux'\nimport { v4 } from 'uuid'\nimport { errorToString } from '../utils/errorToString'\n\nconst defaultSession: SessionState = {\n sessionId: v4(),\n kernelState: null\n}\n\nexport function kernelReducer(state: KernelState | undefined, action: AnyAction): KernelState {\n if (action.type === SET_KERNEL_LOADED) {\n return { ...state, ready: true, kernel: action.payload as KernelResult }\n }\n return (\n state || {\n ready: false,\n kernel: null\n }\n )\n}\n\nexport function sessionReducer(state: SessionState | undefined, action: AnyAction): SessionState {\n if (!state) return defaultSession\n\n if (action.type === SET_KERNEL_ACCOUNT_STATE) {\n return { ...state, kernelState: action.payload as KernelAccountState }\n }\n\n return state\n}\n\nexport function rendererReducer(state: RendererState | undefined, action: AnyAction): RendererState {\n if (state && action.type === SET_RENDERER_VISIBLE) {\n return { ...state, visible: action.payload.visible }\n } else if (state && action.type === SET_RENDERER_LOADING) {\n return { ...state, loading: action.payload }\n }\n return (\n state || {\n ready: false,\n version: 'latest',\n visible: false,\n loading: null\n }\n )\n}\n\nexport function errorReducer(state: ErrorState | undefined, action: AnyAction): ErrorState {\n if (action.type === SET_KERNEL_ERROR) {\n const payload: KernelError = action.payload\n\n if (!payload) {\n return { error: null }\n }\n\n return {\n error: {\n details: errorToString(payload.error),\n type: payload.code as any\n }\n }\n }\n\n return state || { error: null }\n}\n\nexport function bannerReducer(state: BannerState | undefined, action: AnyAction): BannerState {\n if (action.type === SET_BANNER) {\n return { banner: action.payload.banner }\n }\n\n return state || { banner: null }\n}\n","import { combineReducers, createStore } from 'redux'\nimport { KernelAccountState, KernelResult, KernelLoadingProgress } from '@dcl/kernel-interface'\nimport { kernelReducer, sessionReducer, rendererReducer, errorReducer, bannerReducer } from './reducers'\nimport { composeWithDevTools } from 'redux-devtools-extension'\n\nexport type KernelState = {\n ready: boolean\n kernel: KernelResult | null\n}\n\nexport type RendererState = {\n ready: boolean\n version: string\n visible: boolean\n loading: KernelLoadingProgress | null\n}\n\nexport type SessionState = {\n // It is important that this ID is autogenerated in every user session (reload)\n // and it _never_ changes during the session\n sessionId: string\n kernelState: KernelAccountState | null\n}\n\nexport type ErrorState = {\n error: {\n type: string | ErrorType\n details: string\n } | null\n}\n\nexport enum ErrorType {\n LOADING = 'loading',\n FATAL = 'fatal',\n COMMS = 'comms',\n NEW_LOGIN = 'newlogin',\n NOT_MOBILE = 'nomobile',\n NOT_SUPPORTED = 'notsupported',\n NET_MISMATCH = 'networkmismatch',\n AVATAR_ERROR = 'avatarerror',\n METAMASK_LOCKED = 'METAMASK_LOCKED'\n}\n\nexport type BannerState = {\n banner: BannerType | null\n}\n\nexport enum BannerType {\n NOT_RECOMMENDED = 'notrecommended',\n}\n\nexport type StoreType = {\n kernel: KernelState\n renderer: RendererState\n session: SessionState\n error: ErrorState\n banner: BannerState\n}\n\nconst reducers = combineReducers<StoreType>({\n kernel: kernelReducer,\n session: sessionReducer,\n renderer: rendererReducer,\n error: errorReducer,\n banner: bannerReducer,\n})\n\nconst middleware: typeof composeWithDevTools =\n process.env.NODE_ENV !== 'production' ? composeWithDevTools : (x: any) => x\n\nexport const store = createStore(reducers, {}, middleware())\n","export function callOnce<T>(fun: () => T): () => T {\n let result: { value: T } | null = null\n return () => {\n if (!result) {\n result = { value: fun() }\n }\n\n return result.value\n }\n}","import { startKernel } from \"../kernel-loader\"\nimport { callOnce } from \"../utils/callOnce\"\n\nexport const initializeKernel = callOnce(() => {\n startKernel()\n\n const initial = document.getElementById('root-loading')\n if (initial) {\n initial.style.opacity = '0'\n setTimeout(() => {\n initial.remove()\n }, 300)\n }\n})\n","export default __webpack_public_path__ + \"static/media/error-robotmobile.9df34375.png\";","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotmobile.png'\n\nexport const ErrorAvatarLoading: React.FC = () => (\n <div id=\"error-avatarerror\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error\">Oops...</div>\n <div className=\"communicationslink\">\n There was a technical issue and we were unable to retrieve your avatar information\n </div>\n <div className=\"givesomedetailof\">\n Please try again later, and if the problem persists you can contact us through the Discord channel or at{' '}\n <a href=\"mailto:hello@decentraland.org\">hello@decentraland.org</a>\n </div>\n </div>\n <div className=\"errorimage col\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n)\n","export default __webpack_public_path__ + \"static/media/error-robotdown.ee4685c4.png\";","import React from 'react'\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotdown.png'\n\nexport const ErrorComms: React.FC = () => (\n <div id=\"error-comms\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error\">Oops</div>\n <div className=\"communicationslink\">\n A communication link could not be\n <br />\n established with other peers\n </div>\n <div className=\"givesomedetailof\">\n This might be because you are behind a restrictive network firewall, or a temporary problem with the selected realm. <br />\n <br />\n If you have any ad blocking extensions try turning them off for this site, and then reload.\n <br />\n You can also try a different realm.\n </div>\n <div className=\"cta\">\n <button\n className=\"retry\"\n onClick={() => {\n window.location.reload()\n }}\n >\n Reload\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n)\n","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotdown.png'\n\nconst defaultDetails: (string | JSX.Element)[] = [\n 'If you have any ad blocking extensions,',\n 'try turning them off for this site.',\n '',\n 'Loading should not take any longer than 2-3 minutes.',\n 'If you seem to be stuck, make sure hardware acceleration is on.',\n <a href=\"https://docs.decentraland.org/decentraland/hardware-acceleration/\">LEARN MORE</a>\n]\n\nexport const ErrorFatal = (props: { details?: typeof defaultDetails }) => {\n const details = props.details && props.details.length ? props.details : defaultDetails\n\n return (\n <div id=\"error-fatal\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error\">Oops!</div>\n <div className=\"communicationslink\">Something went wrong</div>\n <div className=\"givesomedetailof\">\n {details.map(($, ix) => (\n <div key={ix}>{$}</div>\n ))}\n </div>\n <div className=\"cta\">\n <button\n className=\"retry\"\n onClick={() => {\n window.location.reload()\n }}\n >\n Reload\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n )\n}\n","export default __webpack_public_path__ + \"static/media/robotsmiling.e182d216.png\";","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/robotsmiling.png'\n\nexport interface ErrorNetworkMismatchProps {\n details: string | null\n closeError(): void\n}\n\nexport const ErrorMetamaskLocked: React.FC<ErrorNetworkMismatchProps> = (props: ErrorNetworkMismatchProps) => {\n return (\n <div id=\"error-networkmismatch\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"communicationslink\">Before we continue</div>\n {props.details && <div className=\"givesomedetailof\">{props.details}</div>}\n <div className=\"cta\">\n <button className=\"retry\" onClick={props.closeError}>\n Retry\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/robotsmiling.png'\nimport { NETWORK } from '../../integration/queryParamsConfig'\n\nexport interface ErrorNetworkMismatchProps {\n details: string | null\n onLogout: () => Promise<void>\n}\n\nexport const ErrorNetworkMismatch: React.FC<ErrorNetworkMismatchProps> = (props: ErrorNetworkMismatchProps) => {\n return (\n <div id=\"error-networkmismatch\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"communicationslink\">A network mismatch was detected</div>\n <div className=\"givesomedetailof\">\n We detected that you are trying to enter the <strong id=\"tld\">{NETWORK || 'mainnet'}</strong> network, and\n your Ethereum wallet is set to other network.\n </div>\n <div className=\"givesomedetailof\">\n To continue, please change the Ethereum network in your wallet to{' '}\n <strong id=\"web3NetGoal\">{NETWORK || 'mainnet'}</strong> and click \"Reload\".\n </div>\n {props.details && <div className=\"givesomedetailof\">Details: {props.details}</div>}\n <div className=\"cta\">\n <button\n className=\"retry\"\n onClick={() => {\n window.location.reload()\n }}\n >\n Reload\n </button>\n <br />\n <button className=\"retry\" onClick={() => props.onLogout().finally(() => window.location.reload())}>\n Log out\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/robotsmiling.png'\n\nexport const ErrorNewLogin: React.FC = () => (\n <div id=\"error-newlogin\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error communicationslink\">Another session was detected</div>\n <div className=\"givesomedetailof\">\n It seems that the explorer was opened with your account from another device, browser, or tab.\n <br />\n Please, close the prior session and click \"Reload\" to explore the world in this window.\n </div>\n <div className=\"cta\">\n <button\n className=\"retry\"\n onClick={() => {\n window.location.reload()\n }}\n >\n Reload\n </button>\n </div>\n </div>\n <div className=\"errorimage col\">\n <div className=\"imagewrapper\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n </div>\n)\n","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotmobile.png'\n\nexport const ErrorNoMobile: React.FC = () => (\n <div id=\"error-nomobile\" className=\"hidden-error\">\n <div\n className=\"error-background\"\n style={{\n zIndex: 10,\n width: '100%',\n height: '100%',\n backgroundColor: '#0d0c0f'\n }}\n />\n <div className=\"iphone8916\" style={{ zIndex: 11 }}>\n <div\n className=\"div1\"\n style={{\n width: '375px',\n height: '100%',\n position: 'relative',\n margin: 'auto'\n }}\n >\n <div className=\"theclientisonlya\">The client is only available on desktop right now.</div>\n <img alt=\"\" className=\"robotmobilebrowsererror\" src={errorImage} />\n <div className=\"cta\">\n <div\n className=\"signup\"\n onClick={() => {\n window.location.href = 'https://decentraland.org'\n }}\n >\n Learn more about decentraland\n </div>\n </div>\n </div>\n </div>\n </div>\n)\n","import React from 'react'\n\nimport './errors.css'\nimport errorImage from '../../images/errors/error-robotmobile.png'\n\nexport const ErrorNotSupported: React.FC = () => (\n <div id=\"error-notsupported\" className=\"error-container\">\n <div className=\"error-background\" />\n <div className=\"errormessage\">\n <div className=\"errortext col\">\n <div className=\"error\">Error</div>\n <div className=\"communicationslink\">Your browser or device is not supported</div>\n <div className=\"givesomedetailof\">\n The Explorer only works on Chrome or Firefox for Windows, Linux and macOS.\n </div>\n </div>\n <div className=\"errorimage col\">\n <img alt=\"\" className=\"error-image\" src={errorImage} />\n </div>\n </div>\n </div>\n)\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport { setKernelError } from '../../state/actions'\nimport { disconnect } from '../../eth/provider'\nimport { ErrorState, ErrorType, StoreType } from '../../state/redux'\nimport { ErrorAvatarLoading } from './ErrorAvatarLoading'\nimport { ErrorComms } from './ErrorComms'\nimport { ErrorFatal } from './ErrorFatal'\nimport { ErrorMetamaskLocked } from './ErrorMetamaskLocked'\nimport { ErrorNetworkMismatch } from './ErrorNetworkMismatch'\nimport { ErrorNewLogin } from './ErrorNewLogin'\nimport { ErrorNoMobile } from './ErrorNoMobile'\nimport { ErrorNotSupported } from './ErrorNotSupported'\n\nconst mapStateToProps = (state: StoreType): Pick<ErrorContainerProps, 'error'> => {\n return {\n error: state.error.error || null\n }\n}\n\nconst mapDispatchToProps = (dispatch: (a: any) => void, state: StoreType): Pick<ErrorContainerProps, 'closeError'> => {\n return {\n closeError: () => dispatch(setKernelError(null)),\n onLogout: () => disconnect()\n }\n}\n\nexport interface ErrorContainerProps {\n error: ErrorState['error']\n onLogout(): void\n closeError(): void\n}\n\nexport const ErrorContainer: React.FC<ErrorContainerProps> = (props) => {\n if (!props.error) return <React.Fragment></React.Fragment>\n\n if (props.error.type === ErrorType.COMMS) return <ErrorComms />\n if (props.error.type === ErrorType.METAMASK_LOCKED)\n return <ErrorMetamaskLocked details={props.error.details} closeError={props.closeError} />\n if (props.error.type === ErrorType.NEW_LOGIN) return <ErrorNewLogin />\n if (props.error.type === ErrorType.NOT_MOBILE) return <ErrorNoMobile />\n if (props.error.type === ErrorType.NOT_SUPPORTED) return <ErrorNotSupported />\n if (props.error.type === ErrorType.NET_MISMATCH)\n return <ErrorNetworkMismatch details={props.error.details} onLogout={props.onLogout} />\n if (props.error.type === ErrorType.AVATAR_ERROR) return <ErrorAvatarLoading />\n\n return (\n <React.Fragment>\n <ErrorFatal details={[props.error.details || 'An error happened while loading Decentraland.']} />\n </React.Fragment>\n )\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ErrorContainer)\n","import React from 'react'\n\nexport const Logo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n height=\"31\"\n width=\"31\"\n viewBox=\"0 0 31 31\"\n {...props}\n className={'dcl-logo ' + (props.className || '')}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient id=\"c\" x1=\".5\" x2=\"-.20734\" y1=\"-.20711\" y2=\".49977\">\n <stop stopColor=\"#FF2D55\" offset=\"0\" />\n <stop stopColor=\"#FFBC5B\" offset=\"1\" />\n </linearGradient>\n <linearGradient id=\"b\" x1=\"-.00033\" x2=\"-.00033\" y2=\"1\">\n <stop stopColor=\"#A524B3\" offset=\"0\" />\n <stop stopColor=\"#FF2D55\" offset=\"1\" />\n </linearGradient>\n <linearGradient id=\"a\" x1=\"-.00034\" x2=\"-.00034\" y2=\"1\">\n <stop stopColor=\"#A524B3\" offset=\"0\" />\n <stop stopColor=\"#FF2D55\" offset=\"1\" />\n </linearGradient>\n </defs>\n <g>\n <title>background</title>\n <rect x=\"-1\" y=\"-1\" width=\"10.267\" height=\"10.267\" fill=\"none\" />\n </g>\n <g>\n <title>Layer 1</title>\n <path\n d=\"m15.45 30.91c8.5327 0 15.45-6.9194 15.45-15.455 0-8.5355-6.9171-15.455-15.45-15.455-8.5328 0-15.45 6.9194-15.45 15.455 0 8.5356 6.9171 15.455 15.45 15.455z\"\n clipRule=\"evenodd\"\n fill=\"url(#c)\"\n fillRule=\"evenodd\"\n />\n <path d=\"m10.948 10.046v11.591h9.6561l-9.6561-11.591z\" clipRule=\"evenodd\" fill=\"url(#b)\" fillRule=\"evenodd\" />\n <path d=\"m1.29 21.637h9.6561v-11.591l-9.6561 11.591z\" clipRule=\"evenodd\" fill=\"#fff\" fillRule=\"evenodd\" />\n <path\n d=\"m6.1802 27.819c2.5801 1.9396 5.7937 3.091 9.2699 3.091s6.6898-1.1514 9.2699-3.091h-18.54z\"\n clipRule=\"evenodd\"\n fill=\"#FF2D55\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"m3.0901 24.728c0.88064 1.1669 1.9235 2.2101 3.09 3.091h18.54c1.1664-0.8809 2.2093-1.9241 3.0899-3.091h-24.72z\"\n clipRule=\"evenodd\"\n fill=\"#FC9965\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"m20.726 21.637h-19.436c0.47894 1.105 1.0892 2.1405 1.7999 3.091h17.644v-3.091h-0.0077z\"\n clipRule=\"evenodd\"\n fill=\"#FFBC5B\"\n fillRule=\"evenodd\"\n />\n <path d=\"m20.727 16.228v8.5003h7.0838l-7.0838-8.5003z\" clipRule=\"evenodd\" fill=\"url(#a)\" fillRule=\"evenodd\" />\n <path d=\"m13.65 24.728h7.076v-8.5003l-7.076 8.5003z\" clipRule=\"evenodd\" fill=\"#fff\" fillRule=\"evenodd\" />\n <path\n d=\"m20.727 13.909c2.1331 0 3.8624-1.7298 3.8624-3.8637 0-2.1339-1.7293-3.8637-3.8624-3.8637-2.1332 0-3.8625 1.7299-3.8625 3.8637 0 2.1339 1.7293 3.8637 3.8625 3.8637z\"\n clipRule=\"evenodd\"\n fill=\"#FFC95B\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"m10.947 7.7278c1.0666 0 1.9312-0.86493 1.9312-1.9319s-0.8646-1.9319-1.9312-1.9319c-1.0666 0-1.9312 0.86493-1.9312 1.9319s0.86464 1.9319 1.9312 1.9319z\"\n clipRule=\"evenodd\"\n fill=\"#FFC95B\"\n fillRule=\"evenodd\"\n />\n </g>\n </svg>\n)\n","import React from 'react'\n\nexport const Isologotipo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n width=\"179\"\n height=\"35\"\n viewBox=\"0 0 179 35\"\n {...props}\n className={'dcl-isologotipo ' + (props.className || '')}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"16.863\"\n y1=\"6.98716\"\n x2=\"6.9927\"\n y2=\"16.8607\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FF2D55\" />\n <stop offset=\"1\" stopColor=\"#FFBC5B\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear\"\n x1=\"11.9437\"\n y1=\"10.9645\"\n x2=\"11.9437\"\n y2=\"23.6159\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#A524B3\" />\n <stop offset=\"1\" stopColor=\"#FF2D55\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear\"\n x1=\"22.6187\"\n y1=\"17.7117\"\n x2=\"22.6187\"\n y2=\"26.9893\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#A524B3\" />\n <stop offset=\"1\" stopColor=\"#FF2D55\" />\n </linearGradient>\n </defs>\n <g>\n <path\n transform=\"translate(0, 1)\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M136.67 24.8339H139.862V8.229H136.67V24.8339ZM48.0383 22.0884H45.6552V11.7213H48.0383C50.9459 11.7213 52.5857 13.5442 52.5857 16.861C52.5857 20.2874 50.9897 22.0884 48.0383 22.0884ZM55.9524 16.8501C55.9524 11.8202 53.165 8.98677 48.4318 8.98677H42.3542V24.834H48.4318C53.165 24.834 55.9524 21.8797 55.9524 16.8501ZM65.6344 17.5421H60.442C60.5514 15.9937 61.6225 14.9285 63.0765 14.9285C64.5521 14.9285 65.5796 15.9607 65.6344 17.5421ZM63.164 25.043C66.0934 25.043 68.2689 23.4833 68.6187 21.1442H65.6781C65.3721 22.0776 64.4209 22.6488 63.2185 22.6488C61.5351 22.6488 60.4092 21.4736 60.4092 19.7275V19.5298H68.7169V18.5416C68.7169 14.8624 66.509 12.5343 63.0436 12.5343C59.513 12.5343 57.261 14.9943 57.261 18.8379C57.261 22.6816 59.502 25.043 63.164 25.043ZM78.2023 17.2017C78.0274 15.9497 77.1529 15.0601 75.7647 15.0601C74.125 15.0601 73.0866 16.4658 73.0866 18.7831C73.0866 21.1442 74.125 22.5061 75.7756 22.5061C77.12 22.5061 78.0055 21.7703 78.2132 20.4414H81.1865C81.0007 23.2528 78.9019 25.043 75.7427 25.043C72.1464 25.043 69.8508 22.6708 69.8508 18.7831C69.8508 14.9505 72.1464 12.5343 75.7208 12.5343C78.9564 12.5343 81.0226 14.5112 81.1756 17.2017H78.2023ZM90.5727 17.5421H85.3803C85.4897 15.9937 86.5608 14.9285 88.0148 14.9285C89.4904 14.9285 90.5179 15.9607 90.5727 17.5421ZM88.1023 25.043C91.0317 25.043 93.2072 23.4833 93.557 21.1442H90.6164C90.3105 22.0776 89.3592 22.6488 88.1569 22.6488C86.4734 22.6488 85.3475 21.4736 85.3475 19.7275V19.5298H93.6552V18.5416C93.6552 14.8624 91.4473 12.5343 87.982 12.5343C84.4514 12.5343 82.1994 14.9943 82.1994 18.8379C82.1994 22.6816 84.4404 25.043 88.1023 25.043ZM95.2375 12.7429H98.3201V14.9062H98.3856C99.0743 13.3799 100.299 12.5671 102.146 12.5671C104.813 12.5671 106.322 14.2584 106.322 17.0809V24.8341H103.13V17.7507C103.13 16.1472 102.386 15.2359 100.878 15.2359C99.3476 15.2359 98.4295 16.334 98.4295 17.9374V24.8341H95.2375V12.7429ZM112.341 12.7425V10.052H109.149V12.7425H107.521V15.1697H109.149V21.5722C109.149 23.9334 110.243 24.8778 113.03 24.8778C113.675 24.8778 114.243 24.8119 114.571 24.7461V22.374C114.375 22.4068 114.057 22.4288 113.773 22.4288C112.801 22.4288 112.341 21.9785 112.341 21.0451V15.1697H114.571V12.7425H112.341ZM116.285 12.7429H119.368V14.9063H119.433C119.838 13.4127 120.876 12.6002 122.297 12.6002C122.669 12.6002 122.997 12.644 123.226 12.7209V15.5543C122.953 15.4444 122.516 15.3676 122.046 15.3676C120.428 15.3676 119.477 16.378 119.477 18.0691V24.8341H116.285V12.7429ZM131.437 19.5077V20.3973C131.437 21.7152 130.257 22.6378 128.781 22.6378C127.622 22.6378 126.868 22.0776 126.868 21.188C126.868 20.2985 127.578 19.7713 128.912 19.6835L131.437 19.5077ZM128.431 17.7288C125.359 17.9156 123.687 19.1566 123.687 21.353C123.687 23.5166 125.425 24.9771 127.742 24.9771C129.284 24.9771 130.77 24.2302 131.426 22.9674H131.492V24.8342H134.574V16.5429C134.574 14.1267 132.552 12.5343 129.459 12.5343C126.452 12.5343 124.376 14.1267 124.288 16.433H127.207C127.36 15.5544 128.168 14.9394 129.327 14.9394C130.639 14.9394 131.437 15.5765 131.437 16.7406V17.5421L128.431 17.7288ZM149.227 19.5077V20.3973C149.227 21.7152 148.047 22.6378 146.571 22.6378C145.412 22.6378 144.658 22.0776 144.658 21.188C144.658 20.2985 145.368 19.7713 146.702 19.6835L149.227 19.5077ZM146.22 17.7288C143.149 17.9156 141.477 19.1566 141.477 21.353C141.477 23.5166 143.215 24.9771 145.532 24.9771C147.073 24.9771 148.56 24.2302 149.216 22.9674H149.281V24.8342H152.364V16.5429C152.364 14.1267 150.342 12.5343 147.248 12.5343C144.242 12.5343 142.165 14.1267 142.078 16.433H144.996C145.149 15.5544 145.958 14.9394 147.117 14.9394C148.429 14.9394 149.227 15.5765 149.227 16.7406V17.5421L146.22 17.7288ZM154.372 12.7429H157.455V14.9062H157.521C158.209 13.3799 159.433 12.5671 161.281 12.5671C163.948 12.5671 165.456 14.2584 165.456 17.0809V24.8341H162.265V17.7507C162.265 16.1472 161.521 15.2359 160.013 15.2359C158.482 15.2359 157.564 16.334 157.564 17.9374V24.8341H154.372V12.7429ZM173.108 22.385C171.447 22.385 170.386 21.0013 170.386 18.7829C170.386 16.5864 171.447 15.1917 173.108 15.1917C174.759 15.1917 175.83 16.6085 175.83 18.7939C175.83 20.9793 174.759 22.385 173.108 22.385ZM172.059 12.5998C169.063 12.5998 167.118 14.983 167.118 18.7718C167.118 22.5827 169.052 24.9766 172.048 24.9766C173.819 24.9766 175.207 24.098 175.797 22.7694H175.852V24.8339H179V8.229H175.808V14.8073H175.742C175.141 13.4676 173.797 12.5998 172.059 12.5998Z\"\n fill=\"#16141A\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M136.67 24.8339H139.862V8.229H136.67V24.8339ZM48.0383 22.0884H45.6552V11.7213H48.0383C50.9459 11.7213 52.5857 13.5442 52.5857 16.861C52.5857 20.2874 50.9897 22.0884 48.0383 22.0884ZM55.9524 16.8501C55.9524 11.8202 53.165 8.98677 48.4318 8.98677H42.3542V24.834H48.4318C53.165 24.834 55.9524 21.8797 55.9524 16.8501ZM65.6344 17.5421H60.442C60.5514 15.9937 61.6225 14.9285 63.0765 14.9285C64.5521 14.9285 65.5796 15.9607 65.6344 17.5421ZM63.164 25.043C66.0934 25.043 68.2689 23.4833 68.6187 21.1442H65.6781C65.3721 22.0776 64.4209 22.6488 63.2185 22.6488C61.5351 22.6488 60.4092 21.4736 60.4092 19.7275V19.5298H68.7169V18.5416C68.7169 14.8624 66.509 12.5343 63.0436 12.5343C59.513 12.5343 57.261 14.9943 57.261 18.8379C57.261 22.6816 59.502 25.043 63.164 25.043ZM78.2023 17.2017C78.0274 15.9497 77.1529 15.0601 75.7647 15.0601C74.125 15.0601 73.0866 16.4658 73.0866 18.7831C73.0866 21.1442 74.125 22.5061 75.7756 22.5061C77.12 22.5061 78.0055 21.7703 78.2132 20.4414H81.1865C81.0007 23.2528 78.9019 25.043 75.7427 25.043C72.1464 25.043 69.8508 22.6708 69.8508 18.7831C69.8508 14.9505 72.1464 12.5343 75.7208 12.5343C78.9564 12.5343 81.0226 14.5112 81.1756 17.2017H78.2023ZM90.5727 17.5421H85.3803C85.4897 15.9937 86.5608 14.9285 88.0148 14.9285C89.4904 14.9285 90.5179 15.9607 90.5727 17.5421ZM88.1023 25.043C91.0317 25.043 93.2072 23.4833 93.557 21.1442H90.6164C90.3105 22.0776 89.3592 22.6488 88.1569 22.6488C86.4734 22.6488 85.3475 21.4736 85.3475 19.7275V19.5298H93.6552V18.5416C93.6552 14.8624 91.4473 12.5343 87.982 12.5343C84.4514 12.5343 82.1994 14.9943 82.1994 18.8379C82.1994 22.6816 84.4404 25.043 88.1023 25.043ZM95.2375 12.7429H98.3201V14.9062H98.3856C99.0743 13.3799 100.299 12.5671 102.146 12.5671C104.813 12.5671 106.322 14.2584 106.322 17.0809V24.8341H103.13V17.7507C103.13 16.1472 102.386 15.2359 100.878 15.2359C99.3476 15.2359 98.4295 16.334 98.4295 17.9374V24.8341H95.2375V12.7429ZM112.341 12.7425V10.052H109.149V12.7425H107.521V15.1697H109.149V21.5722C109.149 23.9334 110.243 24.8778 113.03 24.8778C113.675 24.8778 114.243 24.8119 114.571 24.7461V22.374C114.375 22.4068 114.057 22.4288 113.773 22.4288C112.801 22.4288 112.341 21.9785 112.341 21.0451V15.1697H114.571V12.7425H112.341ZM116.285 12.7429H119.368V14.9063H119.433C119.838 13.4127 120.876 12.6002 122.297 12.6002C122.669 12.6002 122.997 12.644 123.226 12.7209V15.5543C122.953 15.4444 122.516 15.3676 122.046 15.3676C120.428 15.3676 119.477 16.378 119.477 18.0691V24.8341H116.285V12.7429ZM131.437 19.5077V20.3973C131.437 21.7152 130.257 22.6378 128.781 22.6378C127.622 22.6378 126.868 22.0776 126.868 21.188C126.868 20.2985 127.578 19.7713 128.912 19.6835L131.437 19.5077ZM128.431 17.7288C125.359 17.9156 123.687 19.1566 123.687 21.353C123.687 23.5166 125.425 24.9771 127.742 24.9771C129.284 24.9771 130.77 24.2302 131.426 22.9674H131.492V24.8342H134.574V16.5429C134.574 14.1267 132.552 12.5343 129.459 12.5343C126.452 12.5343 124.376 14.1267 124.288 16.433H127.207C127.36 15.5544 128.168 14.9394 129.327 14.9394C130.639 14.9394 131.437 15.5765 131.437 16.7406V17.5421L128.431 17.7288ZM149.227 19.5077V20.3973C149.227 21.7152 148.047 22.6378 146.571 22.6378C145.412 22.6378 144.658 22.0776 144.658 21.188C144.658 20.2985 145.368 19.7713 146.702 19.6835L149.227 19.5077ZM146.22 17.7288C143.149 17.9156 141.477 19.1566 141.477 21.353C141.477 23.5166 143.215 24.9771 145.532 24.9771C147.073 24.9771 148.56 24.2302 149.216 22.9674H149.281V24.8342H152.364V16.5429C152.364 14.1267 150.342 12.5343 147.248 12.5343C144.242 12.5343 142.165 14.1267 142.078 16.433H144.996C145.149 15.5544 145.958 14.9394 147.117 14.9394C148.429 14.9394 149.227 15.5765 149.227 16.7406V17.5421L146.22 17.7288ZM154.372 12.7429H157.455V14.9062H157.521C158.209 13.3799 159.433 12.5671 161.281 12.5671C163.948 12.5671 165.456 14.2584 165.456 17.0809V24.8341H162.265V17.7507C162.265 16.1472 161.521 15.2359 160.013 15.2359C158.482 15.2359 157.564 16.334 157.564 17.9374V24.8341H154.372V12.7429ZM173.108 22.385C171.447 22.385 170.386 21.0013 170.386 18.7829C170.386 16.5864 171.447 15.1917 173.108 15.1917C174.759 15.1917 175.83 16.6085 175.83 18.7939C175.83 20.9793 174.759 22.385 173.108 22.385ZM172.059 12.5998C169.063 12.5998 167.118 14.983 167.118 18.7718C167.118 22.5827 169.052 24.9766 172.048 24.9766C173.819 24.9766 175.207 24.098 175.797 22.7694H175.852V24.8339H179V8.229H175.808V14.8073H175.742C175.141 13.4676 173.797 12.5998 172.059 12.5998Z\"\n fill=\"white\"\n />\n <path\n transform=\"translate(0, 1)\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.863 33.737C26.1761 33.737 33.7259 26.1847 33.7259 16.8685C33.7259 7.55229 26.1761 0 16.863 0C7.5498 0 0 7.55229 0 16.8685C0 26.1847 7.5498 33.737 16.863 33.737Z\"\n fill=\"#16141A\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.863 33.737C26.1761 33.737 33.7259 26.1847 33.7259 16.8685C33.7259 7.55229 26.1761 0 16.863 0C7.5498 0 0 7.55229 0 16.8685C0 26.1847 7.5498 33.737 16.863 33.737Z\"\n fill=\"url(#paint0_linear)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.9473 10.9645V23.6159H22.4865L11.9473 10.9645Z\"\n fill=\"url(#paint1_linear)\"\n />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M1.40771 23.6161H11.947V10.9647L1.40771 23.6161Z\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.74487 30.3634C9.56098 32.4804 13.0685 33.7371 16.8626 33.7371C20.6568 33.7371 24.1643 32.4804 26.9804 30.3634H6.74487Z\"\n fill=\"#FF2D55\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.37207 26.9896C4.33326 28.2632 5.4715 29.4018 6.74466 30.3633H26.9802C28.2533 29.4018 29.3916 28.2632 30.3528 26.9896H3.37207Z\"\n fill=\"#FC9965\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.6212 23.6161H1.40771C1.93046 24.8222 2.59655 25.9524 3.37224 26.9898H22.6297V23.6161H22.6212Z\"\n fill=\"#FFBC5B\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.6213 17.7117V26.9893H30.353L22.6213 17.7117Z\"\n fill=\"url(#paint2_linear)\"\n />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M14.8984 26.99H22.6216V17.7123L14.8984 26.99Z\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22.6215 15.1816C24.9498 15.1816 26.8372 13.2935 26.8372 10.9644C26.8372 8.63539 24.9498 6.74731 22.6215 6.74731C20.2932 6.74731 18.4058 8.63539 18.4058 10.9644C18.4058 13.2935 20.2932 15.1816 22.6215 15.1816Z\"\n fill=\"#FFC95B\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.947 8.43441C13.1111 8.43441 14.0548 7.49037 14.0548 6.32585C14.0548 5.16132 13.1111 4.21729 11.947 4.21729C10.7828 4.21729 9.83911 5.16132 9.83911 6.32585C9.83911 7.49037 10.7828 8.43441 11.947 8.43441Z\"\n fill=\"#FFC95B\"\n />\n </g>\n </svg>\n)\n","import React from 'react'\n\nexport function Discord(props: React.SVGAttributes<SVGElement>) {\n return (\n <svg {...props} width=\"22\" height=\"22\" viewBox=\"0 0 22 22\">\n <path\n fill=\"currentColor\"\n d=\"M5.0677998,1.36000287e-05 C4.8822277,0.000761200029 3.34704426,0.0443327002 1.72750578,1.24773952 C1.72750578,1.24773952 0,4.35487581 0,8.18178463 C0,8.18178463 1.00769549,9.90927375 3.65893934,9.99324995 C3.65893934,9.99324995 4.10281088,9.46539815 4.46270818,9.00952847 C2.93914264,8.55365809 2.3633099,7.60596477 2.3633099,7.60596477 C2.3633099,7.60596477 2.4833011,7.68992641 2.69923962,7.80989241 C2.71123608,7.80989241 2.7231967,7.82187053 2.7471899,7.83386741 C2.78317956,7.85786019 2.8191807,7.86985875 2.8551705,7.89385167 C3.15508494,8.06180379 3.45498972,8.19378319 3.7309111,8.30175301 C4.22277072,8.50569507 4.8106212,8.68562615 5.49442614,8.81758875 C6.39416918,8.98554115 7.44984898,9.04551491 8.60152062,8.82957625 C9.16535998,8.72160713 9.74123178,8.56566883 10.3410607,8.31374051 C10.7609405,8.15778485 11.2287902,7.92987255 11.7206494,7.60596477 C11.7206494,7.60596477 11.120831,8.57768909 9.54927932,9.02156259 C9.9091769,9.46543553 10.3410607,9.98126231 10.3410607,9.98126231 C12.9923042,9.89728709 14,8.16978775 14,8.18178463 C14,4.35487581 12.2724939,1.24773952 12.2724939,1.24773952 C10.5569839,-0.0358942998 8.91342886,0.000106700029 8.91342886,0.000106700029 L8.74551048,0.192046422 C10.7849293,0.803871902 11.7326367,1.70363743 11.7326367,1.70363743 C10.4849923,1.031829 9.26136876,0.695901242 8.121694,0.563938922 C7.25794034,0.467966262 6.43014414,0.491987742 5.69835336,0.587960262 C5.62637418,0.587960262 5.5664056,0.599939082 5.49442614,0.611935262 C5.07454598,0.659921942 4.0548452,0.803868682 2.77121124,1.36770776 C2.32733802,1.55965289 2.0633893,1.70363743 2.0633893,1.70363743 C2.0633893,1.70363743 3.04710882,0.755875562 5.20649276,0.144049942 L5.08652452,0.000106700029 C5.08652452,0.000106700029 5.08017132,-3.60999713e-05 5.0677998,8.70002873e-06 L5.0677998,1.36000287e-05 Z M4.76262892,4.42685219 C5.44643372,4.42685219 5.99828264,5.01466585 5.98628674,5.74645663 C5.98628674,6.47824839 5.44643372,7.06610783 4.76262892,7.06610783 C4.09082044,7.06610783 3.5389711,6.47824839 3.5389711,5.74645663 C3.5389711,5.01466585 4.07882384,4.42685219 4.76262892,4.42685219 Z M9.14137784,4.42685219 C9.81318618,4.42685219 10.3650357,5.01466585 10.3650357,5.74645663 C10.3650357,6.47824839 9.8251832,7.06610783 9.14137784,7.06610783 C8.46956964,7.06610783 7.91772002,6.47824839 7.91772002,5.74645663 C7.91772002,5.01466585 8.45757276,4.42685219 9.14137784,4.42685219 Z\"\n transform=\"translate(4 6)\"\n />\n </svg>\n )\n}\n","import React from 'react'\nimport { ProviderType } from 'decentraland-connect'\nimport MetamaskLogo from '../../../images/login/metamask.svg'\nimport DapperLogo from '../../../images/login/dapper.png'\nimport SamsungBlockchainWalletLogo from '../../../images/login/samsung-blockchain-wallet.svg'\nimport FortmaticLogo from '../../../images/login/fortmatic.svg'\nimport WalletConnect from '../../../images/login/wallet-connect.svg'\nimport './WalletButton.css'\n\nexport enum WalletButtonLogo {\n METAMASK = 'Metamask',\n DAPPER = 'Dapper',\n FORTMATIC = 'Fortmatic',\n WALLET_CONNECT = 'WalletConnect',\n SAMSUNG_BLOCKCHAIN_WALLET = 'SamsungBlockChainWallet'\n}\n\nconst options = {\n title: {\n [WalletButtonLogo.METAMASK]: 'Metamask',\n [WalletButtonLogo.DAPPER]: 'Dapper',\n [WalletButtonLogo.FORTMATIC]: 'Fortmatic',\n [WalletButtonLogo.WALLET_CONNECT]: 'Wallet Connect',\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: 'Samsung Wallet'\n },\n\n img: {\n [WalletButtonLogo.METAMASK]: MetamaskLogo,\n [WalletButtonLogo.DAPPER]: DapperLogo,\n [WalletButtonLogo.FORTMATIC]: FortmaticLogo,\n [WalletButtonLogo.WALLET_CONNECT]: WalletConnect,\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: SamsungBlockchainWalletLogo\n },\n\n target: {\n [WalletButtonLogo.METAMASK]: 'https://metamask.io/',\n [WalletButtonLogo.DAPPER]: 'https://www.meetdapper.com/',\n [WalletButtonLogo.FORTMATIC]: 'https://fortmatic.com/',\n [WalletButtonLogo.WALLET_CONNECT]: 'https://walletconnect.org/',\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: 'https://www.samsung.com/global/galaxy/apps/samsung-blockchain/'\n },\n\n provider: {\n [WalletButtonLogo.METAMASK]: ProviderType.INJECTED,\n [WalletButtonLogo.DAPPER]: ProviderType.INJECTED,\n [WalletButtonLogo.FORTMATIC]: ProviderType.FORTMATIC,\n [WalletButtonLogo.WALLET_CONNECT]: ProviderType.WALLET_CONNECT,\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: ProviderType.INJECTED\n },\n\n description: {\n [WalletButtonLogo.METAMASK]: 'Using your browser account',\n [WalletButtonLogo.DAPPER]: 'Using your browser account',\n [WalletButtonLogo.FORTMATIC]: 'Using your email account',\n [WalletButtonLogo.WALLET_CONNECT]: 'Using your mobile account',\n [WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET]: 'Using your mobile account'\n }\n}\n\nexport interface WalletButtonProps {\n type: WalletButtonLogo\n active?: boolean\n onClick: (providerType: ProviderType) => void\n}\n\nexport const WalletButton: React.FC<WalletButtonProps> = ({ type, active, onClick }) => {\n function handleClick(event: React.MouseEvent<HTMLAnchorElement>) {\n if (active !== false) {\n event.preventDefault()\n if (onClick) {\n onClick(options.provider[type])\n }\n }\n }\n\n return (\n <a\n className={`walletButton ${active ? 'active' : 'inactive'}`}\n href={options.target[type]}\n onClick={handleClick}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div className=\"walletImage\">\n <img alt={type} src={options.img[type]} className={type} />\n </div>\n <div className=\"walletTitle\">\n <h3>{options.title[type]}</h3>\n </div>\n <div className=\"walletDescription\">\n <p>{options.description[type]}</p>\n </div>\n </a>\n )\n}\n","import React from 'react'\nimport { Logo } from './Logo'\nimport { Isologotipo } from './Isologotipo'\nimport { Discord } from './Icon.tsx/Discord'\nimport './Navbar.css'\n\nexport type NavbarProps = {\n full?: boolean\n onClickLogo?: (event: React.MouseEvent<SVGElement>) => void\n}\n\nexport const Navbar = (props: NavbarProps) => (\n <nav className=\"nav-bar\">\n {props.full ? (\n <>\n <a href=\"https://decentraland.org/\" target=\"_blank\" rel=\"noopener noreferrer\">\n <Logo onClick={props.onClickLogo} />\n </a>\n <div className=\"nav-bar-content\">\n <div className=\"nav-text\">\n <span>Need support?</span>\n </div>\n <a className=\"nav-discord\" href=\"https://discord.gg/k5ydeZp\" target=\"about:blank\">\n <Discord />\n <div>Join our discord</div>\n </a>\n </div>\n </>\n ) : (\n <Isologotipo onClick={props.onClickLogo} />\n )}\n </nav>\n)\n","export default __webpack_public_path__ + \"static/media/avatars.183d79bf.png\";","export default __webpack_public_path__ + \"static/media/avatars@2x.fdd7a431.png\";","export default __webpack_public_path__ + \"static/media/avatars@3x.71ab6dc8.png\";","import React from 'react'\nimport './Footer.css'\nimport avatars1x from '../../images/login/avatars.png'\nimport avatars2x from '../../images/login/avatars@2x.png'\nimport avatars3x from '../../images/login/avatars@3x.png'\n\nexport const Avatars: React.FC = () => (\n <div className=\"eth-avatars\">\n <img\n src={avatars1x}\n srcSet={`${avatars1x} 1x, ${avatars2x} 2x, ${avatars3x} 3x`}\n alt=\"Avatars\"\n width=\"480\"\n height=\"600\"\n />\n </div>\n)\n","import React from 'react'\nimport { Avatars } from './Avatars'\nimport './Modal.css'\n\nexport interface ModalProps {\n withAvatars?: boolean\n withOverlay?: boolean\n withFlatBackground?: boolean\n className?: string\n onClose?: () => void\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n onClose,\n withAvatars,\n withFlatBackground,\n withOverlay,\n className,\n children\n}) => {\n let containerClassName = 'popup-container'\n\n if (withAvatars) {\n containerClassName += ' with-avatars'\n }\n\n if (withOverlay) {\n containerClassName += ' with-overlay'\n }\n\n if (withFlatBackground) {\n containerClassName += ' with-flat-background'\n }\n\n let popupClassName = 'popup'\n\n if (className) {\n popupClassName += ' ' + className\n }\n\n function handleClose() {\n if (onClose) {\n onClose()\n }\n }\n\n return (\n <div className={containerClassName} onClick={handleClose}>\n <div className={popupClassName} onClick={(e) => e.stopPropagation()}>\n {onClose && <div className=\"close\" onClick={handleClose} />}\n {children}\n </div>\n {withAvatars && <Avatars />}\n </div>\n )\n}\n","export default __webpack_public_path__ + \"static/media/metamask.bb710fa5.svg\";","export default __webpack_public_path__ + \"static/media/dapper.0e5fcabf.png\";","export default __webpack_public_path__ + \"static/media/samsung-blockchain-wallet.3f042de1.svg\";","export default __webpack_public_path__ + \"static/media/fortmatic.17a8d20a.svg\";","export default __webpack_public_path__ + \"static/media/wallet-connect.f9cb81fb.svg\";","import React from 'react'\nimport './Spinner.css'\n\nexport const Spinner: React.FC = () => (\n <div className=\"loader\" style={{ display: 'block' }}>\n {' '}\n </div>\n)\n","import React, { useMemo } from 'react'\nimport { ProviderType } from 'decentraland-connect'\nimport { isCucumberProvider, isDapperProvider } from 'decentraland-dapps/dist/lib/eth'\nimport { Modal } from '../../common/Modal'\nimport { WalletButton, WalletButtonLogo } from './WalletButton'\nimport { Spinner } from '../../common/Spinner'\nimport './WalletSelector.css'\n\nexport interface WalletSelectorProps {\n open: boolean\n loading: boolean\n availableProviders: ProviderType[]\n onLogin: (provider: ProviderType | null) => void\n onCancel: () => void\n}\n\nexport const WalletSelector: React.FC<WalletSelectorProps> = ({\n open,\n loading,\n availableProviders,\n onLogin,\n onCancel\n}) => {\n const hasWallet = (availableProviders || []).includes(ProviderType.INJECTED)\n function handleLogin(provider: ProviderType | null) {\n if (provider === ProviderType.INJECTED && !hasWallet) {\n return\n }\n\n if (onLogin) {\n onLogin(provider)\n }\n }\n\n function handleGuestLogin(e: React.MouseEvent<any>) {\n e.preventDefault()\n handleLogin(null)\n }\n\n const wallets = useMemo(() => {\n const result: WalletButtonLogo[] = []\n if (hasWallet) {\n if (isCucumberProvider()) {\n result.push(WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET)\n } else if (isDapperProvider()) {\n result.push(WalletButtonLogo.DAPPER)\n }\n }\n\n if (result.length === 0) {\n result.push(WalletButtonLogo.METAMASK)\n }\n\n if ((availableProviders || []).includes(ProviderType.FORTMATIC)) {\n result.push(WalletButtonLogo.FORTMATIC)\n }\n\n if ((availableProviders || []).includes(ProviderType.WALLET_CONNECT)) {\n result.push(WalletButtonLogo.WALLET_CONNECT)\n }\n\n return result\n }, [availableProviders, hasWallet])\n\n function isActive(wallet: WalletButtonLogo) {\n switch (wallet) {\n case WalletButtonLogo.METAMASK:\n case WalletButtonLogo.DAPPER:\n case WalletButtonLogo.SAMSUNG_BLOCKCHAIN_WALLET:\n return hasWallet\n default:\n return true\n }\n }\n\n return open ? (\n <Modal className=\"walletSelectorPopup\" onClose={onCancel} withFlatBackground withOverlay>\n <div className=\"walletSelector\">\n <h2 className=\"walletSelectorTitle\">Sign In or Create an Account</h2>\n {loading && (\n <div className=\"walletButtonContainer\">\n <Spinner />\n </div>\n )}\n {!loading && (\n <div className=\"walletButtonContainer\">\n {wallets.map((wallet) => (\n <WalletButton key={wallet} type={wallet} active={isActive(wallet)} onClick={handleLogin} />\n ))}\n </div>\n )}\n <p className=\"supportedWallets\">Trezor and smart contract wallets like Dapper, Argent or Gnosis safe, do not work with Polygon. Read more about the Trezor support status\n <a\n href=\"https://github.com/trezor/trezor-firmware/pull/1568\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n here\n </a>\n </p>\n </div>\n {!loading && (\n <a className=\"guestSelector\" href=\"#guest\" onClick={handleGuestLogin}>\n Play as Guest\n </a>\n )}\n </Modal>\n ) : null\n}\n","import React from 'react'\n\nexport const MainIsologotipo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n width=\"266\"\n height=\"51\"\n viewBox=\"0 0 266 51\"\n {...props}\n className={'dcl-main-isologotipo ' + (props.className || '')}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g filter=\"url(#filter0_d)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M202.864 37.113H207.594V12.5037H202.864V37.113ZM71.5014 33.0439H67.9696V17.6793H71.5014C75.8105 17.6793 78.2409 20.381 78.2409 25.2966C78.2409 30.3748 75.8755 33.0439 71.5014 33.0439ZM83.2329 25.2806C83.2329 17.8261 79.1019 13.6268 72.087 13.6268H63.0797V37.1133H72.087C79.1019 37.1133 83.2329 32.7348 83.2329 25.2806ZM97.5838 26.3065H89.8884C90.0505 24.0117 91.6379 22.4329 93.7928 22.4329C95.9798 22.4329 97.5025 23.9627 97.5838 26.3065ZM93.9203 37.423C98.2619 37.423 101.486 35.1115 102.005 31.6449H97.6464C97.1929 33.0282 95.7832 33.8747 94.0012 33.8747C91.5062 33.8747 89.8376 32.1331 89.8376 29.5452V29.2522H102.15V27.7876C102.15 22.3348 98.8778 18.8845 93.742 18.8845C88.5094 18.8845 85.1719 22.5303 85.1719 28.2268C85.1719 33.9233 88.4932 37.423 93.9203 37.423ZM116.208 25.8017C115.948 23.9461 114.652 22.6277 112.595 22.6277C110.165 22.6277 108.626 24.7111 108.626 28.1454C108.626 31.6447 110.165 33.6631 112.611 33.6631C114.604 33.6631 115.916 32.5725 116.224 30.6031H120.63C120.355 34.7697 117.244 37.4229 112.562 37.4229C107.232 37.4229 103.83 33.9072 103.83 28.1454C103.83 22.4652 107.232 18.8843 112.53 18.8843C117.325 18.8843 120.387 21.8142 120.614 25.8017H116.208ZM134.542 26.3061H126.846C127.008 24.0113 128.596 22.4325 130.751 22.4325C132.938 22.4325 134.461 23.9624 134.542 26.3061ZM130.88 37.4229C135.222 37.4229 138.446 35.1114 138.964 31.6447H134.606C134.153 33.0281 132.743 33.8746 130.961 33.8746C128.466 33.8746 126.798 32.1329 126.798 29.5451V29.252H139.11V27.7875C139.11 22.3347 135.838 18.8843 130.702 18.8843C125.469 18.8843 122.132 22.5302 122.132 28.2267C122.132 33.9232 125.453 37.4229 130.88 37.4229ZM141.453 19.1934H146.021V22.3996H146.119C147.139 20.1375 148.954 18.933 151.692 18.933C155.644 18.933 157.88 21.4396 157.88 25.6226V37.1132H153.149V26.6153C153.149 24.2389 152.048 22.8882 149.812 22.8882C147.544 22.8882 146.184 24.5156 146.184 26.892V37.1132H141.453V19.1934ZM166.804 19.193V15.2055H162.073V19.193H159.66V22.7902H162.073V32.2791C162.073 35.7784 163.694 37.178 167.825 37.178C168.781 37.178 169.623 37.0805 170.109 36.9829V33.4673C169.818 33.5159 169.348 33.5485 168.927 33.5485C167.485 33.5485 166.804 32.8812 166.804 31.4978V22.7902H170.109V19.193H166.804ZM172.645 19.1933H177.214V22.3996H177.311C177.91 20.186 179.449 18.9819 181.555 18.9819C182.106 18.9819 182.592 19.0468 182.933 19.1607V23.36C182.527 23.1971 181.879 23.0832 181.183 23.0832C178.785 23.0832 177.376 24.5808 177.376 27.0871V37.1131H172.645V19.1933ZM195.105 29.2192V30.5376C195.105 32.4907 193.355 33.8581 191.168 33.8581C189.451 33.8581 188.333 33.0279 188.333 31.7095C188.333 30.3911 189.386 29.6098 191.363 29.4796L195.105 29.2192ZM190.646 26.583C186.094 26.8597 183.615 28.6989 183.615 31.9541C183.615 35.1607 186.191 37.3253 189.626 37.3253C191.91 37.3253 194.113 36.2184 195.085 34.3468H195.182V37.1135H199.751V24.8253C199.751 21.2444 196.754 18.8843 192.169 18.8843C187.714 18.8843 184.636 21.2444 184.506 24.6625H188.832C189.059 23.3604 190.257 22.4489 191.975 22.4489C193.919 22.4489 195.101 23.393 195.101 25.1184V26.3062L190.646 26.583ZM221.474 29.2192V30.5376C221.474 32.4907 219.724 33.8581 217.537 33.8581C215.82 33.8581 214.702 33.0279 214.702 31.7095C214.702 30.3911 215.755 29.6098 217.732 29.4796L221.474 29.2192ZM217.015 26.583C212.463 26.8597 209.985 28.6989 209.985 31.9541C209.985 35.1607 212.56 37.3253 215.995 37.3253C218.279 37.3253 220.483 36.2184 221.454 34.3468H221.552V37.1135H226.12V24.8253C226.12 21.2444 223.123 18.8843 218.538 18.8843C214.083 18.8843 211.005 21.2444 210.876 24.6625H215.201C215.428 23.3604 216.627 22.4489 218.344 22.4489C220.288 22.4489 221.471 23.393 221.471 25.1184V26.3062L217.015 26.583ZM229.094 19.1934H233.663V22.3996H233.76C234.781 20.1375 236.595 18.933 239.333 18.933C243.286 18.933 245.522 21.4396 245.522 25.6226V37.1132H240.791V26.6153C240.791 24.2389 239.689 22.8882 237.454 22.8882C235.186 22.8882 233.825 24.5156 233.825 26.892V37.1132H229.094V19.1934ZM256.865 33.4837C254.402 33.4837 252.831 31.433 252.831 28.1452C252.831 24.89 254.402 22.823 256.865 22.823C259.311 22.823 260.899 24.9226 260.899 28.1615C260.899 31.4004 259.311 33.4837 256.865 33.4837ZM255.309 18.9814C250.87 18.9814 247.987 22.5134 247.987 28.1286C247.987 33.7766 250.854 37.3245 255.293 37.3245C257.918 37.3245 259.975 36.0224 260.85 34.0533H260.931V37.113H265.597V12.5037H260.866V22.253H260.769C259.878 20.2675 257.885 18.9814 255.309 18.9814Z\"\n fill=\"white\"\n />\n </g>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M25.3 50.308C39.1025 50.308 50.2917 39.1152 50.2917 25.3081C50.2917 11.501 39.1025 0.308105 25.3 0.308105C11.4974 0.308105 0.308228 11.501 0.308228 25.3081C0.308228 39.1152 11.4974 50.308 25.3 50.308Z\"\n fill=\"url(#paint0_linear)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.0172 16.5577V35.3077H33.637L18.0172 16.5577Z\"\n fill=\"url(#paint1_linear)\"\n />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M2.39709 35.3078H18.0168V16.5579L2.39709 35.3078Z\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.3043 45.3081C14.4779 48.4456 19.6762 50.3081 25.2993 50.3081C30.9225 50.3081 36.1208 48.4456 40.2944 45.3081H10.3043Z\"\n fill=\"#FF2D55\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.30786 40.3077C6.73239 42.1952 8.41933 43.8827 10.3062 45.3077H40.2963C42.1831 43.8827 43.8701 42.1952 45.2946 40.3077H5.30786Z\"\n fill=\"#FC9965\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M33.8366 35.3082H2.39709C3.17184 37.0957 4.15901 38.7707 5.30862 40.3082H33.8491V35.3082H33.8366Z\"\n fill=\"#FFBC5B\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M33.8363 26.5577V40.3077H45.2951L33.8363 26.5577Z\"\n fill=\"url(#paint2_linear)\"\n />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M22.3887 40.3083H33.8348V26.5583L22.3887 40.3083Z\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M33.8324 22.808C37.283 22.808 40.0803 20.0098 40.0803 16.558C40.0803 13.1062 37.283 10.308 33.8324 10.308C30.3818 10.308 27.5845 13.1062 27.5845 16.558C27.5845 20.0098 30.3818 22.808 33.8324 22.808Z\"\n fill=\"#FFC95B\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.0161 12.8083C19.7414 12.8083 21.14 11.4092 21.14 9.68335C21.14 7.95746 19.7414 6.55835 18.0161 6.55835C16.2907 6.55835 14.8921 7.95746 14.8921 9.68335C14.8921 11.4092 16.2907 12.8083 18.0161 12.8083Z\"\n fill=\"#FFC95B\"\n />\n <defs>\n <filter\n id=\"filter0_d\"\n x=\"63.0797\"\n y=\"12.5037\"\n width=\"202.517\"\n height=\"25.8221\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy=\"0.902767\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"25.3\"\n y1=\"-10.0472\"\n x2=\"-10.0553\"\n y2=\"25.2965\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FF2D55\" />\n <stop offset=\"1\" stopColor=\"#FFBC5B\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear\"\n x1=\"18.012\"\n y1=\"16.5578\"\n x2=\"18.012\"\n y2=\"35.3077\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#A524B3\" />\n <stop offset=\"1\" stopColor=\"#FF2D55\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear\"\n x1=\"33.8325\"\n y1=\"26.5577\"\n x2=\"33.8325\"\n y2=\"40.3077\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#A524B3\" />\n <stop offset=\"1\" stopColor=\"#FF2D55\" />\n </linearGradient>\n </defs>\n </svg>\n)\n","import React from 'react'\nimport { MainIsologotipo } from '../common/MainIsologotipo'\n\nexport const LoginHeader: React.FC = () => (\n <div className=\"eth-login-description\">\n <MainIsologotipo />\n <p>Immerse yourself into the first virtual world fully owned by its users.</p>\n </div>\n)\n","import React, { useState } from 'react'\nimport { ProviderType } from 'decentraland-connect/dist/types'\nimport { WalletSelector } from './wallet/WalletSelector'\nimport { LoginHeader } from './LoginHeader'\nimport { Spinner } from '../common/Spinner'\nimport { Avatars } from '../common/Avatars'\nimport { track } from '../../utils/tracking'\nimport './EthLogin.css'\n\nexport interface EthLoginProps {\n availableProviders: ProviderType[]\n onLogin: (provider: ProviderType | null) => void\n signing: boolean\n}\n\nexport const EthLogin: React.FC<EthLoginProps> = (props) => {\n const [showWalletSelector, setShowWalletSelector] = useState(false)\n\n function handlePlay() {\n track('open_login_popup')\n setShowWalletSelector(true)\n }\n\n function handleLogin(provider: ProviderType | null) {\n track('click_login_button', { provider_type: provider || 'guest' })\n if (props.onLogin) {\n props.onLogin(provider)\n }\n }\n\n function handlePlayAsGuest() {\n handleLogin(null)\n }\n\n return (\n <div className=\"eth-login\">\n <LoginHeader />\n <Avatars />\n <div id=\"eth-login-confirmation-wrapper\">\n {props.signing ? (\n <Spinner />\n ) : (\n <React.Fragment>\n <button className=\"eth-login-confirm-button\" onClick={handlePlay}>\n Play\n </button>\n <button className=\"eth-login-guest-button\" onClick={handlePlayAsGuest}>\n Play as Guest\n </button>\n </React.Fragment>\n )}\n </div>\n <WalletSelector\n open={showWalletSelector}\n loading={props.signing}\n onLogin={handleLogin}\n availableProviders={props.availableProviders}\n onCancel={() => setShowWalletSelector(false)}\n />\n </div>\n )\n}\n","import React from 'react'\nimport './Container.css'\n\nexport const Container: React.FC<React.HTMLAttributes<HTMLDivElement>> = (props) => (\n <div {...props} className={'eth-container ' + (props.className || '')} />\n)\n\nexport const Content: React.FC<React.HTMLAttributes<HTMLDivElement>> = (props) => (\n <div {...props} className={'eth-content ' + (props.className || '')} />\n)\n","import React, { useState, useRef, useMemo } from 'react'\nimport './Accordion.css'\n\nexport interface AccordionProps {\n title?: React.ReactNode\n children?: React.ReactNode\n open?: boolean\n}\n\nexport function Accordion(props: AccordionProps) {\n const [open, setOpen] = useState(false)\n const ref = useRef<HTMLDivElement>(null)\n const height = useMemo(() => {\n if (!ref.current || !open) {\n return 0\n }\n\n return ref.current.offsetHeight + 50\n }, [open])\n\n let className = 'eth-accordion'\n if (open) {\n className += ' eth-accordion-open'\n }\n\n return (\n <div className={className}>\n <div className=\"eth-accordion-title\" onClick={() => setOpen(!open)}>\n {props.title}\n </div>\n <div className=\"eth-accordion-description\" style={{ height: `${height}px` }}>\n <div ref={ref}>{props.children}</div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { Accordion } from '../common/Accordion'\nimport { Container, Content } from '../common/Container'\nimport './BeginnersGuide.css'\n\nexport const BeginnersGuide: React.FC<React.HTMLAttributes<HTMLDivElement>> = (props) => (\n <div className=\"eth-beginners-guide\">\n <Container>\n <Content>\n <h2>Beginner's Guide</h2>\n <Accordion\n title={\n <h3>\n What do I need to <b>play</b>?\n </h3>\n }\n >\n <p>A PC or Mac running Chrome or Firefox</p>\n <ul>\n <li>\n <p>Can I play on a mobile device?</p>\n <p>For the moment we don’t support mobile devices. But please stay tuned!</p>\n </li>\n <li>\n <p>Can I log in from multiple computers?</p>\n <p>\n Yes, you can run Decentraland from multiple computers as long as you have your digital wallet installed\n on each machine.\n </p>\n </li>\n <li>\n <p>Can I use a different browser?</p>\n <p>\n While it may be technically possible to use another browser, we recommend Chrome or Firefox to ensure\n optimal performance.\n </p>\n </li>\n </ul>\n </Accordion>\n <Accordion\n title={\n <h3>\n What is a <b>Wallet</b> and why do I need one?\n </h3>\n }\n >\n <p>\n If you want to fully enjoy the Decentraland experience, we recommend you get yourself a digital wallet.\n Digital wallets work as your personal account, keeping all your digital assets (such as names, collectibles,\n LANDs) and in-world progress safe.\n </p>\n <p>\n If you choose to experience Decentraland Explorer without a wallet, the information will only be stored\n locally: you will be able to walk around, customize your Avatar and chat with others in-world, but you won’t\n have the chance to receive daily rewards, participate in events or log in with a different device using the\n same Guest ID and Avatar.\n </p>\n <p>\n If this is the first time you’re hearing about digital wallets, we recommend reading{' '}\n <a href=\"https://docs.decentraland.org/examples/get-a-wallet/\" target=\"_blank\" rel=\"noreferrer\">\n Get a Wallet – Beginners Guide\n </a>\n .\n </p>\n </Accordion>\n <Accordion\n title={\n <h3>\n What is <b>MANA</b>?\n </h3>\n }\n >\n <p>\n MANA is Decentraland’s fungible, ERC20 cryptocurrency token. MANA is burned, or spent, in exchange for LAND\n parcels. For a current summary of critical stats like total and circulating supply, please visit our MANA\n Token Information transparency dashboard. See the{' '}\n <a href=\"https://docs.decentraland.org/decentraland/glossary/\" target=\"_blank\" rel=\"noreferrer\">\n Glossary\n </a>\n for more information.\n </p>\n </Accordion>\n <Accordion\n title={\n <h3>\n What is <b>LAND</b>?\n </h3>\n }\n >\n <p>\n LAND is a non-fungible digital asset maintained in an Ethereum smart contract. LAND is divided into parcels\n that are referenced using unique x,y cartesian coordinates. Each LAND token includes a record of its\n coordinates, its owner, and a reference to a content description file or parcel manifest that describes and\n encodes the content the owner wishes to serve on his or her land.\n </p>\n </Accordion>\n <Accordion\n title={\n <h3>\n What is the <b>Marketplace</b>?\n </h3>\n }\n >\n <p>The Marketplace is the go-to place to trade and manage all your Decentraland on-chain assets.</p>\n <p>\n Access the Marketplace at{' '}\n <a href=\"https://market.decentraland.org\" target=\"_blank\" rel=\"noreferrer\">\n market.decentraland.org\n </a>\n .\n </p>\n <p>The Marketplace allows you to:</p>\n <ul>\n <li>\n <p>\n Sell parcels and Estates of LAND, wearables and unique names. Set your own price in MANA and an\n expiration date for the offer.\n </p>\n </li>\n <li>\n <p>Buy parcels and Estates, wearables and unique names that are for sale.</p>\n </li>\n <li>\n <p>Transfer your parcels and Estates to another user.</p>\n </li>\n <li>\n <p>\n Explore the world through a map to see who owns what, what wearables exist and what names are claimed.\n </p>\n </li>\n </ul>\n </Accordion>\n </Content>\n </Container>\n </div>\n)\n","import React from 'react'\n\nexport function Reddit(props: React.SVGAttributes<SVGElement>) {\n return (\n <svg {...props} width=\"22\" height=\"22\" viewBox=\"0 0 22 22\">\n <path\n fill=\"currentColor\"\n d=\"M14,6.63157895 C14,6.95987493 13.9345794,7.22251172 13.7383178,7.48514851 C13.6074766,7.7477853 13.411215,7.9447629 13.1495327,8.07608129 C13.2149533,8.33871808 13.2149533,8.53569567 13.2149533,8.79833246 C13.2149533,9.58624283 12.953271,10.3741532 12.364486,11.0307452 C11.8411215,11.6873372 11.0560748,12.2782699 10.1401869,12.6722251 C9.22429907,13.0661803 8.17757009,13.2631579 7,13.2631579 C5.88785047,13.2631579 4.8411215,13.0661803 3.92523364,12.6722251 C2.94392523,12.2782699 2.22429907,11.7529964 1.70093458,11.0307452 C1.17757009,10.3741532 0.85046729,9.58624283 0.85046729,8.79833246 C0.85046729,8.53569567 0.85046729,8.33871808 0.91588785,8.07608129 C0.654205607,7.9447629 0.457943925,7.7477853 0.261682243,7.48514851 C0.130841121,7.22251172 0,6.95987493 0,6.63157895 C0,6.23762376 0.130841121,5.84366858 0.457943925,5.51537259 C0.785046729,5.1870766 1.11214953,5.05575821 1.57009346,5.05575821 C2.02803738,5.05575821 2.35514019,5.1870766 2.68224299,5.51537259 C3.79439252,4.72746222 5.1682243,4.33350703 6.6728972,4.26784784 L7.58878505,0.196977592 C7.58878505,0.131318395 7.65420561,0.0656591975 7.71962617,0.0656591975 C7.78504673,0 7.85046729,0 7.91588785,0 L10.7943925,0.656591975 C10.8598131,0.459614382 11.0560748,0.328295987 11.1869159,0.196977592 C11.3831776,0.0656591975 11.5794393,0 11.7757009,0 C12.1028037,0 12.364486,0.131318395 12.6261682,0.328295987 C12.8224299,0.52527358 12.953271,0.853569567 12.953271,1.18186555 C12.953271,1.51016154 12.8224299,1.77279833 12.6261682,2.03543512 C12.4299065,2.29807191 12.1028037,2.36373111 11.7757009,2.36373111 C11.4485981,2.36373111 11.1869159,2.23241271 10.9252336,2.03543512 C10.728972,1.83845753 10.5981308,1.51016154 10.5981308,1.18186555 L7.98130841,0.590932777 L7.19626168,4.26784784 C8.76635514,4.33350703 10.0747664,4.72746222 11.2523364,5.51537259 C11.5794393,5.1870766 11.9065421,5.05575821 12.364486,5.05575821 C12.8224299,5.05575821 13.1495327,5.1870766 13.4766355,5.51537259 C13.8691589,5.84366858 14,6.23762376 14,6.63157895 Z M3.3364486,8.20739969 C3.3364486,8.53569567 3.46728972,8.79833246 3.6635514,9.06096925 C3.85981308,9.32360604 4.18691589,9.38926524 4.51401869,9.38926524 C4.8411215,9.38926524 5.10280374,9.25794685 5.36448598,9.06096925 C5.56074766,8.86399166 5.69158879,8.53569567 5.69158879,8.20739969 C5.69158879,7.8791037 5.56074766,7.61646691 5.36448598,7.35383012 C5.1682243,7.15685253 4.8411215,7.02553413 4.51401869,7.02553413 C4.18691589,7.02553413 3.92523364,7.15685253 3.72897196,7.35383012 C3.53271028,7.55080771 3.3364486,7.8791037 3.3364486,8.20739969 Z M9.61682243,10.965086 C9.68224299,10.8994268 9.68224299,10.8337676 9.68224299,10.7681084 C9.68224299,10.7024492 9.68224299,10.63679 9.61682243,10.5711308 C9.55140187,10.5054716 9.48598131,10.5054716 9.42056075,10.5054716 C9.35514019,10.5054716 9.28971963,10.5054716 9.22429907,10.5711308 C9.02803738,10.7681084 8.70093458,10.965086 8.30841121,11.0307452 C7.91588785,11.1620636 7.45794393,11.1620636 7.06542056,11.1620636 C6.6728972,11.1620636 6.21495327,11.0964044 5.82242991,11.0307452 C5.42990654,10.8994268 5.10280374,10.7681084 4.90654206,10.5711308 C4.8411215,10.5054716 4.77570093,10.5054716 4.71028037,10.5054716 C4.64485981,10.5054716 4.57943925,10.5054716 4.51401869,10.5711308 C4.44859813,10.63679 4.44859813,10.7024492 4.44859813,10.7681084 C4.44859813,10.8337676 4.44859813,10.8994268 4.51401869,10.965086 C4.71028037,11.1620636 5.03738318,11.3590412 5.42990654,11.4903596 C5.82242991,11.621678 6.14953271,11.6873372 6.41121495,11.7529964 C6.6728972,11.7529964 6.86915888,11.8186555 7.13084112,11.8186555 C7.39252336,11.8186555 7.58878505,11.8186555 7.85046729,11.7529964 C8.11214953,11.7529964 8.43925234,11.621678 8.8317757,11.4903596 C9.09345794,11.3590412 9.42056075,11.2277228 9.61682243,10.965086 Z M9.61682243,9.38926524 C9.94392523,9.38926524 10.2056075,9.25794685 10.4672897,9.06096925 C10.728972,8.86399166 10.7943925,8.53569567 10.7943925,8.20739969 C10.7943925,7.8791037 10.6635514,7.61646691 10.4672897,7.41948932 C10.271028,7.22251172 9.94392523,7.09119333 9.68224299,7.09119333 C9.35514019,7.09119333 9.09345794,7.22251172 8.8317757,7.41948932 C8.63551402,7.61646691 8.5046729,7.9447629 8.5046729,8.27305888 C8.5046729,8.60135487 8.63551402,8.86399166 8.8317757,9.12662845 C9.02803738,9.25794685 9.28971963,9.38926524 9.61682243,9.38926524 Z\"\n transform=\"translate(4 4)\"\n />\n </svg>\n )\n}\n","import React from 'react'\n\nexport function Github(props: React.SVGAttributes<SVGElement>) {\n return (\n <svg {...props} width=\"22\" height=\"22\" viewBox=\"0 0 22 22\">\n <path\n fill=\"currentColor\"\n d=\"M7.88857838,9.78302833 C7.88857838,9.92796208 7.88857838,10.0728958 7.88857838,10.2902965 C7.88857838,11.159899 7.88857838,11.9570346 7.88857838,12.8266371 C7.88857838,12.9715709 7.88857838,13.0440378 7.73831975,12.9715709 C6.6865093,12.9715709 5.63469884,12.9715709 4.58288839,12.9715709 C4.43262976,12.9715709 4.43262976,12.899104 4.43262976,12.8266371 C4.43262976,12.3918359 4.43262976,11.8845677 4.43262976,11.4497665 C4.43262976,11.3772996 4.50775908,11.3048327 4.35750044,11.3048327 C4.35750044,11.3048327 4.28237112,11.3048327 4.28237112,11.3048327 C4.2072418,11.3048327 4.2072418,11.3048327 4.13211249,11.3048327 C3.68133658,11.3772996 3.30568999,11.3772996 2.85491408,11.3048327 C2.1036209,11.0874321 1.57771568,10.7250977 1.2771984,10.000429 C1.05181045,9.5656277 0.751293179,9.13082644 0.450775908,8.76849206 C0.37564659,8.6235583 0.150258636,8.6235583 0.0751293179,8.47862455 C0,8.40615767 0,8.40615767 0,8.3336908 C0,8.26122392 0.0751293179,8.26122392 0.150258636,8.26122392 C0.826422497,8.18875704 1.35232772,8.55109143 1.65284499,9.05835956 C1.95336227,9.5656277 2.40413817,9.92796208 2.9300434,10.0728958 C3.38081931,10.1453627 3.7564659,10.1453627 4.2072418,10.000429 C4.28237112,10.000429 4.35750044,9.92796208 4.35750044,9.78302833 C4.35750044,9.34822707 4.50775908,8.98589269 4.80827635,8.6235583 C4.65801771,8.6235583 4.58288839,8.55109143 4.50775908,8.55109143 C3.7564659,8.47862455 3.08030204,8.18875704 2.55439681,7.75395579 C1.87823295,7.24668765 1.50258636,6.59448576 1.35232772,5.869817 C1.2771984,5.14514823 1.2771984,4.49294634 1.35232772,3.76827758 C1.42745704,3.26100944 1.57771568,2.75374131 1.95336227,2.31894005 C2.1036209,2.17400629 2.1036209,2.10153942 2.02849158,1.88413879 C1.80310363,1.30440378 1.87823295,0.724668765 2.1036209,0.144933753 C2.1036209,0 2.17875022,0 2.32900886,0 C2.77978476,0.144933753 3.15543135,0.362334382 3.45594862,0.652201888 C3.60620726,0.797135641 3.7564659,0.942069394 3.90672453,1.15947002 C3.98185385,1.2319369 3.98185385,1.2319369 4.05698317,1.15947002 C4.28237112,0.942069394 4.58288839,0.942069394 4.88340567,0.869602518 C5.70982816,0.724668765 6.61137998,0.724668765 7.43780247,0.869602518 C7.73831975,0.942069394 8.03883702,0.942069394 8.26422497,1.15947002 C8.41448361,1.2319369 8.41448361,1.2319369 8.48961293,1.08700315 C8.71500088,0.797135641 9.01551815,0.507268135 9.31603542,0.289867506 C9.54142338,0.144933753 9.76681133,0.0724668765 9.99219928,0 C10.0673286,0 10.1424579,0 10.2175872,0.0724668765 C10.4429752,0.724668765 10.5181045,1.30440378 10.2175872,1.95660567 C10.2175872,2.02907254 10.1424579,2.10153942 10.2175872,2.17400629 C10.6683631,2.53634068 10.8186218,3.04360881 10.8937511,3.55087695 C10.9688804,4.20307884 11.0440097,4.85528073 10.9688804,5.50748261 C10.8186218,6.59448576 10.2175872,7.46408828 9.24090611,7.97135641 C9.16577679,7.97135641 9.16577679,7.97135641 9.16577679,8.04382329 C9.16577679,8.04382329 9.09064747,8.04382329 9.09064747,8.11629017 C9.01551815,8.11629017 8.94038883,8.18875704 8.86525952,8.18875704 C8.86525952,8.18875704 8.7901302,8.18875704 8.7901302,8.18875704 C8.71500088,8.18875704 8.71500088,8.18875704 8.71500088,8.26122392 C8.71500088,8.26122392 8.63987156,8.26122392 8.63987156,8.26122392 C8.48961293,8.26122392 8.33935429,8.3336908 8.26422497,8.40615767 C8.26422497,8.40615767 8.18909565,8.40615767 8.18909565,8.40615767 C8.11396634,8.40615767 7.9637077,8.40615767 7.88857838,8.47862455 C7.81344906,8.47862455 7.73831975,8.47862455 7.66319043,8.47862455 C7.58806111,8.47862455 7.51293179,8.47862455 7.51293179,8.47862455 C7.43780247,8.47862455 7.51293179,8.55109143 7.51293179,8.55109143 C7.51293179,8.6235583 7.51293179,8.6235583 7.58806111,8.6235583 C7.58806111,8.69602518 7.66319043,8.69602518 7.66319043,8.76849206 C7.66319043,8.84095893 7.66319043,8.91342581 7.73831975,8.98589269 C7.73831975,8.98589269 7.73831975,9.05835956 7.73831975,9.05835956 C7.73831975,9.13082644 7.73831975,9.27576019 7.81344906,9.34822707 C7.81344906,9.34822707 7.81344906,9.42069394 7.81344906,9.42069394 C7.81344906,9.49316082 7.81344906,9.49316082 7.81344906,9.5656277 C7.88857838,9.71056145 7.88857838,9.71056145 7.88857838,9.78302833 Z\"\n transform=\"translate(5 5)\"\n />\n </svg>\n )\n}\n","import React from 'react'\n\nexport function Twitter(props: React.SVGAttributes<SVGElement>) {\n return (\n <svg {...props} width=\"22\" height=\"22\" viewBox=\"0 0 22 22\">\n <path\n fill=\"currentColor\"\n d=\"M13,1.82494005 C12.5384615,2.058753 12,2.2146283 11.4615385,2.2146283 C12,1.9028777 12.4615385,1.35731415 12.6153846,0.73381295 C12.0769231,1.04556355 11.5384615,1.2793765 10.9230769,1.35731415 C10.4615385,0.8117506 9.76923077,0.5 9,0.5 C7.53846154,0.5 6.30769231,1.7470024 6.30769231,3.22781775 C6.30769231,3.4616307 6.30769231,3.617506 6.38461538,3.85131894 C4.15384615,3.77338129 2.15384615,2.6822542 0.846153846,1.04556355 C0.615384615,1.4352518 0.461538462,1.9028777 0.461538462,2.44844125 C0.461538462,3.38369305 0.923076923,4.24100719 1.69230769,4.70863309 C1.23076923,4.70863309 0.846153846,4.55275779 0.461538462,4.39688249 C0.461538462,5.72182254 1.38461538,6.81294964 2.61538462,7.04676259 C2.38461538,7.12470024 2.15384615,7.12470024 1.92307692,7.12470024 C1.76923077,7.12470024 1.61538462,7.12470024 1.38461538,7.04676259 C1.69230769,8.13788969 2.69230769,8.91726619 3.92307692,8.91726619 C3,9.61870504 1.84615385,10.0863309 0.615384615,10.0863309 C0.384615385,10.0863309 0.153846154,10.0863309 0,10.0863309 C1.15384615,10.8657074 2.61538462,11.3333333 4.07692308,11.3333333 C9,11.3333333 11.6923077,7.20263789 11.6923077,3.617506 C11.6923077,3.4616307 11.6923077,3.38369305 11.6923077,3.22781775 C12.1538462,2.91606715 12.6153846,2.3705036 13,1.82494005 Z\"\n transform=\"translate(5 5)\"\n />\n </svg>\n )\n}\n","import React from 'react'\nimport { Container } from './Container'\nimport { Reddit } from './Icon.tsx/Reddit'\nimport { Github } from './Icon.tsx/Github'\nimport { Twitter } from './Icon.tsx/Twitter'\nimport { Discord } from './Icon.tsx/Discord'\n\nimport './BigFooter.css'\nimport { injectVersions } from '../../utils/rolloutVersions'\n\nconst year = Math.max(new Date().getFullYear(), 2020)\n\nexport const BigFooter = () => {\n let versions = injectVersions({})\n\n return (\n <footer className=\"big-footer\">\n <Container>\n <div>\n <div>\n <h4>NEED SUPPORT?</h4>\n </div>\n <div>\n <a className=\"big-footer-button\" href=\"https://discord.gg/k5ydeZp\" target=\"about:blank\">\n <Discord /> Join our Discord\n </a>\n </div>\n </div>\n <div>\n <div>\n <h4>FOLLOW US</h4>\n </div>\n <div>\n <a className=\"big-footer-icon\" href=\"https://www.reddit.com/r/decentraland/\" target=\"about:blank\">\n <Reddit />\n </a>\n <a className=\"big-footer-icon\" href=\"http://github.com/decentraland\" target=\"about:blank\">\n <Github />\n </a>\n <a className=\"big-footer-icon\" href=\"https://twitter.com/decentraland\" target=\"about:blank\">\n <Twitter />\n </a>\n </div>\n </div>\n </Container>\n <Container>\n <p className=\"copyright\" title={'Versions: ' + JSON.stringify(versions, null, 2)}>\n © {year} Decentraland\n </p>\n </Container>\n </footer>\n )\n}\n","import React from 'react'\nimport { BannerContainerProps } from './BannerContainer.types'\n\nimport './banners.css'\n\nexport const BannerNotSupported: React.FC<Pick<BannerContainerProps, 'onClose'>> = (props) => (\n <div id=\"banner-notsupported\" className=\"banner-container\">\n <div className=\"banner-close-button\" onClick={props.onClose} />\n <div className=\"banner-text\">\n Your browser is not among the recommended choices for an optimal experience in Decentraland.\n We suggest you use one based on\n {' '}\n <a href=\"https://www.google.com/chrome/\" rel=\"noreferrer noopener\" target=\"_blank\">Chromium</a>\n {' or '}\n <a href=\"https://www.mozilla.org/en-US/firefox/new/\" rel=\"noreferrer noopener\" target=\"_blank\">Firefox</a>.\n </div>\n </div>\n)\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport { setBanner } from '../../state/actions'\nimport { BannerType, StoreType } from '../../state/redux'\nimport { BannerContainerProps } from './BannerContainer.types'\nimport { BannerNotSupported } from './BannerNotSupported'\n\nconst mapStateToProps = (state: StoreType): Pick<BannerContainerProps, 'banner'> => {\n return {\n banner: state.banner.banner\n }\n}\n\nconst mapDispatchToProps = (dispatch: (a: any) => void, state: StoreType): Pick<BannerContainerProps, 'onClose'> => {\n return {\n onClose: () => dispatch(setBanner(null))\n }\n}\n\nexport const BannerContainer: React.FC<BannerContainerProps> = (props) => {\n switch (props.banner) {\n case BannerType.NOT_RECOMMENDED:\n return <BannerNotSupported onClose={props.onClose}/>\n default:\n return null\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BannerContainer)\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport { connection } from 'decentraland-connect/dist/index'\nimport { ProviderType } from 'decentraland-connect/dist/types'\nimport { Navbar } from '../common/Navbar'\nimport { EthLogin } from './EthLogin'\nimport { Container } from '../common/Container'\nimport { BeginnersGuide } from './BeginnersGuide'\nimport { BigFooter } from '../common/BigFooter'\nimport './LoginContainer.css'\nimport { StoreType } from '../../state/redux'\nimport { LoginState } from '@dcl/kernel-interface'\nimport { authenticate } from '../../kernel-loader'\nimport BannerContainer from '../banners/BannerContainer'\n\nconst mapStateToProps = (state: StoreType): LoginContainerProps => {\n // test all connectors\n const enableProviders = new Set([ProviderType.INJECTED, ProviderType.FORTMATIC, ProviderType.WALLET_CONNECT])\n const availableProviders = connection.getAvailableProviders().filter((provider) => enableProviders.has(provider))\n return {\n stage: state.session.kernelState?.loginStatus,\n availableProviders,\n kernelReady: state.kernel.ready,\n rendererReady: state.renderer.ready\n }\n}\n\nconst mapDispatchToProps = (dispatch: any) => ({\n onLogin: (providerType: ProviderType | null) => {\n authenticate(providerType)\n }\n})\n\nexport interface LoginContainerProps {\n stage?: LoginState\n availableProviders: ProviderType[]\n kernelReady: boolean\n rendererReady: boolean\n}\n\nexport interface LoginContainerDispathc {\n onLogin: (provider: ProviderType | null) => void\n}\n\nexport const LoginContainer: React.FC<LoginContainerProps & LoginContainerDispathc> = (props) => {\n const loading =\n props.stage === LoginState.SIGNATURE_PENDING ||\n props.stage === LoginState.WAITING_PROFILE ||\n props.stage === LoginState.LOADING ||\n !props.kernelReady\n\n if (props.stage === LoginState.COMPLETED) {\n return <React.Fragment />\n }\n\n return (\n <React.Fragment>\n <div className={'LoginContainer FullPage'}>\n <BannerContainer />\n {/* Nabvar */}\n <Navbar full={true} />\n <main>\n <Container className=\"eth-login-popup\">\n <EthLogin availableProviders={props.availableProviders} onLogin={props.onLogin} signing={loading} />\n {/* {props.stage === LoginState.CONNECT_ADVICE && <EthConnectAdvice onLogin={props.onLogin} />} */}\n {/* {props.stage === LoginState.SIGN_ADVICE && <EthSignAdvice />} */}\n </Container>\n </main>\n <BeginnersGuide />\n <BigFooter />\n </div>\n </React.Fragment>\n )\n}\nexport default connect(mapStateToProps, mapDispatchToProps)(LoginContainer)\n","import React from 'react'\n\nexport interface AudioProps {\n play: boolean\n track: string\n}\n\nexport class Audio extends React.Component<AudioProps> {\n private player: HTMLAudioElement | null = null\n\n componentDidMount() {\n this.updatePlayer()\n }\n\n componentDidUpdate() {\n this.updatePlayer()\n }\n\n updatePlayer() {\n if (!this.player) {\n return\n }\n !this.props.play ? this.player.pause() : this.player.play().catch((e) => {})\n }\n\n render() {\n return (\n <audio ref={(audio) => (this.player = audio)} autoPlay loop>\n <source src={this.props.track} type=\"audio/mpeg\" />\n </audio>\n )\n }\n}\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport ErrorContainer from './errors/ErrorContainer'\nimport LoginContainer from './auth/LoginContainer'\nimport { Audio } from './common/Audio'\nimport { StoreType } from '../state/redux'\nimport './App.css'\n\nfunction mapStateToProps(state: StoreType): AppProps {\n return {\n rendererVisible: state.renderer.visible,\n error: !!state.error.error,\n sound: true // TODO: sound must be true after the first click\n }\n}\n\nexport interface AppProps {\n rendererVisible: boolean\n error: boolean\n sound: boolean\n}\n\nconst App: React.FC<AppProps> = (props) => {\n if (props.error) {\n return <ErrorContainer />\n }\n\n if (props.rendererVisible) {\n return <React.Fragment />\n }\n\n return (\n <div>\n {props.sound && <Audio track=\"/tone4.mp3\" play={true} />}\n <LoginContainer />\n </div>\n )\n}\n\nexport default connect(mapStateToProps)(App)\n","import * as React from 'react'\nimport * as ReactDOM from 'react-dom'\nimport { Provider } from 'react-redux'\nimport { configureRollbar, configureSegment } from './integration/analytics'\nimport { store } from './state/redux'\nimport { initializeKernel } from './integration/kernel'\nimport { initializeBrowserRecommendation } from './integration/browser'\nimport App from './components/App'\n\nconfigureSegment()\nconfigureRollbar()\n\nReactDOM.render(\n <React.StrictMode>\n <Provider store={store}>\n <App />\n </Provider>\n </React.StrictMode>,\n document.getElementById('root'),\n () => {\n initializeKernel()\n initializeBrowserRecommendation()\n }\n)\n","import { connection, ProviderType, ConnectionResponse } from 'decentraland-connect'\nimport { WebSocketProvider } from 'eth-connect'\nimport { ChainId } from '@dcl/schemas'\nimport { IEthereumProvider } from '@dcl/kernel-interface'\nimport { defaultWebsiteErrorTracker } from '../utils/tracking'\n\nexport const chainIdRpc = new Map<number, string>([\n [1, 'wss://mainnet.infura.io/ws/v3/074a68d50a7c4e6cb46aec204a50cbf0'],\n [3, 'wss://ropsten.infura.io/ws/v3/074a68d50a7c4e6cb46aec204a50cbf0']\n])\n\nexport async function getEthereumProvider(\n type: ProviderType | null,\n chainId: ChainId\n): Promise<{ provider: IEthereumProvider; chainId: number }> {\n if (type === null) {\n const rpc = chainIdRpc.get(chainId)\n if (!rpc) throw new Error(\"Can't get RPC for chainId \" + chainId)\n return {\n provider: new WebSocketProvider(rpc),\n chainId\n }\n }\n\n const result = await connection.connect(type, chainId)\n // console.log('11111111111 PERSONAL SIGGGGGGGGGN 11111111111')\n // console.log('PERSONAL SIGGGGGGGGGN 11111111111')\n\n return { provider: result.provider, chainId: result.chainId }\n}\n\nexport async function restoreConnection(): Promise<ConnectionResponse | null> {\n try {\n return await connection.tryPreviousConnection()\n } catch (err) {\n return null\n }\n}\n\nexport async function disconnect(): Promise<void> {\n try {\n return await connection.disconnect()\n } catch (err) {\n defaultWebsiteErrorTracker(err)\n return\n }\n}\n"],"sourceRoot":""}
|