{"version":3,"sources":["webpack:///./node_modules/error-stack-parser/error-stack-parser.js","webpack:///./node_modules/stack-generator/stack-generator.js","webpack:///./node_modules/stacktrace-gps/stacktrace-gps.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/source-map.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/base64.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/mapping-list.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-consumer.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/binary-search.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/quick-sort.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-node.js","webpack:///./app/javascript/mastodon/components/error_boundary.jsx","webpack:///./app/javascript/hooks/useLinks.ts","webpack:///./app/javascript/mastodon/components/account_bio.tsx","webpack:///./app/javascript/mastodon/components/account_fields.tsx","webpack:///./app/javascript/mastodon/components/hover_card_account.tsx","webpack:///./app/javascript/mastodon/components/hover_card_controller.tsx","webpack:///./app/javascript/mastodon/features/picture_in_picture/components/header.tsx","webpack:///./app/javascript/mastodon/features/picture_in_picture/index.tsx","webpack:///./app/javascript/mastodon/features/ui/components/upload_area.jsx","webpack:///./app/javascript/mastodon/features/ui/components/column_loading.tsx","webpack:///./app/javascript/mastodon/components/channel_banner.jsx","webpack:///./app/javascript/mastodon/features/ui/components/sign_in_banner.jsx","webpack:///./app/javascript/mastodon/features/ui/components/compose_panel.jsx","webpack:///./app/javascript/mastodon/features/ui/components/drawer_loading.jsx","webpack:///./app/javascript/material-icons/400-24px/feed_icon.svg","webpack:///./app/javascript/material-icons/400-24px/pen_icon.svg","webpack:///./app/javascript/material-icons/400-24px/podcast.svg","webpack:///./app/javascript/material-icons/400-24px/chat.svg","webpack:///./app/javascript/material-icons/400-24px/website_icon.svg","webpack:///./app/javascript/material-icons/400-24px/rss_feed.svg","webpack:///./app/javascript/material-icons/400-24px/butterfly.svg","webpack:///./app/javascript/material-icons/400-24px/thread.svg","webpack:///./app/javascript/material-icons/400-24px/mastodon.svg","webpack:///./app/javascript/material-icons/400-24px/video.svg","webpack:///./app/javascript/material-icons/400-24px/whatsapp.svg","webpack:///./app/javascript/material-icons/400-24px/x.svg","webpack:///./app/javascript/material-icons/400-24px/linktree.svg","webpack:///./app/javascript/material-icons/400-24px/facebook.svg","webpack:///./app/javascript/material-icons/400-24px/instagram.svg","webpack:///./app/javascript/material-icons/400-24px/tiktok.svg","webpack:///./app/javascript/material-icons/400-24px/reddit.svg","webpack:///./app/javascript/material-icons/400-24px/pintrest.svg","webpack:///./app/javascript/material-icons/400-24px/pixelfed.svg","webpack:///./app/javascript/material-icons/400-24px/snapchat.svg","webpack:///./app/javascript/material-icons/400-24px/message.svg","webpack:///./app/javascript/mastodon/features/ui/components/navIcons.jsx","webpack:///./app/javascript/mastodon/components/server_banner.jsx","webpack:///./app/javascript/mastodon/features/ui/components/server_information.tsx","webpack:///./app/javascript/mastodon/features/ui/components/logo.tsx","webpack:///./app/javascript/mastodon/features/ui/components/navigations.jsx","webpack:///./app/javascript/material-icons/400-24px/bookmarks.svg","webpack:///./app/javascript/material-icons/400-24px/explore-fill.svg","webpack:///./app/javascript/material-icons/400-24px/home.svg","webpack:///./app/javascript/material-icons/400-24px/list_alt-fill.svg","webpack:///./app/javascript/mastodon/features/account/components/featured_tags.jsx","webpack:///./app/javascript/mastodon/features/account/containers/featured_tags_container.js","webpack:///./app/javascript/mastodon/features/account/navigation.jsx","webpack:///./app/javascript/mastodon/components/navigation_portal.tsx","webpack:///./app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx","webpack:///./app/javascript/mastodon/features/ui/components/list_panel.jsx","webpack:///./app/javascript/mastodon/features/ui/components/navigation_panel.jsx","webpack:///./app/javascript/mastodon/features/ui/components/columns_area.jsx","webpack:///./app/javascript/mastodon/features/ui/containers/columns_area_container.js","webpack:///./app/javascript/mastodon/features/ui/util/react_router_helpers.jsx","webpack:///./app/javascript/mastodon/features/ui/index.jsx","webpack:///./app/javascript/mastodon/containers/mastodon.jsx","webpack:///./node_modules/marky/lib/marky.browser.es.js","webpack:///./app/javascript/mastodon/performance.js","webpack:///./app/javascript/mastodon/main.jsx","webpack:///./app/javascript/entrypoints/application.ts","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/util.js","webpack:///./node_modules/stacktrace-js/stacktrace.js","webpack:///./node_modules/stackframe/stackframe.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-generator.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/base64-vlq.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/array-set.js"],"names":["StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","parse","error","stacktrace","this","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","Error","extractLocation","urlLike","indexOf","parts","exec","replace","undefined","split","filter","line","map","sanitizedLine","location","locationParts","functionName","fileName","lineNumber","columnNumber","source","functionNameRegex","matches","e","message","length","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","result","i","len","push","argsRaw","tokens","pop","functionCall","shift","args","backtrace","opts","maxStackSize","curr","arguments","callee","Array","test","toString","RegExp","$1","caller","SourceMap","_xdr","url","Promise","resolve","reject","req","XMLHttpRequest","open","onerror","onreadystatechange","readyState","status","substr","responseText","send","_atob","b64str","window","atob","_parseJson","string","JSON","_findFunctionName","syntaxes","code","maxLines","Math","min","commentPos","index","m","_ensureSupportedEnvironment","Object","defineProperty","create","_ensureStackFrameIsLegit","stackframe","TypeError","_findSourceMappingURL","lastSourceMappingUrl","matchSourceMappingUrl","sourceMappingUrlRegExp","_extractLocationInfoFromSourceMapSource","sourceMapConsumer","sourceCache","loc","originalPositionFor","column","mappedSource","sourceContentFor","name","StackTraceGPS","sourceMapConsumerCache","ajax","_get","isDataUrl","offline","supportedEncodingRegexp","sourceMapStart","encodedSource","xhrPromise","method","then","bind","_getSourceMapConsumer","sourceMappingURL","defaultSourceRoot","sourceMapConsumerPromise","sourceMapSource","sourceRoot","SourceMapConsumer","catch","pinpoint","getMappedLocation","mappedStackFrame","resolveMappedStackFrame","findFunctionName","guessedFunctionName","substring","lastIndexOf","exports","SourceMapGenerator","SourceNode","intToCharMap","encode","number","decode","charCode","util","MappingList","_array","_sorted","_last","generatedLine","generatedColumn","prototype","unsortedForEach","aCallback","aThisArg","forEach","add","aMapping","mappingA","mappingB","lineA","lineB","columnA","columnB","compareByGeneratedPositionsInflated","toArray","sort","binarySearch","ArraySet","base64VLQ","quickSort","aSourceMap","sourceMap","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","version","getArg","sources","names","sourcesContent","mappings","file","_version","String","normalize","isAbsolute","relative","_names","fromArray","_sources","_mappings","Mapping","originalLine","originalColumn","lastOffset","_sections","s","offset","offsetLine","offsetColumn","generatedOffset","consumer","fromSourceMap","__generatedMappings","get","_parseMappings","__originalMappings","_charIsMappingSeparator","aStr","c","charAt","aSourceRoot","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","eachMapping","aContext","aOrder","context","_generatedMappings","_originalMappings","mapping","at","join","allGeneratedPositionsFor","aArgs","needle","has","_findMapping","compareByOriginalPositions","lastColumn","smc","_sourceRoot","_generateSourcesContent","_file","generatedMappings","slice","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","str","segment","end","value","previousGeneratedColumn","previousOriginalLine","previousOriginalColumn","previousSource","previousName","cachedSegments","temp","originalMappings","rest","compareByGeneratedPositionsDeflated","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","search","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","size","some","sc","aSource","nullOnMissing","urlParse","fileUriAbsPath","scheme","path","generatedPositionFor","constructor","j","sectionIndex","section","cmp","bias","every","content","generatedPosition","sectionMappings","adjustedMapping","recursiveSearch","aLow","aHigh","aHaystack","aCompare","mid","floor","swap","ary","x","y","doQuickSort","comparator","p","r","low","high","round","random","pivot","q","REGEX_NEWLINE","isSourceNode","aLine","aColumn","aChunks","aName","children","sourceContents","fromStringWithSourceMap","aGeneratedCode","aSourceMapConsumer","aRelativePath","node","remainingLines","shiftNextLine","lastGeneratedLine","lastMapping","nextLine","addMappingWithCode","sourceFile","setSourceContent","aChunk","isArray","chunk","prepend","unshift","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","aSourceFile","aSourceContent","toSetString","walkSourceContents","keys","fromSetString","toStringWithSourceMap","generated","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","original","addMapping","idx","charCodeAt","sourceContent","ErrorBoundary","PureComponent","_defineProperty","hasError","errorMessage","stackTrace","mappedStackTrace","componentStack","state","textarea","document","createElement","contents","textContent","style","position","body","appendChild","select","execCommand","removeChild","setState","copied","setTimeout","componentDidCatch","info","StackTrace","fromError","stackframes","sf","render","props","likelyBrowserAddonIssue","includes","_jsx","className","FormattedMessage","id","defaultMessage","href","source_url","rel","target","onClick","handleCopyStackTrace","Helmet","useLinks","history","useHistory","dispatch","useAppDispatch","handleHashtagClick","useCallback","element","handleMentionClick","async","openURL","isFulfilled","payload","accounts","acct","statuses","account","isRejected","closest","button","ctrlKey","metaKey","classList","contains","preventDefault","_element$textContent","_element$previousSibl","previousSibling","endsWith","isHashtagClick","AccountBio","_ref","note","handleClick","dangerouslySetInnerHTML","__html","onClickCapture","AccountFields","fields","limit","take","pair","_pair$get","classNames","verified","title","Icon","icon","CheckIcon","HoverCardAccount","forwardRef","ref","accountId","useAppSelector","relationships","getIn","useEffect","fetchAccount","_jsx2","role","_jsxs","_Fragment","Link","to","Avatar","DisplayName","localDomain","domain","note_emojified","ShortNumber","followers_count","renderer","FollowersCounter","FollowButton","LoadingIndicator","displayName","popperConfig","strategy","HoverCardController","setOpen","useState","setAccountId","anchor","setAnchor","cardRef","useRef","setLeaveTimeout","cancelLeaveTimeout","useTimeout","setEnterTimeout","cancelEnterTimeout","delayEnterTimeout","setScrollTimeout","useLocation","handleClose","isScrolling","currentAnchor","currentTitle","close","_currentAnchor","removeAttribute","handleMouseEnter","HTMLElement","_currentAnchor2","getAttribute","_target$getAttribute","setAttribute","current","handleMouseLeave","handleScrollEnd","handleScroll","handleMouseMove","addEventListener","passive","capture","removeEventListener","Overlay","rootClose","onHide","show","placement","flip","messages","defineMessages","Header","statusId","onClose","intl","useIntl","IconButton","iconComponent","CloseIcon","formatMessage","PictureInPicture","removePictureInPicture","pipState","picture_in_picture","type","src","currentTime","volume","muted","poster","backgroundColor","foregroundColor","accentColor","player","Video","autoPlay","inline","alwaysVisible","Audio","Footer","UploadArea","keyCode","active","stopPropagation","componentDidMount","handleKeyUp","componentWillUnmount","Motion","defaultStyle","backgroundOpacity","backgroundScale","spring","stiffness","damping","visibility","opacity","transform","ColumnLoading","otherProps","Column","ColumnHeader","withIdentity","signedIn","identity","channels","useSelector","recommended_channels","channelFeed","my_channel","useDispatch","fetchChannels","fetchMyChannel","hasImage","channel","_channel$attributes$a","attributes","avatar_image_url","startsWith","NavLink","display","flexDirection","gap","padding","border","background","queryString","encodeURIComponent","slug","browserHistory","toLowerCase","goToDetail","alignItems","aspectRatio","borderRadius","justifyContent","width","fontSize","fontWeight","color","letterSpacing","fontFamily","textAlign","community_count","ArrowRightUpAltIcon","paddingInlineEnd","height","marginBlockStart","textDecoration","SignInBanner","openClosedRegistrationsModal","openModal","modalType","signupButton","signupUrl","sso_redirect","registrationsOpen","ComposePanel","changeComposing","mountCompose","unmountCompose","onFocus","ComposeFormContainer","singleColumn","marginBlock","ChannelBanner","connect","DrawerLoading","_path","_extends","assign","n","t","hasOwnProperty","call","apply","_path2","_path3","_path4","_g","_style","titleId","viewBox","fill","xmlns","d","icons","fillOpacity","xmlSpace","fillRule","clipRule","xmlnsXlink","enableBackground","stroke","strokeLinejoin","aboutActiveUsers","ServerBanner","fetchServer","server","isLoading","Account","minimal","Skeleton","injectIntl","ServerInformation","channelOrgImage","alt","Date","getFullYear","fontFeatureSettings","paddingBlock","Logo","subdomain","hostname","isMainChannel","paddingInline","logo_image","textTransform","home","notifications","blog","explore","feed","podcast","chat","website","rss","bluesky","thread","Navigations","navItems","custom_links","ColumnLink","transparent","badge","FeedIcon","activeIconComponent","text","values","it","lastStatusAt","empty","FeaturedTags","ImmutablePureComponent","featuredTags","isEmpty","featuredTag","Hashtag","uses","withGraph","description","date","formatDate","month","day","ImmutablePropTypes","record","list","tagged","PropTypes","object","isRequired","mapStateToProps","getAccount","makeGetAccount","ImmutableList","AccountNavigation","params","normalizeForLookup","DefaultNavigation","showTrends","Trends","NavigationPortal","Switch","Route","exact","component","DisabledAccountBanner","onLogout","disabledAcct","movedToAcct","disabledAccountLink","disabledAccount","movedToAccount","handleLogOutClick","disabledAccountId","movedToAccountId","getOrderedLists","createSelector","lists","toList","item","a","b","localeCompare","ListPanel","fetchLists","ListAltIcon","ListAltActiveIcon","firehose","direct","favourites","bookmarks","preferences","administration","moderation","followsAndFollowers","about","advancedInterface","openedInClassicInterface","followRequests","NotificationsLink","count","selectUnreadNotificationGroupsCount","IconWithBadge","NotificationsIcon","activeIcon","NotificationsActiveIcon","FollowRequestsLink","_state$getIn$size","_state$getIn","fetchFollowRequests","PersonAddIcon","PersonAddActiveIcon","NavigationPanel","Component","pathname","permissions","banner","transientSingleColumn","HomeIcon","HomeActiveIcon","trendsEnabled","ExploreIcon","ExploreActiveIcon","SearchIcon","timelinePreview","isActive","isFirehoseActive","PublicIcon","AlternateEmailIcon","BookmarksIcon","BookmarksActiveIcon","StarIcon","StarActiveIcon","order","SettingsIcon","canManageReports","optional","ModerationIcon","canViewAdminDashboard","AdministrationIcon","MoreHorizIcon","componentMap","Compose","HomeTimeline","Notifications","PublicTimeline","CommunityTimeline","HashtagTimeline","DirectTimeline","FavouritedStatuses","BookmarkedStatuses","ListTimeline","Directory","TabsBarPortal","setTabsBarElement","useColumnsContext","setRef","ColumnsArea","matchMedia","renderComposePanel","mediaQuery","isMenuOpen","currentYear","prevState","columnId","multiColumn","BundleColumnError","errorType","handleLayoutChange","addListener","isRtlLayout","getElementsByTagName","removeListener","handleChildrenContentChange","modifier","scrollRight","scrollWidth","innerWidth","columns","isModalOpen","handleOpenMenu","BurgerMenuClose","BurgerMenu","toJS","other","BundleContainer","fetchComponent","loading","renderLoading","renderError","SpecificComponent","Children","child","cloneElement","identityContextPropShape","bool","WrappedSwitch","decklessLocation","WrappedRoute","_ref2","componentParams","getDerivedStateFromError","frame","err","console","renderComponent","beforeUnload","keyMap","help","new","forceNew","toggleComposeSpoilers","focusColumn","reply","favourite","boost","mention","openProfile","moveDown","moveUp","back","goToHome","goToNotifications","goToLocal","goToFederated","goToDirect","goToStart","goToFavourites","goToPinned","goToProfile","goToBlocked","goToMuted","goToRequests","toggleHidden","toggleSensitive","openMedia","onTranslate","SwitchingColumnsArea","UNSAFE_componentWillMount","toggle","componentDidUpdate","prevProps","forceOnboarding","pathName","redirect","Redirect","from","singleUserMode","owner","initialState","username","trendsAsLanding","ColumnsContextProvider","ColumnsAreaContainer","GettingStarted","KeyboardShortcuts","About","PrivacyPolicy","Firehose","feedType","LinkTimeline","ListEdit","ListMembers","NotificationRequests","NotificationRequest","PinnedStatuses","Collections","CollectionDetail","OnboardingProfile","OnboardingFollows","Explore","Search","AccountTimeline","withReplies","Followers","Following","AccountGallery","Status","Reblogs","Favourites","FollowRequests","Blocks","DomainBlocks","FollowedTags","Mutes","Lists","UI","draggingOver","isComposing","hasComposingText","hasMediaAttachments","synchronouslySubmitMarkers","returnValue","focusApp","submitMarkers","immediate","unfocusApp","dragTargets","dataTransfer","types","canUploadMore","dataTransferIsText","dropEffect","files","uploadCompose","el","data","warn","_debounce","clearHeight","trailing","layout","layoutFromWindow","cancel","changeLayout","querySelector","focus","handleHotkeyNew","resetCompose","changeComposeSpoilerness","key","container","scrollTop","offsetTop","scrollIntoView","_history$location","fromMastodon","goBack","hotkeys","handleWindowFocus","handleWindowBlur","handleBeforeUnload","handleResize","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","handleDragEnd","navigator","serviceWorker","handleServiceWorkerPostMessage","fetchMarkers","expandHomeTimeline","fetchNotifications","fetchServerTranslationLanguages","__mousetrap__","stopCallback","tagName","firstLaunch","newAccount","handlers","handleHotkeyToggleHelp","handleHotkeySearch","handleHotkeyForceNew","handleHotkeyToggleComposeSpoilers","handleHotkeyFocusColumn","handleHotkeyBack","handleHotkeyGoToHome","handleHotkeyGoToNotifications","handleHotkeyGoToLocal","handleHotkeyGoToFederated","handleHotkeyGoToDirect","handleHotkeyGoToStart","handleHotkeyGoToFavourites","handleHotkeyGoToPinned","handleHotkeyGoToProfile","handleHotkeyGoToBlocked","handleHotkeyGoToMuted","handleHotkeyGoToRequests","HotKeys","setHotkeysRef","attach","focused","NotificationsContainer","disableHoverCards","LoadingBarContainer","ModalContainer","closeUploadModal","trim","INTRODUCTION_VERSION","me","withRouter","isProduction","siteTitle","hydrateAction","hydrateStore","store","meta","fetchCustomEmojis","Mastodon","createIdentityContext","disconnect","connectUserStream","shouldUpdateScroll","prevRouterProps","_location$state","_location$state2","_prevRouterProps$loca","mastodonModalKey","IdentityContext","Provider","IntlProvider","ReduxProvider","Router","ScrollContext","defaultTitle","titleTemplate","mark","stop","perf","performance","now","throwIfEmpty","measure","getEntriesByName","getEntriesByType","clearMarks","clearMeasures","entries","marks","startTime","endTime","entry","duration","entryType","arr","splice","insertSorted","isDevelopment","setResourceTimingBufferSize","main","marky","ready","mountNode","getElementById","createRoot","setupBrowserNotifications","Workbox","wb","registration","register","Notification","permission","registerPushNotifications","start","loadPolyfills","loadLocale","aDefaultValue","urlRegexp","dataUrlRegexp","aUrl","auth","host","port","urlGenerate","aParsedUrl","aPath","part","up","aRoot","aPathUrl","aRootUrl","joined","level","supportsNullProto","isProtoString","strcmp","aStr1","aStr2","onlyCompareOriginal","onlyCompareGenerated","ErrorStackParser","StackGenerator","_options","_generateError","_merge","first","second","obj","prop","_isShapedLikeParsableError","_filtered","generateArtificially","getSync","gps","all","resolveOriginal","stackFrames","instrument","fn","callback","errback","thisArg","__stacktraceOriginalFn","instrumented","deinstrument","report","errorMsg","requestOptions","setRequestHeader","headers","header","reportPayload","stringify","_isNumber","isNaN","parseFloat","isFinite","_capitalize","toUpperCase","_getter","booleanProps","numericProps","stringProps","arrayProps","objectProps","concat","getArgs","setArgs","v","getEvalOrigin","evalOrigin","setEvalOrigin","getFileName","getLineNumber","getColumnNumber","getFunctionName","getIsEval","fromString","argsStartIndex","argsEndIndex","locationString","Boolean","Number","k","_skipValidation","_sourcesContents","generator","newMapping","_validateMapping","applySourceMap","aSourceMapPath","newSources","newNames","aGenerated","aOriginal","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedLine","aSources","toJSON","base64","aValue","digit","encoded","vlq","toVLQSigned","VLQ_BASE","aIndex","aOutParam","continuation","shifted","strLen","_set","aArray","aAllowDuplicates","set","getOwnPropertyNames","sStr","isDuplicate","aIdx"],"mappings":"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","file":"js/application-c8be738437b114f5f1b6.chunk.js","sourcesContent":["(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(,.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(').replace(/^.*?\\s+/, '');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\(.+\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n // if a location was matched, pass it to extractLocation() otherwise pass all sanitizedLine\n // because this line doesn't have function name\n var locationParts = this.extractLocation(location ? location[1] : sanitizedLine);\n var functionName = location && sanitizedLine || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n}(this, function(StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({functionName: RegExp.$1 || undefined, args: args}));\n } else {\n stack.push(new StackFrame({args: args}));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n return stack;\n }\n };\n}));\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stacktrace-gps', ['source-map', 'stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('source-map/lib/source-map-consumer'), require('stackframe'));\n } else {\n root.StackTraceGPS = factory(root.SourceMap || root.sourceMap, root.StackFrame);\n }\n}(this, function(SourceMap, StackFrame) {\n 'use strict';\n\n /**\n * Make a X-Domain request to url and callback.\n *\n * @param {String} url\n * @returns {Promise} with response text if fulfilled\n */\n function _xdr(url) {\n return new Promise(function(resolve, reject) {\n var req = new XMLHttpRequest();\n req.open('get', url);\n req.onerror = reject;\n req.onreadystatechange = function onreadystatechange() {\n if (req.readyState === 4) {\n if ((req.status >= 200 && req.status < 300) ||\n (url.substr(0, 7) === 'file://' && req.responseText)) {\n resolve(req.responseText);\n } else {\n reject(new Error('HTTP status: ' + req.status + ' retrieving ' + url));\n }\n }\n };\n req.send();\n });\n\n }\n\n /**\n * Convert a Base64-encoded string into its original representation.\n * Used for inline sourcemaps.\n *\n * @param {String} b64str Base-64 encoded string\n * @returns {String} original representation of the base64-encoded string.\n */\n function _atob(b64str) {\n if (typeof window !== 'undefined' && window.atob) {\n return window.atob(b64str);\n } else {\n throw new Error('You must supply a polyfill for window.atob in this environment');\n }\n }\n\n function _parseJson(string) {\n if (typeof JSON !== 'undefined' && JSON.parse) {\n return JSON.parse(string);\n } else {\n throw new Error('You must supply a polyfill for JSON.parse in this environment');\n }\n }\n\n function _findFunctionName(source, lineNumber/*, columnNumber*/) {\n var syntaxes = [\n // {name} = function ({args}) TODO args capture\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*function\\b/,\n // function {name}({args}) m[1]=name m[2]=args\n /function\\s+([^('\"`]*?)\\s*\\(([^)]*)\\)/,\n // {name} = eval()\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*(?:eval|new Function)\\b/,\n // fn_name() {\n /\\b(?!(?:if|for|switch|while|with|catch)\\b)(?:(?:static)\\s+)?(\\S+)\\s*\\(.*?\\)\\s*\\{/,\n // {name} = () => {\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*\\(.*?\\)\\s*=>/\n ];\n var lines = source.split('\\n');\n\n // Walk backwards in the source lines until we find the line which matches one of the patterns above\n var code = '';\n var maxLines = Math.min(lineNumber, 20);\n for (var i = 0; i < maxLines; ++i) {\n // lineNo is 1-based, source[] is 0-based\n var line = lines[lineNumber - i - 1];\n var commentPos = line.indexOf('//');\n if (commentPos >= 0) {\n line = line.substr(0, commentPos);\n }\n\n if (line) {\n code = line + code;\n var len = syntaxes.length;\n for (var index = 0; index < len; index++) {\n var m = syntaxes[index].exec(code);\n if (m && m[1]) {\n return m[1];\n }\n }\n }\n }\n return undefined;\n }\n\n function _ensureSupportedEnvironment() {\n if (typeof Object.defineProperty !== 'function' || typeof Object.create !== 'function') {\n throw new Error('Unable to consume source maps in older browsers');\n }\n }\n\n function _ensureStackFrameIsLegit(stackframe) {\n if (typeof stackframe !== 'object') {\n throw new TypeError('Given StackFrame is not an object');\n } else if (typeof stackframe.fileName !== 'string') {\n throw new TypeError('Given file name is not a String');\n } else if (typeof stackframe.lineNumber !== 'number' ||\n stackframe.lineNumber % 1 !== 0 ||\n stackframe.lineNumber < 1) {\n throw new TypeError('Given line number must be a positive integer');\n } else if (typeof stackframe.columnNumber !== 'number' ||\n stackframe.columnNumber % 1 !== 0 ||\n stackframe.columnNumber < 0) {\n throw new TypeError('Given column number must be a non-negative integer');\n }\n return true;\n }\n\n function _findSourceMappingURL(source) {\n var sourceMappingUrlRegExp = /\\/\\/[#@] ?sourceMappingURL=([^\\s'\"]+)\\s*$/mg;\n var lastSourceMappingUrl;\n var matchSourceMappingUrl;\n // eslint-disable-next-line no-cond-assign\n while (matchSourceMappingUrl = sourceMappingUrlRegExp.exec(source)) {\n lastSourceMappingUrl = matchSourceMappingUrl[1];\n }\n if (lastSourceMappingUrl) {\n return lastSourceMappingUrl;\n } else {\n throw new Error('sourceMappingURL not found');\n }\n }\n\n function _extractLocationInfoFromSourceMapSource(stackframe, sourceMapConsumer, sourceCache) {\n return new Promise(function(resolve, reject) {\n var loc = sourceMapConsumer.originalPositionFor({\n line: stackframe.lineNumber,\n column: stackframe.columnNumber\n });\n\n if (loc.source) {\n // cache mapped sources\n var mappedSource = sourceMapConsumer.sourceContentFor(loc.source);\n if (mappedSource) {\n sourceCache[loc.source] = mappedSource;\n }\n\n resolve(\n // given stackframe and source location, update stackframe\n new StackFrame({\n functionName: loc.name || stackframe.functionName,\n args: stackframe.args,\n fileName: loc.source,\n lineNumber: loc.line,\n columnNumber: loc.column\n }));\n } else {\n reject(new Error('Could not get original source for given stackframe and source map'));\n }\n });\n }\n\n /**\n * @constructor\n * @param {Object} opts\n * opts.sourceCache = {url: \"Source String\"} => preload source cache\n * opts.sourceMapConsumerCache = {/path/file.js.map: SourceMapConsumer}\n * opts.offline = True to prevent network requests.\n * Best effort without sources or source maps.\n * opts.ajax = Promise returning function to make X-Domain requests\n */\n return function StackTraceGPS(opts) {\n if (!(this instanceof StackTraceGPS)) {\n return new StackTraceGPS(opts);\n }\n opts = opts || {};\n\n this.sourceCache = opts.sourceCache || {};\n this.sourceMapConsumerCache = opts.sourceMapConsumerCache || {};\n\n this.ajax = opts.ajax || _xdr;\n\n this._atob = opts.atob || _atob;\n\n this._get = function _get(location) {\n return new Promise(function(resolve, reject) {\n var isDataUrl = location.substr(0, 5) === 'data:';\n if (this.sourceCache[location]) {\n resolve(this.sourceCache[location]);\n } else if (opts.offline && !isDataUrl) {\n reject(new Error('Cannot make network requests in offline mode'));\n } else {\n if (isDataUrl) {\n // data URLs can have parameters.\n // see http://tools.ietf.org/html/rfc2397\n var supportedEncodingRegexp =\n /^data:application\\/json;([\\w=:\"-]+;)*base64,/;\n var match = location.match(supportedEncodingRegexp);\n if (match) {\n var sourceMapStart = match[0].length;\n var encodedSource = location.substr(sourceMapStart);\n var source = this._atob(encodedSource);\n this.sourceCache[location] = source;\n resolve(source);\n } else {\n reject(new Error('The encoding of the inline sourcemap is not supported'));\n }\n } else {\n var xhrPromise = this.ajax(location, {method: 'get'});\n // Cache the Promise to prevent duplicate in-flight requests\n this.sourceCache[location] = xhrPromise;\n xhrPromise.then(resolve, reject);\n }\n }\n }.bind(this));\n };\n\n /**\n * Creating SourceMapConsumers is expensive, so this wraps the creation of a\n * SourceMapConsumer in a per-instance cache.\n *\n * @param {String} sourceMappingURL = URL to fetch source map from\n * @param {String} defaultSourceRoot = Default source root for source map if undefined\n * @returns {Promise} that resolves a SourceMapConsumer\n */\n this._getSourceMapConsumer = function _getSourceMapConsumer(sourceMappingURL, defaultSourceRoot) {\n return new Promise(function(resolve) {\n if (this.sourceMapConsumerCache[sourceMappingURL]) {\n resolve(this.sourceMapConsumerCache[sourceMappingURL]);\n } else {\n var sourceMapConsumerPromise = new Promise(function(resolve, reject) {\n return this._get(sourceMappingURL).then(function(sourceMapSource) {\n if (typeof sourceMapSource === 'string') {\n sourceMapSource = _parseJson(sourceMapSource.replace(/^\\)\\]\\}'/, ''));\n }\n if (typeof sourceMapSource.sourceRoot === 'undefined') {\n sourceMapSource.sourceRoot = defaultSourceRoot;\n }\n\n resolve(new SourceMap.SourceMapConsumer(sourceMapSource));\n }).catch(reject);\n }.bind(this));\n this.sourceMapConsumerCache[sourceMappingURL] = sourceMapConsumerPromise;\n resolve(sourceMapConsumerPromise);\n }\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, enhance function name and use source maps for a\n * better StackFrame.\n *\n * @param {StackFrame} stackframe object\n * @returns {Promise} that resolves with with source-mapped StackFrame\n */\n this.pinpoint = function StackTraceGPS$$pinpoint(stackframe) {\n return new Promise(function(resolve, reject) {\n this.getMappedLocation(stackframe).then(function(mappedStackFrame) {\n function resolveMappedStackFrame() {\n resolve(mappedStackFrame);\n }\n\n this.findFunctionName(mappedStackFrame)\n .then(resolve, resolveMappedStackFrame)\n // eslint-disable-next-line no-unexpected-multiline\n ['catch'](resolveMappedStackFrame);\n }.bind(this), reject);\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, guess function name from location information.\n *\n * @param {StackFrame} stackframe\n * @returns {Promise} that resolves with enhanced StackFrame.\n */\n this.findFunctionName = function StackTraceGPS$$findFunctionName(stackframe) {\n return new Promise(function(resolve, reject) {\n _ensureStackFrameIsLegit(stackframe);\n this._get(stackframe.fileName).then(function getSourceCallback(source) {\n var lineNumber = stackframe.lineNumber;\n var columnNumber = stackframe.columnNumber;\n var guessedFunctionName = _findFunctionName(source, lineNumber, columnNumber);\n // Only replace functionName if we found something\n if (guessedFunctionName) {\n resolve(new StackFrame({\n functionName: guessedFunctionName,\n args: stackframe.args,\n fileName: stackframe.fileName,\n lineNumber: lineNumber,\n columnNumber: columnNumber\n }));\n } else {\n resolve(stackframe);\n }\n }, reject)['catch'](reject);\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, seek source-mapped location and return new enhanced StackFrame.\n *\n * @param {StackFrame} stackframe\n * @returns {Promise} that resolves with enhanced StackFrame.\n */\n this.getMappedLocation = function StackTraceGPS$$getMappedLocation(stackframe) {\n return new Promise(function(resolve, reject) {\n _ensureSupportedEnvironment();\n _ensureStackFrameIsLegit(stackframe);\n\n var sourceCache = this.sourceCache;\n var fileName = stackframe.fileName;\n this._get(fileName).then(function(source) {\n var sourceMappingURL = _findSourceMappingURL(source);\n var isDataUrl = sourceMappingURL.substr(0, 5) === 'data:';\n var defaultSourceRoot = fileName.substring(0, fileName.lastIndexOf('/') + 1);\n\n if (sourceMappingURL[0] !== '/' && !isDataUrl && !(/^https?:\\/\\/|^\\/\\//i).test(sourceMappingURL)) {\n sourceMappingURL = defaultSourceRoot + sourceMappingURL;\n }\n\n return this._getSourceMapConsumer(sourceMappingURL, defaultSourceRoot)\n .then(function(sourceMapConsumer) {\n return _extractLocationInfoFromSourceMapSource(stackframe, sourceMapConsumer, sourceCache)\n .then(resolve)['catch'](function() {\n resolve(stackframe);\n });\n });\n }.bind(this), reject)['catch'](reject);\n }.bind(this));\n };\n };\n}));\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap)\n : new BasicSourceMapConsumer(sourceMap);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n if (source != null && sourceRoot != null) {\n source = util.join(sourceRoot, source);\n }\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n * - column: Optional. the column number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n if (this.sourceRoot != null) {\n needle.source = util.relative(this.sourceRoot, needle.source);\n }\n if (!this._sources.has(needle.source)) {\n return [];\n }\n needle.source = this._sources.indexOf(needle.source);\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The only parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._sources.toArray().map(function (s) {\n return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n }, this);\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source.\n * - column: The column number in the generated source.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null.\n * - column: The column number in the original source, or null.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n if (this.sourceRoot != null) {\n source = util.join(this.sourceRoot, source);\n }\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n if (this.sourceRoot != null) {\n aSource = util.relative(this.sourceRoot, aSource);\n }\n\n if (this._sources.has(aSource)) {\n return this.sourcesContent[this._sources.indexOf(aSource)];\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + aSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n * - column: The column number in the original source.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n if (this.sourceRoot != null) {\n source = util.relative(this.sourceRoot, source);\n }\n if (!this._sources.has(source)) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n source = this._sources.indexOf(source);\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The only parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source.\n * - column: The column number in the generated source.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null.\n * - column: The column number in the original source, or null.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n * - column: The column number in the original source.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n if (section.consumer.sourceRoot !== null) {\n source = util.join(section.consumer.sourceRoot, source);\n }\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are removed from this array, by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var shiftNextLine = function() {\n var lineContents = remainingLines.shift();\n // The last line of a file might not have a newline.\n var newLine = remainingLines.shift() || \"\";\n return lineContents + newLine;\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[0];\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[0] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[0];\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[0] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLines.length > 0) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport { Helmet } from 'react-helmet';\n\nimport StackTrace from 'stacktrace-js';\n\nimport { version, source_url } from 'mastodon/initial_state';\n\nexport default class ErrorBoundary extends PureComponent {\n\n static propTypes = {\n children: PropTypes.node,\n };\n\n state = {\n hasError: false,\n errorMessage: undefined,\n stackTrace: undefined,\n mappedStackTrace: undefined,\n componentStack: undefined,\n };\n\n componentDidCatch (error, info) {\n this.setState({\n hasError: true,\n errorMessage: error.toString(),\n stackTrace: error.stack,\n componentStack: info && info.componentStack,\n mappedStackTrace: undefined,\n });\n\n StackTrace.fromError(error).then((stackframes) => {\n this.setState({\n mappedStackTrace: stackframes.map((sf) => sf.toString()).join('\\n'),\n });\n }).catch(() => {\n this.setState({\n mappedStackTrace: undefined,\n });\n });\n }\n\n handleCopyStackTrace = () => {\n const { errorMessage, stackTrace, mappedStackTrace } = this.state;\n const textarea = document.createElement('textarea');\n\n let contents = [errorMessage, stackTrace];\n if (mappedStackTrace) {\n contents.push(mappedStackTrace);\n }\n\n textarea.textContent = contents.join('\\n\\n\\n');\n textarea.style.position = 'fixed';\n\n document.body.appendChild(textarea);\n\n try {\n textarea.select();\n document.execCommand('copy');\n } catch {\n // do nothing\n } finally {\n document.body.removeChild(textarea);\n }\n\n this.setState({ copied: true });\n setTimeout(() => this.setState({ copied: false }), 700);\n };\n\n render() {\n const { hasError, copied, errorMessage } = this.state;\n\n if (!hasError) {\n return this.props.children;\n }\n\n const likelyBrowserAddonIssue = errorMessage && errorMessage.includes('NotFoundError');\n\n return (\n
\n
\n

\n { likelyBrowserAddonIssue ? (\n \n ) : (\n \n )}\n

\n\n

\n { likelyBrowserAddonIssue ? (\n \n ) : (\n \n )}\n

\n\n

Mastodon v{version} · ·

\n
\n\n \n \n \n
\n );\n }\n\n}\n","import { useCallback } from 'react';\n\nimport { useHistory } from 'react-router-dom';\n\nimport { isFulfilled, isRejected } from '@reduxjs/toolkit';\n\nimport { openURL } from 'mastodon/actions/search';\nimport { useAppDispatch } from 'mastodon/store';\n\nconst isMentionClick = (element: HTMLAnchorElement) =>\n element.classList.contains('mention');\n\nconst isHashtagClick = (element: HTMLAnchorElement) =>\n element.textContent?.[0] === '#' ||\n element.previousSibling?.textContent?.endsWith('#');\n\nexport const useLinks = () => {\n const history = useHistory();\n const dispatch = useAppDispatch();\n\n const handleHashtagClick = useCallback(\n (element: HTMLAnchorElement) => {\n const { textContent } = element;\n\n if (!textContent) return;\n\n history.push(`/tags/${textContent.replace(/^#/, '')}`);\n },\n [history],\n );\n\n const handleMentionClick = useCallback(\n async (element: HTMLAnchorElement) => {\n const result = await dispatch(openURL({ url: element.href }));\n\n if (isFulfilled(result)) {\n if (result.payload.accounts[0]) {\n history.push(`/@${result.payload.accounts[0].acct}`);\n } else if (result.payload.statuses[0]) {\n history.push(\n `/@${result.payload.statuses[0].account.acct}/${result.payload.statuses[0].id}`,\n );\n } else {\n window.location.href = element.href;\n }\n } else if (isRejected(result)) {\n window.location.href = element.href;\n }\n },\n [dispatch, history],\n );\n\n const handleClick = useCallback(\n (e: React.MouseEvent) => {\n const target = (e.target as HTMLElement).closest('a');\n\n if (!target || e.button !== 0 || e.ctrlKey || e.metaKey) {\n return;\n }\n\n if (isMentionClick(target)) {\n e.preventDefault();\n void handleMentionClick(target);\n } else if (isHashtagClick(target)) {\n e.preventDefault();\n handleHashtagClick(target);\n }\n },\n [handleMentionClick, handleHashtagClick],\n );\n\n return handleClick;\n};\n","import { useLinks } from 'mastodon/../hooks/useLinks';\n\nexport const AccountBio: React.FC<{\n note: string;\n className: string;\n}> = ({ note, className }) => {\n const handleClick = useLinks();\n\n if (note.length === 0 || note === '

') {\n return null;\n }\n\n return (\n \n );\n};\n","import classNames from 'classnames';\n\nimport CheckIcon from '@/material-icons/400-24px/check.svg?react';\nimport { useLinks } from 'mastodon/../hooks/useLinks';\nimport { Icon } from 'mastodon/components/icon';\nimport type { Account } from 'mastodon/models/account';\n\nexport const AccountFields: React.FC<{\n fields: Account['fields'];\n limit: number;\n}> = ({ fields, limit = -1 }) => {\n const handleClick = useLinks();\n\n if (fields.size === 0) {\n return null;\n }\n\n return (\n
\n {fields.take(limit).map((pair, i) => (\n \n \n\n
\n {pair.get('verified_at') && (\n \n )}\n \n
\n \n ))}\n
\n );\n};\n","import { useEffect, forwardRef } from 'react';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport classNames from 'classnames';\nimport { Link } from 'react-router-dom';\n\nimport { fetchAccount } from 'mastodon/actions/accounts';\nimport { AccountBio } from 'mastodon/components/account_bio';\nimport { AccountFields } from 'mastodon/components/account_fields';\nimport { Avatar } from 'mastodon/components/avatar';\nimport { FollowersCounter } from 'mastodon/components/counters';\nimport { DisplayName } from 'mastodon/components/display_name';\nimport { FollowButton } from 'mastodon/components/follow_button';\nimport { LoadingIndicator } from 'mastodon/components/loading_indicator';\nimport { ShortNumber } from 'mastodon/components/short_number';\nimport { domain } from 'mastodon/initial_state';\nimport { useAppSelector, useAppDispatch } from 'mastodon/store';\n\nexport const HoverCardAccount = forwardRef<\n HTMLDivElement,\n { accountId?: string }\n>(({ accountId }, ref) => {\n const dispatch = useAppDispatch();\n\n const account = useAppSelector((state) =>\n accountId ? state.accounts.get(accountId) : undefined,\n );\n\n const note = useAppSelector(\n (state) =>\n state.relationships.getIn([accountId, 'note']) as string | undefined,\n );\n\n useEffect(() => {\n if (accountId && !account) {\n dispatch(fetchAccount(accountId));\n }\n }, [dispatch, accountId, account]);\n\n return (\n \n {account ? (\n <>\n \n \n \n \n\n
\n \n \n {note && note.length > 0 && (\n
\n
\n \n
\n
{note}
\n
\n )}\n
\n\n
\n \n
\n\n \n \n ) : (\n \n )}\n \n );\n});\n\nHoverCardAccount.displayName = 'HoverCardAccount';\n","import { useEffect, useRef, useState, useCallback } from 'react';\n\nimport { useLocation } from 'react-router-dom';\n\nimport Overlay from 'react-overlays/Overlay';\nimport type {\n OffsetValue,\n UsePopperOptions,\n} from 'react-overlays/esm/usePopper';\n\nimport { useTimeout } from 'mastodon/../hooks/useTimeout';\nimport { HoverCardAccount } from 'mastodon/components/hover_card_account';\n\nconst offset = [-12, 4] as OffsetValue;\nconst enterDelay = 750;\nconst leaveDelay = 150;\nconst popperConfig = { strategy: 'fixed' } as UsePopperOptions;\n\nconst isHoverCardAnchor = (element: HTMLElement) =>\n element.matches('[data-hover-card-account]');\n\nexport const HoverCardController: React.FC = () => {\n const [open, setOpen] = useState(false);\n const [accountId, setAccountId] = useState();\n const [anchor, setAnchor] = useState(null);\n const cardRef = useRef(null);\n const [setLeaveTimeout, cancelLeaveTimeout] = useTimeout();\n const [setEnterTimeout, cancelEnterTimeout, delayEnterTimeout] = useTimeout();\n const [setScrollTimeout] = useTimeout();\n const location = useLocation();\n\n const handleClose = useCallback(() => {\n cancelEnterTimeout();\n cancelLeaveTimeout();\n setOpen(false);\n setAnchor(null);\n }, [cancelEnterTimeout, cancelLeaveTimeout, setOpen, setAnchor]);\n\n useEffect(() => {\n handleClose();\n }, [handleClose, location]);\n\n useEffect(() => {\n let isScrolling = false;\n let currentAnchor: HTMLElement | null = null;\n let currentTitle: string | null = null;\n\n const open = (target: HTMLElement) => {\n target.setAttribute('aria-describedby', 'hover-card');\n setOpen(true);\n setAnchor(target);\n setAccountId(target.getAttribute('data-hover-card-account') ?? undefined);\n };\n\n const close = () => {\n currentAnchor?.removeAttribute('aria-describedby');\n currentAnchor = null;\n setOpen(false);\n setAnchor(null);\n setAccountId(undefined);\n };\n\n const handleMouseEnter = (e: MouseEvent) => {\n const { target } = e;\n\n // We've exited the window\n if (!(target instanceof HTMLElement)) {\n close();\n return;\n }\n\n // We've entered an anchor\n if (!isScrolling && isHoverCardAnchor(target)) {\n cancelLeaveTimeout();\n\n currentAnchor?.removeAttribute('aria-describedby');\n currentAnchor = target;\n\n currentTitle = target.getAttribute('title');\n target.removeAttribute('title');\n\n setEnterTimeout(() => {\n open(target);\n }, enterDelay);\n }\n\n // We've entered the hover card\n if (\n !isScrolling &&\n (target === currentAnchor || target === cardRef.current)\n ) {\n cancelLeaveTimeout();\n }\n };\n\n const handleMouseLeave = (e: MouseEvent) => {\n const { target } = e;\n\n if (!currentAnchor) {\n return;\n }\n\n if (\n currentTitle &&\n target instanceof HTMLElement &&\n target === currentAnchor\n )\n target.setAttribute('title', currentTitle);\n\n if (target === currentAnchor || target === cardRef.current) {\n cancelEnterTimeout();\n\n setLeaveTimeout(() => {\n close();\n }, leaveDelay);\n }\n };\n\n const handleScrollEnd = () => {\n isScrolling = false;\n };\n\n const handleScroll = () => {\n isScrolling = true;\n cancelEnterTimeout();\n setScrollTimeout(handleScrollEnd, 100);\n };\n\n const handleMouseMove = () => {\n delayEnterTimeout(enterDelay);\n };\n\n document.body.addEventListener('mouseenter', handleMouseEnter, {\n passive: true,\n capture: true,\n });\n\n document.body.addEventListener('mousemove', handleMouseMove, {\n passive: true,\n capture: false,\n });\n\n document.body.addEventListener('mouseleave', handleMouseLeave, {\n passive: true,\n capture: true,\n });\n\n document.addEventListener('scroll', handleScroll, {\n passive: true,\n capture: true,\n });\n\n return () => {\n document.body.removeEventListener('mouseenter', handleMouseEnter);\n document.body.removeEventListener('mousemove', handleMouseMove);\n document.body.removeEventListener('mouseleave', handleMouseLeave);\n document.removeEventListener('scroll', handleScroll);\n };\n }, [\n setEnterTimeout,\n setLeaveTimeout,\n setScrollTimeout,\n cancelEnterTimeout,\n cancelLeaveTimeout,\n delayEnterTimeout,\n setOpen,\n setAccountId,\n setAnchor,\n ]);\n\n return (\n \n {({ props }) => (\n
\n \n
\n )}\n \n );\n};\n","import { defineMessages, useIntl } from 'react-intl';\n\nimport { Link } from 'react-router-dom';\n\nimport CloseIcon from '@/material-icons/400-24px/close.svg?react';\nimport { Avatar } from 'mastodon/components/avatar';\nimport { DisplayName } from 'mastodon/components/display_name';\nimport { IconButton } from 'mastodon/components/icon_button';\nimport { useAppSelector } from 'mastodon/store';\n\nconst messages = defineMessages({\n close: { id: 'lightbox.close', defaultMessage: 'Close' },\n});\n\ninterface Props {\n accountId: string;\n statusId: string;\n onClose: () => void;\n}\n\nexport const Header: React.FC = ({ accountId, statusId, onClose }) => {\n const account = useAppSelector((state) => state.accounts.get(accountId));\n\n const intl = useIntl();\n\n if (!account) return null;\n\n return (\n
\n \n \n \n \n\n \n
\n );\n};\n","import { useCallback } from 'react';\n\nimport { removePictureInPicture } from 'mastodon/actions/picture_in_picture';\nimport Audio from 'mastodon/features/audio';\nimport Video from 'mastodon/features/video';\nimport { useAppDispatch, useAppSelector } from 'mastodon/store/typed_functions';\n\nimport Footer from './components/footer';\nimport { Header } from './components/header';\n\nexport const PictureInPicture: React.FC = () => {\n const dispatch = useAppDispatch();\n\n const handleClose = useCallback(() => {\n dispatch(removePictureInPicture());\n }, [dispatch]);\n\n const pipState = useAppSelector((s) => s.picture_in_picture);\n\n if (pipState.type === null) {\n return null;\n }\n\n const {\n type,\n src,\n currentTime,\n accountId,\n statusId,\n volume,\n muted,\n poster,\n backgroundColor,\n foregroundColor,\n accentColor,\n } = pipState;\n\n let player;\n\n switch (type) {\n case 'video':\n player = (\n \n );\n break;\n case 'audio':\n player = (\n \n );\n }\n\n return (\n
\n
\n\n {player}\n\n
\n
\n );\n};\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport spring from 'react-motion/lib/spring';\n\nimport Motion from '../util/optional_motion';\n\nexport default class UploadArea extends PureComponent {\n\n static propTypes = {\n active: PropTypes.bool,\n onClose: PropTypes.func,\n };\n\n handleKeyUp = (e) => {\n const keyCode = e.keyCode;\n if (this.props.active) {\n switch(keyCode) {\n case 27:\n e.preventDefault();\n e.stopPropagation();\n this.props.onClose();\n break;\n }\n }\n };\n\n componentDidMount () {\n window.addEventListener('keyup', this.handleKeyUp, false);\n }\n\n componentWillUnmount () {\n window.removeEventListener('keyup', this.handleKeyUp);\n }\n\n render () {\n const { active } = this.props;\n\n return (\n \n {({ backgroundOpacity, backgroundScale }) => (\n
\n
\n
\n
\n
\n
\n )}\n \n );\n }\n\n}\n","import { Column } from 'mastodon/components/column';\nimport { ColumnHeader } from 'mastodon/components/column_header';\nimport type { Props as ColumnHeaderProps } from 'mastodon/components/column_header';\n\nexport const ColumnLoading: React.FC = (otherProps) => (\n \n \n
\n \n);\n","import ArrowRightUpAltIcon from '@/material-icons/400-24px/arrow_right_up_red?.svg?react';\nimport { Icon } from 'mastodon/components/icon';\nimport { fetchChannels } from '../actions/channel_banner';\nimport { fetchMyChannel } from '../actions/my_channel';\nimport { NavLink } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useEffect } from 'react';\nimport { identityContextPropShape, withIdentity } from 'mastodon/identity_context';\nimport { browserHistory } from \"./router\";\n\nconst ChannelBanner = (props) => {\n\n const { signedIn } = props.identity;\n const channels = useSelector(state => state.recommended_channels.get(\"items\"));\n\n const channelFeed = useSelector(state => state.my_channel.get('item').get(\"channel_feed\"));\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(fetchChannels());\n dispatch(fetchMyChannel());\n }, []);\n\n const goToDetail = (channel) => {\n const queryString = `?slug=${encodeURIComponent(channel.attributes.slug)}`;\n browserHistory.push(`/collections/${channel.attributes.name.toLowerCase()}${queryString}`);\n };\n\n const hasImage = (channel) => (channel.attributes.avatar_image_url ?? \"\").startsWith(\"https\");\n\n return (\n
\n
\n

Explore channels

\n \n See all\n \n
\n
\n {channels?.slice(0, 3).map((channel, index) => (\n goToDetail(channel)}>\n \n
\n
\n

{channel.attributes.name}

\n

{channel.attributes.community_count} Channels

\n
\n \n
\n
\n \n ))}\n
\n {signedIn && channelFeed && channelFeed.id && \n + Create channel\n }\n
\n );\n};\n\nChannelBanner.propTypes = {\n identity: identityContextPropShape\n};\n\nexport default withIdentity(ChannelBanner);\n","import { useCallback } from 'react';\n\nimport { FormattedMessage } from 'react-intl';\n\n\nimport { openModal } from 'mastodon/actions/modal';\nimport { registrationsOpen, sso_redirect } from 'mastodon/initial_state';\nimport { useAppDispatch, useAppSelector } from 'mastodon/store';\n\nconst SignInBanner = () => {\n const dispatch = useAppDispatch();\n\n const openClosedRegistrationsModal = useCallback(\n () => dispatch(openModal({ modalType: 'CLOSED_REGISTRATIONS' })),\n [dispatch],\n );\n\n let signupButton;\n\n const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up');\n\n if (sso_redirect) {\n return (\n
\n

Follow and interact with this channel by creating an account.

\n

\n \n
\n );\n }\n\n if (registrationsOpen) {\n signupButton = (\n \n Create a social web account\n \n );\n } else {\n signupButton = (\n \n );\n }\n\n return (\n
\n

Follow and interact with this Channel through a federated social web account.

\n {signupButton}\n Sign in\n
\n );\n};\n\nexport default SignInBanner;\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { connect } from 'react-redux';\n\nimport {\n changeComposing,\n mountCompose,\n unmountCompose,\n} from 'mastodon/actions/compose';\nimport ChannelBanner from 'mastodon/components/channel_banner';\nimport ComposeFormContainer from 'mastodon/features/compose/containers/compose_form_container';\nimport { identityContextPropShape, withIdentity } from 'mastodon/identity_context';\nimport SignInBanner from './sign_in_banner';\n\nclass ComposePanel extends PureComponent {\n static propTypes = {\n identity: identityContextPropShape,\n dispatch: PropTypes.func.isRequired,\n };\n\n onFocus = () => {\n const { dispatch } = this.props;\n dispatch(changeComposing(true));\n };\n\n onBlur = () => {\n const { dispatch } = this.props;\n dispatch(changeComposing(false));\n };\n\n componentDidMount() {\n const { dispatch } = this.props;\n dispatch(mountCompose());\n }\n\n componentWillUnmount() {\n const { dispatch } = this.props;\n dispatch(unmountCompose());\n }\n\n render() {\n const { signedIn } = this.props.identity;\n\n return (\n
\n\n {signedIn && (\n <>\n \n
\n
\n \n
\n \n )}\n {!signedIn && (\n <>\n \n \n \n )}\n\n\n\n
\n );\n }\n}\n\nexport default connect()(withIdentity(ComposePanel));\n","const DrawerLoading = () => (\n
\n
\n
\n
\n
\n);\n\nexport default DrawerLoading;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFeedIcon(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 22,\n viewBox: \"0 0 25 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.95312 0.75H4.29688C4.93164 0.75 5.46875 1.28711 5.46875 1.92188V4.26562C5.46875 4.94922 4.93164 5.4375 4.29688 5.4375H1.95312C1.26953 5.4375 0.78125 4.94922 0.78125 4.26562V1.92188C0.78125 1.28711 1.26953 0.75 1.95312 0.75ZM9.375 1.53125H23.4375C24.2676 1.53125 25 2.26367 25 3.09375C25 3.97266 24.2676 4.65625 23.4375 4.65625H9.375C8.49609 4.65625 7.8125 3.97266 7.8125 3.09375C7.8125 2.26367 8.49609 1.53125 9.375 1.53125ZM9.375 9.34375H23.4375C24.2676 9.34375 25 10.0762 25 10.9062C25 11.7852 24.2676 12.4688 23.4375 12.4688H9.375C8.49609 12.4688 7.8125 11.7852 7.8125 10.9062C7.8125 10.0762 8.49609 9.34375 9.375 9.34375ZM9.375 17.1562H23.4375C24.2676 17.1562 25 17.8887 25 18.7188C25 19.5977 24.2676 20.2812 23.4375 20.2812H9.375C8.49609 20.2812 7.8125 19.5977 7.8125 18.7188C7.8125 17.8887 8.49609 17.1562 9.375 17.1562ZM0.78125 9.73438C0.78125 9.09961 1.26953 8.5625 1.95312 8.5625H4.29688C4.93164 8.5625 5.46875 9.09961 5.46875 9.73438V12.0781C5.46875 12.7617 4.93164 13.25 4.29688 13.25H1.95312C1.26953 13.25 0.78125 12.7617 0.78125 12.0781V9.73438ZM1.95312 16.375H4.29688C4.93164 16.375 5.46875 16.9121 5.46875 17.5469V19.8906C5.46875 20.5742 4.93164 21.0625 4.29688 21.0625H1.95312C1.26953 21.0625 0.78125 20.5742 0.78125 19.8906V17.5469C0.78125 16.9121 1.26953 16.375 1.95312 16.375Z\",\n fill: \"#FF3C26\"\n })));\n}\nexport default SvgFeedIcon;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPenIcon(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 27,\n height: 27,\n viewBox: \"0 0 27 27\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.8711 2.05273C19.9453 0.978516 21.6543 0.978516 22.7285 2.05273L24.9746 4.29883C26.0488 5.37305 26.0488 7.08203 24.9746 8.15625L21.5078 11.623L21.0195 12.1113L19.0176 19.4355C18.7734 20.2656 18.1387 20.998 17.3086 21.291L4.41797 25.7832C3.49023 26.125 2.46484 25.8809 1.83008 25.1973C1.14648 24.5625 0.902344 23.5371 1.24414 22.6094L5.73633 9.71875C6.0293 8.88867 6.76172 8.25391 7.5918 8.00977L14.916 6.00781L15.4043 5.51953L18.8711 2.05273ZM15.3555 8.30273L8.22656 10.2559C8.12891 10.3047 7.98242 10.4023 7.98242 10.5L3.92969 21.9746L8.91016 16.9941C8.76367 16.7012 8.71484 16.3594 8.71484 15.9688C8.71484 14.6992 9.74023 13.625 11.0586 13.625C12.3281 13.625 13.4023 14.6992 13.4023 15.9688C13.4023 17.2871 12.3281 18.3125 11.0586 18.3125C10.668 18.3125 10.3262 18.2637 10.0332 18.1172L5.05273 23.0977L16.5273 19.0449C16.625 18.9961 16.7227 18.8984 16.7715 18.8008L18.7246 11.6719L15.3555 8.30273Z\",\n fill: \"white\",\n fillOpacity: 0.7\n })));\n}\nexport default SvgPenIcon;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPodcast(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 26,\n viewBox: \"0 0 22 26\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5312 11.0625C19.5312 6.32617 15.6738 2.46875 10.9375 2.46875C6.15234 2.46875 2.34375 6.32617 2.34375 11.0625C2.34375 14.0898 3.85742 16.6777 6.15234 18.2402C6.20117 19.0703 6.34766 20.0469 6.49414 20.9258L6.54297 21.1211C2.68555 19.4121 0 15.5547 0 11.0625C0 5.05664 4.88281 0.125 10.9375 0.125C16.9434 0.125 21.875 5.05664 21.875 11.0625C21.875 15.5547 19.1406 19.4121 15.2832 21.1211L15.332 20.9258C15.4785 20.0469 15.625 19.0703 15.6738 18.2402C17.9688 16.6777 19.5312 14.0898 19.5312 11.0625ZM17.9688 11.0625C17.9688 13.1621 17.041 15.0176 15.625 16.2871C15.5273 15.9453 15.4297 15.6035 15.2344 15.3105C14.9902 14.8711 14.6484 14.5781 14.3066 14.334C15.1367 13.4551 15.625 12.332 15.625 11.0625C15.625 8.47461 13.5254 6.375 10.9375 6.375C8.34961 6.375 6.25 8.47461 6.25 11.0625C6.25 12.332 6.73828 13.4551 7.51953 14.334C7.17773 14.5781 6.83594 14.9199 6.5918 15.3105C6.39648 15.6035 6.29883 15.9453 6.20117 16.2871C4.78516 15.0176 3.90625 13.1621 3.90625 11.0625C3.90625 7.20508 7.03125 4.03125 10.9375 4.03125C14.7949 4.03125 17.9688 7.20508 17.9688 11.0625ZM10.9375 10.2812C10.498 10.2812 10.1562 10.6719 10.1562 11.0625C10.1562 11.502 10.498 11.8438 10.9375 11.8438C11.3281 11.8438 11.7188 11.502 11.7188 11.0625C11.7188 10.6719 11.3281 10.2812 10.9375 10.2812ZM10.9375 14.1875C9.81445 14.1875 8.78906 13.6016 8.20312 12.625C7.66602 11.6973 7.66602 10.4766 8.20312 9.5C8.78906 8.57227 9.81445 7.9375 10.9375 7.9375C12.0117 7.9375 13.0371 8.57227 13.623 9.5C14.1602 10.4766 14.1602 11.6973 13.623 12.625C13.0371 13.6016 12.0117 14.1875 10.9375 14.1875ZM8.69141 23.9531C8.30078 22.4883 7.66602 18.875 7.66602 17.2148C7.66602 15.4082 9.22852 14.9688 10.8887 14.9688C12.5977 14.9688 14.1602 15.4082 14.1602 17.2148C14.1602 18.875 13.5254 22.4883 13.1348 23.9531C12.8418 24.9297 11.8652 25.125 10.9375 25.125C9.96094 25.125 8.98438 24.9297 8.69141 23.9531ZM10.9863 22.7812C11.1328 22.1465 11.3281 21.2188 11.4746 20.291C11.6699 19.1191 11.8164 18.0938 11.8164 17.4102C11.7676 17.4102 11.7676 17.4102 11.7188 17.4102C11.5234 17.3613 11.2305 17.3125 10.9375 17.3125C10.5957 17.3125 10.3516 17.3613 10.1074 17.4102C10.1074 17.4102 10.0586 17.4102 10.0098 17.4102C10.0586 18.0938 10.1562 19.1191 10.3516 20.291C10.498 21.2676 10.6934 22.1465 10.8398 22.7812C10.8398 22.7812 10.8887 22.7812 10.9375 22.7812H10.9863Z\",\n fill: \"white\",\n fillOpacity: 0.7\n })));\n}\nexport default SvgPodcast;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgChat(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"24px\",\n viewBox: \"0 -960 960 960\",\n width: \"24px\",\n fill: \"#5f6368\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M240-400h320v-80H240v80Zm0-120h480v-80H240v80Zm0-120h480v-80H240v80ZM80-80v-720q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H240L80-80Zm126-240h594v-480H160v525l46-45Zm-46 0v-480 480Z\"\n })));\n}\nexport default SvgChat;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWebsiteIcon(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 27,\n height: 26,\n viewBox: \"0 0 27 26\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.5 22.7812C13.8418 22.7812 14.8184 22.4395 15.7949 20.4375C16.2344 19.5586 16.625 18.5332 16.8691 17.3125H10.082C10.375 18.5332 10.7168 19.5586 11.1562 20.4375C12.1816 22.4395 13.1094 22.7812 13.5 22.7812ZM9.69141 14.9688H17.2598C17.3574 14.2363 17.4062 13.4551 17.4062 12.625C17.4062 11.8438 17.3574 11.0625 17.2598 10.2812H9.69141C9.59375 11.0625 9.59375 11.8438 9.59375 12.625C9.59375 13.4551 9.59375 14.2363 9.69141 14.9688ZM10.082 7.9375H16.8691C16.625 6.76562 16.2344 5.74023 15.7949 4.86133C14.8184 2.85938 13.8418 2.46875 13.5 2.46875C13.1094 2.46875 12.1816 2.85938 11.1562 4.86133C10.7168 5.74023 10.375 6.76562 10.082 7.9375ZM19.6035 10.2812C19.7012 11.0625 19.7012 11.8438 19.7012 12.625C19.7012 13.4551 19.7012 14.2363 19.6035 14.9688H23.3633C23.5586 14.2363 23.6562 13.4551 23.6562 12.625C23.6562 11.8438 23.5586 11.0625 23.3633 10.2812H19.6035ZM22.4844 7.9375C21.459 5.93555 19.75 4.32422 17.6992 3.39648C18.3828 4.66602 18.9199 6.22852 19.2617 7.9375H22.4844ZM7.68945 7.9375C8.03125 6.22852 8.56836 4.66602 9.25195 3.39648C7.20117 4.32422 5.49219 5.93555 4.4668 7.9375H7.68945ZM3.58789 10.2812C3.44141 11.0625 3.34375 11.8438 3.34375 12.625C3.34375 13.4551 3.39258 14.2363 3.58789 14.9688H7.34766C7.25 14.2363 7.25 13.4551 7.25 12.625C7.25 11.8438 7.25 11.0625 7.34766 10.2812H3.58789ZM17.6992 21.9023C19.75 20.9746 21.459 19.3633 22.4844 17.3125H19.2617C18.9199 19.0703 18.3828 20.6328 17.6992 21.9023ZM9.25195 21.9023C8.56836 20.6328 8.03125 19.0703 7.68945 17.3125H4.4668C5.49219 19.3633 7.20117 20.9746 9.25195 21.9023ZM13.5 25.125C9.00781 25.125 4.90625 22.7812 2.66016 18.875C0.414062 15.0176 0.414062 10.2812 2.66016 6.375C4.90625 2.51758 9.00781 0.125 13.5 0.125C17.9434 0.125 22.0449 2.51758 24.291 6.375C26.5371 10.2812 26.5371 15.0176 24.291 18.875C22.0449 22.7812 17.9434 25.125 13.5 25.125Z\",\n fill: \"white\",\n fillOpacity: 0.7\n })));\n}\nexport default SvgWebsiteIcon;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRssFeed(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 23,\n height: 23,\n viewBox: \"0 0 23 23\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 1.85938C1 1.22461 1.48828 0.6875 2.17188 0.6875C13.5977 0.6875 22.875 9.96484 22.875 21.3906C22.875 22.0742 22.3379 22.5625 21.7031 22.5625C21.0195 22.5625 20.5312 22.0742 20.5312 21.3906C20.5312 11.2832 12.2793 3.03125 2.17188 3.03125C1.48828 3.03125 1 2.54297 1 1.85938ZM4.125 20.2188C4.51562 20.2188 4.90625 19.877 4.90625 19.4375C4.90625 19.0469 4.51562 18.6562 4.125 18.6562C3.68555 18.6562 3.34375 19.0469 3.34375 19.4375C3.34375 19.877 3.68555 20.2188 4.125 20.2188ZM4.125 16.3125C5.19922 16.3125 6.22461 16.9473 6.81055 17.875C7.34766 18.8516 7.34766 20.0723 6.81055 21C6.22461 21.9766 5.19922 22.5625 4.125 22.5625C3.00195 22.5625 1.97656 21.9766 1.39062 21C0.853516 20.0723 0.853516 18.8516 1.39062 17.875C1.97656 16.9473 3.00195 16.3125 4.125 16.3125ZM2.17188 7.71875C9.69141 7.71875 15.8438 13.8711 15.8438 21.3906C15.8438 22.0742 15.3066 22.5625 14.6719 22.5625C13.9883 22.5625 13.5 22.0742 13.5 21.3906C13.5 15.1406 8.42188 10.0625 2.17188 10.0625C1.48828 10.0625 1 9.57422 1 8.89062C1 8.25586 1.48828 7.71875 2.17188 7.71875Z\",\n fill: \"white\",\n fillOpacity: 0.7\n })));\n}\nexport default SvgRssFeed;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgButterfly(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 29,\n height: 25,\n viewBox: \"0 0 29 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.48483 1.772C9.69881 4.19574 13.1558 9.1101 14.425 11.7474C15.6944 9.11029 19.1512 4.1957 22.3652 1.772C24.6843 0.0231155 28.4417 -1.33007 28.4417 2.97584C28.4417 3.83578 27.9509 10.1998 27.663 11.233C26.6624 14.8251 23.016 15.7412 19.7726 15.1867C25.4421 16.156 26.8844 19.3666 23.7696 22.5773C17.8541 28.6749 15.2673 21.0474 14.6042 19.0929C14.4826 18.7346 14.4258 18.567 14.425 18.7095C14.4241 18.567 14.3673 18.7346 14.2457 19.0929C13.5829 21.0474 10.9962 28.6751 5.0803 22.5773C1.9655 19.3666 3.40772 16.1558 9.07732 15.1867C5.83377 15.7412 2.1874 14.8251 1.1869 11.233C0.899018 10.1997 0.408203 3.83569 0.408203 2.97584C0.408203 -1.33007 4.16573 0.0231155 6.48467 1.772H6.48483Z\",\n fill: \"white\",\n fillOpacity: 0.7\n })));\n}\nexport default SvgButterfly;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgThread(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 25,\n viewBox: \"0 0 22 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.7366 11.587C16.6289 11.5354 16.5195 11.4857 16.4087 11.4382C16.2158 7.88258 14.2729 5.847 11.0107 5.82617C10.9959 5.82608 10.9812 5.82608 10.9664 5.82608C9.01516 5.82608 7.39233 6.65897 6.39349 8.17457L8.18763 9.40531C8.9338 8.27322 10.1048 8.03187 10.9673 8.03187C10.9772 8.03187 10.9872 8.03187 10.9971 8.03197C12.0712 8.03881 12.8818 8.35112 13.4064 8.96016C13.7882 9.40355 14.0435 10.0163 14.1699 10.7896C13.2176 10.6277 12.1876 10.5779 11.0866 10.6411C7.98499 10.8197 5.99103 12.6286 6.12495 15.1422C6.1929 16.4172 6.82809 17.5141 7.91341 18.2306C8.83104 18.8363 10.0129 19.1326 11.2412 19.0655C12.8633 18.9766 14.1358 18.3577 15.0236 17.226C15.6978 16.3667 16.1242 15.253 16.3125 13.8497C17.0855 14.3163 17.6585 14.9302 17.9749 15.6682C18.5129 16.9228 18.5443 18.9844 16.8621 20.6651C15.3883 22.1375 13.6167 22.7745 10.9393 22.7941C7.9693 22.7721 5.72315 21.8197 4.26277 19.9632C2.89525 18.2247 2.1885 15.7138 2.16214 12.5C2.1885 9.28617 2.89525 6.77521 4.26277 5.03681C5.72315 3.18033 7.96926 2.22786 10.9392 2.20579C13.9307 2.22803 16.216 3.18508 17.7323 5.05052C18.4758 5.96531 19.0363 7.11573 19.4059 8.45707L21.5083 7.89612C21.0604 6.24508 20.3556 4.82236 19.3965 3.64245C17.4526 1.25087 14.6096 0.0254099 10.9465 0H10.9319C7.27625 0.0253216 4.46512 1.25544 2.5766 3.65616C0.896081 5.7925 0.0292187 8.76507 9.11454e-05 12.4912L0 12.5L9.11454e-05 12.5088C0.0292187 16.2349 0.896081 19.2076 2.5766 21.3439C4.46512 23.7445 7.27625 24.9747 10.9319 25H10.9465C14.1966 24.9775 16.4875 24.1266 18.3747 22.241C20.8439 19.7742 20.7695 16.6822 19.9557 14.784C19.3719 13.4228 18.2587 12.3172 16.7366 11.587ZM11.1251 16.8629C9.76569 16.9395 8.35344 16.3293 8.2838 15.0224C8.23219 14.0534 8.97341 12.9721 11.2085 12.8433C11.4645 12.8286 11.7156 12.8214 11.9624 12.8214C12.7742 12.8214 13.5337 12.9002 14.2242 13.0512C13.9667 16.2676 12.456 16.7898 11.1251 16.8629Z\",\n fill: \"white\",\n fillOpacity: 0.7\n })));\n}\nexport default SvgThread;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMastodon(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#ffffff\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.327 8.566c0-4.339-2.843-5.61-2.843-5.61-1.433-.658-3.894-.935-6.451-.956h-.063c-2.557.021-5.016.298-6.45.956 0 0-2.843 1.272-2.843 5.61 0 .993-.019 2.181.012 3.441.103 4.243.778 8.425 4.701 9.463 1.809.479 3.362.579 4.612.51 2.268-.126 3.541-.809 3.541-.809l-.075-1.646s-1.621.511-3.441.449c-1.804-.062-3.707-.194-3.999-2.409a4.523 4.523 0 0 1-.04-.621s1.77.433 4.014.536c1.372.063 2.658-.08 3.965-.236 2.506-.299 4.688-1.843 4.962-3.254.434-2.223.398-5.424.398-5.424zm-3.353 5.59h-2.081V9.057c0-1.075-.452-1.62-1.357-1.62-1 0-1.501.647-1.501 1.927v2.791h-2.069V9.364c0-1.28-.501-1.927-1.502-1.927-.905 0-1.357.546-1.357 1.62v5.099H6.026V8.903c0-1.074.273-1.927.823-2.558.566-.631 1.307-.955 2.228-.955 1.065 0 1.872.409 2.405 1.228l.518.869.519-.869c.533-.819 1.34-1.228 2.405-1.228.92 0 1.662.324 2.228.955.549.631.822 1.484.822 2.558v5.253z\"\n })));\n}\nexport default SvgMastodon;","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVideo(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"800px\",\n height: \"800px\",\n viewBox: \"0 0 1024 1024\",\n className: \"icon\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M432 356.16A32 32 0 0 0 384 384v256a32 32 0 0 0 48 27.84l224-128a32 32 0 0 0 0-55.68z m16 228.48v-145.6L576 512z\",\n fill: \"#231815\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M864 32H160a128 128 0 0 0-128 128v704a128 128 0 0 0 128 128h704a128 128 0 0 0 128-128v-128H96V288h896V160a128 128 0 0 0-128-128z m-96 768h160v64a64 64 0 0 1-64 64h-96z m-224 0h160v128h-160z m-224 0h160v128h-160z m-64 0v128H160a64 64 0 0 1-64-64v-64zM256 224H96V160a64 64 0 0 1 64-64h96z m224 0h-160V96h160z m224 0h-160V96h160z m224 0h-160V96h96a64 64 0 0 1 64 64z\",\n fill: \"#231815\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M960 384m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z\",\n fill: \"#231815\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M960 480a32 32 0 0 0-32 32v128a32 32 0 0 0 64 0v-128a32 32 0 0 0-32-32z\",\n fill: \"#231815\"\n })));\n}\nexport default SvgVideo;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWhatsapp(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"800px\",\n height: \"800px\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.014 8.00613C6.12827 7.1024 7.30277 5.87414 8.23488 6.01043L8.23339 6.00894C9.14051 6.18132 9.85859 7.74261 10.2635 8.44465C10.5504 8.95402 10.3641 9.4701 10.0965 9.68787C9.7355 9.97883 9.17099 10.3803 9.28943 10.7834C9.5 11.5 12 14 13.2296 14.7107C13.695 14.9797 14.0325 14.2702 14.3207 13.9067C14.5301 13.6271 15.0466 13.46 15.5548 13.736C16.3138 14.178 17.0288 14.6917 17.69 15.27C18.0202 15.546 18.0977 15.9539 17.8689 16.385C17.4659 17.1443 16.3003 18.1456 15.4542 17.9421C13.9764 17.5868 8 15.27 6.08033 8.55801C5.97237 8.24048 5.99955 8.12044 6.014 8.00613Z\",\n fill: \"#0F0F0F\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 23C10.7764 23 10.0994 22.8687 9 22.5L6.89443 23.5528C5.56462 24.2177 4 23.2507 4 21.7639V19.5C1.84655 17.492 1 15.1767 1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23ZM6 18.6303L5.36395 18.0372C3.69087 16.4772 3 14.7331 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21C11.0143 21 10.552 20.911 9.63595 20.6038L8.84847 20.3397L6 21.7639V18.6303Z\",\n fill: \"#0F0F0F\"\n })));\n}\nexport default SvgWhatsapp;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgX(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n id: \"Layer_1\",\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n style: {\n enableBackground: \"new 0 0 24 24\"\n },\n xmlSpace: \"preserve\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.095479,10.316482L22.286354,1h-1.940718l-7.115352,8.087682L7.551414,1H1l8.589488,12.231093L1,23h1.940717 l7.509372-8.542861L16.448587,23H23L14.095479,10.316482z M11.436522,13.338465l-0.871624-1.218704l-6.924311-9.68815h2.981339 l5.58978,7.82155l0.867949,1.218704l7.26506,10.166271h-2.981339L11.436522,13.338465z\"\n })));\n}\nexport default SvgX;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLinktree(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 80 97.7\",\n style: {\n enableBackground: \"new 0 0 80 97.7\"\n },\n xmlSpace: \"preserve\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.2,33.1h24.2L7.1,16.7l9.5-9.6L33,23.8V0h14.2v23.8L63.6,7.1l9.5,9.6L55.8,33H80v13.5H55.7l17.3,16.7l-9.5,9.4L40,49.1 L16.5,72.7L7,63.2l17.3-16.7H0V33.1H0.2z M33.1,65.8h14.2v32H33.1V65.8z\"\n })));\n}\nexport default SvgLinktree;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFacebook(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"800px\",\n height: \"800px\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M20 1C21.6569 1 23 2.34315 23 4V20C23 21.6569 21.6569 23 20 23H4C2.34315 23 1 21.6569 1 20V4C1 2.34315 2.34315 1 4 1H20ZM20 3C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H15V13.9999H17.0762C17.5066 13.9999 17.8887 13.7245 18.0249 13.3161L18.4679 11.9871C18.6298 11.5014 18.2683 10.9999 17.7564 10.9999H15V8.99992C15 8.49992 15.5 7.99992 16 7.99992H18C18.5523 7.99992 19 7.5522 19 6.99992V6.31393C19 5.99091 18.7937 5.7013 18.4813 5.61887C17.1705 5.27295 16 5.27295 16 5.27295C13.5 5.27295 12 6.99992 12 8.49992V10.9999H10C9.44772 10.9999 9 11.4476 9 11.9999V12.9999C9 13.5522 9.44771 13.9999 10 13.9999H12V21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H20Z\",\n fill: \"#0F0F0F\"\n })));\n}\nexport default SvgFacebook;","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInstagram(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"800px\",\n height: \"800px\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16Z\",\n fill: \"#0F0F0F\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 5C17.4477 5 17 5.44772 17 6C17 6.55228 17.4477 7 18 7C18.5523 7 19 6.55228 19 6C19 5.44772 18.5523 5 18 5Z\",\n fill: \"#0F0F0F\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.65396 4.27606C1 5.55953 1 7.23969 1 10.6V13.4C1 16.7603 1 18.4405 1.65396 19.7239C2.2292 20.8529 3.14708 21.7708 4.27606 22.346C5.55953 23 7.23969 23 10.6 23H13.4C16.7603 23 18.4405 23 19.7239 22.346C20.8529 21.7708 21.7708 20.8529 22.346 19.7239C23 18.4405 23 16.7603 23 13.4V10.6C23 7.23969 23 5.55953 22.346 4.27606C21.7708 3.14708 20.8529 2.2292 19.7239 1.65396C18.4405 1 16.7603 1 13.4 1H10.6C7.23969 1 5.55953 1 4.27606 1.65396C3.14708 2.2292 2.2292 3.14708 1.65396 4.27606ZM13.4 3H10.6C8.88684 3 7.72225 3.00156 6.82208 3.0751C5.94524 3.14674 5.49684 3.27659 5.18404 3.43597C4.43139 3.81947 3.81947 4.43139 3.43597 5.18404C3.27659 5.49684 3.14674 5.94524 3.0751 6.82208C3.00156 7.72225 3 8.88684 3 10.6V13.4C3 15.1132 3.00156 16.2777 3.0751 17.1779C3.14674 18.0548 3.27659 18.5032 3.43597 18.816C3.81947 19.5686 4.43139 20.1805 5.18404 20.564C5.49684 20.7234 5.94524 20.8533 6.82208 20.9249C7.72225 20.9984 8.88684 21 10.6 21H13.4C15.1132 21 16.2777 20.9984 17.1779 20.9249C18.0548 20.8533 18.5032 20.7234 18.816 20.564C19.5686 20.1805 20.1805 19.5686 20.564 18.816C20.7234 18.5032 20.8533 18.0548 20.9249 17.1779C20.9984 16.2777 21 15.1132 21 13.4V10.6C21 8.88684 20.9984 7.72225 20.9249 6.82208C20.8533 5.94524 20.7234 5.49684 20.564 5.18404C20.1805 4.43139 19.5686 3.81947 18.816 3.43597C18.5032 3.27659 18.0548 3.14674 17.1779 3.0751C16.2777 3.00156 15.1132 3 13.4 3Z\",\n fill: \"#0F0F0F\"\n })));\n}\nexport default SvgInstagram;","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTiktok(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"800px\",\n height: \"800px\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.8218 5.1344C16.0887 4.29394 15.648 3.19805 15.648 2H14.7293C14.9659 3.3095 15.7454 4.43326 16.8218 5.1344Z\",\n fill: \"#000000\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.3218 11.9048C6.73038 11.9048 5.43591 13.2004 5.43591 14.7931C5.43591 15.903 6.06691 16.8688 6.98556 17.3517C6.64223 16.8781 6.43808 16.2977 6.43808 15.6661C6.43808 14.0734 7.73255 12.7778 9.324 12.7778C9.62093 12.7778 9.90856 12.8288 10.1777 12.9124V9.40192C9.89927 9.36473 9.61628 9.34149 9.324 9.34149C9.27294 9.34149 9.22654 9.34614 9.1755 9.34614V12.0394C8.90176 11.9558 8.61873 11.9048 8.3218 11.9048Z\",\n fill: \"#000000\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.4245 6.67608V9.34614C17.6429 9.34614 15.9912 8.77501 14.6456 7.80911V14.7977C14.6456 18.2851 11.8108 21.127 8.32172 21.127C6.97621 21.127 5.7235 20.6998 4.69812 19.98C5.8534 21.2198 7.50049 22 9.32392 22C12.8083 22 15.6478 19.1627 15.6478 15.6707V8.68211C16.9933 9.64801 18.645 10.2191 20.4267 10.2191V6.78293C20.0787 6.78293 19.7446 6.74574 19.4245 6.67608Z\",\n fill: \"#000000\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.6456 14.7977V7.80911C15.9912 8.77501 17.6429 9.34614 19.4245 9.34614V6.67608C18.3945 6.45788 17.4899 5.90063 16.8218 5.1344C15.7454 4.43326 14.9704 3.3095 14.7245 2H12.2098L12.2051 15.7775C12.1495 17.3192 10.8782 18.5591 9.32393 18.5591C8.35884 18.5591 7.50977 18.0808 6.98085 17.3564C6.06219 16.8688 5.4312 15.9076 5.4312 14.7977C5.4312 13.205 6.72567 11.9094 8.31708 11.9094C8.61402 11.9094 8.90168 11.9605 9.17079 12.0441V9.35079C5.75598 9.42509 3 12.2298 3 15.6707C3 17.3331 3.64492 18.847 4.69812 19.98C5.7235 20.6998 6.97621 21.127 8.32172 21.127C11.8061 21.127 14.6456 18.2851 14.6456 14.7977Z\",\n fill: \"#000000\"\n })));\n}\nexport default SvgTiktok;","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgReddit(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"800px\",\n height: \"800px\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.83552 12.4444C8.72564 12.6089 8.66699 12.8022 8.66699 13C8.66699 13.1313 8.69285 13.2614 8.74311 13.3827C8.79336 13.504 8.86702 13.6142 8.95988 13.7071C9.05274 13.8 9.16298 13.8736 9.2843 13.9239C9.40563 13.9741 9.53567 14 9.66699 14C9.86477 14 10.0581 13.9414 10.2226 13.8315C10.387 13.7216 10.5152 13.5654 10.5909 13.3827C10.6666 13.2 10.6864 12.9989 10.6478 12.8049C10.6092 12.6109 10.5139 12.4327 10.3741 12.2929C10.2342 12.153 10.0561 12.0578 9.86208 12.0192C9.6681 11.9806 9.46703 12.0004 9.2843 12.0761C9.10158 12.1518 8.9454 12.28 8.83552 12.4444Z\",\n stroke: \"#000000\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.7414 13.8715C13.9059 13.9814 14.0992 14.04 14.297 14.04L14.287 14.08C14.4226 14.0815 14.5571 14.0553 14.6822 14.0032C14.8074 13.9511 14.9207 13.874 15.0152 13.7767C15.1096 13.6795 15.1833 13.564 15.2318 13.4373C15.2802 13.3107 15.3024 13.1755 15.297 13.04C15.297 12.8422 15.2383 12.6489 15.1285 12.4844C15.0186 12.32 14.8624 12.1918 14.6797 12.1161C14.4969 12.0404 14.2959 12.0206 14.1019 12.0592C13.9079 12.0978 13.7297 12.193 13.5899 12.3329C13.45 12.4727 13.3548 12.6509 13.3162 12.8449C13.2776 13.0389 13.2974 13.24 13.3731 13.4227C13.4488 13.6054 13.577 13.7616 13.7414 13.8715Z\",\n stroke: \"#000000\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M21.997 12C21.997 17.5228 17.5198 22 11.997 22C6.47415 22 1.99699 17.5228 1.99699 12C1.99699 6.47715 6.47415 2 11.997 2C17.5198 2 21.997 6.47715 21.997 12ZM18.4035 11.2154C18.5652 11.446 18.6567 11.7185 18.667 12C18.6712 12.2755 18.5974 12.5467 18.4541 12.782C18.3108 13.0174 18.1038 13.2073 17.857 13.33C17.8682 13.4765 17.8682 13.6236 17.857 13.77C17.857 16.01 15.247 17.83 12.027 17.83C8.80699 17.83 6.19699 16.01 6.19699 13.77C6.18573 13.6236 6.18573 13.4765 6.19699 13.33C6.00465 13.2416 5.83382 13.1125 5.69635 12.9515C5.55887 12.7906 5.45804 12.6017 5.40084 12.3979C5.34363 12.1941 5.33143 11.9803 5.36506 11.7713C5.3987 11.5623 5.47737 11.3632 5.59563 11.1876C5.71389 11.0121 5.86891 10.8643 6.04994 10.7546C6.23097 10.645 6.43369 10.5759 6.64404 10.5524C6.85439 10.5288 7.06736 10.5513 7.26816 10.6182C7.46897 10.6852 7.65283 10.795 7.80699 10.94C8.95926 10.1585 10.3149 9.73099 11.707 9.71L12.447 6.24C12.4553 6.19983 12.4715 6.16171 12.4946 6.12784C12.5178 6.09398 12.5474 6.06505 12.5819 6.04272C12.6163 6.0204 12.6548 6.00513 12.6951 5.99779C12.7355 5.99046 12.7769 5.99121 12.817 6L15.267 6.49C15.3866 6.28444 15.5756 6.12825 15.8001 6.04948C16.0245 5.9707 16.2696 5.9745 16.4915 6.06019C16.7134 6.14587 16.8975 6.30784 17.0107 6.51701C17.1239 6.72617 17.1589 6.96885 17.1093 7.20147C17.0597 7.4341 16.9288 7.64143 16.7402 7.78627C16.5515 7.9311 16.3174 8.00394 16.0799 7.99172C15.8423 7.9795 15.6169 7.88301 15.4441 7.71958C15.2713 7.55615 15.1624 7.33648 15.137 7.1L12.997 6.65L12.347 9.77C13.7222 9.7995 15.0594 10.2267 16.197 11C16.4002 10.805 16.6555 10.6729 16.9321 10.6196C17.2087 10.5664 17.4948 10.5943 17.7559 10.7C18.0169 10.8057 18.2419 10.9847 18.4035 11.2154Z\",\n stroke: \"#000000\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.75838 15.5632C9.75455 15.5601 9.74967 15.5585 9.74472 15.5587C9.73976 15.559 9.73506 15.5611 9.73155 15.5646C9.72804 15.5681 9.72596 15.5728 9.72572 15.5777L9.7257 15.5788C10.382 16.0598 11.1827 16.3039 11.9966 16.2702C12.0035 16.2699 12.0104 16.2699 12.0173 16.2702C12.837 16.3042 13.6432 16.0564 14.3021 15.5686C14.2996 15.5663 14.2967 15.5644 14.2936 15.563C14.29 15.5615 14.2862 15.5607 14.2824 15.5607C14.2746 15.5606 14.2671 15.5636 14.2615 15.569C14.2525 15.5778 14.2429 15.5858 14.2327 15.5931C13.5829 16.0593 12.7942 16.2909 11.9958 16.2503C11.1982 16.2831 10.413 16.0439 9.76912 15.5716L9.75838 15.5632Z\",\n stroke: \"#000000\",\n strokeLinejoin: \"round\"\n })));\n}\nexport default SvgReddit;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPintrest(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"800px\",\n height: \"800px\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.5 12C3.5 7.30558 7.30558 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C10.9716 20.5 9.98587 20.3174 9.07345 19.9828C9.64822 18.4359 10.2115 16.8847 10.7517 15.3255C11.326 15.7348 12.0668 16 13 16C14.935 16 16.9749 14.7247 17.4806 12.1961C18.1155 9.02148 15.5728 6 12 6C10.4972 6 9.01887 6.6037 7.91298 7.56243C6.80483 8.52311 6 9.90687 6 11.5C6 12.2746 6.23394 13.1378 6.79149 13.7057C7.17707 14.0919 7.82087 14.0933 8.20711 13.7071C8.59019 13.324 8.59749 12.7074 8.22899 12.3155C7.44315 11.3348 8.47852 9.71907 9.22306 9.07361C9.99585 8.40366 11.0175 8 12 8C14.4272 8 15.8845 9.97852 15.5194 11.8039C15.2165 13.3183 14.065 14 13 14C12.1821 14 11.7416 13.6547 11.4599 13.208C11.6137 12.7237 11.7454 12.2838 11.8387 11.9263C12.0311 11.1886 12.1473 10.3002 11.4839 9.7474C10.9908 9.33644 10.4087 9.42759 10.0528 9.60557C9.39135 9.93629 9 10.7099 9 11.5C9 11.9414 9.06873 12.6253 9.31675 13.3315C8.67824 15.258 7.98579 17.167 7.27924 19.0696C5.00045 17.5449 3.5 14.9477 3.5 12ZM12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5Z\",\n fill: \"#000000\"\n })));\n}\nexport default SvgPintrest;","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPixelfed(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"800px\",\n height: \"800px\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0H24V24H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm1.031 4.099c1.713 0 3.101 1.345 3.101 3.005s-1.388 3.005-3.1 3.005h-1.819L8.618 16.58V9.832c0-.957.801-1.733 1.79-1.733h2.623z\"\n }))));\n}\nexport default SvgPixelfed;","var _style, _path, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSnapchat(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Icons\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 32 32\",\n xmlSpace: \"preserve\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\\n\\t.st1{fill:none;stroke:#000000;stroke-width:2;}\\n\\t.st2{fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:10;}\\n\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M23,31H9c-4.4,0-8-3.6-8-8V9c0-4.4,3.6-8,8-8h14c4.4,0,8,3.6,8,8v14C31,27.4,27.4,31,23,31z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M16,5c-1.1,0-1.7,0.1-2.8,0.6c-1.8,0.8-2.9,2.3-3.1,4.3c-0.1,1.1,0,2.3,0,3.4c0,0.4-0.2,0.6-0.6,0.4 c-0.2-0.1-0.4-0.2-0.5-0.2c-0.4-0.1-0.8-0.2-1.2-0.3c-0.3,0-0.6,0.1-0.7,0.4c-0.1,0.3-0.1,0.6,0.1,0.8c0.2,0.2,0.4,0.4,0.6,0.5 c0.5,0.4,1,0.7,1.5,1c0.4,0.3,0.5,0.7,0.4,1.2C9.5,18.1,9,19,8.4,19.7c-0.9,1-1.9,1.7-3.1,2.3c-0.4,0.2-0.4,0.4,0,0.6 c0.5,0.2,1,0.4,1.5,0.6c0.5,0.2,1.1,0.2,1.2,0.9c0.1,0.8,0.3,0.7,0.9,0.8c0.2,0,0.3,0,0.5,0c1.1,0,2.2,0.3,3.2,0.9 c0.6,0.4,1.2,0.7,1.8,0.9c1.6,0.5,3.2,0.3,4.6-0.7c1.1-0.8,2.4-1.1,3.7-1.1c0.2,0,0.4-0.1,0.7-0.1c0.4,0,0.5-0.2,0.6-0.6 c0-0.5,0.3-0.7,0.7-0.9c0.7-0.2,1.3-0.5,2-0.8c0.1,0,0.3-0.2,0.3-0.3c0-0.1-0.2-0.2-0.3-0.3c-0.6-0.4-1.3-0.7-1.9-1.2 c-1.2-0.9-2.1-2.1-2.6-3.5c-0.2-0.6-0.1-0.9,0.4-1.3c0.2-0.2,0.5-0.3,0.7-0.5c0.5-0.3,0.9-0.7,1.4-1c0.2-0.2,0.3-0.5,0.2-0.8 c-0.1-0.3-0.4-0.4-0.6-0.4c-0.3,0-0.5,0.1-0.8,0.1c-0.4,0.1-0.7,0.3-1,0.4c-0.3,0.1-0.6-0.1-0.5-0.4c0.1-1.2,0.1-2.4,0-3.5 c-0.1-1.1-0.6-2.1-1.3-2.9C19.3,5.6,17.8,5,16,5z\"\n }))));\n}\nexport default SvgSnapchat;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMessage(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 27,\n height: 21,\n viewBox: \"0 0 27 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.43701 12.6094C4.39795 12.6875 4.35889 12.7656 4.28076 12.8047C4.20264 13 4.08545 13.1562 4.00732 13.3516C4.67139 13.1953 5.29639 12.9219 5.92139 12.6484C6.1167 12.5703 6.27295 12.4922 6.4292 12.4141C6.81982 12.2188 7.21045 12.1797 7.64014 12.2578C8.10889 12.3359 8.57764 12.375 9.12451 12.375C12.8745 12.375 15.3745 9.875 15.3745 7.375C15.3745 4.91406 12.8745 2.375 9.12451 2.375C5.33545 2.375 2.87451 4.91406 2.87451 7.375C2.87451 8.46875 3.3042 9.52344 4.12451 10.4219C4.71045 11.0078 4.82764 11.8672 4.43701 12.6094ZM0.999512 7.375C0.999512 3.58594 4.63232 0.5 9.12451 0.5C13.5776 0.5 17.2495 3.58594 17.2495 7.375C17.2495 11.2031 13.5776 14.25 9.12451 14.25C8.46045 14.25 7.87451 14.2109 7.24951 14.0938C7.09326 14.1719 6.89795 14.2891 6.70264 14.3672C5.29639 14.9922 3.6167 15.5 1.93701 15.5C1.54639 15.5 1.19482 15.3047 1.03857 14.9531C0.921387 14.6016 0.960449 14.2109 1.23389 13.9375C1.78076 13.3125 2.24951 12.6094 2.6792 11.9062C2.71826 11.8281 2.75732 11.75 2.75732 11.7109C1.66357 10.5391 0.999512 9.01562 0.999512 7.375ZM17.8745 19.25C14.6714 19.25 11.8979 17.6875 10.5698 15.4219C11.2339 15.3047 11.8979 15.1484 12.5229 14.9531C13.5386 16.3594 15.4526 17.375 17.8354 17.375C18.3823 17.375 18.8511 17.3359 19.3198 17.2578C19.7495 17.1797 20.1401 17.2188 20.5308 17.4141C20.687 17.4922 20.8433 17.5703 21.0386 17.6484C21.6636 17.9219 22.2886 18.1562 22.9526 18.3516C22.8745 18.1562 22.7573 18 22.6792 17.8047C22.6401 17.7266 22.562 17.6484 22.5229 17.5703C22.1714 16.8672 22.2886 16.0078 22.8354 15.4219C23.6558 14.5234 24.1245 13.4688 24.1245 12.375C24.1245 10.0703 21.8979 7.6875 18.4995 7.41406V7.375C18.4995 6.75 18.3823 6.125 18.2261 5.53906C22.562 5.69531 25.9995 8.70312 25.9995 12.375C25.9995 14.0156 25.2964 15.5391 24.2026 16.7109C24.2026 16.7891 24.2417 16.8281 24.2808 16.9062C24.7104 17.6094 25.1792 18.3125 25.7261 18.9375C25.9995 19.2109 26.0386 19.6016 25.9214 19.9531C25.7651 20.3047 25.4136 20.5 25.062 20.5C23.3823 20.5 21.6636 19.9922 20.2573 19.3672C20.062 19.2891 19.8667 19.1719 19.7104 19.0938C19.0854 19.2109 18.4995 19.25 17.8745 19.25Z\",\n fill: \"black\"\n })));\n}\nexport default SvgMessage;","import PenIcon from '@/material-icons/400-24px/pen_icon.svg?react';\nimport PodcastIcon from '@/material-icons/400-24px/podcast.svg?react';\nimport ChatIcon from '@/material-icons/400-24px/chat.svg?react';\nimport WebsiteIcon from '@/material-icons/400-24px/website_icon.svg?react';\nimport RssFeedIcon from '@/material-icons/400-24px/rss_feed.svg?react';\nimport ButterflyIcon from '@/material-icons/400-24px/butterfly.svg?react';\nimport ThreadIcon from '@/material-icons/400-24px/thread.svg?react';\nimport Mastodon from '@/material-icons/400-24px/mastodon.svg?react';\nimport Video from '@/material-icons/400-24px/video.svg?react';\nimport Whatsapp from '@/material-icons/400-24px/whatsapp.svg?react';\nimport X from '@/material-icons/400-24px/x.svg?react';\nimport Linktree from '@/material-icons/400-24px/linktree.svg?react';\nimport Facebook from '@/material-icons/400-24px/facebook.svg?react';\nimport Instagram from '@/material-icons/400-24px/instagram.svg?react';\nimport Tiktok from '@/material-icons/400-24px/tiktok.svg?react';\nimport Reddit from '@/material-icons/400-24px/reddit.svg?react';\nimport Pintrest from '@/material-icons/400-24px/pintrest.svg?react';\nimport Pixelfed from '@/material-icons/400-24px/pixelfed.svg?react';\nimport Snapchat from '@/material-icons/400-24px/snapchat.svg?react';\nimport Message from '@/material-icons/400-24px/message.svg?react';\n\nexport const icons = {\n \"blog\":PenIcon,\n \"podcast\":PodcastIcon,\n \"chat\":ChatIcon,\n \"website\":WebsiteIcon,\n \"rssfeed\":RssFeedIcon,\n \"bluesky\":ButterflyIcon,\n \"thread\":ThreadIcon,\n \"mastodon\":Mastodon,\n \"video\":Video,\n \"whatsapp\":Whatsapp,\n \"x\":X,\n \"linktree\":Linktree,\n \"facebook\":Facebook,\n \"instagram\":Instagram,\n \"tiktok\":Tiktok,\n \"reddit\":Reddit,\n \"pinterest\":Pintrest,\n \"pixelfed\":Pixelfed,\n \"snapchat\":Snapchat,\n \"message\": Message,\n}\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport { Link } from 'react-router-dom';\n\nimport { connect } from 'react-redux';\n\nimport { fetchServer } from 'mastodon/actions/server';\nimport { Account } from 'mastodon/components/account';\nimport { ServerHeroImage } from 'mastodon/components/server_hero_image';\nimport { ShortNumber } from 'mastodon/components/short_number';\nimport { Skeleton } from 'mastodon/components/skeleton';\nimport { domain } from 'mastodon/initial_state';\n\nconst messages = defineMessages({\n aboutActiveUsers: {\n id: 'server_banner.about_active_users',\n defaultMessage:\n 'People using this server during the last 30 days (Monthly Active Users)',\n },\n});\n\nconst mapStateToProps = (state) => ({\n server: state.getIn(['server', 'server']),\n});\n\nclass ServerBanner extends PureComponent {\n static propTypes = {\n server: PropTypes.object,\n dispatch: PropTypes.func,\n intl: PropTypes.object,\n };\n\n componentDidMount() {\n const { dispatch } = this.props;\n dispatch(fetchServer());\n }\n\n render() {\n const { server, intl } = this.props;\n const isLoading = server.get('isLoading');\n\n return (\n
\n {/*
\n {domain}, mastodon: Mastodon }} />\n
\n\n \n \n \n \n\n
\n {isLoading ? (\n <>\n \n
\n \n
\n \n \n ) : server.get('description')}\n
*/}\n\n
\n
\n

\n\n \n
\n\n
\n {/*

*/}\n

USERS:

\n\n {isLoading ? (\n <>\n \n
\n \n \n ) : (\n <>\n {` `}\n \n \n )}\n
\n
\n
\n );\n }\n}\n\nexport default connect(mapStateToProps)(injectIntl(ServerBanner));\n","import ServerBanner from 'mastodon/components/server_banner';\n\nimport channelOrgImage from '../../../../images/wide_channel_logo.svg';\nimport { CSSProperties } from 'react';\n\n\nexport const ServerInformation = ({ className = '', style = {} }: { className?: string, style?: Record }) => {\n return (\n
\n

Powered by

\n \n channel org\n \n

© {new Date().getFullYear()} Channel.org

\n\n
\n

\n Channel.org is a safe space where you can create and curate Channel Feeds, distributed across the Fediverse, Bluesky and the wider web through RSS.\n

\n\n \n\n \n Learn more\n \n
\n
\n );\n};","import { Link } from \"react-router-dom\";\n\nimport { logo_image } from 'mastodon/initial_state';\n\nexport const Logo = () => {\n const subdomain = window.location.hostname.split('.')[0];\n const isMainChannel = window.location.hostname === 'channel.org';\n return (\n
\n \n {(subdomain === 'news') ? news logo : subdomain === 'informationtechnology' ? information technology logo : (logo_image && logo_image !== \"/logo_images/original/missing.png\") ? channel logo : {isMainChannel ? \"Channels\" : subdomain}}\n \n
\n );\n};","import { defineMessages, useIntl } from 'react-intl';\n\nimport FeedIcon from '@/material-icons/400-24px/feed_icon.svg?.react';\nimport { custom_links } from 'mastodon/initial_state';\n\nimport ColumnLink from './column_link';\nimport { icons } from './navIcons';\nimport { ServerInformation } from './server_information';\nimport { Logo } from './logo';\n\nconst messages = defineMessages({\n home: { id: 'tabs_bar.home', defaultMessage: 'Home' },\n notifications: {\n id: 'tabs_bar.notifications',\n defaultMessage: 'Notifications',\n },\n blog: { id: 'blog.title', defaultMessage: 'Blog' },\n explore: { id: 'explore.title', defaultMessage: 'Explore' },\n feed: { id: 'feed.title', defaultMessage: 'Feed' },\n podcast: { id: 'podcast.title', defaultMessage: 'Podcast' },\n chat: { id: 'chat.title', defaultMessage: 'Chat/Forum' },\n website: { id: 'globe.title', defaultMessage: 'Website' },\n rss: { id: 'rss.title', defaultMessage: 'RSS Feed' },\n bluesky: { id: 'bluesky.title', defaultMessage: 'Bluesky Account' },\n thread: { id: 'thread.title', defaultMessage: 'Threads Account' },\n});\n\nconst Navigations = () => {\n\n const intl = useIntl();\n const navItems = custom_links && typeof custom_links === 'string' ? JSON.parse(custom_links) : custom_links;\n\n return (\n \n );\n};\n\nexport default Navigations;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBookmarks(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 -960 960 960\",\n width: 24,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M160-80v-560q0-33 23.5-56.5T240-720h320q33 0 56.5 23.5T640-640v560L400-200 160-80Zm80-121 160-86 160 86v-439H240v439Zm480-39v-560H280v-80h440q33 0 56.5 23.5T800-800v560h-80ZM240-640h320-320Z\"\n })));\n}\nexport default SvgBookmarks;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExploreFill(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 -960 960 960\",\n width: 24,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m300-300 280-80 80-280-280 80-80 280Zm180-120q-25 0-42.5-17.5T420-480q0-25 17.5-42.5T480-540q25 0 42.5 17.5T540-480q0 25-17.5 42.5T480-420Zm0 340q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\"\n })));\n}\nexport default SvgExploreFill;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgHome(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 -960 960 960\",\n width: 24,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M240-200h120v-240h240v240h120v-360L480-740 240-560v360Zm-80 80v-480l320-240 320 240v480H520v-240h-80v240H160Zm320-350Z\"\n })));\n}\nexport default SvgHome;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgListAltFill(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 -960 960 960\",\n width: 24,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M320-280q17 0 28.5-11.5T360-320q0-17-11.5-28.5T320-360q-17 0-28.5 11.5T280-320q0 17 11.5 28.5T320-280Zm0-160q17 0 28.5-11.5T360-480q0-17-11.5-28.5T320-520q-17 0-28.5 11.5T280-480q0 17 11.5 28.5T320-440Zm0-160q17 0 28.5-11.5T360-640q0-17-11.5-28.5T320-680q-17 0-28.5 11.5T280-640q0 17 11.5 28.5T320-600Zm120 320h240v-80H440v80Zm0-160h240v-80H440v80Zm0-160h240v-80H440v80ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Z\"\n })));\n}\nexport default SvgListAltFill;","import PropTypes from 'prop-types';\n\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\n\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nimport { Hashtag } from 'mastodon/components/hashtag';\n\nconst messages = defineMessages({\n lastStatusAt: { id: 'account.featured_tags.last_status_at', defaultMessage: 'Last post on {date}' },\n empty: { id: 'account.featured_tags.last_status_never', defaultMessage: 'No posts' },\n});\n\nclass FeaturedTags extends ImmutablePureComponent {\n\n static propTypes = {\n account: ImmutablePropTypes.record,\n featuredTags: ImmutablePropTypes.list,\n tagged: PropTypes.string,\n intl: PropTypes.object.isRequired,\n };\n\n render () {\n const { account, featuredTags, intl } = this.props;\n\n if (!account || account.get('suspended') || featuredTags.isEmpty()) {\n return null;\n }\n\n return (\n
\n

}} />

\n\n {featuredTags.take(3).map(featuredTag => (\n 0) ? intl.formatMessage(messages.lastStatusAt, { date: intl.formatDate(featuredTag.get('last_status_at'), { month: 'short', day: '2-digit' }) }) : intl.formatMessage(messages.empty)}\n />\n ))}\n
\n );\n }\n\n}\n\nexport default injectIntl(FeaturedTags);\n","import { List as ImmutableList } from 'immutable';\nimport { connect } from 'react-redux';\n\nimport { makeGetAccount } from 'mastodon/selectors';\n\nimport FeaturedTags from '../components/featured_tags';\n\nconst mapStateToProps = () => {\n const getAccount = makeGetAccount();\n\n return (state, { accountId }) => ({\n account: getAccount(state, accountId),\n featuredTags: state.getIn(['user_lists', 'featured_tags', accountId, 'items'], ImmutableList()),\n });\n};\n\nexport default connect(mapStateToProps)(FeaturedTags);\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { connect } from 'react-redux';\n\nimport FeaturedTags from 'mastodon/features/account/containers/featured_tags_container';\nimport { normalizeForLookup } from 'mastodon/reducers/accounts_map';\n\nconst mapStateToProps = (state, { match: { params: { acct } } }) => {\n const accountId = state.getIn(['accounts_map', normalizeForLookup(acct)]);\n\n if (!accountId) {\n return {\n isLoading: true,\n };\n }\n\n return {\n accountId,\n isLoading: false,\n };\n};\n\nclass AccountNavigation extends PureComponent {\n\n static propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n acct: PropTypes.string,\n tagged: PropTypes.string,\n }).isRequired,\n }).isRequired,\n\n accountId: PropTypes.string,\n isLoading: PropTypes.bool,\n };\n\n render () {\n const { accountId, isLoading, match: { params: { tagged } } } = this.props;\n\n if (isLoading) {\n return null;\n }\n\n return (\n \n );\n }\n\n}\n\nexport default connect(mapStateToProps)(AccountNavigation);\n","import { Switch, Route } from 'react-router-dom';\n\nimport AccountNavigation from 'mastodon/features/account/navigation';\nimport Trends from 'mastodon/features/getting_started/containers/trends_container';\nimport { showTrends } from 'mastodon/initial_state';\n\nconst DefaultNavigation: React.FC = () => (showTrends ? : null);\n\nexport const NavigationPortal: React.FC = () => (\n
\n \n \n \n \n \n \n \n \n \n
\n);\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { FormattedMessage, injectIntl } from 'react-intl';\n\nimport { Link } from 'react-router-dom';\n\nimport { connect } from 'react-redux';\n\nimport { openModal } from 'mastodon/actions/modal';\nimport { disabledAccountId, movedToAccountId, domain } from 'mastodon/initial_state';\n\nconst mapStateToProps = (state) => ({\n disabledAcct: state.getIn(['accounts', disabledAccountId, 'acct']),\n movedToAcct: movedToAccountId ? state.getIn(['accounts', movedToAccountId, 'acct']) : undefined,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onLogout () {\n dispatch(openModal({ modalType: 'CONFIRM_LOG_OUT' }));\n },\n});\n\nclass DisabledAccountBanner extends PureComponent {\n\n static propTypes = {\n disabledAcct: PropTypes.string.isRequired,\n movedToAcct: PropTypes.string,\n onLogout: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n handleLogOutClick = e => {\n e.preventDefault();\n e.stopPropagation();\n\n this.props.onLogout();\n\n return false;\n };\n\n render () {\n const { disabledAcct, movedToAcct } = this.props;\n\n const disabledAccountLink = (\n \n {disabledAcct}@{domain}\n \n );\n\n return (\n
\n

\n {movedToAcct ? (\n {movedToAcct.includes('@') ? movedToAcct : `${movedToAcct}@${domain}`},\n }}\n />\n ) : (\n \n )}\n

\n \n \n \n \n
\n );\n }\n\n}\n\nexport default injectIntl(connect(mapStateToProps, mapDispatchToProps)(DisabledAccountBanner));\n","import { useEffect } from 'react';\n\nimport { createSelector } from '@reduxjs/toolkit';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport ListAltActiveIcon from '@/material-icons/400-24px/list_alt-fill.svg?react';\nimport ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react';\nimport { fetchLists } from 'mastodon/actions/lists';\n\nimport ColumnLink from './column_link';\n\nconst getOrderedLists = createSelector([state => state.get('lists')], lists => {\n if (!lists) {\n return lists;\n }\n\n return lists.toList().filter(item => !!item).sort((a, b) => a.get('title').localeCompare(b.get('title'))).take(4);\n});\n\nexport const ListPanel = () => {\n const dispatch = useDispatch();\n const lists = useSelector(state => getOrderedLists(state));\n\n useEffect(() => {\n dispatch(fetchLists());\n }, [dispatch]);\n\n if (!lists || lists.isEmpty()) {\n return null;\n }\n\n return (\n
\n
\n\n {lists.map(list => (\n \n ))}\n
\n );\n};\n","import PropTypes from 'prop-types';\nimport { Component, useEffect } from 'react';\n\nimport { defineMessages, injectIntl, useIntl } from 'react-intl';\n\nimport { useSelector, useDispatch } from 'react-redux';\n\nimport AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';\nimport BookmarksActiveIcon from '@/material-icons/400-24px/bookmarks-fill.svg?react';\nimport BookmarksIcon from '@/material-icons/400-24px/bookmarks.svg?react';\nimport ExploreActiveIcon from '@/material-icons/400-24px/explore-fill.svg?react';\nimport ExploreIcon from '@/material-icons/400-24px/explore.svg?react';\nimport ModerationIcon from '@/material-icons/400-24px/gavel.svg?react';\nimport HomeActiveIcon from '@/material-icons/400-24px/home-fill.svg?react';\nimport HomeIcon from '@/material-icons/400-24px/home.svg?react';\nimport ListAltActiveIcon from '@/material-icons/400-24px/list_alt-fill.svg?react';\nimport ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react';\nimport AdministrationIcon from '@/material-icons/400-24px/manufacturing.svg?react';\nimport MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';\nimport NotificationsActiveIcon from '@/material-icons/400-24px/notifications-fill.svg?react';\nimport NotificationsIcon from '@/material-icons/400-24px/notifications.svg?react';\nimport PersonAddActiveIcon from '@/material-icons/400-24px/person_add-fill.svg?react';\nimport PersonAddIcon from '@/material-icons/400-24px/person_add.svg?react';\nimport PublicIcon from '@/material-icons/400-24px/public.svg?react';\nimport SearchIcon from '@/material-icons/400-24px/search.svg?react';\nimport SettingsIcon from '@/material-icons/400-24px/settings.svg?react';\nimport StarActiveIcon from '@/material-icons/400-24px/star-fill.svg?react';\nimport StarIcon from '@/material-icons/400-24px/star.svg?react';\nimport { fetchFollowRequests } from 'mastodon/actions/accounts';\nimport { IconWithBadge } from 'mastodon/components/icon_with_badge';\nimport { NavigationPortal } from 'mastodon/components/navigation_portal';\nimport { identityContextPropShape, withIdentity } from 'mastodon/identity_context';\nimport { timelinePreview, trendsEnabled } from 'mastodon/initial_state';\nimport { transientSingleColumn } from 'mastodon/is_mobile';\nimport { canManageReports, canViewAdminDashboard } from 'mastodon/permissions';\nimport { selectUnreadNotificationGroupsCount } from 'mastodon/selectors/notifications';\n\nimport ColumnLink from './column_link';\nimport DisabledAccountBanner from './disabled_account_banner';\nimport { ListPanel } from './list_panel';\nimport SignInBanner from './sign_in_banner';\nimport { Logo } from './logo';\nimport { ServerInformation } from './server_information';\n\nconst messages = defineMessages({\n home: { id: 'tabs_bar.home', defaultMessage: 'Home' },\n notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' },\n explore: { id: 'explore.title', defaultMessage: 'Explore' },\n firehose: { id: 'column.firehose', defaultMessage: 'Live feeds' },\n direct: { id: 'navigation_bar.direct', defaultMessage: 'Private mentions' },\n favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favorites' },\n bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },\n lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },\n preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },\n administration: { id: 'navigation_bar.administration', defaultMessage: 'Administration' },\n moderation: { id: 'navigation_bar.moderation', defaultMessage: 'Moderation' },\n followsAndFollowers: { id: 'navigation_bar.follows_and_followers', defaultMessage: 'Follows and followers' },\n about: { id: 'navigation_bar.about', defaultMessage: 'About' },\n search: { id: 'navigation_bar.search', defaultMessage: 'Search' },\n advancedInterface: { id: 'navigation_bar.advanced_interface', defaultMessage: 'Open in advanced web interface' },\n openedInClassicInterface: { id: 'navigation_bar.opened_in_classic_interface', defaultMessage: 'Posts, accounts, and other specific pages are opened by default in the classic web interface.' },\n followRequests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },\n});\n\nconst NotificationsLink = () => {\n\n const count = useSelector(selectUnreadNotificationGroupsCount);\n const intl = useIntl();\n\n return (\n }\n activeIcon={}\n text={intl.formatMessage(messages.notifications)}\n />\n );\n};\n\nconst FollowRequestsLink = () => {\n const count = useSelector(state => state.getIn(['user_lists', 'follow_requests', 'items'])?.size ?? 0);\n const intl = useIntl();\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(fetchFollowRequests());\n }, [dispatch]);\n\n if (count === 0) {\n return null;\n }\n\n return (\n }\n activeIcon={}\n text={intl.formatMessage(messages.followRequests)}\n />\n );\n};\n\nclass NavigationPanel extends Component {\n static propTypes = {\n identity: identityContextPropShape,\n intl: PropTypes.object.isRequired,\n };\n\n isFirehoseActive = (match, location) => {\n return match || location.pathname.startsWith('/public');\n };\n\n render () {\n const { intl } = this.props;\n const { signedIn, disabledAccountId, permissions } = this.props.identity;\n\n let banner = undefined;\n\n if(transientSingleColumn)\n banner = (
\n {intl.formatMessage(messages.openedInClassicInterface)}\n {\" \"}\n \n {intl.formatMessage(messages.advancedInterface)}\n \n
);\n\n return (\n
\n \n\n {banner &&\n
\n {banner}\n
\n }\n\n
\n {signedIn && (\n <>\n \n \n \n \n )}\n\n {trendsEnabled ? (\n \n ) : (\n \n )}\n\n {(signedIn || timelinePreview) && (\n \n )}\n\n {!signedIn && (\n
\n
\n { disabledAccountId ? : }\n
\n )}\n\n {signedIn && (\n <>\n \n \n \n \n\n \n \n\n
\n\n \n\n {canManageReports(permissions) && }\n {canViewAdminDashboard(permissions) && }\n \n )}\n\n
\n
\n \n
\n
\n\n
\n\n \n
\n );\n }\n\n}\n\nexport default injectIntl(withIdentity(NavigationPanel));\n","import PropTypes from 'prop-types';\nimport { Children, cloneElement, useCallback } from 'react';\n\nimport { NavLink } from 'react-router-dom';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nimport { scrollRight } from '../../../scroll';\nimport BundleContainer from '../containers/bundle_container';\nimport {\n Compose,\n Notifications,\n HomeTimeline,\n CommunityTimeline,\n PublicTimeline,\n HashtagTimeline,\n DirectTimeline,\n FavouritedStatuses,\n BookmarkedStatuses,\n ListTimeline,\n Directory,\n} from '../util/async-components';\nimport { useColumnsContext } from '../util/columns_context';\n\nimport BundleColumnError from './bundle_column_error';\nimport { ColumnLoading } from './column_loading';\nimport ComposePanel from './compose_panel';\nimport DrawerLoading from './drawer_loading';\nimport Navigations from './navigations';\nimport { Link } from 'react-router-dom';\nimport Logo from \"@/images/icons/icon-logo.svg\";\nimport BurgerMenu from '@/images/icons/icon-burger-menu.svg';\nimport BurgerMenuClose from '@/images/icons/icon-burger-menu-close.svg';\nimport FeedIcon from '@/material-icons/400-24px/feed_icon.svg?.react';\nimport ColumnLink from './column_link';\nimport { channel_display_name, custom_links, logo_image } from 'mastodon/initial_state';\nimport { icons } from './navIcons';\nimport { identityContextPropShape, withIdentity } from 'mastodon/identity_context';\nimport NavigationPanel from './navigation_panel';\n\nconst componentMap = {\n 'COMPOSE': Compose,\n 'HOME': HomeTimeline,\n 'NOTIFICATIONS': Notifications,\n 'PUBLIC': PublicTimeline,\n 'REMOTE': PublicTimeline,\n 'COMMUNITY': CommunityTimeline,\n 'HASHTAG': HashtagTimeline,\n 'DIRECT': DirectTimeline,\n 'FAVOURITES': FavouritedStatuses,\n 'BOOKMARKS': BookmarkedStatuses,\n 'LIST': ListTimeline,\n 'DIRECTORY': Directory,\n};\n\nconst TabsBarPortal = () => {\n const { setTabsBarElement } = useColumnsContext();\n\n const setRef = useCallback(\n (element) => {\n if (element) setTabsBarElement(element);\n },\n [setTabsBarElement],\n );\n\n return
;\n};\n\nclass ColumnsArea extends ImmutablePureComponent {\n static propTypes = {\n identity: identityContextPropShape,\n columns: ImmutablePropTypes.list.isRequired,\n isModalOpen: PropTypes.bool.isRequired,\n singleColumn: PropTypes.bool,\n children: PropTypes.node,\n };\n\n // Corresponds to (max-width: $no-gap-breakpoint - 1px) in SCSS\n mediaQuery = 'matchMedia' in window && window.matchMedia('(max-width: 1174px)');\n\n state = {\n renderComposePanel: !(this.mediaQuery && this.mediaQuery.matches),\n isMenuOpen: false,\n currentYear: new Date().getFullYear()\n };\n\n componentDidMount() {\n if (this.mediaQuery) {\n if (this.mediaQuery.addEventListener) {\n this.mediaQuery.addEventListener('change', this.handleLayoutChange);\n } else {\n this.mediaQuery.addListener(this.handleLayoutChange);\n }\n this.setState({ renderComposePanel: !this.mediaQuery.matches });\n }\n\n this.isRtlLayout = document\n .getElementsByTagName('body')[0]\n .classList.contains('rtl');\n }\n\n componentWillUnmount() {\n if (this.mediaQuery) {\n if (this.mediaQuery.removeEventListener) {\n this.mediaQuery.removeEventListener('change', this.handleLayoutChange);\n } else {\n this.mediaQuery.removeListener(this.handleLayoutChange);\n }\n }\n }\n\n handleChildrenContentChange() {\n if (!this.props.singleColumn) {\n const modifier = this.isRtlLayout ? -1 : 1;\n scrollRight(this.node, (this.node.scrollWidth - window.innerWidth) * modifier);\n }\n }\n\n handleLayoutChange = (e) => {\n this.setState({ renderComposePanel: !e.matches });\n };\n\n handleOpenMenu = () => {\n this.setState((prevState) => ({\n isMenuOpen: !prevState.isMenuOpen,\n }));\n };\n\n setRef = (node) => {\n this.node = node;\n };\n\n renderLoading = (columnId) => () => {\n return columnId === 'COMPOSE' ? (\n \n ) : (\n \n );\n };\n\n renderError = (props) => {\n return ;\n };\n\n render() {\n const { columns, children, singleColumn, isModalOpen, identity } = this.props;\n\n const { signedIn } = identity;\n const { renderComposePanel, isMenuOpen } = this.state;\n\n const navItems = custom_links && typeof custom_links === 'string' ? JSON.parse(custom_links) : custom_links;\n\n const subdomain = window.location.hostname.split('.')[0];\n if (singleColumn) {\n return (\n
\n
\n
\n {renderComposePanel && }\n
\n
\n\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n {\n Object.values(navItems).map((it, index) => (\n \n ))}\n
\n\n
\n
    \n
  • \n \n Terms & Conditions\n \n
  • \n
  • \n \n Privacy Policy\n \n
  • \n
  • \n \n Source Code\n \n
  • \n
\n \n logo\n \n
\n
\n
\n {children}\n
\n
\n
\n\n
\n
\n {signedIn ? : }\n
\n
\n
\n );\n }\n\n return (\n \n {columns.map((column) => {\n const params =\n column.get('params', null) === null\n ? null\n : column.get('params').toJS();\n const other = params && params.other ? params.other : {};\n\n return (\n \n {(SpecificComponent) => (\n \n )}\n \n );\n })}\n\n {Children.map(children, (child) =>\n cloneElement(child, { multiColumn: true }),\n )}\n
\n );\n }\n}\n\nexport default withIdentity(ColumnsArea);\n","import { connect } from 'react-redux';\n\nimport ColumnsArea from '../components/columns_area';\n\nconst mapStateToProps = state => ({\n columns: state.getIn(['settings', 'columns']),\n isModalOpen: !!state.get('modal').modalType,\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(ColumnsArea);\n","import PropTypes from 'prop-types';\nimport { Component, cloneElement, Children } from 'react';\n\nimport { Switch, Route, useLocation } from 'react-router-dom';\n\nimport StackTrace from 'stacktrace-js';\n\nimport BundleColumnError from '../components/bundle_column_error';\nimport { ColumnLoading } from '../components/column_loading';\nimport BundleContainer from '../containers/bundle_container';\n\n// Small wrapper to pass multiColumn to the route components\nexport const WrappedSwitch = ({ multiColumn, children }) => {\n const location = useLocation();\n\n const decklessLocation = multiColumn && location.pathname.startsWith('/deck')\n ? {...location, pathname: location.pathname.slice(5)}\n : location;\n\n return (\n \n {Children.map(children, child => child ? cloneElement(child, { multiColumn }) : null)}\n \n );\n};\n\n\nWrappedSwitch.propTypes = {\n multiColumn: PropTypes.bool,\n children: PropTypes.node,\n};\n\n// Small Wrapper to extract the params from the route and pass\n// them to the rendered component, together with the content to\n// be rendered inside (the children)\nexport class WrappedRoute extends Component {\n\n static propTypes = {\n component: PropTypes.func.isRequired,\n content: PropTypes.node,\n multiColumn: PropTypes.bool,\n componentParams: PropTypes.object,\n };\n\n static defaultProps = {\n componentParams: {},\n };\n\n static getDerivedStateFromError () {\n return {\n hasError: true,\n };\n }\n\n state = {\n hasError: false,\n stacktrace: '',\n };\n\n componentDidCatch (error) {\n StackTrace.fromError(error).then(stackframes => {\n this.setState({ stacktrace: error.toString() + '\\n' + stackframes.map(frame => frame.toString()).join('\\n') });\n }).catch(err => {\n console.error(err);\n });\n }\n\n renderComponent = ({ match }) => {\n const { component, content, multiColumn, componentParams } = this.props;\n const { hasError, stacktrace } = this.state;\n\n if (hasError) {\n return (\n \n );\n }\n\n return (\n \n {Component => {content}}\n \n );\n };\n\n renderLoading = () => {\n const { multiColumn } = this.props;\n\n return ;\n };\n\n renderError = (props) => {\n return ;\n };\n\n render () {\n const { component: Component, content, ...rest } = this.props;\n\n return ;\n }\n\n}\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport classNames from 'classnames';\nimport { Redirect, Route, withRouter } from 'react-router-dom';\n\nimport { connect } from 'react-redux';\n\nimport { debounce } from 'lodash';\nimport { HotKeys } from 'react-hotkeys';\n\nimport { focusApp, unfocusApp, changeLayout } from 'mastodon/actions/app';\nimport { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'mastodon/actions/markers';\nimport { fetchNotifications } from 'mastodon/actions/notification_groups';\nimport { INTRODUCTION_VERSION } from 'mastodon/actions/onboarding';\nimport { HoverCardController } from 'mastodon/components/hover_card_controller';\nimport { PictureInPicture } from 'mastodon/features/picture_in_picture';\nimport {\n identityContextPropShape,\n withIdentity,\n} from 'mastodon/identity_context';\nimport { layoutFromWindow } from 'mastodon/is_mobile';\nimport { WithRouterPropTypes } from 'mastodon/utils/react_router';\n\nimport {\n uploadCompose,\n resetCompose,\n changeComposeSpoilerness,\n} from '../../actions/compose';\nimport { clearHeight } from '../../actions/height_cache';\nimport {\n fetchServer,\n fetchServerTranslationLanguages,\n} from '../../actions/server';\nimport { expandHomeTimeline } from '../../actions/timelines';\nimport initialState, {\n me,\n owner,\n singleUserMode,\n trendsEnabled,\n trendsAsLanding,\n disableHoverCards,\n} from '../../initial_state';\n\nimport BundleColumnError from './components/bundle_column_error';\n// import Header from './components/header';\nimport UploadArea from './components/upload_area';\nimport ColumnsAreaContainer from './containers/columns_area_container';\nimport LoadingBarContainer from './containers/loading_bar_container';\nimport ModalContainer from './containers/modal_container';\nimport NotificationsContainer from './containers/notifications_container';\nimport {\n Compose,\n Status,\n GettingStarted,\n KeyboardShortcuts,\n Firehose,\n AccountTimeline,\n AccountGallery,\n HomeTimeline,\n Followers,\n Following,\n Reblogs,\n Favourites,\n DirectTimeline,\n HashtagTimeline,\n Notifications,\n NotificationRequests,\n NotificationRequest,\n FollowRequests,\n FavouritedStatuses,\n BookmarkedStatuses,\n FollowedTags,\n LinkTimeline,\n ListTimeline,\n Lists,\n ListEdit,\n ListMembers,\n Blocks,\n DomainBlocks,\n Mutes,\n PinnedStatuses,\n Directory,\n OnboardingProfile,\n OnboardingFollows,\n Explore,\n Collections,\n CollectionDetail,\n Search,\n About,\n PrivacyPolicy,\n} from './util/async-components';\nimport { ColumnsContextProvider } from './util/columns_context';\nimport { WrappedSwitch, WrappedRoute } from './util/react_router_helpers';\n\n// Dummy import, to make sure that ends up in the application bundle.\n// Without this it ends up in ~8 very commonly used bundles.\nimport '../../components/status';\n\nconst messages = defineMessages({\n beforeUnload: {\n id: 'ui.beforeunload',\n defaultMessage: 'Your draft will be lost if you leave Mastodon.',\n },\n});\n\nconst mapStateToProps = (state) => ({\n layout: state.getIn(['meta', 'layout']),\n isComposing: state.getIn(['compose', 'is_composing']),\n hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0,\n hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0,\n canUploadMore: !state.getIn(['compose', 'media_attachments']).some(x => ['audio', 'video'].includes(x.get('type'))) && state.getIn(['compose', 'media_attachments']).size < state.getIn(['server', 'server', 'configuration', 'statuses', 'max_media_attachments']),\n firstLaunch: state.getIn(['settings', 'introductionVersion'], 0) < INTRODUCTION_VERSION,\n newAccount: !state.getIn(['accounts', me, 'note']) && !state.getIn(['accounts', me, 'bot']) && state.getIn(['accounts', me, 'following_count'], 0) === 0 && state.getIn(['accounts', me, 'statuses_count'], 0) === 0,\n username: state.getIn(['accounts', me, 'username']),\n});\n\nconst keyMap = {\n help: '?',\n new: 'n',\n search: ['s', '/'],\n forceNew: 'option+n',\n toggleComposeSpoilers: 'option+x',\n focusColumn: ['1', '2', '3', '4', '5', '6', '7', '8', '9'],\n reply: 'r',\n favourite: 'f',\n boost: 'b',\n mention: 'm',\n open: ['enter', 'o'],\n openProfile: 'p',\n moveDown: ['down', 'j'],\n moveUp: ['up', 'k'],\n back: 'backspace',\n goToHome: 'g h',\n goToNotifications: 'g n',\n goToLocal: 'g l',\n goToFederated: 'g t',\n goToDirect: 'g d',\n goToStart: 'g s',\n goToFavourites: 'g f',\n goToPinned: 'g p',\n goToProfile: 'g u',\n goToBlocked: 'g b',\n goToMuted: 'g m',\n goToRequests: 'g r',\n toggleHidden: 'x',\n toggleSensitive: 'h',\n openMedia: 'e',\n onTranslate: 't',\n};\n\nclass SwitchingColumnsArea extends PureComponent {\n static propTypes = {\n identity: identityContextPropShape,\n children: PropTypes.node,\n location: PropTypes.object,\n singleColumn: PropTypes.bool,\n forceOnboarding: PropTypes.bool,\n };\n\n UNSAFE_componentWillMount() {\n if (this.props.singleColumn) {\n document.body.classList.toggle('layout-single-column', true);\n document.body.classList.toggle('layout-multiple-columns', false);\n } else {\n document.body.classList.toggle('layout-single-column', false);\n document.body.classList.toggle('layout-multiple-columns', true);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n ![this.props.location.pathname, '/'].includes(prevProps.location.pathname)\n && this.node\n ) {\n this.node.handleChildrenContentChange();\n }\n\n if (prevProps.singleColumn !== this.props.singleColumn) {\n document.body.classList.toggle(\n 'layout-single-column',\n this.props.singleColumn,\n );\n document.body.classList.toggle(\n 'layout-multiple-columns',\n !this.props.singleColumn,\n );\n }\n }\n\n setRef = (c) => {\n if (c) {\n this.node = c;\n }\n };\n\n render () {\n const { children, singleColumn, forceOnboarding } = this.props;\n const { signedIn } = this.props.identity;\n const pathName = this.props.location.pathname;\n\n let redirect;\n\n if (signedIn) {\n if (forceOnboarding) {\n redirect = ;\n } else if (singleColumn) {\n redirect = ;\n } else {\n redirect = ;\n }\n } else if (singleUserMode && owner && initialState?.accounts[owner]) {\n redirect = (\n \n );\n } else if (trendsEnabled && trendsAsLanding) {\n redirect = ;\n } else {\n redirect = ;\n }\n\n return (\n \n \n \n {redirect}\n\n {singleColumn ? : null}\n {singleColumn && pathName.startsWith('/deck/') ? : null}\n {/* Redirect old bookmarks (without /deck) with home-like routes to the advanced interface */}\n {!singleColumn && pathName === '/getting-started' ? (\n \n ) : null}\n {!singleColumn && pathName === '/home' ? (\n \n ) : null}\n\n \n \n \n \n {/* */}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n {/* channel routes */}\n \n\n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n {/* Legacy routes, cannot be easily factored with other routes because they share a param name */}\n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n );\n }\n}\n\nclass UI extends PureComponent {\n static propTypes = {\n identity: identityContextPropShape,\n dispatch: PropTypes.func.isRequired,\n children: PropTypes.node,\n isComposing: PropTypes.bool,\n hasComposingText: PropTypes.bool,\n hasMediaAttachments: PropTypes.bool,\n canUploadMore: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n layout: PropTypes.string.isRequired,\n firstLaunch: PropTypes.bool,\n newAccount: PropTypes.bool,\n username: PropTypes.string,\n ...WithRouterPropTypes,\n };\n\n state = {\n draggingOver: false,\n };\n\n handleBeforeUnload = (e) => {\n const {\n intl,\n dispatch,\n isComposing,\n hasComposingText,\n hasMediaAttachments,\n } = this.props;\n\n dispatch(synchronouslySubmitMarkers());\n\n if (isComposing && (hasComposingText || hasMediaAttachments)) {\n e.preventDefault();\n // Setting returnValue to any string causes confirmation dialog.\n // Many browsers no longer display this text to users,\n // but we set user-friendly message for other browsers, e.g. Edge.\n e.returnValue = intl.formatMessage(messages.beforeUnload);\n }\n };\n\n handleWindowFocus = () => {\n this.props.dispatch(focusApp());\n this.props.dispatch(submitMarkers({ immediate: true }));\n };\n\n handleWindowBlur = () => {\n this.props.dispatch(unfocusApp());\n };\n\n handleDragEnter = (e) => {\n e.preventDefault();\n\n if (!this.dragTargets) {\n this.dragTargets = [];\n }\n\n if (this.dragTargets.indexOf(e.target) === -1) {\n this.dragTargets.push(e.target);\n }\n\n if (\n e.dataTransfer &&\n Array.from(e.dataTransfer.types).includes('Files') &&\n this.props.canUploadMore &&\n this.props.identity.signedIn\n ) {\n this.setState({ draggingOver: true });\n }\n };\n\n handleDragOver = (e) => {\n if (this.dataTransferIsText(e.dataTransfer)) return false;\n\n e.preventDefault();\n e.stopPropagation();\n\n try {\n e.dataTransfer.dropEffect = 'copy';\n } catch {\n // do nothing\n }\n\n return false;\n };\n\n handleDrop = (e) => {\n if (this.dataTransferIsText(e.dataTransfer)) return;\n\n e.preventDefault();\n\n this.setState({ draggingOver: false });\n this.dragTargets = [];\n\n if (\n e.dataTransfer &&\n e.dataTransfer.files.length >= 1 &&\n this.props.canUploadMore &&\n this.props.identity.signedIn\n ) {\n this.props.dispatch(uploadCompose(e.dataTransfer.files));\n }\n };\n\n handleDragLeave = (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n this.dragTargets = this.dragTargets.filter(\n (el) => el !== e.target && this.node.contains(el),\n );\n\n if (this.dragTargets.length > 0) {\n return;\n }\n\n this.setState({ draggingOver: false });\n };\n\n dataTransferIsText = (dataTransfer) => {\n return (\n dataTransfer &&\n Array.from(dataTransfer.types).filter((type) => type === 'text/plain')\n .length === 1\n );\n };\n\n closeUploadModal = () => {\n this.setState({ draggingOver: false });\n };\n\n handleServiceWorkerPostMessage = ({ data }) => {\n if (data.type === 'navigate') {\n this.props.history.push(data.path);\n } else {\n console.warn('Unknown message type:', data.type);\n }\n };\n\n handleLayoutChange = debounce(\n () => {\n this.props.dispatch(clearHeight()); // The cached heights are no longer accurate, invalidate\n },\n 500,\n {\n trailing: true,\n },\n );\n\n handleResize = () => {\n const layout = layoutFromWindow();\n\n if (layout !== this.props.layout) {\n this.handleLayoutChange.cancel();\n this.props.dispatch(changeLayout({ layout }));\n } else {\n this.handleLayoutChange();\n }\n };\n\n componentDidMount() {\n const { signedIn } = this.props.identity;\n\n window.addEventListener('focus', this.handleWindowFocus, false);\n window.addEventListener('blur', this.handleWindowBlur, false);\n window.addEventListener('beforeunload', this.handleBeforeUnload, false);\n window.addEventListener('resize', this.handleResize, { passive: true });\n\n document.addEventListener('dragenter', this.handleDragEnter, false);\n document.addEventListener('dragover', this.handleDragOver, false);\n document.addEventListener('drop', this.handleDrop, false);\n document.addEventListener('dragleave', this.handleDragLeave, false);\n document.addEventListener('dragend', this.handleDragEnd, false);\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.addEventListener(\n 'message',\n this.handleServiceWorkerPostMessage,\n );\n }\n\n if (signedIn) {\n this.props.dispatch(fetchMarkers());\n this.props.dispatch(expandHomeTimeline());\n this.props.dispatch(fetchNotifications());\n this.props.dispatch(fetchServerTranslationLanguages());\n\n setTimeout(() => this.props.dispatch(fetchServer()), 3000);\n }\n\n this.hotkeys.__mousetrap__.stopCallback = (e, element) => {\n return ['TEXTAREA', 'SELECT', 'INPUT'].includes(element.tagName);\n };\n }\n\n componentWillUnmount() {\n window.removeEventListener('focus', this.handleWindowFocus);\n window.removeEventListener('blur', this.handleWindowBlur);\n window.removeEventListener('beforeunload', this.handleBeforeUnload);\n window.removeEventListener('resize', this.handleResize);\n\n document.removeEventListener('dragenter', this.handleDragEnter);\n document.removeEventListener('dragover', this.handleDragOver);\n document.removeEventListener('drop', this.handleDrop);\n document.removeEventListener('dragleave', this.handleDragLeave);\n document.removeEventListener('dragend', this.handleDragEnd);\n }\n\n setRef = (c) => {\n this.node = c;\n };\n\n handleHotkeyNew = (e) => {\n e.preventDefault();\n\n const element = this.node.querySelector('.autosuggest-textarea__textarea');\n\n if (element) {\n element.focus();\n }\n };\n\n handleHotkeySearch = (e) => {\n e.preventDefault();\n\n const element = this.node.querySelector('.search__input');\n\n if (element) {\n element.focus();\n }\n };\n\n handleHotkeyForceNew = (e) => {\n this.handleHotkeyNew(e);\n this.props.dispatch(resetCompose());\n };\n\n handleHotkeyToggleComposeSpoilers = (e) => {\n e.preventDefault();\n this.props.dispatch(changeComposeSpoilerness());\n };\n\n handleHotkeyFocusColumn = (e) => {\n const index = e.key * 1 + 1; // First child is drawer, skip that\n const column = this.node.querySelector(`.column:nth-child(${index})`);\n if (!column) return;\n const container = column.querySelector('.scrollable');\n\n if (container) {\n const status = container.querySelector('.focusable');\n\n if (status) {\n if (container.scrollTop > status.offsetTop) {\n status.scrollIntoView(true);\n }\n status.focus();\n }\n }\n };\n\n handleHotkeyBack = e => {\n e.preventDefault();\n\n const { history } = this.props;\n\n if (history.location?.state?.fromMastodon) {\n history.goBack();\n } else {\n history.push('/');\n }\n };\n\n setHotkeysRef = (c) => {\n this.hotkeys = c;\n };\n\n handleHotkeyToggleHelp = () => {\n if (this.props.location.pathname === '/keyboard-shortcuts') {\n this.props.history.goBack();\n } else {\n this.props.history.push('/keyboard-shortcuts');\n }\n };\n\n handleHotkeyGoToHome = () => {\n this.props.history.push('/home');\n };\n\n handleHotkeyGoToNotifications = () => {\n this.props.history.push('/notifications');\n };\n\n handleHotkeyGoToLocal = () => {\n this.props.history.push('/public/local');\n };\n\n handleHotkeyGoToFederated = () => {\n this.props.history.push('/public');\n };\n\n handleHotkeyGoToDirect = () => {\n this.props.history.push('/conversations');\n };\n\n handleHotkeyGoToStart = () => {\n this.props.history.push('/getting-started');\n };\n\n handleHotkeyGoToFavourites = () => {\n this.props.history.push('/favourites');\n };\n\n handleHotkeyGoToPinned = () => {\n this.props.history.push('/pinned');\n };\n\n handleHotkeyGoToProfile = () => {\n this.props.history.push(`/@${this.props.username}`);\n };\n\n handleHotkeyGoToBlocked = () => {\n this.props.history.push('/blocks');\n };\n\n handleHotkeyGoToMuted = () => {\n this.props.history.push('/mutes');\n };\n\n handleHotkeyGoToRequests = () => {\n this.props.history.push('/follow_requests');\n };\n\n render() {\n const { draggingOver } = this.state;\n const { children, isComposing, location, layout, firstLaunch, newAccount } = this.props;\n\n const handlers = {\n help: this.handleHotkeyToggleHelp,\n new: this.handleHotkeyNew,\n search: this.handleHotkeySearch,\n forceNew: this.handleHotkeyForceNew,\n toggleComposeSpoilers: this.handleHotkeyToggleComposeSpoilers,\n focusColumn: this.handleHotkeyFocusColumn,\n back: this.handleHotkeyBack,\n goToHome: this.handleHotkeyGoToHome,\n goToNotifications: this.handleHotkeyGoToNotifications,\n goToLocal: this.handleHotkeyGoToLocal,\n goToFederated: this.handleHotkeyGoToFederated,\n goToDirect: this.handleHotkeyGoToDirect,\n goToStart: this.handleHotkeyGoToStart,\n goToFavourites: this.handleHotkeyGoToFavourites,\n goToPinned: this.handleHotkeyGoToPinned,\n goToProfile: this.handleHotkeyGoToProfile,\n goToBlocked: this.handleHotkeyGoToBlocked,\n goToMuted: this.handleHotkeyGoToMuted,\n goToRequests: this.handleHotkeyGoToRequests,\n };\n\n return (\n \n \n {/*
*/}\n\n \n {children}\n \n\n {layout !== 'mobile' && }\n \n {!disableHoverCards && }\n \n \n \n
\n \n );\n }\n}\n\nexport default connect(mapStateToProps)(\n injectIntl(withRouter(withIdentity(UI))),\n);\n","import { PureComponent } from 'react';\n\nimport { Helmet } from 'react-helmet';\nimport { Route } from 'react-router-dom';\n\nimport { Provider as ReduxProvider } from 'react-redux';\n\nimport { ScrollContext } from 'react-router-scroll-4';\n\nimport { fetchCustomEmojis } from 'mastodon/actions/custom_emojis';\nimport { hydrateStore } from 'mastodon/actions/store';\nimport { connectUserStream } from 'mastodon/actions/streaming';\nimport ErrorBoundary from 'mastodon/components/error_boundary';\nimport { Router } from 'mastodon/components/router';\nimport UI from 'mastodon/features/ui';\nimport { IdentityContext, createIdentityContext } from 'mastodon/identity_context';\nimport initialState, { title as siteTitle } from 'mastodon/initial_state';\nimport { IntlProvider } from 'mastodon/locales';\nimport { store } from 'mastodon/store';\nimport { isProduction } from 'mastodon/utils/environment';\n\nconst title = isProduction() ? siteTitle : `${siteTitle} (Dev)`;\n\nconst hydrateAction = hydrateStore(initialState);\n\nstore.dispatch(hydrateAction);\nif (initialState.meta.me) {\n store.dispatch(fetchCustomEmojis());\n}\n\nexport default class Mastodon extends PureComponent {\n identity = createIdentityContext(initialState);\n\n componentDidMount() {\n if (this.identity.signedIn) {\n this.disconnect = store.dispatch(connectUserStream());\n }\n }\n\n componentWillUnmount () {\n if (this.disconnect) {\n this.disconnect();\n this.disconnect = null;\n }\n }\n\n shouldUpdateScroll (prevRouterProps, { location }) {\n return !(location.state?.mastodonModalKey && location.state?.mastodonModalKey !== prevRouterProps?.location?.state?.mastodonModalKey);\n }\n\n render () {\n return (\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n );\n }\n\n}\n","/* global performance */\nvar perf = typeof performance !== 'undefined' && performance;\n\nvar now = perf && perf.now\n ? function () { return perf.now(); }\n : function () { return Date.now(); }\n\nfunction throwIfEmpty (name) {\n if (!name) {\n throw new Error('name must be non-empty')\n }\n}\n\n// simple binary sort insertion\nfunction insertSorted (arr, item) {\n var low = 0;\n var high = arr.length;\n var mid;\n while (low < high) {\n mid = (low + high) >>> 1; // like (num / 2) but faster\n if (arr[mid].startTime < item.startTime) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n arr.splice(low, 0, item);\n}\n\nvar mark;\nvar stop;\nvar getEntries;\nvar clear;\n\nif (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.getEntriesByName &&\n perf.getEntriesByType &&\n perf.clearMarks &&\n perf.clearMeasures &&\n // In Node, we want to detect that this perf/correctness fix [1] is available, which\n // landed in Node 16.15.0, 17.6.0, and 18.0.0. However, it's not observable, and\n // we don't want to rely on fragile version checks.\n // So we can rely on this observable change [2] to add clearResourceTimings, which\n // landed a bit later (18.2.0), but is close enough for our purposes.\n // [1]: https://github.com/nodejs/node/pull/42032\n // [2]: https://github.com/nodejs/node/pull/42725\n (true )\n) {\n mark = function (name) {\n throwIfEmpty(name);\n perf.mark((\"start \" + name));\n };\n stop = function (name) {\n throwIfEmpty(name);\n perf.mark((\"end \" + name));\n var measure = perf.measure(name, (\"start \" + name), (\"end \" + name));\n if (measure) {\n // return value from performance.measure not supported in all browsers\n // https://developer.mozilla.org/en-US/docs/Web/API/Performance/measure#browser_compatibility\n return measure\n }\n var entries = perf.getEntriesByName(name);\n return entries[entries.length - 1]\n };\n getEntries = function () { return perf.getEntriesByType('measure'); };\n clear = function () {\n perf.clearMarks();\n perf.clearMeasures();\n };\n} else {\n var marks = {};\n var entries = [];\n mark = function (name) {\n throwIfEmpty(name);\n var startTime = now();\n marks['$' + name] = startTime;\n };\n stop = function (name) {\n throwIfEmpty(name);\n var endTime = now();\n var startTime = marks['$' + name];\n if (!startTime) {\n throw new Error((\"no known mark: \" + name))\n }\n var entry = {\n startTime: startTime,\n name: name,\n duration: endTime - startTime,\n entryType: 'measure'\n };\n // per the spec this should be at least 150:\n // https://www.w3.org/TR/resource-timing-1/#extensions-performance-interface\n // we just have no limit, per Chrome and Edge's de-facto behavior\n insertSorted(entries, entry);\n return entry\n };\n getEntries = function () { return entries; };\n clear = function () {\n marks = {};\n entries = [];\n };\n}\n\nexport { clear, getEntries, mark, stop };\n","//\n// Tools for performance debugging, only enabled in development mode.\n// Open up Chrome Dev Tools, then Timeline, then User Timing to see output.\n// Also see config/webpack/loaders/mark.js for the webpack loader marks.\n\nimport * as marky from 'marky';\n\nimport { isDevelopment } from './utils/environment';\n\nif (isDevelopment()) {\n if (typeof performance !== 'undefined' && performance.setResourceTimingBufferSize) {\n // Increase Firefox's performance entry limit; otherwise it's capped to 150.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331135\n performance.setResourceTimingBufferSize(Infinity);\n }\n\n // allows us to easily do e.g. ReactPerf.printWasted() while debugging\n //window.ReactPerf = require('react-addons-perf');\n //window.ReactPerf.start();\n}\n\nexport function start(name) {\n if (isDevelopment()) {\n marky.mark(name);\n }\n}\n\nexport function stop(name) {\n if (isDevelopment()) {\n marky.stop(name);\n }\n}\n","import { createRoot } from 'react-dom/client';\n\nimport { setupBrowserNotifications } from 'mastodon/actions/notifications';\nimport Mastodon from 'mastodon/containers/mastodon';\nimport { me } from 'mastodon/initial_state';\nimport * as perf from 'mastodon/performance';\nimport ready from 'mastodon/ready';\nimport { store } from 'mastodon/store';\n\nimport { isProduction } from './utils/environment';\n\n/**\n * @returns {Promise}\n */\nfunction main() {\n perf.start('main()');\n\n return ready(async () => {\n const mountNode = document.getElementById('mastodon');\n const props = JSON.parse(mountNode.getAttribute('data-props'));\n\n const root = createRoot(mountNode);\n root.render();\n store.dispatch(setupBrowserNotifications());\n\n if (isProduction() && me && 'serviceWorker' in navigator) {\n const { Workbox } = await import('workbox-window');\n const wb = new Workbox('/sw.js');\n /** @type {ServiceWorkerRegistration} */\n let registration;\n\n try {\n registration = await wb.register();\n } catch (err) {\n console.error(err);\n }\n\n if (registration && 'Notification' in window && Notification.permission === 'granted') {\n const registerPushNotifications = await import('mastodon/actions/push_notifications');\n\n store.dispatch(registerPushNotifications.register());\n }\n }\n\n perf.stop('main()');\n });\n}\n\nexport default main;\n","import './public-path';\nimport main from 'mastodon/main';\n\nimport { start } from '../mastodon/common';\nimport { loadLocale } from '../mastodon/locales';\nimport { loadPolyfills } from '../mastodon/polyfills';\n\nstart();\n\nloadPolyfills()\n .then(loadLocale)\n .then(main)\n .catch((e: unknown) => {\n console.error(e);\n });\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stacktrace', ['error-stack-parser', 'stack-generator', 'stacktrace-gps'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('error-stack-parser'), require('stack-generator'), require('stacktrace-gps'));\n } else {\n root.StackTrace = factory(root.ErrorStackParser, root.StackGenerator, root.StackTraceGPS);\n }\n}(this, function StackTrace(ErrorStackParser, StackGenerator, StackTraceGPS) {\n var _options = {\n filter: function(stackframe) {\n // Filter out stackframes for this library by default\n return (stackframe.functionName || '').indexOf('StackTrace$$') === -1 &&\n (stackframe.functionName || '').indexOf('ErrorStackParser$$') === -1 &&\n (stackframe.functionName || '').indexOf('StackTraceGPS$$') === -1 &&\n (stackframe.functionName || '').indexOf('StackGenerator$$') === -1;\n },\n sourceCache: {}\n };\n\n var _generateError = function StackTrace$$GenerateError() {\n try {\n // Error must be thrown to get stack in IE\n throw new Error();\n } catch (err) {\n return err;\n }\n };\n\n /**\n * Merge 2 given Objects. If a conflict occurs the second object wins.\n * Does not do deep merges.\n *\n * @param {Object} first base object\n * @param {Object} second overrides\n * @returns {Object} merged first and second\n * @private\n */\n function _merge(first, second) {\n var target = {};\n\n [first, second].forEach(function(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n target[prop] = obj[prop];\n }\n }\n return target;\n });\n\n return target;\n }\n\n function _isShapedLikeParsableError(err) {\n return err.stack || err['opera#sourceloc'];\n }\n\n function _filtered(stackframes, filter) {\n if (typeof filter === 'function') {\n return stackframes.filter(filter);\n }\n return stackframes;\n }\n\n return {\n /**\n * Get a backtrace from invocation point.\n *\n * @param {Object} opts\n * @returns {Array} of StackFrame\n */\n get: function StackTrace$$get(opts) {\n var err = _generateError();\n return _isShapedLikeParsableError(err) ? this.fromError(err, opts) : this.generateArtificially(opts);\n },\n\n /**\n * Get a backtrace from invocation point.\n * IMPORTANT: Does not handle source maps or guess function names!\n *\n * @param {Object} opts\n * @returns {Array} of StackFrame\n */\n getSync: function StackTrace$$getSync(opts) {\n opts = _merge(_options, opts);\n var err = _generateError();\n var stack = _isShapedLikeParsableError(err) ? ErrorStackParser.parse(err) : StackGenerator.backtrace(opts);\n return _filtered(stack, opts.filter);\n },\n\n /**\n * Given an error object, parse it.\n *\n * @param {Error} error object\n * @param {Object} opts\n * @returns {Promise} for Array[StackFrame}\n */\n fromError: function StackTrace$$fromError(error, opts) {\n opts = _merge(_options, opts);\n var gps = new StackTraceGPS(opts);\n return new Promise(function(resolve) {\n var stackframes = _filtered(ErrorStackParser.parse(error), opts.filter);\n resolve(Promise.all(stackframes.map(function(sf) {\n return new Promise(function(resolve) {\n function resolveOriginal() {\n resolve(sf);\n }\n\n gps.pinpoint(sf).then(resolve, resolveOriginal)['catch'](resolveOriginal);\n });\n })));\n }.bind(this));\n },\n\n /**\n * Use StackGenerator to generate a backtrace.\n *\n * @param {Object} opts\n * @returns {Promise} of Array[StackFrame]\n */\n generateArtificially: function StackTrace$$generateArtificially(opts) {\n opts = _merge(_options, opts);\n var stackFrames = StackGenerator.backtrace(opts);\n if (typeof opts.filter === 'function') {\n stackFrames = stackFrames.filter(opts.filter);\n }\n return Promise.resolve(stackFrames);\n },\n\n /**\n * Given a function, wrap it such that invocations trigger a callback that\n * is called with a stack trace.\n *\n * @param {Function} fn to be instrumented\n * @param {Function} callback function to call with a stack trace on invocation\n * @param {Function} errback optional function to call with error if unable to get stack trace.\n * @param {Object} thisArg optional context object (e.g. window)\n */\n instrument: function StackTrace$$instrument(fn, callback, errback, thisArg) {\n if (typeof fn !== 'function') {\n throw new Error('Cannot instrument non-function object');\n } else if (typeof fn.__stacktraceOriginalFn === 'function') {\n // Already instrumented, return given Function\n return fn;\n }\n\n var instrumented = function StackTrace$$instrumented() {\n try {\n this.get().then(callback, errback)['catch'](errback);\n return fn.apply(thisArg || this, arguments);\n } catch (e) {\n if (_isShapedLikeParsableError(e)) {\n this.fromError(e).then(callback, errback)['catch'](errback);\n }\n throw e;\n }\n }.bind(this);\n instrumented.__stacktraceOriginalFn = fn;\n\n return instrumented;\n },\n\n /**\n * Given a function that has been instrumented,\n * revert the function to it's original (non-instrumented) state.\n *\n * @param {Function} fn to de-instrument\n */\n deinstrument: function StackTrace$$deinstrument(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Cannot de-instrument non-function object');\n } else if (typeof fn.__stacktraceOriginalFn === 'function') {\n return fn.__stacktraceOriginalFn;\n } else {\n // Function not instrumented, return original\n return fn;\n }\n },\n\n /**\n * Given an error message and Array of StackFrames, serialize and POST to given URL.\n *\n * @param {Array} stackframes\n * @param {String} url\n * @param {String} errorMsg\n * @param {Object} requestOptions\n */\n report: function StackTrace$$report(stackframes, url, errorMsg, requestOptions) {\n return new Promise(function(resolve, reject) {\n var req = new XMLHttpRequest();\n req.onerror = reject;\n req.onreadystatechange = function onreadystatechange() {\n if (req.readyState === 4) {\n if (req.status >= 200 && req.status < 400) {\n resolve(req.responseText);\n } else {\n reject(new Error('POST to ' + url + ' failed with status: ' + req.status));\n }\n }\n };\n req.open('post', url);\n\n // Set request headers\n req.setRequestHeader('Content-Type', 'application/json');\n if (requestOptions && typeof requestOptions.headers === 'object') {\n var headers = requestOptions.headers;\n for (var header in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, header)) {\n req.setRequestHeader(header, headers[header]);\n }\n }\n }\n\n var reportPayload = {stack: stackframes};\n if (errorMsg !== undefined && errorMsg !== null) {\n reportPayload.message = errorMsg;\n }\n\n req.send(JSON.stringify(reportPayload));\n });\n }\n };\n}));\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n var objectProps = ['evalOrigin'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps, objectProps);\n\n function StackFrame(obj) {\n if (!obj) return;\n for (var i = 0; i < props.length; i++) {\n if (obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function() {\n return this.args;\n },\n setArgs: function(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function() {\n return this.evalOrigin;\n },\n setEvalOrigin: function(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function() {\n var fileName = this.getFileName() || '';\n var lineNumber = this.getLineNumber() || '';\n var columnNumber = this.getColumnNumber() || '';\n var functionName = this.getFunctionName() || '';\n if (this.getIsEval()) {\n if (fileName) {\n return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return '[eval]:' + lineNumber + ':' + columnNumber;\n }\n if (functionName) {\n return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return fileName + ':' + lineNumber + ':' + columnNumber;\n }\n };\n\n StackFrame.fromString = function StackFrame$$fromString(str) {\n var argsStartIndex = str.indexOf('(');\n var argsEndIndex = str.lastIndexOf(')');\n\n var functionName = str.substring(0, argsStartIndex);\n var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n var locationString = str.substring(argsEndIndex + 1);\n\n if (locationString.indexOf('@') === 0) {\n var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n var fileName = parts[1];\n var lineNumber = parts[2];\n var columnNumber = parts[3];\n }\n\n return new StackFrame({\n functionName: functionName,\n args: args || undefined,\n fileName: fileName,\n lineNumber: lineNumber || undefined,\n columnNumber: columnNumber || undefined\n });\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n return function(v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n return function(v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n return function(v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = util.toSetString(aStr);\n var isDuplicate = has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n this._set[sStr] = idx;\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n"],"sourceRoot":""}