{"version":3,"sources":["webpack://_N_E/../../../next-server/lib/amp.ts","webpack://_N_E/./public/static/code-ic@3x.png","webpack://_N_E/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js","webpack://_N_E/../../../next-server/lib/loadable.js","webpack://_N_E/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/inherits.js","webpack://_N_E/./node_modules/core-js/modules/es.symbol.description.js","webpack://_N_E/./node_modules/core-js/modules/es.parse-int.js","webpack://_N_E/./node_modules/core-js/modules/es.array.iterator.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://_N_E/./public/static/newLogo.png","webpack://_N_E/./public/static/dcd-code@3x.png","webpack://_N_E/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?7ae7","webpack://_N_E/./components/loading.tsx","webpack://_N_E/./node_modules/@byted/acrawler/dist/runtime.js","webpack://_N_E/./node_modules/next/app.js","webpack://_N_E/../../../next-server/lib/head.tsx","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.array.is-array.js","webpack://_N_E/../../pages/_app.tsx","webpack://_N_E/./node_modules/core-js/internals/same-value.js","webpack://_N_E/../../../next-server/lib/head-manager-context.ts","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.regexp.replace.js","webpack://_N_E/./node_modules/infinite-timeout/index.js","webpack://_N_E/./node_modules/core-js/modules/es.string.includes.js","webpack://_N_E/./node_modules/nprogress/nprogress.js","webpack://_N_E/./public/static/live-yellow.gif","webpack://_N_E/./lib/page-enter.ts","webpack://_N_E/./node_modules/core-js/modules/es.string.match.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js","webpack://_N_E/./lib/get-login-href.ts","webpack://_N_E/./node_modules/js-cache/index.js","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/@arsenal/arsenal/modules/safeGet.js","webpack://_N_E/../../../next-server/lib/side-effect.tsx","webpack://_N_E/./public/static/live-white.gif","webpack://_N_E/../../../next-server/lib/dynamic.tsx","webpack://_N_E/./lib/get-link-href.ts","webpack://_N_E/./lib/get-location.ts","webpack://_N_E/./components/search.tsx","webpack://_N_E/./components/header2.tsx","webpack://_N_E/./components/back-to-top.tsx","webpack://_N_E/./components/right-side-navigation.tsx","webpack://_N_E/./pages/_app.tsx","webpack://_N_E/./public/static/menu-bottom@3x.png","webpack://_N_E/./public/static/search-ic@3x.png","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js","webpack://_N_E/./lib/zt-util.ts","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/./node_modules/backbone-events-standalone/index.js","webpack://_N_E/./node_modules/core-js/modules/es.string.search.js","webpack://_N_E/./node_modules/cookie/index.js","webpack://_N_E/./public/static/menu-top@3x.png","webpack://_N_E/../../../next-server/lib/loadable-context.ts","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://_N_E/./node_modules/core-js/modules/es.number.is-nan.js","webpack://_N_E/../../../next-server/lib/amp-context.ts","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://_N_E/./node_modules/infinite-timeout/lib/timeout.js","webpack://_N_E/./public/static/location-ic@3x.png","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/defineProperty.js","webpack://_N_E/./lib/utils.ts","webpack://_N_E/./node_modules/core-js/modules/es.array.join.js","webpack://_N_E/./components/city.tsx","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://_N_E/./components/cache-store.tsx","webpack://_N_E/./public/static/location-ic-red.png","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://_N_E/./public/static/code-ic-red.png","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://_N_E/./node_modules/backbone-events-standalone/backbone-events-standalone.js","webpack://_N_E/./node_modules/core-js/internals/number-parse-int.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://_N_E/./node_modules/js-cache/lib/cache.js","webpack://_N_E/./components/user.tsx","webpack://_N_E/./node_modules/core-js/modules/es.array.index-of.js","webpack://_N_E/./node_modules/core-js/modules/es.array.includes.js"],"names":["isInAmpMode","React","AmpStateContext","ampFirst","hybrid","hasQuery","module","exports","defineWellKnownSymbol","TypeError","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","load","loader","promise","state","loading","loaded","error","err","loadMap","obj","promises","Object","key","result","res","Promise","render","props","resolve","createLoadableComponent","loadFn","options","opts","delay","timeout","webpack","modules","subscription","sub","LoadableSubscription","getCurrentValue","subscribe","retry","moduleIds","ids","init","LoadableComponent","ref","context","LoadableContext","useSubscription","Array","moduleName","isLoading","pastDelay","timedOut","constructor","this","_res","_loadFn","_opts","setTimeout","_err","callback","clearTimeout","Loadable","flushInitializers","initializers","Error","resolvePreload","window","global","DOMIterables","ArrayIteratorMethods","createNonEnumerableProperty","wellKnownSymbol","ITERATOR","TO_STRING_TAG","ArrayValues","values","COLLECTION_NAME","Collection","CollectionPrototype","prototype","METHOD_NAME","setPrototypeOf","subClass","superClass","create","value","writable","configurable","$","DESCRIPTORS","has","isObject","defineProperty","f","copyConstructorProperties","NativeSymbol","Symbol","undefined","description","EmptyStringDescriptionStore","SymbolWrapper","arguments","length","String","symbolPrototype","symbolToString","toString","native","regexp","get","symbol","valueOf","string","call","desc","slice","replace","forced","parseIntImplementation","parseInt","toIndexedObject","addToUnscopables","Iterators","InternalStateModule","defineIterator","setInternalState","set","getInternalState","getterFor","iterated","kind","type","target","index","done","Arguments","arrayLikeToArray","arr","isArray","__NEXT_P","push","Loading","t","Function","split","m","charCodeAt","defaultHead","inAmpMode","head","charSet","name","content","onlyReactElement","child","list","fragmentChild","fragmentList","METATYPES","reduceComponents","headElements","headElementChildren","headElement","keys","tags","metaTypes","metaCategories","h","isUnique","i","len","metatype","category","categories","unique","c","Head","ampState","useContext","headManager","HeadManagerContext","reduceComponentsToState","$export","S","p","loadGetInitialProps","pageProps","__N_SSG","url","createUrl","Component","router","back","pushTo","pushRoute","as","href","pushUrl","replaceTo","replaceRoute","replaceUrl","App","origGetInitialProps","appGetInitialProps","getInitialProps","is","x","y","anObject","toObject","toLength","toInteger","advanceStringIndex","regExpExec","max","Math","min","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","defined","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","O","fn","rx","functionalReplace","fullUnicode","unicode","lastIndex","results","it","accumulatedResult","nextSourcePosition","matched","position","captures","j","namedCaptures","groups","replacerArgs","concat","replacement","apply","getSubstitution","str","tailPos","symbols","match","ch","capture","charAt","n","notARegExp","requireObjectCoercible","proto","correctIsRegExpLogic","includes","searchString","indexOf","NProgress","Settings","settings","minimum","easing","positionUsing","speed","trickle","trickleRate","trickleSpeed","showSpinner","barSelector","spinnerSelector","parent","template","clamp","toBarPerc","barPositionCSS","ease","barCSS","transform","transition","configure","hasOwnProperty","status","started","isStarted","progress","bar","querySelector","offsetWidth","queue","next","getPositioningCSS","css","opacity","remove","start","work","force","inc","random","amount","initial","current","$promise","always","fromStart","isRendered","document","getElementById","addClass","documentElement","createElement","id","innerHTML","spinner","perc","removeElement","body","appendChild","removeClass","bodyStyle","style","vendorPrefix","pending","shift","cssPrefixes","cssProps","camelCase","letter","toUpperCase","getVendorProp","vendorName","capName","getStyleProp","applyCss","element","prop","properties","args","hasClass","classList","oldList","newList","className","substring","parentNode","removeChild","pageIdMap","article","series","profile","seriesImages","seriesVideo","seriesVideoManual","seriesImageskj","videoGroup","dealer","compare","getStatData","urlStr","regs","params","page_id","forEach","reg","matches","group_id","car_series_id","user_id","column_id","current_pic_rank","compare_series_id","fixRegExpWellKnownSymbolLogic","MATCH","nativeMatch","matcher","RegExp","A","matchStr","_getPrototypeOf","o","getPrototypeOf","__proto__","arrayWithoutHoles","iterableToArray","nonIterableSpread","getCurrentHref","location","getBase64Href","btoa","getUserHost","getLoginHref","getRegisterHref","getLogoutHref","hostname","encodeURIComponent","_interopRequireDefault","default","_toConsumableArray2","_isArray","nomarlize","reduce","prev","safeGet","_len","_key","every","_default","_hasHeadManager","emitChange","loadableFn","loadableOptions","dynamicOptions","loadModules","mod","noSSR","LoadableInitializer","path","mapKey","a","all","getGPSCityName","getIPCityName","gpsLocation","ipLocation","cityName","gpsCityName","console","log","getDatabaseCity","dataBaseResult","latitude","longitude","gpsLatitude","gpsLongitude","ipLatitude","ipLongitude","ipCityName","warn","getCityByPos","coordinate","fetch","then","json","city","province","cityResult","provinceResult","currentCity","data","dbCityName","catch","e","defaultResult","getCurrentPosition","navigator","geolocation","coords","maximumAge","race","getGPSLocation","handler","keyword","searchMode","sendTeaCommEvent","search_content","search_mode","sessionStorage","setItem","Router","ResultList","curIndex","map","item","onClick","stopPropagation","classnames","active","Search","setFocus","setValue","setCurIndex","show","setList","searchDivRef","buttonRef","searchDivDom","searchButtonDom","onMouseEnter","add","onMouseLeave","addEventListener","removeEventListener","getUrl","placeholder","onChange","onBlur","onFocus","onKeyDownCapture","keyCode","require","live_white","live_yellow","routes","getLinkHref","text","icon","Header","updateActive","showCity","setCityPopup","GlobalStoreContext","dispatch","hideSearch","setSearch","asPath","pathname","localStorage","getItem","payload","getLocation","rel","src","alt","event","nativeEvent","stopImmediatePropagation","location_city","obj_text","hasicon","BackToTop","updateShow","handleScroll","scrollingElement","scrollTop","on","off","scrollElement","top","dis","moved","initTop","scroll","abs","requestAnimationFrame","scrollSmoothly","menu_top_img","menu_bottom_img","RightSideNavigation","useRouter","activeNow","setActiveNow","withinView","domID","dom","getBoundingClientRect","clientHeight","start_dom","pageYOffset","handleItemClick","dataset","to","offsetTop","scrollTo","behavior","data-type","acrawler","LiveStreamWindow","dynamic","ssr","MyApp","unicodeToChar","fetchAcrawlerCaptchaCheck","nonce","encodeURI","origin","sig","sign","fetchAcrawlerCaptchaToken","extraArr","pageId","toLocaleLowerCase","filter","test","join","Slardar","sampleRate","bid","pid","ignoreAjax","hookFetch","ignoreStatic","extra","routerPath","getPageEnterId","metrics","counter","initSlardar","teaInit","appId","zt","getZT","userData","cookies","cookie","parse","JSON","user_data","teaConfig","teaStart","sendTeaEnterEvent","events","sendTeaStayEvent","beforePopState","history","pushState","open","withRouter","_Array$isArray","arr2","_sessionStorage","appendLabel","paramZT","getQuery","search","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","opt","pairs","pairSplitRegExp","dec","decode","pair","eq_idx","substr","trim","val","tryDecode","serialize","enc","encode","fieldContentRegExp","maxAge","isNaN","domain","expires","toUTCString","httpOnly","secure","sameSite","toLowerCase","decodeURIComponent","stat","number","unsupportedIterableToArray","timeouts","bind","clear","_timeouts","enumerable","validatePhone","phone","fromCharCode","rect","rectTop","userAgent","tagName","left","right","bottom","width","height","IndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","separator","City","globalStore","cities","useRef","useScrollSpy","node","querySelectorAll","currIndex","setCurrIndex","cityRef","fetchCities","useCallback","unshift","initials","city_name","useEffect","handleDocumentClick","contains","data-letter","toLocaleUpperCase","self","ReferenceError","CacheStoreContext","createContext","cache","CacheStoreProvider","children","useState","setCache","Cache","Provider","iter","iterator","from","_typeof","assertThisInitialized","nativeForEach","idCounter","Events","_","uniqueId","prefix","each","l","once","func","memo","ran","eventsApi","_events","ctx","_callback","retain","ev","names","k","trigger","allEvents","triggerEvents","stopListening","listeners","_listeners","deleteListener","_listenerId","eventSplitter","action","rest","a1","a2","a3","listenTo","listenToOnce","implementation","method","unbind","mixin","BackboneEvents","whitespaces","$parseInt","hex","FORCED","radix","_extends","assign","source","object","initialize","external","store","ttl","oldRecord","record","delInternal","process","nextTick","del","size","debug","instance","User","loginHref","setLoginHref","registryHref","setRegistryHref","logoutHref","setLogooutHref","fetchUserData","token","isLogin","screenName","screen_name","stringify","applyHttpsImage","avatar_url","$indexOf","arrayMethodUsesToLength","nativeIndexOf","NEGATIVE_ZERO","USES_TO_LENGTH","ACCESSORS","1","searchElement","$includes","el"],"mappings":"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","file":"static/chunks/pages/_app-8a09756a82fdfabd4b59.js","sourcesContent":["import React from 'react'\nimport { AmpStateContext } from './amp-context'\n\nexport function isInAmpMode({\n ampFirst = false,\n hybrid = false,\n hasQuery = false,\n} = {}): boolean {\n return ampFirst || (hybrid && hasQuery)\n}\n\nexport function useAmp(): boolean {\n // Don't assign the context value to a variable to save bytes\n return isInAmpMode(React.useContext(AmpStateContext))\n}\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAABxklEQVRoBe1ZO3LEIAyFTKpcwpPtnDa5Tk6X66Reus34EtsSvNvog4UwsLO2cWUheEhCFm9kY/rTI3DsCFjq/nD6+DHGj3Q8T7Zuupy/4ZpWuK9wk/t7MN6bTz6eMWJ9ZHIb3JfITpsaipwAtN9ejfUOjiy+exvSzr8t6pGiHq7sQDB+urgvtPeCMJzGX3XqVcTdfApt3gE5hUi6DO8jKi/Tn2NlmCxRiSW4mz+B7oAqRxpOyvoGauU89acEt6cQjeajZTmFAj243bAaq+5UQjMzMI56uLIDM7dRM1N0RSQcqYe7+W8gcgLWBQaaiGBKHTDY0wqXbdQHegQOFQFGh1t1D/S4uKOB12HdfFKRKtSme3Br1WjuFFYBgT1MZ8we7wH4CdXrHkBUYwhuVkcDI0VSCEyo2D0AqMF+3O3I6mggoP2nEHH3ESJlqgmWK6cQMbike0CgBJEyVZmX7b0KCYGqqtIyVc5ys1Koqs0AjP5LAKrka5YDJd2DpCUrJ2Q5sHKP5DKJ70i6GfgpHEA8ifEdmQvJDtCaLMUyUa+lpSU62YFmXYkSk/HaPd4D2pqMI4ElXq8DgwPdDqpfq8O7dqlH4IgR+AdDXbqZyQzh/QAAAABJRU5ErkJggg==\"","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","/**\n@copyright (c) 2017-present James Kyle \n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/\n// https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\n\nimport React from 'react'\nimport { useSubscription } from 'use-subscription'\nimport { LoadableContext } from './loadable-context'\n\nconst ALL_INITIALIZERS = []\nconst READY_INITIALIZERS = []\nlet initialized = false\n\nfunction load(loader) {\n let promise = loader()\n\n let state = {\n loading: true,\n loaded: null,\n error: null,\n }\n\n state.promise = promise\n .then((loaded) => {\n state.loading = false\n state.loaded = loaded\n return loaded\n })\n .catch((err) => {\n state.loading = false\n state.error = err\n throw err\n })\n\n return state\n}\n\nfunction loadMap(obj) {\n let state = {\n loading: false,\n loaded: {},\n error: null,\n }\n\n let promises = []\n\n try {\n Object.keys(obj).forEach((key) => {\n let result = load(obj[key])\n\n if (!result.loading) {\n state.loaded[key] = result.loaded\n state.error = result.error\n } else {\n state.loading = true\n }\n\n promises.push(result.promise)\n\n result.promise\n .then((res) => {\n state.loaded[key] = res\n })\n .catch((err) => {\n state.error = err\n })\n })\n } catch (err) {\n state.error = err\n }\n\n state.promise = Promise.all(promises)\n .then((res) => {\n state.loading = false\n return res\n })\n .catch((err) => {\n state.loading = false\n throw err\n })\n\n return state\n}\n\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj\n}\n\nfunction render(loaded, props) {\n return React.createElement(resolve(loaded), props)\n}\n\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign(\n {\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n render: render,\n webpack: null,\n modules: null,\n },\n options\n )\n\n let subscription = null\n\n function init() {\n if (!subscription) {\n const sub = new LoadableSubscription(loadFn, opts)\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub),\n }\n }\n return subscription.promise()\n }\n\n // Server only\n if (typeof window === 'undefined') {\n ALL_INITIALIZERS.push(init)\n }\n\n // Client only\n if (\n !initialized &&\n typeof window !== 'undefined' &&\n typeof opts.webpack === 'function'\n ) {\n const moduleIds = opts.webpack()\n READY_INITIALIZERS.push((ids) => {\n for (const moduleId of moduleIds) {\n if (ids.indexOf(moduleId) !== -1) {\n return init()\n }\n }\n })\n }\n\n const LoadableComponent = (props, ref) => {\n init()\n\n const context = React.useContext(LoadableContext)\n const state = useSubscription(subscription)\n\n React.useImperativeHandle(\n ref,\n () => ({\n retry: subscription.retry,\n }),\n []\n )\n\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName) => {\n context(moduleName)\n })\n }\n\n return React.useMemo(() => {\n if (state.loading || state.error) {\n return React.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry,\n })\n } else if (state.loaded) {\n return opts.render(state.loaded, props)\n } else {\n return null\n }\n }, [props, state])\n }\n\n LoadableComponent.preload = () => init()\n LoadableComponent.displayName = 'LoadableComponent'\n\n return React.forwardRef(LoadableComponent)\n}\n\nclass LoadableSubscription {\n constructor(loadFn, opts) {\n this._loadFn = loadFn\n this._opts = opts\n this._callbacks = new Set()\n this._delay = null\n this._timeout = null\n\n this.retry()\n }\n\n promise() {\n return this._res.promise\n }\n\n retry() {\n this._clearTimeouts()\n this._res = this._loadFn(this._opts.loader)\n\n this._state = {\n pastDelay: false,\n timedOut: false,\n }\n\n const { _res: res, _opts: opts } = this\n\n if (res.loading) {\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n this._state.pastDelay = true\n } else {\n this._delay = setTimeout(() => {\n this._update({\n pastDelay: true,\n })\n }, opts.delay)\n }\n }\n\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(() => {\n this._update({ timedOut: true })\n }, opts.timeout)\n }\n }\n\n this._res.promise\n .then(() => {\n this._update({})\n this._clearTimeouts()\n })\n .catch((_err) => {\n this._update({})\n this._clearTimeouts()\n })\n this._update({})\n }\n\n _update(partial) {\n this._state = {\n ...this._state,\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading,\n ...partial,\n }\n this._callbacks.forEach((callback) => callback())\n }\n\n _clearTimeouts() {\n clearTimeout(this._delay)\n clearTimeout(this._timeout)\n }\n\n getCurrentValue() {\n return this._state\n }\n\n subscribe(callback) {\n this._callbacks.add(callback)\n return () => {\n this._callbacks.delete(callback)\n }\n }\n}\n\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts)\n}\n\nfunction LoadableMap(opts) {\n if (typeof opts.render !== 'function') {\n throw new Error('LoadableMap requires a `render(loaded, props)` function')\n }\n\n return createLoadableComponent(loadMap, opts)\n}\n\nLoadable.Map = LoadableMap\n\nfunction flushInitializers(initializers, ids) {\n let promises = []\n\n while (initializers.length) {\n let init = initializers.pop()\n promises.push(init(ids))\n }\n\n return Promise.all(promises).then(() => {\n if (initializers.length) {\n return flushInitializers(initializers, ids)\n }\n })\n}\n\nLoadable.preloadAll = () => {\n return new Promise((resolveInitializers, reject) => {\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject)\n })\n}\n\nLoadable.preloadReady = (ids = []) => {\n return new Promise((resolvePreload) => {\n const res = () => {\n initialized = true\n return resolvePreload()\n }\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res)\n })\n}\n\nif (typeof window !== 'undefined') {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady\n}\n\nexport default Loadable\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/newLogo-8c7aebe79e84eec350e29ac0b830bfea.png\";","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/dcd-code@3x-7798dc19b4c261272684645a11a3b1dd.png\";","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return require(\"private-next-pages/_app.tsx\");\n }\n ]);\n ","import * as React from 'react'\n\nconst Loading = () => (\n
\n
\n
\n
\n
\n 加载中…\n
\n \n
\n)\n\nexport default Loading\n","Function(function(t){return'\u0013e(e,a,r){\u0014(b[e]||(b[e]=t(\"x,y\",\"\u0014x \"+e+\" y\"\u0015)(r,a)}\u0013a(e,a,r){\u0014(k[r]||(k[r]=t(\"x,y\",\"\u0014new x[y](\"+Array(r+1).join(\",x[\u0016y]\")\u0017(1)+\")\"\u0015)(e,a)}\u0013r(e,a,r){\u0018n,t,s={},b=s.d=r?r.d+1:0;for(s[\"$\"+b]=s,t=0;t>>0\u001c65:h=\u0011,y=\u0011,\u0011[y]=h\u001c66:u(e(t[b\u0016],\u0011,\u0011\u0015\u001c67:y=\u0011,d=\u0011,u((g=\u0011).x===c?r(g.y,y,g.z):g.apply(d,y\u0015\u001c68:u(e((g=t[b\u0016])<\"<\"?(b--,f\u001a):g+g,\u0011,\u0011\u0015\u001c70:u(!1)\u001c71:\u0010n\u001c72:\u0010+f\u001a\u001c73:u(parseInt(f\u001a,36\u0015\u001c75:if(\u0011){b\u0016\u001dcase 74:g=\u0012<<16>>16\u001bg\u001c76:u(k[\u0012])\u001c77:y=\u0011,u(\u0011[y])\u001c78:g=\u0012,u(a(v,x-=g+1,g\u0015\u001c79:g=\u0012,u(k[\"$\"+g])\u001c81:h=\u0011,\u0011[f\u001a]=h\u001c82:u(\u0011[f\u001a])\u001c83:h=\u0011,k[\u0012]=h\u001c84:\u0010!0\u001c85:\u0010void 0\u001c86:u(v[x-1])\u001c88:h=\u0011,y=\u0011,\u0010h,\u0010y\u001c89:u(\u0013\u001a{\u0013e\u001a{\u0014r(e.y,arguments,k)}\u0014e.y=f\u001a,e.x=c,e.z=k,e}\u001a)\u001c90:\u0010null\u001c91:\u0010h\u001c93:h=\u0011\u001c0:\u0014\u0011;default:u((g<<16>>16)-16)}}\u0018n=this,t=n.Function,s=Object.keys||\u0013(e){\u0018a={},r=0;for(\u0018c in e)a[r\u0016]=c;\u0014a\u0019=r,a},b={},k={};\u0014r'.replace(/[\u0010-\u001f]/g,function(m){return t[m.charCodeAt(0)&15]})}(\"v[x++]=\u0010v[--x]\u0010t.charCodeAt(b++)-32\u0010function \u0010return \u0010))\u0010++\u0010.substr\u0010var \u0010.length\u0010()\u0010,b+=\u0010;break;case \u0010;break}\".split(\"\u0010\")))()('g,$@drbms!l!n Иb/s\"g,&Usz`dlms#g,.}jcb{|zFbxjx}~ms$g,(lfi~ah`{ms%g,)gk}ejo{cms&g,&qnfme|ms\\',!^s(,)|doikgauus),,jabSysaWzrrs*,(|fY~d`hs+,&jbfn~cs,,\\'nfmosCks-,*icmM`ttSgs.,&eoi{Ks/,)ziy|f~vs0l#l*ms10s2yWl ._b&s o ]1l l Jb&l!l Bd>&+l!l &+l!l 6d>&+l!l &+ s4y=o o ]7q\"21o l q\"18o ]4l 2d>& s6{s5yMo o ]8q\"21o ]2Ld>>b|s!o l q\"18o ]4l!& s7yIo o ]6q\"21o ]4o ]2Jd>>b|&o ]3l &+ s8yǽ,`\u0004*&3#-r\u001d\u0003:\u001b\tt}a\u00026\\'%`b\\r\u001ff\\nkop\u000b\b\u001f3%\bU-(\u0007\t\u00161=%;\u0019\u0017\u0003)\u001a;\u001c\u0001\\r\\rO?.>\u0019\u001a/\t=\u001as!$ s\"0s$l o ],ml$3+d\">=kÝl vo ].mxl$v1+s$[!cįb&@d[!c+s\"l\"l!vo ]/mxl#i$5j40b&[!c+s\"l\"l!vo ]/mxl#࿰b&6d>[!c+s\"l\"l!vo ]/mxl#._b&[!c+s\"jrl o ],ml$b-0b>kÑl vo ].mxl$v1+s$[!cįb&@dk6l vo ].mxl$[!cįb&8d[!c+s\"l\"l!vo ]/mxl#i$5j40b&[!c+s\"l\"l o ],ml$b>k6l!vo ]/mxl#࿰b&6d>[!cj#$!=+s\"l\"$!=+s\"l\" s9yĶo ]%v,-n|jqewVxp{rvmmx,&effkx[!cs\"l\",%roc|a.Pal\",&nbanb@al\"v,*mnxNaadtjg[!mx$\"2d[!cs#l#,$bjhs,*;?|u.|uc{ual#v,(n`fgXhv{mx$$龘ฑภ경2<[#c}l#,*ycmiaxR}ga2al#,+xdby@vwav`M1al#,)zbd{Nacc,$hlkbal#v,#bvfmx88802[%c}l#v,&uszfanmx[ c}l\"v,)}eOmyoZB]mx[ cs!0s$l$Pb0s\"l\"l!o ],mbyĩ[ s o ]&,\\'wd|mbb~ms!l!v!k#}[ s\"0s#l#l\"o ],mbJNHAL@@,4Y|uewju}h=M~NR\u0002pAWOA,&Khfhid,0]~||`lfr8Zuioth~,)DY+Kbzgyr,*GX,B{{|~}x,*GX,]I`dy{p,7ZK9H~zxlzNBG\u0003wDHT\bzOYEK,-@]/Cp|`4Fseq,(EZ*Xigi,&K^Z@KO,*GR^DOK0A@\\\\,(Xhfjxd``,1Asuayw9VrrrjfPD,+Xijaj0A`zza,,_hi`u1Apf|fc,([lmdi-[F,.]jw~w3A\\\\6[q~ro,1Bwt{p6BQ9I~qt|pLE,/\\\\uv}v4@_7K`wysq,&Rf`fgj,%Qojmz,/[y|w`4[s`8Kuv}s,2Fzype7V|m;Nrs~N\u0001rp,,Xkmerzv`5[D,\\'Qm{njbl,)^cekigawb,+\\\\ecikyu`4\\',+\\\\ecikyu`4&,8Y{{u=SK\\0bMM@@HTMM\\ngEJF[,4Uvws}tc;YsymAWGG\u0004ics,0QU]QQ5UVKUUUYb\u0001fFIL,4Vpdyyk~;QI>\\\\OOFFJVCC,2Pvf{~vj}\\\\zouwpN\u0001`w,.Ljbzrfq[x|9XO,*Hbk-Mnc}}},\\'Eagdn~I,.Lcqryrpqse8PNX,-Obnyc_w]AU7LM,)Keoccg/\\'#,2P|pzx~8.(;SqzlTXNF,3Q{qyyq9-)]D\u0001`w,&Ehzkog,*Id~ign0_wd,)JeyhdoZ@R,+Hc`jbbf|zp,\\'Dg{eeiy,&Erkbed,(K|xgv-C[,(Lhe\\\\h`g,\\'Ci|zcec,%Agqam,+ON-BLT1Fvye,)MOGENG@EB,\\'Cmggj~f,(LOAje ]M,%Aocg},+Oeabj~xsFDV,#GMK,)Me`Oeob`p,%Ais}d,(Lf~~aNfj,&Cez`gj,4Qqavj}szr=M|RHRW\u0004lrd,(Meo{dl`{,5Pxptpis<,/.\\0wKUEFC\u0007j},,Ici}qgwag5[C,2W}sgwa}ki\\\\sivvC\u0001`w,-H|nc1P|xq6^LZ,-H|nc1Vvy|6^LZ,.K}qb2_}r~c8PNX,/Jbpa3Ypr~mt:RH^,+Nyn|`cxsFDV,(M|zci`gn,-H{xtzu5CTYJ,)L_YC^ZF\\\\T,.Kweq !%6U|9XO,(Nhdl_b`h,-Kkcyi2G}az~v~,(N`rnh~w|,&@HF]CE,2T|{az~qn;QI>SIFJW,%Ciu|l,*Lymce]etz,*Lymc}fcrs},1W`vqsdz/++;^qu?bu,*Lyih}fqDBP,0Vcwvgao{}9Ixntnk,0Vcw}w}6D{kskh=SK,1W`}RycpPNX<_u?bu,(N{bxjk},(N[__EJK],&@r||xj,,Jxzzbp2Q5TC,,Jxzzbp2_`5TC,,Jxzzbp2^p5TC,.Hzdd`r4OT{s9XO,.Hzdd`rVywts9XO,(Ohhyebbn,+Lmabfqcv3VA,\\'@i|~jad,)Nonvl._b~,-Jk`}tfa&&\\'7ZM,0Wt}~qad%+(:Sj=\\\\K,0Wt}~qad%+(:Wh=\\\\K,1Vw|Gywu8.*(YvLM\u0002pEKU\u0007}E^YM\\rl@\\\\U\u0012p[[RRVJ__,%Bot`h,=ZrpUBGPP@T\u0007e}\\nnTY\\\\N\u0010r]]PPXD]],&AH\\\\AKF,+LCYFN]1P\\\\XQ,/Hdvj4Zzs8Jnbpx,+Lcxjv0Bf|aa,2U|aqo_yw~osrrzD\u0001`w,,Kb{ki^^@`5TC,2Uf~tdvlp:H}sy~M\u0001om,%Bskad,(O|fbaNfj,\\'@}gmxye,*M~bj}zxRzv,+Lycz{y{3Y[,0Xpwg`pxd{qm~uq{m,3[ugzxo9Itptz?iUCOMF,*Bj~gawe}},\\'Omh~ci,(@lce-]L,(@lce-ZL,$L@JQ,&Nbzhfo,/Gyvz3@zarj9N~di,9Qsi}zwqO\u0001iBOP\u0006`G]BBO\\r~]_,4\\\\|dvpttQEV\u0002wEL\u0006k]L,1\\\\{pfzex~m:Kt|ylp@,0]xqa{fyql9Nzu=Rz,0]xqa{fyql9Or{ukm,/Byr`|gzpc8@{Syt,2_zwgydwn;Et>]AHVJ,\\'JagmGeX,-@gaw]{FK]]D[J,2_zzrZ~MFRPO^M2eYVa,,Ad`h\\\\xG>QmbU,&Knf`ee,*Gbbdaa0A`|,&Knz`kf,,Ad|fq|2U}mss,\\'Jaz~yma,&Khllxe,-@akuc|3Zz87*),6[xvx:Wun?sNNJ@\u0005osk\t~,/Bu|x|wy8[{rht,$IJHH,)Ded`Oa}q,)Dxx,Hoyub,+F_-Bf~tVaub,)DY+Ad`lx~,*GX,]Cf~rz|,6[D8K}yo{qCD\u0002pT@ENIE^R,,A^.ZY1U|`}t,(E]*Nty|n,%HSTMF,\\'J^)Hd`d,&Hfllof,(Fhx`e~gb,%KCQAZ,+Eiz}/W~f{}v,-Ckxc1U|`}tUM,+Eiz}Hez3VA,0^xstugw7]w}i}k{{,-Cgnwp`r4Fy{q},*Ddxhy`bezj,\\'I[`gXyc,%Kfdh,.ALB1S3Qmbrv},+D`i.Lufffl,3\\\\xq6Rv~vrou>KEYV\u0003iq,$Kk,\\'Hfpr+NY,&IW\\\\@GJ,/@bxkr4Fwyxw;QS,%JUFCH,/@jYs}p|ueyn;^I,0@p~rwp6D{kskh=SK,\\'Wiysyy~,)Ykyoecj~e,)Ykyxt.CUE,\\'Wmnkxy~,(Xlx{iy{n,3Cqgfrll{;HtjsIOE\u0003iq,*ZnxdznR~~w,(X`i`{dmd,4Dywylx}~rxj?cIGQKNCB,(Xekrndbc,(XDcekAgZ,-]Cf~v^zA8Sol[,,\\\\ba}0C{p|tds,&Vh{}oy,/_bfvfWyswws;^I,.^]Y_QV@ZAY8U_O,(X{cxxd`n,+[XOo}~d3VA,*Zrxeohcs`,%Wgf~`,+Ymjk/Yes}v,%Wgqal,/]ysp|z$%&8[~;^I,(Zfi`{hbc,2@|w~artu:XsszzNRGG,3A{v}`}uv;YejmA\u0001`LHA,#Qka,%Wijig,.]n{zs4Xw}yuvz,,_l`{q1Tv4YSC,*Yjzbwj0]WG,\\'Tklz~h,&Udz`z,.]lbxbg4XB7Zvv,)ZIYE]ZF^P,&Ubz`lj,)Zoyeko/RE,,_h|fvp2G|5TC,1BzvxysnNvvzri{?bu,([aoy{bak,-^f`~p`3Vtxptx,/\\\\x~epugr7_vnsu~,&Uoz|~b,)Zclboanbu,*YB@F]LBTW],&UneAob,1B{~dyqq|~;]o}IB,7Dqtjwu{wzD\u0001cQEGOD\boCSII,&UneZe,+Xe`]z~Jh\\0bGM\u0004hr\u0007kFDOIC]JT\u0011wK@GW\u0017zVV_,.Zv`~Gcf|ql9XO,\\'Rf`id~c,\\'Rf`|n~~,4A{a}ki;_X>*\u0015\u0001oF@LSJ,1D|zbpdd8ZuuxxplEE,&Ss{hkc,(^hmjnb`k,$Rdhn,&Pnbhsj,.Xf~t`3\\\\txs8PNX,(^`y~ma[F,\\'Qakghd,/Y|pvzy|d7Kzhrli,&Puagnj,+\\\\i~zbyagqg,\\'P@@^EIT,*]bhh.Cqe{},-WovT~}eb7ZM,-WovYg~zfb7ZM,0Jpbu\\\\`{ykm:_q=\\\\K,\\']iylbbb,/Uec{p|5T{s\\\\b;^I,,Vx|fsy2Vl5TC,(R^KocokI[Ȇs#[ s$l#%s%l%u&kŊs&l %s\\'l\\'u&kĻs(o ]%v,-n|jqewVxp{rvmmx,$wugi[!cs)l),)`deiF[]],-`cb}|~yx{{tpal),%vr~dlm,(nfd_dtj,$37val),%vr~dlm,*ldbyHn}x~jl&$!,+l(+ao ]%,$fjb~mv,+j|}katRzzxqmxl)[!c}l)r+offsetWidthl!l(md#!==v!k;}l)r,offsetHeightl\"l(md#!==s*o ]%,$fjb~mv,+yi`ayuRzzxqmxl)[!c}l*k>l$vr$pushxl#vo ]-mxl&[!c[!c}j\"jjﻰl$vr$joinx$!,[!c s@ysul d\\',typeofo ])d#===v!k)}l zd#===k#$ ul d\\',typeof,\\'egffnmcd#===k-l k%$!1j#$!0 l sAyC(:o ]\\',.}jcb{|zFbxjx}~m!! ) %{s t sByA(8o ]\\',,`bmn|Bf|ftqrm!! ) %{s t sCy>(5o ]\\',)`doiukkTSm!! ) %{s t sDy6o ]!n v,\\'`m}^bahmx[ c sEyJo ]Ao ]Dz[ c&o ]Ao ]Cz[ c&+o ]Ao ]Bz[ c&+ sFy`o ]\\',&udzloems l ,%roc|amo ](+l ,&nbanbm+o ](+l ,*id`b|Kuaf{m+ sGyUo ]\\',&udzloems l ,*k}mdbXyuf{mo ](+l ,+jzlgcXt{t|am+ sHyÇgr\\'Promisey¸,*mnxOo{dt`jo ]&d\"ink›o ]&v,*mnxOo{dt`jmx[ cvr$thenxyuo\"] l ,(kakykd`hmo ](+l ,,oeo}wx|t@|{rm+o ](+l ,/kybq{ugq~v~Nrqxm+o ](+l ,%icqmem+&} [!c}j&l $ &} n! sIyÛ,.cnhE}fw}Fxqwnhs 0s!uo ]&l md\\',typeofo ])d#!==k+o ]&l ms!jEuo ]&l md\\',typeofo ])d#!==k)o ]&l ms!(Ho ]%vr+createEventx,*^dynfJft|g[!c}ts\") &{s#fs\",,ccz`erz``tdco ]\\'d\"ins#l!$!_+l\"+$!_+l#+ sJyåul!d\\',typeof,&usz`dld#!==k! l $!=+s\"l!vr%splitxgr&RegExp$$[;&]$ n\"[!cs#0s&l&l#o ],mb13\f\u0004\u0001\u0017\\r\\n\bXs&l&,\"s>gr2encodeURIComponentl\"&+$!&++s&o ]Tzl&yngr$lcspvk+}l ,%rceammkVo ]\\',,`bmn|Bf|ftqrmv,\\'tm}Ci`mx,\\'XW~oieil ,%rceamm[\"c} [\"c} sVl yٶo ]&vk%}o ]\\'vk%}o ]%!k! gr&Objectn v,)z~j~yZf}tq!nv3q!fvo ]Eq!tgr&Objectn v,)hhb`dzfubq!nv3q!fvo ]Fq!tgr&Objectn v,&effkxq!nv3q!fvo ];q!tgr&Objectn v,*~bah}{q|b\"q!nv3q!fvo ]Eq!tgr&Objectn v,(xekjb|bq!nv0q!fgr&Objectn v,3{ugr`ykXss}jRSGMG\\\\q!nv0q!fgr&Objectn v,,hhxfst_vyzdnq!nv0q!fgr&Objectn v,(dhdlylijq!nv0q!fgr&Objectn v,)ekekxohubq!nv0q!fgr&Objectn v,*xnbbzdx}}q!nv3q!fvo ]Gq!tgr&Objectn v,/nfp{Fpextlnrssq!nv3q!fvo ]Hq!tgr&Objectn v,)ziyih`[aq!nv1q!fgr&Objectn v,*yh~hka\\\\ttgq!nv1q!fgr&Objectn v,0ttdzwpF~`|vI}iwpq!nv1q!fgr&Objectn v,*zyci{ldBgqq!nv0q!fgr&Objectn v,\\'ei}~n~tq!nv3q!fvo ]Iq!tv1q!pgr&Objectn v,)}e~oeGav~q!nv3q!fvo ]Jq!tgr&Objectn v,(|`gnvb`jq!nv3q!fvo ]=q!tgr&Objectn v,*~bah}{q|b!q!nv3q!fvo ]Eq!tgr&Objectn v,\\'`x|Cejbq!nv3q!fvo ]>q!tgr&Objectn v,+aKaadb^zgaq!nv3q!fvo ]@q!tgr&Objectn v,+{`xif~b^zgaq!nv3q!fvo ]?q!tgr&Objectn v,*~bah}{q|b q!nv3q!fvo ]Eq!tgr&Objectn v,)|yn~Lij~eq!nv0q!fgr&Objectn v,*o}iM`z{vq!nv3q!fvo ]Lq!tv,(|}U|iogkq!mgr&Objectn v,+xucznhT`a{gq!nv3q!fvo ]Nq!tgr&Objectn v,,blzfft^vzrbq!nv3q!fvo ]Oq!tgr&Objectn v,%wrdAYq!nv3q!fvo ]Pq!tv1q!pgr&Objectn v,(dfijxdaaq!nv1q!fgr&Objectn v,)oz]i}fq!nv4q!fv,%4(1&9q!rgr&Objectn v,(kecnbyGkq!nv3q!fvo ]Sq!tgr&Objectn v,*~bah}{q|b\\'q!nv3q!fvo ]Eq!tgr&Objectn v,+ntykatW{vxqq!nv4q!f[As [ s!l *%s\"l\"u&kĖs#l l#mr!f0d#===k>>q!1o!o ]>>&+o ]5l.l!b^&+o ]5l#zl(o ]&,)|yn~Lij~em[\"cl$b%@d]\n if (!inAmpMode) {\n head.push()\n }\n return head\n}\n\nfunction onlyReactElement(\n list: Array>,\n child: React.ReactChild\n): Array> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n React.Children.toArray(child.props.children).reduce(\n (\n fragmentList: Array>,\n fragmentChild: React.ReactChild\n ): Array> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like \n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if (categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\nfunction reduceComponents(\n headElements: Array<React.ReactElement<any>>,\n props: WithInAmpMode\n) {\n return headElements\n .reduce(\n (list: React.ReactChild[], headElement: React.ReactElement<any>) => {\n const headElementChildren = React.Children.toArray(\n headElement.props.children\n )\n return list.concat(headElementChildren)\n },\n []\n )\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead(props.inAmpMode))\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.__NEXT_OPTIMIZE_FONTS && !props.inAmpMode) {\n if (\n c.type === 'link' &&\n c.props['href'] &&\n // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.\n ['https://fonts.googleapis.com/css'].some((url) =>\n c.props['href'].startsWith(url)\n )\n ) {\n const newProps = { ...(c.props || {}) }\n newProps['data-href'] = newProps['href']\n newProps['href'] = undefined\n return React.cloneElement(c, newProps)\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const ampState = useContext(AmpStateContext)\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n inAmpMode={isInAmpMode(ampState)}\n >\n {children}\n </Effect>\n )\n}\n\n// TODO: Remove in the next major release\nHead.rewind = () => {}\n\nexport default Head\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","import React, { ErrorInfo } from 'react'\nimport {\n execOnce,\n loadGetInitialProps,\n AppContextType,\n AppInitialProps,\n AppPropsType,\n NextWebVitalsMetric,\n} from '../next-server/lib/utils'\nimport { Router } from '../client/router'\n\nexport { AppInitialProps }\n\nexport { NextWebVitalsMetric }\n\nexport type AppContext = AppContextType<Router>\n\nexport type AppProps<P = {}> = AppPropsType<Router, P>\n\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */\nasync function appGetInitialProps({\n Component,\n ctx,\n}: AppContext): Promise<AppInitialProps> {\n const pageProps = await loadGetInitialProps(Component, ctx)\n return { pageProps }\n}\n\nexport default class App<P = {}, CP = {}, S = {}> extends React.Component<\n P & AppProps<CP>,\n S\n> {\n static origGetInitialProps = appGetInitialProps\n static getInitialProps = appGetInitialProps\n\n // Kept here for backwards compatibility.\n // When someone ended App they could call `super.componentDidCatch`.\n // @deprecated This method is no longer needed. Errors are caught at the top level\n componentDidCatch(error: Error, _errorInfo: ErrorInfo): void {\n throw error\n }\n\n render() {\n const { router, Component, pageProps, __N_SSG, __N_SSP } = this\n .props as AppProps<CP>\n\n return (\n <Component\n {...pageProps}\n {\n // we don't add the legacy URL prop if it's using non-legacy\n // methods like getStaticProps and getServerSideProps\n ...(!(__N_SSG || __N_SSP) ? { url: createUrl(router) } : {})\n }\n />\n )\n }\n}\n\nlet warnContainer: () => void\nlet warnUrl: () => void\n\nif (process.env.NODE_ENV !== 'production') {\n warnContainer = execOnce(() => {\n console.warn(\n `Warning: the \\`Container\\` in \\`_app\\` has been deprecated and should be removed. https://err.sh/vercel/next.js/app-container-deprecated`\n )\n })\n\n warnUrl = execOnce(() => {\n console.error(\n `Warning: the 'url' property is deprecated. https://err.sh/vercel/next.js/url-deprecated`\n )\n })\n}\n\n// @deprecated noop for now until removal\nexport function Container(p: any) {\n if (process.env.NODE_ENV !== 'production') warnContainer()\n return p.children\n}\n\nexport function createUrl(router: Router) {\n // This is to make sure we don't references the router object at call time\n const { pathname, asPath, query } = router\n return {\n get query() {\n if (process.env.NODE_ENV !== 'production') warnUrl()\n return query\n },\n get pathname() {\n if (process.env.NODE_ENV !== 'production') warnUrl()\n return pathname\n },\n get asPath() {\n if (process.env.NODE_ENV !== 'production') warnUrl()\n return asPath\n },\n back: () => {\n if (process.env.NODE_ENV !== 'production') warnUrl()\n router.back()\n },\n push: (url: string, as?: string) => {\n if (process.env.NODE_ENV !== 'production') warnUrl()\n return router.push(url, as)\n },\n pushTo: (href: string, as?: string) => {\n if (process.env.NODE_ENV !== 'production') warnUrl()\n const pushRoute = as ? href : ''\n const pushUrl = as || href\n\n return router.push(pushRoute, pushUrl)\n },\n replace: (url: string, as?: string) => {\n if (process.env.NODE_ENV !== 'production') warnUrl()\n return router.replace(url, as)\n },\n replaceTo: (href: string, as?: string) => {\n if (process.env.NODE_ENV !== 'production') warnUrl()\n const replaceRoute = as ? href : ''\n const replaceUrl = as || href\n\n return router.replace(replaceRoute, replaceUrl)\n },\n }\n}\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","import React from 'react'\n\nexport const HeadManagerContext: React.Context<{\n updateHead?: (state: any) => void\n mountedInstances?: any\n}> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n HeadManagerContext.displayName = 'HeadManagerContext'\n}\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","module.exports = require('./lib/timeout');","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/live-yellow-4759e2696f1982351d18d263b73820b5.gif\";","const pageIdMap: {\n [key: string]: string\n} = {\n // 主页\n '/': 'page_home',\n // 进入车型库页\n '/auto': 'page_garage',\n '/picture': 'page_car_picture',\n // 进入视频页\n '/video': 'page_video',\n // 热门车系排行榜\n '/popular': 'page_hot_series_rank_list',\n // 进入资讯主页\n '/feed': 'page_feed',\n // 进入车友圈主页\n '/car_fans_community': 'page_motor_forum',\n // 进入直播主页\n '/live': 'page_dcar_live_main',\n // 进入文章详情页\n article: 'page_article_detail',\n // 进入车系主页\n series: 'page_series_home',\n // 个人详情页\n profile: 'page_user_profile',\n // 进入车系实拍图片页\n seriesImages: 'page_series_real_picture',\n // 进入车系精选视频页\n seriesVideo: 'page_series_video_list',\n // 进入车系视频说明书页\n seriesVideoManual: 'page_series_instruction_video_detail',\n // 进入车系图片详情页\n seriesImageskj: 'page_series_picture_detail',\n videoGroup: 'page_column_detail',\n // 询价页\n dealer: 'page_series_inquiry',\n // 进入参数配置页\n '/auto/params': 'page_series_configuration',\n // 车系对比页\n compare: 'page_series_compare_detail',\n // 进入搜索结果页\n '/search': 'page_search_result',\n '/video/groups': 'page_column_list',\n '/newcar': 'page_new_car_rank_list',\n '/sales': 'page_sales_rank_list',\n // 车友圈主页\n '/community': 'page_ugc_forum_home',\n // UGC文章详情页 - 图文/问答/小视频\n '/ugc/article': 'page_ugc_article_detail',\n // UGC文章详情页 - 口碑\n '/ugc/koubei': 'page_ugc_reputation_detail',\n // 车展专题\n '/activity/car_show': 'page_dcar_motor_show',\n}\nexport interface IStatData {\n page_id: string\n group_id?: string\n car_series_id?: string\n compare_series_id?: string\n user_id?: string\n column_id?: string\n current_pic_rank?: string\n}\ntype IGetStatData = (urlStr: string) => IStatData\nconst getStatData: IGetStatData = (urlStr: string) => {\n const url = urlStr.split('?').length > 0 ? urlStr.split('?')[0] : ''\n const regs: {\n [key: string]: RegExp\n } = {\n article: /article\\/(\\d+)$/,\n '/community': /community\\/(\\d+)$/,\n '/ugc/article': /ugc\\/article\\/(\\d+)$/,\n '/ugc/koubei': /ugc\\/koubei\\/(\\d+)$/,\n profile: /user\\/profile\\/(\\d+)/,\n seriesImageskj: /auto\\/series\\/(\\d+)\\/images\\/(?:\\w+)/,\n seriesImages: /auto\\/series\\/(\\d+)\\/images$/,\n seriesVideo: /auto\\/series\\/(\\d+)\\/video$/,\n seriesVideoManual: /auto\\/series\\/(\\d+)\\/videoManual\\/(\\d+)$/,\n series: /auto\\/series\\/(\\d+)$/,\n videoGroup: /video\\/groups\\/(\\d+)/,\n dealer: /dealer\\/(\\d+)/,\n compare: /auto\\/compare\\/(\\d+),(\\d+)/,\n '/auto': /auto\\/library/,\n }\n let params: IStatData = {\n page_id: '',\n }\n if (pageIdMap[url]) {\n params = {\n page_id: pageIdMap[url],\n }\n } else {\n Object.keys(regs).forEach(reg => {\n const matches = url.match(regs[reg])\n if (matches) {\n params = {\n page_id: pageIdMap[reg],\n group_id: matches[1],\n car_series_id: matches[1],\n user_id: matches[1],\n column_id: matches[1],\n }\n if (matches?.length >= 2) {\n if (reg === 'seriesImageskj') {\n params.current_pic_rank = matches[2] || ''\n } else if (reg === 'compare') {\n params.compare_series_id = matches[2] || ''\n }\n }\n return\n }\n })\n }\n\n return params\n}\nexport default getStatData\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","const getCurrentHref = () => window.location.href\nconst getHostName = () => window.location.hostname\nconst getBase64Href = () => window.btoa(getCurrentHref())\nconst getUserHost = () =>\n getCurrentHref().indexOf('pc.motor-boe.bytedance.net') > -1\n ? 'http://mp.motor-boe.bytedance.net'\n : 'https://mp.dcdapp.com'\n\nexport const getLoginHref = () =>\n `${getUserHost()}/login/?from=pc&redirect_url=${getBase64Href()}`\nexport const getRegisterHref = () =>\n `${getUserHost()}/register/?from=pc&redirect_url=${getBase64Href()}`\nexport const getLogoutHref = () =>\n `https://sso.toutiao.com/logout/?page=sso&aid=36&service=http://${getHostName()}/passport/web/logout/?next=${encodeURIComponent(\n getCurrentHref()\n )}`\n","module.exports = require('./lib/cache');","module.exports = require('./dist/next-server/lib/dynamic')\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/toConsumableArray\"));\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nvar _isArray = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/array/is-array\"));\n\nvar nomarlize = function nomarlize(keys) {\n var keyList;\n\n if ((0, _isArray.default)(keys[0])) {\n keyList = keys[0];\n } else {\n keyList = keys;\n }\n\n return keyList.reduce(function (prev, key) {\n return (0, _toConsumableArray2.default)(prev).concat((0, _toConsumableArray2.default)((key + '').replace(/\\[['\"]/g, '[').replace(/\\]|['\"](?=\\])/g, '').split(/[.[]/)));\n }, []);\n};\n\nfunction safeGet(target) {\n for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n\n var value = target;\n\n if (!value || keys.length === 0) {\n return value;\n }\n\n keys = nomarlize(keys);\n keys.every(function (key) {\n value = value[key];\n return value !== void 0 && value !== null;\n });\n return value;\n}\n\nsafeGet.default = safeGet;\nvar _default = safeGet;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","import React, { Component } from 'react'\n\nconst isServer = typeof window === 'undefined'\n\ntype State = JSX.Element[] | undefined\n\ntype SideEffectProps = {\n reduceComponentsToState: <T>(\n components: Array<React.ReactElement<any>>,\n props: T\n ) => State\n handleStateChange?: (state: State) => void\n headManager: any\n inAmpMode?: boolean\n}\n\nexport default class extends Component<SideEffectProps> {\n private _hasHeadManager: boolean\n\n emitChange = (): void => {\n if (this._hasHeadManager) {\n this.props.headManager.updateHead(\n this.props.reduceComponentsToState(\n [...this.props.headManager.mountedInstances],\n this.props\n )\n )\n }\n }\n\n constructor(props: any) {\n super(props)\n this._hasHeadManager =\n this.props.headManager && this.props.headManager.mountedInstances\n\n if (isServer && this._hasHeadManager) {\n this.props.headManager.mountedInstances.add(this)\n this.emitChange()\n }\n }\n componentDidMount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances.add(this)\n }\n this.emitChange()\n }\n componentDidUpdate() {\n this.emitChange()\n }\n componentWillUnmount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances.delete(this)\n }\n this.emitChange()\n }\n\n render() {\n return null\n }\n}\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/live-white-b0bafacaa4825626d3d8cfc95dbb7fce.gif\";","import React from 'react'\nimport Loadable from './loadable'\n\nconst isServerSide = typeof window === 'undefined'\n\nexport type LoaderComponent<P = {}> = Promise<\n React.ComponentType<P> | { default: React.ComponentType<P> }\n>\n\nexport type Loader<P = {}> = (() => LoaderComponent<P>) | LoaderComponent<P>\n\nexport type LoaderMap = { [mdule: string]: () => Loader<any> }\n\nexport type LoadableGeneratedOptions = {\n webpack?(): any\n modules?(): LoaderMap\n}\n\nexport type LoadableBaseOptions<P = {}> = LoadableGeneratedOptions & {\n loading?: ({\n error,\n isLoading,\n pastDelay,\n }: {\n error?: Error | null\n isLoading?: boolean\n pastDelay?: boolean\n retry?: () => void\n timedOut?: boolean\n }) => JSX.Element | null\n loader?: Loader<P> | LoaderMap\n loadableGenerated?: LoadableGeneratedOptions\n ssr?: boolean\n}\n\nexport type LoadableOptions<P = {}> = LoadableBaseOptions<P> & {\n render?(loader: any, props: any): JSX.Element\n}\n\nexport type DynamicOptions<P = {}> = LoadableBaseOptions<P> & {\n /**\n * @deprecated the modules option has been planned for removal\n */\n render?(props: P, loaded: any): JSX.Element\n}\n\nexport type LoadableFn<P = {}> = (\n opts: LoadableOptions<P>\n) => React.ComponentType<P>\n\nexport type LoadableComponent<P = {}> = React.ComponentType<P>\n\nexport function noSSR<P = {}>(\n LoadableInitializer: LoadableFn<P>,\n loadableOptions: LoadableOptions<P>\n): React.ComponentType<P> {\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack\n delete loadableOptions.modules\n\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions)\n }\n\n const Loading = loadableOptions.loading!\n // This will only be rendered on the server side\n return () => (\n <Loading error={null} isLoading pastDelay={false} timedOut={false} />\n )\n}\n\n// function dynamic<P = {}, O extends DynamicOptions>(options: O):\n\nexport default function dynamic<P = {}>(\n dynamicOptions: DynamicOptions<P> | Loader<P>,\n options?: DynamicOptions<P>\n): React.ComponentType<P> {\n let loadableFn: LoadableFn<P> = Loadable\n let loadableOptions: LoadableOptions<P> = {\n // A loading component is not required, so we default it\n loading: ({ error, isLoading, pastDelay }) => {\n if (!pastDelay) return null\n if (process.env.NODE_ENV === 'development') {\n if (isLoading) {\n return null\n }\n if (error) {\n return (\n <p>\n {error.message}\n <br />\n {error.stack}\n </p>\n )\n }\n }\n\n return null\n },\n }\n\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = () => dynamicOptions\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = { ...loadableOptions, ...dynamicOptions }\n }\n\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})\n loadableOptions = { ...loadableOptions, ...options }\n\n if (\n typeof dynamicOptions === 'object' &&\n !(dynamicOptions instanceof Promise)\n ) {\n // show deprecation warning for `modules` key in development\n if (process.env.NODE_ENV !== 'production') {\n if (dynamicOptions.modules) {\n console.warn(\n 'The modules option for next/dynamic has been deprecated. See here for more info https://err.sh/vercel/next.js/next-dynamic-modules'\n )\n }\n }\n // Support for `render` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.render) {\n loadableOptions.render = (loaded, props) =>\n dynamicOptions.render!(props, loaded)\n }\n // Support for `modules` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.modules) {\n loadableFn = Loadable.Map\n const loadModules: LoaderMap = {}\n const modules = dynamicOptions.modules()\n Object.keys(modules).forEach((key) => {\n const value: any = modules[key]\n if (typeof value.then === 'function') {\n loadModules[key] = () => value.then((mod: any) => mod.default || mod)\n return\n }\n loadModules[key] = value\n })\n loadableOptions.loader = loadModules\n }\n }\n\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = {\n ...loadableOptions,\n ...loadableOptions.loadableGenerated,\n }\n delete loadableOptions.loadableGenerated\n }\n\n // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})\n if (typeof loadableOptions.ssr === 'boolean') {\n if (!loadableOptions.ssr) {\n delete loadableOptions.ssr\n return noSSR(loadableFn, loadableOptions)\n }\n delete loadableOptions.ssr\n }\n\n return loadableFn(loadableOptions)\n}\n","/**\n * 获取Link组件的href值,方便线上测试\n */\nexport default (path: string) => {\n const prefixer = process.env.NODE_ENV === 'production' ? '' : ''\n // const prefixer = '/test'\n return prefixer + path\n}\n","import get from 'lodash/get'\nimport fetch from 'isomorphic-unfetch'\n\ninterface Coordinates {\n latitude: number\n longitude: number\n}\ninterface Result extends Coordinates {\n status: number\n cityName: string\n}\n\nexport interface ILocation {\n latitude: number\n longitude: number\n gpsLatitude: number\n gpsLongitude: number\n ipLatitude: number\n ipLongitude: number\n cityName: string\n gpsCityName: string\n ipCityName: string\n}\n\nlet mapKey = ''\n/* eslint-disable prefer-destructuring */\nexport default async function getLocation(\n key = '88db9775ba89ac7e7afafbecd43b96e7'\n): Promise<ILocation> {\n try {\n mapKey = key\n const [gpsLocation, ipLocation] = await Promise.all([\n getGPSCityName(),\n getIPCityName(),\n ])\n let cityName = ''\n let gpsCityName = ''\n\n if (gpsLocation.status === 0 && gpsLocation.cityName) {\n // gps地址获取成功\n console.log('[utils/location] gps success:::', gpsLocation)\n cityName = gpsLocation.cityName\n gpsCityName = cityName\n } else if (ipLocation.status === 0 && ipLocation.cityName) {\n // ip地址获取成功\n console.log('[utils/location] ip success:::', ipLocation)\n cityName = ipLocation.cityName\n }\n const dataBaseResult = await getDatabaseCity(cityName)\n return {\n latitude: gpsLocation.latitude || ipLocation.latitude,\n longitude: gpsLocation.longitude || ipLocation.longitude,\n gpsLatitude: gpsLocation.latitude,\n gpsLongitude: gpsLocation.longitude,\n ipLatitude: ipLocation.latitude,\n ipLongitude: ipLocation.longitude,\n cityName: dataBaseResult.cityName,\n gpsCityName,\n ipCityName: ipLocation.cityName,\n }\n } catch (error) {\n console.warn(error)\n return {\n latitude: 0,\n longitude: 0,\n gpsLatitude: 0,\n gpsLongitude: 0,\n ipLatitude: 0,\n ipLongitude: 0,\n cityName: '',\n gpsCityName: '',\n ipCityName: '',\n }\n }\n}\n\nfunction getGPSLocation(): Promise<\n {\n status: number\n } & Coordinates\n > {\n const defaultResult = {\n status: -1,\n latitude: 0,\n longitude: 0,\n }\n\n const timeout: Promise<{\n status: number\n } & Coordinates> = new Promise(resolve => {\n setTimeout(() => {\n resolve(defaultResult)\n }, 3000)\n })\n\n const getCurrentPosition: Promise<{\n status: number\n } & Coordinates> = new Promise(resolve => {\n try {\n const positionOptions = {\n timeout: 3000,\n maximumAge: 60 * 60 * 1000,\n }\n\n window.navigator.geolocation.getCurrentPosition(\n res => {\n if (res && res.coords) {\n const { latitude = 0, longitude = 0 } = res.coords\n resolve({\n status: 0,\n latitude,\n longitude,\n })\n } else {\n resolve(defaultResult)\n }\n },\n () => {\n resolve(defaultResult)\n },\n positionOptions\n )\n } catch (err) {\n resolve(defaultResult)\n }\n })\n\n return Promise.race([timeout, getCurrentPosition])\n}\n\nfunction getIPLocation(): Promise<Result> {\n return fetch('/motor/car_service/open_api/get_ip_city/')\n .then(res => res.json())\n .then(json => {\n return {\n status: 0,\n cityName: get(json, 'data.city_name', ''),\n latitude: get(json, 'data.Latitude', 0),\n longitude: get(json, 'data.Longitude', 0),\n }\n })\n .catch(() => {\n return {\n status: -1,\n cityName: '',\n latitude: 0,\n longitude: 0,\n }\n })\n}\n\nfunction getCityByPos(coordinate: Coordinates): Promise<Result> {\n return fetch(\n `https://restapi.amap.com/v3/geocode/regeo?key=${mapKey}&location=${coordinate.longitude},${coordinate.latitude}`\n )\n .then(res => res.json())\n .then(json => {\n try {\n // province 可能返回字符串或数组\n const { city = [], province = [] } = get(\n json,\n 'regeocode.addressComponent',\n {}\n )\n const cityResult = typeof city === 'string' ? city : city[0]\n const provinceResult =\n typeof province === 'string' ? province : province[0]\n\n let result = cityResult || provinceResult || ''\n\n result = result.replace('市', '')\n const currentCity = result || ''\n console.log('[utils/location] getCityByPos response:::', json.data)\n return Promise.resolve({\n status: 0,\n cityName: currentCity,\n ...coordinate,\n })\n } catch (error) {\n return {\n status: -1,\n cityName: '',\n ...coordinate,\n }\n }\n })\n}\n\nfunction getDatabaseCity(\n cityName: string\n): Promise<{\n status: number\n cityName: string\n match: boolean\n}> {\n return fetch(\n `/motor/car_service/open_api/get_city_name/?city_name=${encodeURIComponent(\n cityName\n )}`\n )\n .then(res => res.json())\n .then(json => {\n try {\n const dbCityName = get(json, 'data.city_name', '')\n const match = get(json, 'data.match', true)\n return Promise.resolve({\n status: 0,\n cityName: dbCityName,\n match,\n })\n } catch (error) {\n return {\n status: -1,\n cityName: '',\n match: false,\n }\n }\n })\n .catch(e => {\n return {\n status: -1,\n cityName: '',\n match: false,\n }\n })\n}\n\nfunction getGPSCityName() {\n return getGPSLocation().then(getCityByPos)\n}\n\nfunction getIPCityName(): Promise<Result> {\n return fetch('/motor/car_service/open_api/get_ip_city/')\n .then(res => res.json())\n .then(json => ({\n status: 0,\n cityName: get(json, 'data.city_name', ''),\n latitude: get(json, 'data.Latitude', 0),\n longitude: get(json, 'data.Longitude', 0),\n }))\n .catch(() => {\n return {\n status: -1,\n cityName: '',\n latitude: 0,\n longitude: 0,\n }\n })\n}\n","import * as React from 'react'\nimport get from 'lodash/get'\nimport fetch from 'isomorphic-unfetch'\nimport Router from 'next/router'\nimport classnames from 'classnames'\n\nimport getUrl from 'lib/url'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\n\ninterface IResult {\n keyword: string\n}\ninterface IListProps {\n data: IResult[]\n curIndex: number\n}\ninterface IState {\n data: IResult[]\n show: boolean\n}\n\nconst handler = (keyword: string, searchMode = 'common') => {\n sendTeaCommEvent('click_top_search', {\n search_content: keyword,\n search_mode: searchMode,\n })\n sessionStorage.setItem('search_content', keyword)\n sessionStorage.setItem('search_mode', searchMode)\n Router.push(`/search?keyword=${keyword}`, `/search?keyword=${keyword}`)\n}\n\nfunction ResultList({ data, curIndex }: IListProps) {\n return (\n <ul className=\"result\">\n {data.map((item: IResult, index: number) => (\n <li\n key={item.keyword}\n className={classnames({\n active: index === curIndex,\n })}\n onClick={(e: React.MouseEvent<HTMLLIElement, MouseEvent>) => {\n e.stopPropagation()\n handler(item.keyword)\n // setValue(item.keyword)\n }}\n >\n {item.keyword}\n </li>\n ))}\n <style jsx>\n {`\n .result {\n position: absolute;\n top: 36px;\n left: -2px;\n z-index: 1000;\n width: 320px;\n color: #333333;\n background: #fff;\n margin-top: 4px;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\n }\n .result li {\n line-height: 32px;\n margin: 0 10px;\n font-size: 14px;\n border-bottom: 1px dotted #e6e6e6;\n cursor: pointer;\n }\n .result li:last-child {\n border-bottom: 0;\n }\n ul.result .active {\n color: #ff9100;\n }\n `}\n </style>\n </ul>\n )\n}\n\nexport default function Search() {\n const [focus, setFocus] = React.useState(false)\n const [value, setValue] = React.useState('')\n /* 列表当前选中项索引 */\n const [curIndex, setCurIndex] = React.useState(0)\n /* 列表数据 */\n const [list, setList] = React.useState<IState>({ show: false, data: [] })\n\n const searchDivRef = React.useRef<HTMLDivElement>(null)\n const buttonRef = React.useRef<HTMLButtonElement>(null)\n\n React.useEffect(() => {\n const searchDivDom = searchDivRef.current\n const searchButtonDom = buttonRef.current\n const onMouseEnter = () => {\n if (searchDivDom) searchDivDom.classList.add('button-hover')\n }\n const onMouseLeave = () => {\n if (searchDivDom) searchDivDom.classList.remove('button-hover')\n }\n if (searchDivDom && searchButtonDom) {\n searchButtonDom.addEventListener('mouseenter', onMouseEnter)\n searchButtonDom.addEventListener('mouseleave', onMouseLeave)\n }\n\n return () => {\n if (searchDivDom && searchButtonDom) {\n searchButtonDom.removeEventListener('mouseenter', onMouseEnter)\n searchButtonDom.removeEventListener('mouseleave', onMouseLeave)\n }\n }\n }, [searchDivRef.current, buttonRef.current])\n\n React.useEffect(() => {\n if (!value) {\n return\n }\n fetch(getUrl(`/motor/searchacl/complete?keyword=${value}`))\n .then(res => res.json())\n .then(json => {\n setList({ show: true, data: json.data })\n })\n }, [value])\n\n return (\n <div className=\"fl clearfix search\" ref={searchDivRef}>\n <span className=\"search-icon fl\" />\n <input\n type=\"search\"\n className=\"fl search-form\"\n placeholder=\"请输入你要搜索的内容\"\n onChange={e => {\n setCurIndex(0)\n setValue(e.target.value)\n }}\n onBlur={() => {\n setFocus(false)\n setTimeout(() => {\n setList({ ...list, show: false })\n }, 200)\n }}\n onFocus={() => {\n setList({ ...list, show: true })\n setFocus(true)\n }}\n onKeyDownCapture={e => {\n if (e.keyCode === 40) {\n const index = curIndex + 1 === list.data.length ? 0 : curIndex + 1\n setCurIndex(index)\n // setValue(list.data[index].keyword)\n }\n if (e.keyCode === 38) {\n const index =\n curIndex - 1 === -1 ? list.data.length - 1 : curIndex - 1\n setCurIndex(index)\n // setValue(list.data[index].keyword)\n }\n if (e.keyCode === 13) {\n console.log(list.data, curIndex)\n handler(get(list, `data[${curIndex}].keyword`) || value, 'sug')\n }\n }}\n />\n <button\n ref={buttonRef}\n type=\"submit\"\n className=\"fl search-btn\"\n onClick={e => {\n e.stopPropagation()\n handler(value)\n }}\n >\n 搜索\n </button>\n {list.show && <ResultList data={list.data} curIndex={curIndex} />}\n <style jsx>\n {`\n .search {\n margin-left: 40px;\n border-radius: 2px;\n position: relative;\n background-color: #ffffff;\n width: 400px;\n margin-top: 0;\n border: solid 2px #ffcc32;\n }\n .search.button-hover {\n border: solid 2px #e5b72c;\n }\n .search-icon {\n display: inline-block;\n font-size: 16px;\n width: 16px;\n height: 16px;\n margin: 10px 0 10px 12px;\n color: #cccccc;\n background-image: url(${require('../public/static/search-ic@3x.png')});\n background-position: center;\n background-size: 100%;\n }\n .search-form {\n width: 284px;\n height: 36px;\n line-height: 12px;\n padding: 0 10px 0 10px;\n outline: 0;\n border: 0;\n font-size: 12px;\n box-sizing: border-box;\n -webkit-appearance: none;\n }\n .search-btn {\n line-height: 36px;\n font-size: 14px;\n border: 0;\n background-color: #ffcc32;\n cursor: pointer;\n outline: none;\n float: right;\n width: 80px;\n border-radius: 0;\n }\n .search-btn:hover {\n background-color: #e5b72c;\n }\n .search-btn:active {\n background-color: #e5b72c;\n }\n `}\n </style>\n </div>\n )\n}\n","import * as React from 'react'\nimport classnames from 'classnames'\n\nimport Link from 'next/link'\nimport Router from 'next/router'\n\nimport getLocation from 'lib/get-location'\nimport getLinkHref from 'lib/get-link-href'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { GlobalStoreContext } from 'Components/store'\n\nimport City from './city'\nimport Search from './search'\nimport User from './user'\n\ninterface IProps {\n router: {\n asPath: string\n pathname: string\n }\n}\n\nconst live_white = require('static/live-white.gif')\nconst live_yellow = require('static/live-yellow.gif')\n\nconst routes = [\n {\n href: '/home',\n as: getLinkHref('/'),\n text: '首页',\n },\n {\n href: '/auto/library/x-x-x-x-x-x-x-x-x-x-x',\n as: getLinkHref('/auto/library/x-x-x-x-x-x-x-x-x-x-x'),\n text: '车型库',\n },\n {\n href: '/car_fans_community/home',\n as: getLinkHref('/car_fans_community'),\n text: '车友圈',\n },\n {\n href: '/feed/home',\n as: getLinkHref('/feed'),\n text: '资讯',\n },\n {\n href: '/live/home',\n as: getLinkHref('/live'),\n text: '直播',\n icon: live_white,\n },\n {\n href: '/picture/home',\n as: getLinkHref('/picture'),\n text: '图片',\n },\n {\n href: '/video/home',\n as: getLinkHref('/video'),\n text: '视频',\n },\n]\n\nfunction Header() {\n // 当前激活的tab\n const [active, updateActive] = React.useState<string>()\n const [showCity, setCityPopup] = React.useState(false)\n // 防止ssr与前端渲染的html不一致的问题,在服务端不渲染城市\n const { state, dispatch } = React.useContext(GlobalStoreContext)\n const { cityName } = state\n // 搜索页要隐藏搜索框\n const [hideSearch, setSearch] = React.useState(true)\n const asPath = (Router && Router.router && Router.router.asPath) || ''\n React.useEffect(() => {\n const pathname = asPath.split('?')[0]\n updateActive(pathname)\n setSearch(asPath.includes('/search'))\n }, [asPath])\n React.useEffect(() => {\n if (typeof state.cityName === 'undefined') {\n try {\n const cityName = window.localStorage.getItem('cityName')\n // 优先从本地存储中获取城市\n if (cityName) {\n dispatch({\n type: 'setCityName',\n payload: cityName || '',\n })\n } else {\n // 获取不到时,调用location获取\n getLocation().then(location => {\n dispatch({\n type: 'setCityName',\n payload: location.cityName || '',\n })\n })\n }\n } catch (err) {}\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.cityName])\n return (\n <header className=\"header\">\n <Link href=\"/home\" as=\"/\">\n <a target=\"_blank\" className=\"fl logo\" />\n </Link>\n <div className=\"inner search-row clearfix\">\n {!hideSearch && <Search />}\n <User />\n <a\n className=\"dcdmp\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://mp.dcdapp.com/?link_source=pc\"\n >\n 进入懂车号\n </a>\n <a\n onClick={() => {\n sendTeaCommEvent('click_top_download_app')\n }}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://www.dcdapp.com/download/\"\n className=\"download\"\n >\n <span className=\"code-icon\" />\n 下载APP\n <div className=\"vrcode-container\">\n <h3>扫码下载懂车帝APP</h3>\n <img\n src={require('static/dcd-code@3x.png')}\n alt=\"\"\n className=\"vrcode\"\n />\n </div>\n </a>\n <div\n className=\"city\"\n onMouseEnter={event => {\n event.stopPropagation()\n event.nativeEvent.stopImmediatePropagation()\n sendTeaCommEvent('mouseenter_top_location', {\n location_city: cityName,\n })\n setCityPopup(true)\n }}\n onMouseLeave={event => {\n event.stopPropagation()\n event.nativeEvent.stopImmediatePropagation()\n setCityPopup(false)\n }}\n >\n <span className=\"city-icon\" />\n {cityName}\n {showCity && (\n <City\n onChange={name => {\n sendTeaCommEvent('switch_top_location', {\n location_city: name,\n })\n setCityPopup(false)\n }}\n />\n )}\n <span className=\"icon-arrow-ic-r arrow-down\" />\n </div>\n </div>\n <div className=\"inner nav-row clearfix\">\n {routes.map(item => (\n <Link key={item.text} href={item.href} as={item.as}>\n <a\n //target=\"_blank\"\n className={classnames('fl nav', {\n active: active === item.as,\n hasicon: !!item.icon,\n })}\n onClick={() => {\n sendTeaCommEvent('click_top_guide', {\n obj_text: item.text,\n })\n }}\n >\n {item.icon && <img src={item.icon} className=\"nav-icon\" />}\n {item.text}\n </a>\n </Link>\n ))}\n {/* <Link href=\"/download\">\n <a className=\"download\">客户端</a>\n </Link> */}\n </div>\n <style jsx>\n {`\n .header {\n width: 1196px;\n height: 100px;\n margin: 0 auto;\n margin-top: 20px;\n color: #1f2129;\n font-size: 18px;\n position: relative;\n }\n .inner {\n width: 1196px;\n padding-left: 100px;\n }\n .logo {\n width: 246px;\n height: 100px;\n background: url(${require('static/newLogo.png')}) no-repeat 0 0 /\n cover;\n }\n .search-row {\n height: 52px;\n line-height: 36px;\n font-size: 14px;\n }\n .nav-row {\n background: #1f2129;\n height: 48px;\n line-height: 48px;\n border-radius: 4px;\n background-image: linear-gradient(\n to bottom,\n rgba(0, 0, 0, 0.6),\n rgba(0, 0, 0, 0)\n );\n }\n .nav {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin-left: 56px;\n color: #fff;\n transition: all 0.1s ease-in-out;\n position: relative;\n }\n .hasicon {\n margin-left: 80px;\n }\n .nav:first-child {\n margin-left: 40px;\n }\n .nav:hover {\n color: #ffcd32;\n }\n .nav:hover .nav-icon{\n content: url('${live_yellow}');\n }\n .nav:after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: transparent;\n }\n .active {\n color: #ffcd32;\n }\n .active .nav-icon{\n content: url('${live_yellow}');\n }\n .nav.active:after {\n background: #ffcd32;\n }\n .nav-icon{\n position: absolute;\n left: -24px;\n width: 24px;\n height: 24px;\n display: inline-block;\n object-fit: cover;\n object-position: center;\n }\n .city {\n position: relative;\n float: right;\n margin-right: 32px;\n font-size: 16px;\n cursor: pointer;\n user-select: none;\n height: 52px;\n }\n .city:hover {\n color: #e65800;\n }\n .city:hover .city-icon {\n background-image: url(${require('static/location-ic-red.png')});\n }\n .city::before:hover {\n color: #e65800;\n }\n .city:hover .arrow-down {\n color: #e65800;\n }\n .arrow-down {\n display: inline-block;\n font-size: 16px;\n color: #1f2129;\n margin-left: 8px;\n margin-top: -3px;\n transform: rotate(90deg);\n vertical-align: middle;\n }\n .city-icon {\n background-image: url(${require('static/location-ic@3x.png')});\n background-position: center;\n background-repeat: no-repeat;\n background-size: 100%;\n display: inline-block;\n width: 16px;\n height: 16px;\n vertical-align: -3px;\n margin-right: 4px;\n }\n .header .city :global(> section) {\n left: 0;\n }\n .dcdmp {\n float: right;\n font-size: 16px;\n margin-left: 32px;\n }\n .dcdmp:hover {\n color: #e65800;\n }\n .download {\n position: relative;\n float: right;\n font-size: 16px;\n height: 52px;\n }\n .download:hover .code-icon {\n background-image: url(${require('static/code-ic-red.png')});\n }\n .download:hover {\n color: #e65800;\n }\n .download:hover .vrcode-container {\n display: block;\n }\n\n .code-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n background-image: url(${require('static/code-ic@3x.png')});\n background-position: center;\n background-repeat: no-repeat;\n background-size: 100%;\n vertical-align: -2px;\n margin-right: 4px;\n }\n .vrcode-container {\n display: none;\n position: absolute;\n top: 52px;\n left: 0px;\n width: 200px;\n height: 236px;\n z-index: 2000;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\n text-align: center;\n background-color: #ffffff;\n }\n .vrcode {\n width: 160px;\n height: 160px;\n margin: 20px 0;\n }\n h3 {\n font-size: 14px;\n color: #1f2129;\n font-weight: normal;\n margin-top: 16px;\n line-height: 20px;\n }\n .right {\n margin-right: 0;\n }\n `}\n </style>\n </header>\n )\n}\n\nexport default Header\n","import * as React from 'react'\nimport { on, off } from '@arsenal/arsenal/modules/event'\n\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\n\nexport default function BackToTop() {\n const [show, updateShow] = React.useState(false)\n React.useEffect(() => {\n function handleScroll() {\n const scrollElement =\n document.scrollingElement || document.documentElement\n if (scrollElement.scrollTop > 100) {\n updateShow(true)\n } else {\n updateShow(false)\n }\n }\n on(document, 'scroll', handleScroll)\n return () => {\n off(document, 'scroll', handleScroll)\n }\n }, [])\n if (!show) {\n return null\n }\n const handleButtonClick = () => {\n const scrollElement = document.scrollingElement || document.documentElement\n const top = scrollElement.scrollTop\n sendTeaCommEvent('return_to_top')\n scrollSmoothly(scrollElement, -top)()\n }\n return (\n <div onClick={handleButtonClick} className=\"back-top-button\">\n <div className=\"back-to-top\">\n <span className=\"icon-invalid-name icon-up\" />\n </div>\n <p>返回顶部</p>\n <style jsx>\n {`\n .back-top-button {\n position: fixed;\n left: 50%;\n bottom: 120px;\n margin-left: 617px;\n width: 80px;\n height: 77px;\n border: 0;\n outline: 0;\n font-size: 12px;\n text-align: center;\n border: solid 1px #e6e6e6;\n background-color: #ffffff;\n cursor: pointer;\n z-index: 100;\n }\n @media screen and (max-width: 1400px) {\n .back-top-button {\n left: auto;\n margin-left: 0;\n right: 10px;\n }\n }\n .back-to-top {\n margin: 0 auto;\n width: 24px;\n height: 24px;\n margin-top: 16px;\n margin-bottom: 4px;\n }\n .icon-up {\n font-size: 24px;\n }\n p {\n color: #1a1a1a;\n }\n .back-top-button:hover,\n .back-top-button:hover p {\n color: #406599;\n }\n `}\n </style>\n </div>\n )\n}\n\nfunction scrollSmoothly(scrollElement: Element, dis: number) {\n let moved = 0\n const initTop = scrollElement.scrollTop\n return function scroll() {\n if (Math.abs(moved) < Math.abs(dis)) {\n /**\n * 200ms内移动dis的距离\n * 200 / 16 得出一共要多少帧\n * dis / (200 / 16)得出每一帧移动的距离\n */\n moved = moved + dis / (200 / 16)\n if (dis > 0) {\n moved = Math.min(moved, dis)\n } else {\n moved = Math.max(moved, dis)\n }\n scrollElement.scrollTop = initTop + moved\n\n requestAnimationFrame(scroll)\n }\n }\n}\n","import * as React from 'react'\nimport { on, off } from '@arsenal/arsenal/modules/event'\n\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport BackToTop from './back-to-top'\nimport { useRouter } from 'next/router'\n\nconst menu_top_img = require('../public/static/menu-top@3x.png')\nconst menu_bottom_img = require('../public/static/menu-bottom@3x.png')\n\nexport default function RightSideNavigation() {\n const router = useRouter()\n if (router.pathname !== '/home') {\n return <BackToTop />\n }\n const [show, updateShow] = React.useState(false)\n const [activeNow, setActiveNow] = React.useState('')\n\n const withinView = React.useCallback((domID: string) => {\n const dom = document.getElementById(domID)\n if (!dom) {\n return false\n }\n return dom.getBoundingClientRect().top + dom.clientHeight > 0\n }, [])\n const handleScroll = React.useCallback(() => {\n const scrollElement = document.documentElement\n const start_dom = document.getElementById('original_column')\n if (\n start_dom &&\n scrollElement.scrollTop >\n start_dom.getBoundingClientRect().top + window.pageYOffset\n ) {\n updateShow(true)\n } else {\n updateShow(false)\n }\n\n const domIDs = [\n // 'hot_news',\n 'original_column',\n 'dong_che_fen',\n 'friend_circle',\n 'featured_videos',\n 'featured_images',\n 'local_market',\n 'home_feed',\n ]\n const elements = domIDs.map(e => {\n return {\n id: e,\n withinView: withinView(e),\n }\n })\n\n for (const element of elements) {\n if (element.withinView) {\n setActiveNow(element.id)\n break\n }\n }\n }, [])\n React.useEffect(() => {\n handleScroll()\n on(document, 'scroll', handleScroll)\n return () => {\n off(document, 'scroll', handleScroll)\n }\n }, [])\n\n const handleItemClick = React.useCallback((e: React.SyntheticEvent) => {\n const target = e.target as HTMLElement\n const type = target.dataset.type || ''\n\n const dom = document.getElementById(type) || document.body\n if (dom) {\n const to = dom?.offsetTop\n window.scrollTo({\n top: to,\n behavior: 'smooth',\n })\n }\n }, [])\n\n if (!show) {\n return null\n }\n return (\n <div className=\"navigation-menu\">\n <img className=\"menu-top-img\" src={menu_top_img} />\n <div className=\"item-wrapper\" onClick={handleItemClick}>\n {/* <span\n className={`item ${activeNow === 'hot_news' ? 'active' : ''}`}\n data-type=\"hot_news\"\n >\n 直播\n </span> */}\n <span\n className={`item ${activeNow === 'original_column' ? 'active' : ''}`}\n data-type=\"original_column\"\n >\n 原创\n </span>\n <span\n className={`item ${activeNow === 'dong_che_fen' ? 'active' : ''}`}\n data-type=\"dong_che_fen\"\n >\n 懂车分\n </span>\n {/* <span\n className={`item ${activeNow === 'friend_circle' ? 'active' : ''}`}\n data-type=\"friend_circle\"\n >\n 车友圈\n </span> */}\n <span\n className={`item ${activeNow === 'featured_videos' ? 'active' : ''}`}\n data-type=\"featured_videos\"\n >\n 视频\n </span>\n <span\n className={`item ${activeNow === 'featured_images' ? 'active' : ''}`}\n data-type=\"featured_images\"\n >\n 图片\n </span>\n {/* <span\n className={`item ${activeNow === 'local_market' ? 'active' : ''}`}\n data-type=\"local_market\"\n >\n 本地车市\n </span> */}\n <span\n className={`item ${activeNow === 'home_feed' ? 'active' : ''}`}\n data-type=\"home_feed\"\n >\n 资讯\n </span>\n <span className=\"back-to-top\">返回顶部</span>\n </div>\n <style jsx>\n {`\n @media screen and (max-width: 1439px){\n .navigation-menu{\n display: none;\n }\n }\n @media screen and (min-width: 1440px) {\n .back-to-top{\n color: #c9cbd6;\n width: 100%;\n height: 48px;\n line-height: 48px;\n white-space: nowrap;\n background: url(\"${menu_bottom_img}\") no-repeat center center / 100% 100%;\n cursor: pointer;\n }\n .back-to-top:hover{\n color: #FFCD32;\n }\n .item{\n width: 100%;\n height: 48px;\n line-height: 48px;\n white-space: nowrap;\n cursor: pointer;\n }\n .item:hover{\n background-color: rgba(255, 255, 255, 0.24);\n }\n .active{\n background-color: #ffcd32;\n color: #1f2129;\n }\n .active:hover{\n background-color: #ffcd32;\n }\n .item-wrapper{\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: stretch;\n }\n .menu-top-img {\n width: 100%;\n height: 28px;\n object-fit: fill;\n object-position: center;\n background: white;\n }\n .navigation-menu {\n position: fixed;\n left: 50%;\n top: 40px;\n margin-left: calc(1196px / 2 + 16px);\n width: 88px;\n height: auto;\n font-size: 16px;\n text-align: center;\n border-radius: 2px;\n -webkit-backdrop-filter: blur(5.8px);\n backdrop-filter: blur(5.8px);\n background-color: #1f2129;\n color: #ffffff;\n }\n \n `}\n </style>\n </div>\n )\n}\n","import React, { createContext } from 'react'\nimport cookie from 'cookie'\nimport App, { Container } from 'next/app'\nimport Head from 'next/head'\nimport { withRouter } from 'next/router'\nimport NProgress from 'nprogress'\nimport fetch from 'isomorphic-unfetch'\n\nimport Header2 from 'Components/header2'\nimport RightSideNavigation from 'Components/right-side-navigation'\nimport { GlobalStoreProvider } from 'Components/store'\nimport { CacheStoreProvider } from 'Components/cache-store'\nimport 'lib/font.less'\nimport getPageEnterId from 'lib/page-enter'\nimport getUrl from 'lib/url'\nimport { getZT } from 'lib/zt-util'\nimport { unicodeToChar } from 'lib/utils'\nimport teaInit, {\n sendTeaEnterEvent,\n sendTeaStayEvent,\n sendTeaCommEvent,\n teaConfig,\n teaStart,\n} from 'lib/tea-analyze'\nimport safeGet from '@arsenal/arsenal/modules/safeGet'\nimport dynamic from 'next/dynamic'\nimport Loading from 'Components/loading'\nimport { metrics } from 'lib/slardar-utils'\n\nconst acrawler = require('@byted/acrawler')\nconst LiveStreamWindow = dynamic(\n () => import('Components/live-stream-window'),\n {\n loading: () => <Loading />,\n ssr: false,\n }\n)\nclass MyApp extends App {\n UNSAFE_componentWillMount() {\n // client side need fetch acrawler captcha token\n if (\n typeof window !== 'undefined' &&\n process.env.NODE_ENV !== 'development'\n ) {\n this.fetchAcrawlerCaptchaToken()\n }\n }\n\n initSlardar(url = '') {\n const extraArr: string[] = []\n const pageId =\n url\n ?.toLocaleLowerCase()\n ?.split('?')?.[0]\n ?.split('/')\n ?.slice(1)\n ?.filter(path => {\n if (/^\\d+$/.test(path) || /-/.test(path)) {\n if (path) {\n extraArr.push(path)\n }\n\n return false\n }\n\n return true\n })\n ?.join('_') || 'homepage'\n window.Slardar('config', {\n sampleRate: 1,\n bid: 'motor_pc',\n pid: pageId,\n ignoreAjax: ['mcs.snssdk.com'],\n hookFetch: true,\n ignoreStatic: [],\n context: {\n extra: extraArr.join('_'),\n },\n })\n }\n\n componentDidMount() {\n const { router } = this.props\n const routerPath = router.asPath || ''\n const params = getPageEnterId(routerPath)\n if (params.page_id === '') {\n metrics.counter('empty_page_id', {\n routerPath,\n })\n }\n // 首次渲染时初始化slardar\n this.initSlardar(routerPath)\n\n teaInit({\n appId: 1839,\n zt: getZT(),\n })\n const cookies = cookie.parse(document.cookie)\n let userData\n try {\n userData = JSON.parse(cookies.user_data)\n } catch (error) {\n // console.error(error)\n }\n if (userData) {\n teaConfig({\n user_id: userData.user_id,\n })\n }\n teaStart()\n sendTeaEnterEvent(params)\n router.events.on('routeChangeStart', url => {\n // 前端路由变化时初始化slardar\n this.initSlardar(url)\n\n requestAnimationFrame(() => {\n NProgress.start()\n NProgress.set(0.5)\n })\n\n teaConfig({\n zt: getZT(),\n })\n sendTeaStayEvent()\n })\n router.events.on('routeChangeComplete', (url: string) => {\n const params = getPageEnterId(url)\n // console.log('routeChangeComplete', url)\n requestAnimationFrame(() => {\n NProgress.done()\n })\n sendTeaEnterEvent(params)\n })\n router.events.on('routeChangeError', () => {\n requestAnimationFrame(() => {\n NProgress.done()\n })\n })\n router.beforePopState(({ as }) => {\n // ie9不支持history\n if (!window.history || !window.history.pushState) {\n window.open(as)\n // window.location.href = as\n return false\n }\n return true\n })\n }\n\n fetchAcrawlerCaptchaToken = () => {\n fetch(getUrl('/acrawler/get_captcha_token'))\n .then((res: any) => res.json())\n .then(data => {\n const token = safeGet(data, 'token') || ''\n const result = token.match(/tac='(.*)'/)\n\n if (result) {\n window['tac'] = unicodeToChar(result[1])\n }\n\n this.fetchAcrawlerCaptchaCheck()\n })\n .catch(e => {\n console.error('token', e)\n })\n }\n\n fetchAcrawlerCaptchaCheck = () => {\n const nonce = {\n url: encodeURI(`${window.location.origin}/acrawler/check_captcha`),\n }\n\n let sig = ''\n try {\n sig = acrawler.sign(nonce)\n } catch (e) {\n console.error('token', e)\n }\n\n fetch(getUrl(`/acrawler/check_captcha?_signature=${sig}`))\n .then(res => res.json())\n .catch(e => {\n console.error(e)\n })\n }\n\n render() {\n const { Component, pageProps } = this.props\n return (\n <Container>\n <Head>\n <title key=\"title\">懂车帝 - 说真的还得懂车帝\n \n \n \n \n \n \n \n
\n \n
\n \n
\n
\n\n \n \n \n )\n }\n}\n\nexport default withRouter(MyApp)\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/menu-bottom@3x-9b2e7376a011f32d756da3d1fc09773b.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAFLElEQVRoBe1ZXWgcVRS+ZyZNVRCRFAvxLbRWFASh+KZkH23UQNFtwYembbJdwSdtpU9Vn4z150UftkkT2rd2FaH+RIRCpD5IS0FQFLExbwYqhCCCadPsXL9zd87u3M3cmdlsdvYlA8O9c+ec851v5sy9555RavvYfgIdPQHqSBvK527e3KF/WhxWOhhRRENaqUHSalCRGlBaLWtSSwBZguifStEcPT30/Yn9++91iiv6myZQOX/5OThYxnlAK/2QGExrSdE/IDeHs1IeP3QtTT7tftsEpqY+f7JG65Nw/IU046n3SX3t677TpdLLv6bKOgQyE5ifn+/7feHvj5TWr8OWF7UHI7cQHlc8n36gQP0V3OcvPbyztrxy1x/w7tQGtaceDWr6WaX0KEJsb1QX/QD6n+zbu/tkoVBYb7mXepmJwMWLXwys3r33GUKlIBaJqAaHLijf+7h8rPibjKe1ldnqE6oWvAHCY1prX+QRWvP379zxypEjB5dlLEubSmBmprpvLQjmEDJDYhBg36g+eqsdx0VXWkNkXZ/FQxmRMXwXi77uf75UOvhHYyylk0iAn/x/a2s3Is4HHnmnT0wUP0ixm/n2uenqqUAHk1CohyVIPNDf/0zWN2HFchSVY57DRpxHyPyL88WtdJ7x2B7bZfsGH2+acRk/6o+r7yTAH2wk5gMYOFyeODTnMtTJeGj3MGwwDp6ZLpgJI4PR2BAyU6Va/xn6hiB5dApz9ocZ7HUkEobT2dBI4Ku+p9Km2Ng3YOZ5cR4fbB7Os9MmnHiCqB9e6Ed4Gd9sIBCusGaRQlzWeLaJV+3SKPAMLpvHYmn8SYDaQABK5aa8vtDJVNm0k71Xx8P6Iofljww2W4sAJ2YgcKBxG4tUo59nJ4oLf4xfDnyLAGeVmAFMYoav+1beT198ZFzG52v2x2S7crOltQiYlLghQFca3Z50IvicqjsOmwDyeZHjxEz6vWgt/Ihfrb5YBHgzIgKcVUq/F20UP+pXqy8WAbOTCiU4JW4VzvM6ih/1q9UHi4DZBoYSnM+3Cud5beHz9tRx2ASwhxU53oxIvxetja9XXD5YBHgDLoK8k5J+L9ooPr6B2y4fLAKYexsEeBvoUspjPIqPDVQ2AtjvLopz9T2sXOXfWvikf3F5YL0BRZ5kgpDXoy6lfMab+ET+dy5MiwAXnUzdht1H9cDsW12aXRxnXMavQ9Bqv7frmgvOImAqZlx0ksNUD+QixzaCS6S/PXq0cMeFbhEwQqiYNYVpLO+3UMejMfFBk/e+9OPaDQRMuQ8VMxY2dRuUPuIUuzbGpZZGvYiuvjZevJGEtYEAC3O5D41ssEd4r5pkZKvuMQ7SZ8k8A/LpTJrtWAJmI030qShz3aYyfbm50ZEbW9iy/bA+VLdKNFk+XvwxDSKWACs9vueRN7ncFxpguUvdIhHavQQM4w8W1OvAfzvETmycBLjQyrVKLvexBcTlgzi/wib7ZKLFNm+asIFdtt9QJVoYHh5G7TX9ANnkI9faqOUKzZYniuOoUGBJcB+pBFg1n+q0uo4/PAt4E6823U0nkYkAG+zm/wGP1HuP7dn9DodNZbp6HgF7LCuJzATE4Jb+oVF0lafK6GyDN0DtkGibgBDZ7D8y/NhY5fSAV1jXItUOiU0TECKJfymVXsEXeNvk80iJOavkxCwptxG7WUl0TEAAu9HGkfB9b7R0vPil4DnXARHoZctTKE+lCLtZ4wfRu1Hne+lbW9j8JqZmqi+1pbQtvP0Esj2B/wGymEoPY6Q+nQAAAABJRU5ErkJggg==\"","var _Array$isArray = require(\"../core-js/array/is-array\");\n\nfunction _arrayWithoutHoles(arr) {\n if (_Array$isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","import getQuery from '@arsenal/arsenal/modules/getQuery'\n\n/**\n * sessionStorage工具\n */\nconst _sessionStorage = (() => {\n return {\n getItem: (key: string): string | null => {\n try {\n return sessionStorage.getItem(key)\n } catch (e) {\n return null\n }\n },\n setItem: (key: string, value: string): void => {\n try {\n sessionStorage.setItem(key, value)\n } catch (e) {}\n },\n }\n})()\n\n/**\n * 获取zt参数,用于统计pc站来源及线索提交场景使用\n * 获取方式:链接中zt参数 > session storage中zt参数 > 自然流量 default_pc\n * FIXME: 上线后观察是否存在无限制向后追加zt问题,并解决\n * @param {string} appendLabel - 用于统计页内不同位置带入留咨\n */\nexport const getZT = (appendLabel = ''): string => {\n try {\n const paramZT = getQuery('zt', window.location.search.slice(1) || '')\n\n const zt =\n typeof paramZT === 'string'\n ? paramZT\n : _sessionStorage.getItem('__zt') || 'default_pc'\n\n if (zt !== 'default_pc') {\n _sessionStorage.setItem('__zt', zt)\n }\n\n return `${zt}${appendLabel ? `_${appendLabel}` : ''}`\n } catch (e) {\n return `default_pc${appendLabel ? `_${appendLabel}` : ''}`\n }\n}\n","module.exports = require('./dist/next-server/lib/head')\n","module.exports = require('./backbone-events-standalone');\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\nvar pairSplitRegExp = /; */;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(pairSplitRegExp);\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var eq_idx = pair.indexOf('=');\n\n // skip things that don't look like key=value\n if (eq_idx < 0) {\n continue;\n }\n\n var key = pair.substr(0, eq_idx).trim()\n var val = pair.substr(++eq_idx, pair.length).trim();\n\n // quoted values\n if ('\"' == val[0]) {\n val = val.slice(1, -1);\n }\n\n // only assign once\n if (undefined == obj[key]) {\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/menu-top@3x-a4d250b1209f528d00a8f4c5a0318f35.png\";","import React from 'react'\n\ntype CaptureFn = (moduleName: string) => void\n\nexport const LoadableContext = React.createContext(null)\n\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext'\n}\n","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","import React from 'react'\n\nexport const AmpStateContext: React.Context = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n AmpStateContext.displayName = 'AmpStateContext'\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","(function(exports){\n var MAX_INT = 2147483647;\n var timeouts = {};\n var index = 1;\n\n // Set new timeout\n var set = function(callback, timeout){\n var id = index++;\n if(timeout > MAX_INT){\n timeouts[id] = setTimeout(set.bind(undefined, callback, timeout - MAX_INT), MAX_INT);\n }else{\n if(timeout < 0) timeout = 0;\n timeouts[id] = setTimeout(function(){\n delete timeouts[id];\n callback();\n }, timeout);\n }\n return id;\n };\n\n // Clear existing timeout\n var clear = function(id){\n if(timeouts.hasOwnProperty(id)){\n clearTimeout(timeouts[id]);\n delete timeouts[id];\n }\n };\n\n // Expose public interface\n exports.set = set;\n exports.clear = clear;\n exports._timeouts = timeouts;\n\n})(typeof module === 'undefined' && typeof exports === 'undefined'? this.timeout = {} : exports);","module.exports = \"data:image/png;base64,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\"","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","export function validatePhone(phone: string | number): boolean {\n return /^\\d{11}$/.test(`${phone}`)\n}\n\nexport function toNumber(value: string | number): number {\n const numberValue = Number(value)\n return Number.isNaN(numberValue) ? 0 : numberValue\n}\n\nexport function unicodeToChar(text: string) {\n return text.replace(/\\\\u[\\dA-F]{4}/gi, function(match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\u/g, ''), 16))\n })\n}\n\nexport function getBoundingClientRect(element: HTMLElement | Element) {\n const rect = element.getBoundingClientRect()\n // whether the IE version is lower than 11\n const isIE = navigator.userAgent.indexOf('MSIE') !== -1\n\n // fix ie document bounding top always 0 bug\n const rectTop =\n isIE && element.tagName === 'HTML' ? -element.scrollTop : rect.top\n\n return {\n left: rect.left,\n top: rectTop,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.right - rect.left,\n height: rect.bottom - rectTop,\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","import React, {\n useState,\n useContext,\n useEffect,\n useRef,\n useCallback,\n} from 'react'\nimport get from 'lodash/get'\nimport fetch from 'isomorphic-unfetch'\nimport classnames from 'classnames'\nimport { on, off } from '@arsenal/arsenal/modules/event'\n\nimport getUrl from 'lib/url'\nimport { useScrollSpy } from 'Components/hooks'\nimport { GlobalStoreContext } from 'Components/store'\n\nexport interface ICity {\n /* 城市首字母 */\n initials: string\n /* 城市列表 */\n city: [\n {\n city_name: string\n }\n ]\n}\n\ninterface IProps {\n onChange?(cityName?: string): void\n}\n\nexport default function City(props: IProps) {\n const { onChange } = props\n // 设置全局的城市\n const { state: globalStore, dispatch } = useContext(GlobalStoreContext)\n const { cities } = globalStore\n\n // 整体dom\n const ref = useRef(null)\n\n const [currIndex, setCurrIndex, cityRef] = useScrollSpy<\n HTMLElement,\n HTMLDivElement\n >(node => {\n return node.querySelectorAll('.cities')\n }, false)\n /* 获取城市列表 */\n const fetchCities = useCallback(() => {\n return fetch(getUrl('/motor/dealer/m/v1/get_dealer_city_list/'))\n .then(res => res.json())\n .then(json => {\n const data = get(json, 'data', [])\n if (data.length) {\n data.unshift({\n initials: '热门城市',\n city: [\n { city_name: '北京', initials: '热门城市' },\n { city_name: '上海', initials: '热门城市' },\n { city_name: '广州', initials: '热门城市' },\n { city_name: '深圳', initials: '热门城市' },\n { city_name: '重庆', initials: '热门城市' },\n { city_name: '天津', initials: '热门城市' },\n { city_name: '成都', initials: '热门城市' },\n { city_name: '杭州', initials: '热门城市' },\n { city_name: '武汉', initials: '热门城市' },\n { city_name: '苏州', initials: '热门城市' },\n { city_name: '西安', initials: '热门城市' },\n { city_name: '南京', initials: '热门城市' },\n ],\n })\n }\n dispatch({\n type: 'setCities',\n payload: data,\n })\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n useEffect(() => {\n if (!cities || !cities.length) {\n fetchCities()\n }\n }, [cities, fetchCities])\n useEffect(() => {\n function handleDocumentClick(e: Event) {\n if (!ref.current || ref.current.contains(e.target as Node)) {\n return\n }\n onChange && onChange()\n // setCity(Object.assign({}, city, { show: false }))\n }\n on(window, 'click', handleDocumentClick)\n return () => {\n off(window, 'click', handleDocumentClick)\n }\n }, [onChange])\n\n /* 渲染城市首字母 */\n function renderLetter() {\n if (!cities) {\n return null\n }\n return (\n
\n {cities.map((item, index) => (\n {\n setCurrIndex(index)\n // scrollView(item.initials)\n }}\n >\n {item.initials.slice(0, 1).toLocaleUpperCase()}\n \n ))}\n \n
\n )\n }\n\n /* 渲染城市列表 */\n function renderCities() {\n if (!cities) {\n return null\n }\n return (\n
\n {cities.map(city => {\n return (\n \n

{city.initials.toLocaleUpperCase()}

\n {city.city.map((item: ICity['city'][0]) => (\n {\n // setCity({ show: false, name: item.city_name })\n dispatch({\n type: 'setCityName',\n payload: item.city_name,\n })\n if (onChange) {\n onChange(item.city_name)\n }\n }}\n >\n {item.city_name}\n \n ))}\n
\n )\n })}\n \n \n )\n }\n if (!cities || !cities.length) {\n return null\n }\n return (\n ) => {\n e.stopPropagation()\n }}\n >\n {renderLetter()}\n {renderCities()}\n \n \n )\n}\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","import React, { createContext, useState, useEffect } from 'react'\nimport Cache from 'js-cache'\nconst CacheStoreContext = createContext<{\n cache: any\n}>({\n cache: undefined,\n})\n\nconst CacheStoreProvider = (props: { children: React.ReactNode }) => {\n const { children } = props\n const [cache, setCache] = useState(undefined)\n\n useEffect(() => {\n try {\n setCache(new Cache())\n } catch (error) {\n console.error(error)\n setCache(undefined)\n }\n }, [])\n\n return (\n \n {children}\n \n )\n}\n\nexport { CacheStoreContext, CacheStoreProvider }\n","module.exports = \"data:image/png;base64,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\"","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAABtklEQVRoBe1YQY7CMAw0aE99wYofcN59DBz2dRzgMdz7A8QLOJZNukJKJ5FrNy5LaHIBx8nE4ziuZaI6qgeW7YEV0r/u6dARbXFeI6+J2s8j/YR75sL9CA/x/3vj7/SF8xq5i9wyH65zVtkjugGgc6MVtTCXFu992DVpZTRrhssTcMZvjvQdHZ+YuOzpTNLQM8QtPoSKJ8CHEITKZeeCJBibk3shBiMHt/gbqAQMIigLQvUGrGIeLc7BrSGE3ny2zIeQKw/6L6zEqr9SQrKSXDI2w+UJEDXi8kBm+mOVGW7xbyC6AceoTdXzD9dJfj0GrpsLF8+pcvXA0jwQlcNzdQ+kuP6xhx2NcB/q/GVFWei/uxKYAUN7UOcJOFJlj+gGgI5Z94DF1XU0BlA8AcPuweBUwFV1NAZACwgh4PsEESvVkSqXDyGwN6d7AFCcqKpU3z4LcZ4y0/kPVCrH4wF+Hc6pQgg3W8nhl1eLqSKQ0z3QGiZdryIgBdWu4+odTufPeQkCXL3D6cYJYE7mXDuSr7mtObqxG1Dl5BxDpu59v++ANCdzHkvl6xAX9VN1nA1VVz2wFA/8ApkEkJnGmCtUAAAAAElFTkSuQmCC\"","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","/**\n * Standalone extraction of Backbone.Events, no external dependency required.\n * Degrades nicely when Backone/underscore are already available in the current\n * global context.\n *\n * Note that docs suggest to use underscore's `_.extend()` method to add Events\n * support to some given object. A `mixin()` method has been added to the Events\n * prototype to avoid using underscore for that sole purpose:\n *\n * var myEventEmitter = BackboneEvents.mixin({});\n *\n * Or for a function constructor:\n *\n * function MyConstructor(){}\n * MyConstructor.prototype.foo = function(){}\n * BackboneEvents.mixin(MyConstructor.prototype);\n *\n * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.\n * (c) 2013 Nicolas Perriault\n */\n/* global exports:true, define, module */\n(function() {\n var root = this,\n nativeForEach = Array.prototype.forEach,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n slice = Array.prototype.slice,\n idCounter = 0;\n\n // Returns a partial implementation matching the minimal API subset required\n // by Backbone.Events\n function miniscore() {\n return {\n keys: Object.keys || function (obj) {\n if (typeof obj !== \"object\" && typeof obj !== \"function\" || obj === null) {\n throw new TypeError(\"keys() called on a non-object\");\n }\n var key, keys = [];\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys[keys.length] = key;\n }\n }\n return keys;\n },\n\n uniqueId: function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n },\n\n has: function(obj, key) {\n return hasOwnProperty.call(obj, key);\n },\n\n each: function(obj, iterator, context) {\n if (obj == null) return;\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, context);\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n iterator.call(context, obj[i], i, obj);\n }\n } else {\n for (var key in obj) {\n if (this.has(obj, key)) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n }\n },\n\n once: function(func) {\n var ran = false, memo;\n return function() {\n if (ran) return memo;\n ran = true;\n memo = func.apply(this, arguments);\n func = null;\n return memo;\n };\n }\n };\n }\n\n var _ = miniscore(), Events;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // custom events. You may bind with `on` or remove with `off` callback\n // functions to an event; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n Events = {\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n on: function(name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;\n this._events || (this._events = {});\n var events = this._events[name] || (this._events[name] = []);\n events.push({callback: callback, context: context, ctx: context || this});\n return this;\n },\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, it will be removed.\n once: function(name, callback, context) {\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;\n var self = this;\n var once = _.once(function() {\n self.off(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n return this.on(name, once, context);\n },\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n off: function(name, callback, context) {\n var retain, ev, events, names, i, l, j, k;\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;\n if (!name && !callback && !context) {\n this._events = {};\n return this;\n }\n\n names = name ? [name] : _.keys(this._events);\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i];\n if (events = this._events[name]) {\n this._events[name] = retain = [];\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j];\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context)) {\n retain.push(ev);\n }\n }\n }\n if (!retain.length) delete this._events[name];\n }\n }\n\n return this;\n },\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n trigger: function(name) {\n if (!this._events) return this;\n var args = slice.call(arguments, 1);\n if (!eventsApi(this, 'trigger', name, args)) return this;\n var events = this._events[name];\n var allEvents = this._events.all;\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, arguments);\n return this;\n },\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n stopListening: function(obj, name, callback) {\n var listeners = this._listeners;\n if (!listeners) return this;\n var deleteListener = !name && !callback;\n if (typeof name === 'object') callback = this;\n if (obj) (listeners = {})[obj._listenerId] = obj;\n for (var id in listeners) {\n listeners[id].off(name, callback, this);\n if (deleteListener) delete this._listeners[id];\n }\n return this;\n }\n\n };\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // Implement fancy features of the Events API such as multiple event\n // names `\"change blur\"` and jQuery-style event maps `{change: action}`\n // in terms of the existing API.\n var eventsApi = function(obj, action, name, rest) {\n if (!name) return true;\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (var key in name) {\n obj[action].apply(obj, [key, name[key]].concat(rest));\n }\n return false;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n var names = name.split(eventSplitter);\n for (var i = 0, l = names.length; i < l; i++) {\n obj[action].apply(obj, [names[i]].concat(rest));\n }\n return false;\n }\n\n return true;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args);\n }\n };\n\n var listenMethods = {listenTo: 'on', listenToOnce: 'once'};\n\n // Inversion-of-control versions of `on` and `once`. Tell *this* object to\n // listen to an event in another object ... keeping track of what it's\n // listening to.\n _.each(listenMethods, function(implementation, method) {\n Events[method] = function(obj, name, callback) {\n var listeners = this._listeners || (this._listeners = {});\n var id = obj._listenerId || (obj._listenerId = _.uniqueId('l'));\n listeners[id] = obj;\n if (typeof name === 'object') callback = this;\n obj[implementation](name, callback, this);\n return this;\n };\n });\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Mixin utility\n Events.mixin = function(proto) {\n var exports = ['on', 'once', 'off', 'trigger', 'stopListening', 'listenTo',\n 'listenToOnce', 'bind', 'unbind'];\n _.each(exports, function(name) {\n proto[name] = this[name];\n }, this);\n return proto;\n };\n\n // Export Events as BackboneEvents depending on current context\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = Events;\n }\n exports.BackboneEvents = Events;\n }else if (typeof define === \"function\" && typeof define.amd == \"object\") {\n define(function() {\n return Events;\n });\n } else {\n root.BackboneEvents = Events;\n }\n})(this);\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","var timeout = require('infinite-timeout');\nvar events = require('backbone-events-standalone');\n\n/**\n * Find out if an object has a certain property\n *\n * @param {object} object\n * @param {string} key\n */\nfunction has(object, key){\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Cache class\n */\nfunction Cache(){\n this.initialize.apply(this, arguments);\n}\nvar _ = Cache.prototype;\nevents.mixin(_);\n\n/**\n * Constructor\n *\n * @param {object} external Forward set, get, clear and del commands to an external handler (optional)\n */\n_.initialize = function(external){\n this.store = {};\n this.external = external;\n};\n\n/**\n * Insert or overwrite data\n *\n * @param {string} key\n * @param {mixed} value\n * @param {number} ttl Time to live in milliseconds (optional)\n */\n_.set = function(key, value, ttl){\n if(typeof key === 'undefined') throw new Error('Required argument key is undefined');\n\n // Clear timeout on existing record\n var oldRecord = has(this.store, key)? this.store[key] : undefined;\n if(oldRecord && oldRecord.timeout){\n timeout.clear(oldRecord.timeout);\n }\n\n // Set value + timeout on new record\n var record = {value: value};\n if(typeof ttl === 'number'){\n record.timeout = timeout.set(this.delInternal.bind(this, key), ttl);\n }\n this.store[key] = record;\n\n // Call external handler\n if(this.external && typeof this.external.set === 'function'){\n this.external.set(key, value, ttl);\n }\n\n // Emit update/set events\n var action = oldRecord? 'update' : 'set';\n this.trigger(action, key, value, ttl);\n this.trigger(action + ':' + key, value, ttl);\n};\n\n/**\n * Get cached data\n *\n * @param {string} key\n * @param {function} callback Return value in callback if records exists locally or on external resource (optional)\n * @return {mixed} value Only returned if callback is undefined\n */\n_.get = function(key, callback){\n if(typeof key === 'undefined') throw new Error('Required argument key is undefined');\n if(has(this.store, key)){\n if(typeof callback === 'function'){\n process.nextTick(callback.bind(null, this.store[key].value));\n }else{\n return this.store[key].value;\n }\n }else if(typeof callback === 'function' && this.external && typeof this.external.get === 'function'){\n this.external.get(key, callback);\n }\n};\n\n/**\n * Delete cached data\n *\n * @param {string} key\n * @return {boolean} Returns true if record existed\n */\n_.del = function(key){\n if(typeof key === 'undefined') throw new Error('Required argument key is undefined');\n if(this.external && typeof this.external.del === 'function'){\n this.external.del(key);\n }\n return this.delInternal(key);\n};\n\n_.delInternal = function(key){\n if(has(this.store, key)){\n\n // Clear timeout\n if(this.store[key].timeout){\n timeout.clear(this.store[key].timeout);\n }\n\n // Delete record\n delete this.store[key];\n\n // Emit del events\n this.trigger('del', key);\n this.trigger('del:' + key);\n return true;\n }else{\n return false;\n }\n};\n\n/**\n * Clear cached data\n *\n * @return {number} Returns number of cleared records\n */\n_.clear = function(){\n var size = this.size();\n this.store = {};\n if(this.external && typeof this.external.clear === 'function'){\n this.external.clear();\n }\n this.trigger('clear', size);\n return size;\n};\n\n/**\n * Retrieve number of records\n *\n * @return {number}\n */\n_.size = function(){\n var size = 0;\n for(var key in this.store){\n if(has(this.store, key)) size++;\n }\n return size;\n};\n\n/**\n * Retrieve internal store\n *\n * @return {object}\n */\n_.debug = function(){\n return this.store;\n};\n\n/**\n * Retrieve list of keys\n *\n * @return {string[]}\n */\n_.keys = function(){\n return Object.keys(this.store);\n};\n\n\n/**\n * Export a combined instance and constructor\n */\nvar instance = new Cache();\nvar constructor = function(){\n return new Cache(arguments[0]);\n};\nconstructor.Cache = Cache;\nfor(var key in _){\n if(has(_, key) && typeof _[key] === 'function'){\n constructor[key] = _[key].bind(instance);\n }\n}\nmodule.exports = constructor;\n","import React, { useState, useContext, useEffect, useCallback } from 'react'\nimport fetch from 'isomorphic-unfetch'\nimport applyHttpsImage from 'lib/apply-https-img'\nimport getUrl from 'lib/url'\nimport cookie from 'cookie'\nimport { GlobalStoreContext } from 'Components/store'\nimport {\n getLoginHref,\n getRegisterHref,\n getLogoutHref,\n} from 'lib/get-login-href'\nimport { teaConfig } from 'lib/tea-analyze'\n\nconst fetchAntiToken = () => {\n return fetch(getUrl('/tt-anti-token'))\n .then(res => res.json())\n .then(res => {\n window.localStorage.setItem('tt-anti-token', res?.data?.token || '')\n })\n .catch(err => {\n console.error(err)\n })\n}\n\nexport default function User() {\n // 设置全局的城市\n const { state: globalStore, dispatch } = useContext(GlobalStoreContext)\n const { userData } = globalStore\n const [loginHref, setLoginHref] = useState('')\n const [registryHref, setRegistryHref] = useState('')\n const [logoutHref, setLogooutHref] = useState('')\n\n const fetchUserData = useCallback(() => {\n const cookies = cookie.parse(document.cookie)\n let userData\n try {\n userData = JSON.parse(cookies?.user_data)\n } catch (error) {\n // console.error(error)\n }\n if (userData) {\n dispatch({\n type: 'setUserData',\n payload: userData,\n })\n }\n }, [dispatch])\n\n useEffect(() => {\n if (!userData) {\n fetchUserData()\n fetchAntiToken()\n }\n\n setLoginHref(getLoginHref())\n setRegistryHref(getRegisterHref())\n setLogooutHref(getLogoutHref())\n }, [fetchUserData, userData])\n\n const isLogin = userData && userData.user_id\n const screenName = (userData && userData.screen_name) || ''\n\n useEffect(() => {\n if (userData?.user_id) {\n sessionStorage.setItem('userData', JSON.stringify(userData))\n teaConfig({\n user_id: userData.user_id,\n })\n }\n }, [userData?.user_id])\n\n return (\n ) => {\n e.stopPropagation()\n }}\n >\n {isLogin ? (\n
\n
\n
\n ) : (\n \n )}\n \n \n
\n )\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n"],"sourceRoot":""}