diff options
| author | sD <stoned@derpymail.org> | 2020-05-27 22:34:52 +0200 |
|---|---|---|
| committer | sD <stoned@derpymail.org> | 2020-05-27 22:34:52 +0200 |
| commit | cdaea55c1b357c042e9f9e8f6223f1fd6db2b616 (patch) | |
| tree | 32914bde278291311ea7e8ef22d338aabb0a54b1 /webAO/client.b.js.map | |
| parent | 0e2f19fa004af7686dbd0a608d3383866a73c104 (diff) | |
change chatwaiting back to opacity so i can animate it
Diffstat (limited to 'webAO/client.b.js.map')
| -rw-r--r-- | webAO/client.b.js.map | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/webAO/client.b.js.map b/webAO/client.b.js.map index bb552ac..1b2ec54 100644 --- a/webAO/client.b.js.map +++ b/webAO/client.b.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./webAO/encoding.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/fingerprintjs2/fingerprint2.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./webAO/client.js","webpack:///./webAO/characters.js","webpack:///./webAO/backgrounds.js","webpack:///./webAO/evidence.js","webpack:///./webAO/styles/chatbox/chatboxes.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","escapeChat","estring","replace","unescapeChat","safe_tags","unsafe","encodeChat","selectedEncoding","document","getElementById","ch","charCodeAt","toString","slice","buffer","ArrayBuffer","length","result","Uint16Array","strLen","String","prepChat","msg","selectedDecoding","match","group","fromCharCode","parseInt","apply","split","NAME","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","isObject","has","classof","createNonEnumerableProperty","redefine","f","getPrototypeOf","setPrototypeOf","wellKnownSymbol","uid","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","isPrototypeOf","TO_STRING_TAG","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Int32Array","Uint32Array","Float32Array","Float64Array","isTypedArray","it","Function","TypeError","this","undefined","aTypedArray","aTypedArrayConstructor","C","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","KEY","forced","exportTypedArrayStaticMethod","error","isView","klass","Math","check","globalThis","window","self","exec","shared","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","toInteger","min","argument","getOwnPropertyDescriptor","setGlobal","copyConstructorProperties","isForced","options","source","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","fails","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","definePropertyModule","createPropertyDescriptor","requireObjectCoercible","IndexedObject","toObject","toLength","arraySpeciesCreate","push","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","that","specificCreate","boundFunction","index","forEach","map","filter","some","every","find","findIndex","ceil","floor","isNaN","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","simple","join","bitmap","configurable","writable","set","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","store","wmget","wmhas","wmset","metadata","STATE","getterFor","state","type","path","aFunction","variable","namespace","method","arguments","SPECIES","defaultConstructor","S","constructor","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","input","PREFERRED_STRING","fn","val","valueOf","max","integer","cache","thrower","METHOD_NAME","ACCESSORS","argument0","argument1","aPossiblePrototype","setter","CORRECT_SETTER","test","Array","proto","__proto__","context","definition","x64Add","x64Multiply","x64Rotl","x64LeftShift","x64Xor","x64Fmix","h","x64hash128","seed","remainder","bytes","h1","h2","k1","k2","c1","c2","defaultOptions","preprocessor","audio","timeout","excludeIOS11","fonts","swfContainerId","swfPath","userDefinedFonts","extendedJsFonts","screen","detectScreenOrientation","plugins","sortPluginsFor","excludeIE","extraComponents","excludes","NOT_AVAILABLE","ERROR","EXCLUDED","each","obj","iterator","results","list","isEnumerateDevicesSupported","navigator","mediaDevices","enumerateDevices","getScreenResolution","resolution","width","height","sort","reverse","getAvailableScreenResolution","availWidth","availHeight","available","getRegularPlugins","pluginsShouldBeSorted","a","b","mimeTypes","mt","suffixes","description","getIEPlugins","ActiveXObject","e","concat","should","re","userAgent","hasSessionStorage","sessionStorage","hasLocalStorage","localStorage","hasIndexedDB","indexedDB","getHardwareConcurrency","hardwareConcurrency","getNavigatorCpuClass","cpuClass","getNavigatorPlatform","platform","getDoNotTrack","doNotTrack","msDoNotTrack","getTouchSupport","touchEvent","maxTouchPoints","msMaxTouchPoints","createEvent","_","getCanvasFp","canvas","createElement","style","display","ctx","getContext","rect","isPointInPath","textBaseline","fillStyle","fillRect","dontUseFakeFontInCanvas","font","fillText","globalCompositeOperation","beginPath","arc","PI","closePath","fill","toDataURL","getWebglFp","gl","fa2s","fa","clearColor","enable","DEPTH_TEST","depthFunc","LEQUAL","clear","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","getWebglCanvas","vertexPosBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","vertices","bufferData","STATIC_DRAW","itemSize","numItems","program","createProgram","vshader","createShader","VERTEX_SHADER","shaderSource","compileShader","fshader","FRAGMENT_SHADER","attachShader","linkProgram","useProgram","vertexPosAttrib","getAttribLocation","offsetUniform","getUniformLocation","enableVertexAttribArray","vertexPosArray","vertexAttribPointer","FLOAT","uniform2f","drawArrays","TRIANGLE_STRIP","getSupportedExtensions","getParameter","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALPHA_BITS","getContextAttributes","antialias","BLUE_BITS","DEPTH_BITS","GREEN_BITS","ext","getExtension","anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT","maxAnisotropy","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_RENDERBUFFER_SIZE","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_SIZE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","RED_BITS","RENDERER","SHADING_LANGUAGE_VERSION","STENCIL_BITS","VENDOR","VERSION","extensionDebugRendererInfo","UNMASKED_VENDOR_WEBGL","UNMASKED_RENDERER_WEBGL","getShaderPrecisionFormat","numType","shader","numSize","format","line","toLowerCase","getWebglVendorAndRenderer","glContext","getAdBlock","ads","innerHTML","className","body","appendChild","getElementsByClassName","offsetHeight","removeChild","getHasLiedLanguages","languages","substr","language","err","getHasLiedResolution","getHasLiedOs","os","oscpu","indexOf","getHasLiedBrowser","browser","productSub","errFirefox","tempRes","eval","toSource","errOfErr","isCanvasSupported","elem","isWebGlSupported","WebGLRenderingContext","isIE","appName","hasSwfObjectLoaded","swfobject","hasMinFlashInstalled","hasFlashPlayerVersion","loadSwfAndDetectFonts","done","id","node","setAttribute","addFlashDivNode","flashvars","onReady","embedSWF","allowScriptAccess","menu","components","getData","webdriver","userLanguage","browserLanguage","systemLanguage","colorDepth","deviceMemory","devicePixelRatio","Date","getTimezoneOffset","Intl","DateTimeFormat","resolvedOptions","timeZone","addBehavior","openDatabase","baseFonts","fontList","position","getElementsByTagName","baseFontsDiv","fontsDiv","defaultWidth","defaultHeight","createSpan","left","fontSize","fontStyle","fontWeight","letterSpacing","lineBreak","lineHeight","textTransform","textAlign","textDecoration","textShadow","whiteSpace","wordBreak","wordSpacing","createSpanWithFonts","fontToDetect","baseFont","fontFamily","isFontAvailable","fontSpans","detected","offsetWidth","baseFontsSpans","spans","initializeBaseFontsSpans","fontsSpans","j","numDefaultFonts","initializeFontsSpans","pauseBefore","audioOptions","AudioContext","OfflineAudioContext","webkitOfflineAudioContext","oscillator","createOscillator","frequency","setValueAtTime","currentTime","compressor","createDynamicsCompressor","item","connect","destination","start","startRendering","audioTimeoutId","setTimeout","console","warn","oncomplete","event","fingerprint","clearTimeout","renderedBuffer","getChannelData","reduce","acc","abs","disconnect","then","devices","device","deviceId","groupId","kind","label","catch","Fingerprint2","Error","callback","extendSoft","keys","data","addPreprocessedComponent","chainComponents","alreadyWaited","component","getPromise","Promise","resolve","reject","getV18","newComponents","murmur","internalObjectKeys","getOwnPropertyNames","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","src","contentWindow","open","F","Properties","CORRECT_PROTOTYPE_GETTER","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","TAG","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","re1","re2","regexpFlags","stickyHelpers","nativeExec","RegExp","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","str","reCopy","sticky","flags","charsAdded","strCopy","multiline","propertyIsEnumerable","postfix","random","isArray","arg","addToUnscopables","Iterators","defineIterator","setInternalState","iterated","Arguments","IS_RIGHT","argumentsLength","memo","right","$","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","groups","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","stringMethod","regexMethod","string","R","EXISTS","functionToString","IS_PURE","version","copyright","getOwnPropertySymbols","propertyKey","V8_VERSION","array","foo","Boolean","process","versions","v8","end","endPos","getBuiltIn","CONSTRUCTOR_NAME","Constructor","charAt","unicode","nativePropertyIsEnumerable","NASHORN_BUG","1","V","names","replacement","feature","detection","normalize","POLYFILL","NATIVE","originalArray","UNSCOPABLES","ArrayPrototype","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","next","from","SKIP_CLOSING","ITERATION_SUPPORT","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","BUGGY_SAFARI_ITERATORS","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","0","nativeSlice","k","fin","ignoreCase","dotAll","fixRegExpWellKnownSymbolLogic","isRegExp","speciesConstructor","advanceStringIndex","callRegExpExec","arrayPush","SUPPORTS_Y","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","res","rx","unicodeMatching","q","A","z","DataView","redefineAll","anInstance","toIndex","IEEE754","arrayFill","setToStringTag","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","RangeError","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","isLittleEndian","intIndex","byteLength","byteOffset","conversion","NaN","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","offset","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toPositiveInteger","BYTES","ownKeys","getOwnPropertyDescriptorModule","createIteratorConstructor","IteratorsCore","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","dummy","Wrapper","NewTarget","NewTargetPrototype","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","MATCH","CONVERT_TO_STRING","pos","first","second","size","codeAt","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","reason","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","capture","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","toOffset","typedArrayFrom","setSpecies","inheritIfRequired","round","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","typedArrayOffset","$length","$len","$copyWithin","$every","$fill","$filter","$find","predicate","$findIndex","$forEach","$includes","searchElement","$indexOf","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","$map","mapfn","$reduce","$reduceRight","middle","arrayLike","len","$slice","$some","$sort","comparefn","begin","beginIndex","BYTES_PER_ELEMENT","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","g","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","objectKeys","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","arrayMethodIsStrict","STRICT_METHOD","RE","checkCorrectnessOfIteration","iterable","pow","log","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","nBits","getIteratorMethod","isArrayIteratorMethod","step","mapping","iteratorMethod","copyWithin","to","inc","nativeLastIndexOf","lastIndexOf","NEGATIVE_ZERO","__webpack_amd_options__","arrayBufferModule","createTypedArrayConstructor","init","wrappedWellKnownSymbolModule","ENTRIES","returnMethod","defer","channel","port","IS_IOS","location","setImmediate","clearImmediate","MessageChannel","Dispatch","counter","queue","run","runner","listener","post","postMessage","protocol","host","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","PromiseCapability","promise","$$resolve","$$reject","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ReflectOwnKeys","Reflect","ReflectApply","receiver","NumberIsNaN","Number","EventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","emit","unshift","warned","w","emitter","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","listenerCount","copy","setMaxListeners","getMaxListeners","doError","er","message","handler","listeners","addListener","on","prependListener","once","prependOnceListener","originalListener","shift","pop","spliceOne","off","removeAllListeners","rawListeners","eventNames","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","HIDDEN","TO_PRIMITIVE","$Symbol","$stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","wrap","symbol","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","stringify","space","$replacer","windowNames","getWindowNames","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","callWithSafeIterationClosing","nativeIndexOf","FunctionPrototype","FunctionPrototypeToString","nameRE","trim","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","third","radix","maxCode","digits","code","NumberWrapper","whitespace","ltrim","rtrim","thisNumberValue","repeat","nativeToFixed","toFixed","x","fractionDigits","fractDigits","multiply","divide","dataToString","x2","Infinity","assign","nativeAssign","B","chr","T","nativeGetPrototypeOf","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","iterate","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","dispatchEvent","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","enter","exit","onUnhandled","initEvent","isUnhandled","parent","internalReject","internalResolve","executor","onFulfilled","onRejected","fetch","capability","$promiseResolve","remaining","alreadyCalled","race","Result","stopped","AS_ENTRIES","IS_ITERATOR","iterFn","stop","flush","head","last","toggle","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","createTextNode","observe","characterData","promiseCapability","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","construct","Target","newTarget","$args","instance","factories","argsLength","partArgs","notARegExp","correctIsRegExpLogic","searchString","point","nativeMatch","matcher","matchStr","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","is","y","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","search","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","runtime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","client","viewport","queryDict","hdid","serverIP","ip","DEFAULT_HOST","hostname","AO_HOST","asset","THEME","theme","MUSIC_HOST","transparentPNG","oldLoading","selectedMenu","selectedShout","extrafeatures","requestIdleCallback","Client","Viewport","loadResources","lastICMessageTime","address","serv","WebSocket","onOpen","onClose","onMessage","onError","hp","playerID","charID","char_list_length","evidence_list_length","music_list_length","testimonyID","chars","emotes","evidences","areas","musics","resources","selectedEmote","selectedEvidence","checkUpdater","handleMS","handleCT","handleMC","handleRMC","handleCI","handleSC","handleEI","handleFL","handleLE","handleEM","handleSM","handleMM","handleBD","handleKB","handleKK","handleDONE","handleBN","handleHP","handleRT","handleZZ","handleID","handlePN","handleSI","handleARUP","handleCharsCheck","handleDecryptor","handlePV","_lastTimeICReceived","send","setCookie","sendServer","deskmod","preanim","emote","side","sfx_name","emote_modifier","sfx_delay","objection_modifier","evidence","flip","realization","text_color","showname","other_charid","self_offset","noninterrupting_preanim","looping_sfx","screenshake","extra_cccc","extra_27","serverMessage","img","testimony","track","setInterval","sendCheck","innerText","iniedit_select","character_arr","inicharacter","add","Option","background_select","background_arr","background","evidence_select","evidence_arr","getCookie","cookietheme","querySelector","selected","reloadTheme","cookiechatbox","setChatbox","volume","changeMusicVolume","changeSFXVolume","changeBlipVolume","checked","character","song","_e","joinServer","textContent","cleanup","debug","header","clearInterval","resetMusiclist","chatmsg","char_id","char_name","msg_nameplate","msg_blips","char_chatbox","char_muted","gender","chat","muted","chargs","handleCharacterInfo","nameplate","chatbox","sprite","sound","blips","charid","snddelay","objection","flash","color","other_name","other_emote","other_offset","other_flip","frame_screenshake","frame_realization","frame_sfx","say","oocLog","scrollTop","scrollHeight","musicname","music","pause","encodeURI","play","appendICLog","totime","getTime","parseFloat","cini","icon","alt","request","cinidata","INI","parse","classList","default_options","default_emotions","emotions","inifile","filename","evidence_box","trackname","trackindex","isAudio","newentry","text","thisarea","players","status","cm","locked","newarea","title","onclick","area_click","handleMusicInfo","_args","handleBans","bgname","bg_index","getIndexFromSelect","selectedIndex","updateBackgroundPreview","changeBackground","healthbox","percent_hp","judgeid","initTestimonyUpdater","sfxaudio","oldvolume","serverSoftware","serverVersion","colorselect","demothing","demoonclick","createAttribute","setAttributeNode","opacity","me","emotesList","ini","updateActionCommands","emoteinfo","esfx","esfxd","soundn","soundt","zoom","sfx","sfxdelay","button_off","button_on","pickEmotion","contains","textnow","shouts","colors","blipChannels","Audio","currentBlipChannel","sfxplayed","shoutaudio","updater","testimonyUpdater","lastChar","lastEvi","testimonyTimer","shoutTimer","textTimer","_animating","sfxname","bgfolder","bgFolder","bench","court","bg","def","desk","ao2","ao1","speedLines","pro","hld","hlp","wit","jud","jur","sea","fileExists","deskFilename","2","3","4","testimonyOverlay","updateTestimony","requestBuffer","file","calculateGifLength","promises","errors","gifFile","duration","delay","resource","disposeTestimony","fg","gamewindow","waitingBox","animation","eviBox","charSprite","pairSprite","chatContainerBox","nameBoxInner","chatBoxInner","displayname","oneSuccess","rejectOnError","speakUrl","url","speakingSprite","silentUrl","silentSprite","shoutSprite","shout","soundUrl","shoutUrl","startpreanim","gifLength","getAnimLength","startspeaking","preanimdelay","resizeChatbox","transform","substring","tick","playSFX","charName","pairName","pairEmote","section","regex","param","comment","cname","ca","decodeURIComponent","cookie","onOOCEnter","keyCode","sendOOC","onEnter","mychar","myemo","evi","pairchar","pairoffset","sendIC","musiclist_filter","_event","musiclist_element","searchname","musiclist_click","playtrack","sendMusicChange","musiclist_elements","selectedOptions","mutelist_click","mutelist","selected_character","showname_click","area","areaHr","blipVolume","href","modcall_test","iniedit","ininame","inicharID","switchAspectRatio","offsetCheck","paddingBottom","disabled","switchChatOffset","container","changeCharacter","sendLeaveRoom","charError","image","imgError","onerror","xhr","XMLHttpRequest","responseType","statusText","response","ReconnectButton","time","nameField","textField","getMinutes","timeStamp","toLocaleTimeString","hour","minute","clientLog","chartable_filter","pickChar","ccharacter","sendCharacter","emo","pickEvidence","evidenceID","icon_id","updateEvidenceIcon","cancelEvidence","addEvidence","sendPE","editEvidence","sendEE","deleteEvidence","sendDE","select_box","select_element","chatbox_theme","selected_theme","chatbox_arr","gameHeight","evidence_filename","evidence_iconbox","role_select","changeBackgroundOOC","selectedBG","changeBGCommand","bgFilename","changeRoleOOC","role_command","randomCharacterOOC","callMod","modcall","prompt","sendZZ","initWT","sendRT","initCE","notguilty","guilty","addHPD","sendHP","redHPD","addHPP","redHPP","background_filename","background_preview","toggleEffect","button","toggleMenu","toggleShout"],"mappings":"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S5B,EAAMO,WAAYP,EAAMI,UACtCE,EAAcN,GACP1B,IAKb,MAAS,SAAS2B,GAChB,IAAK,IAAIp1C,EAAIoG,KAAKovC,WAAWxyC,OAAS,EAAGhD,GAAK,IAAKA,EAAG,CACpD,IAAIm1C,EAAQ/uC,KAAKovC,WAAWx1C,GAC5B,GAAIm1C,EAAMC,SAAWA,EAAQ,CAC3B,IAAItB,EAASqB,EAAMO,WACnB,GAAoB,UAAhB5B,EAAO5mC,KAAkB,CAC3B,IAAI+pC,EAASnD,EAAO/pB,IACpB0rB,EAAcN,GAEhB,OAAO8B,GAMX,MAAM,IAAIjyB,MAAM,0BAGlBkyB,cAAe,SAASha,EAAU6X,EAAYC,GAa5C,OAZA5uC,KAAKktC,SAAW,CACdzhC,SAAUikB,EAAOoH,GACjB6X,WAAYA,EACZC,QAASA,GAGS,SAAhB5uC,KAAKmH,SAGPnH,KAAK2jB,SA1qBP1jB,GA6qBOotC,IAQJ3zC,EA1rBK,CAisBiBC,EAAOD,SAGtC,IACEq3C,mBAAqB7E,EACrB,MAAO8E,GAUPlxC,SAAS,IAAK,yBAAdA,CAAwCosC,K,olFCjsBtC+E,EACAC,E,wBCvBW,GACX,YACA,kBACA,gBACA,mBACA,eACA,gBACA,gCACA,eACA,gBACA,aACA,aACA,gBACA,gBACA,YACA,qBACA,eACA,eACA,gBACA,eACA,YACA,eACA,eACA,aACA,sBACA,aACA,YACA,aACA,sBACA,cACA,WACA,SACA,oBACA,qBACA,SACA,cACA,WACA,kBACA,UACA,YACA,mBACA,UACA,YACA,iBACA,UACA,YACA,iBACA,UACA,YACA,kBACA,UACA,gBACA,YACA,UACA,YACA,gBACA,YACA,SACA,cACA,WACA,yBACA,SACA,cACA,WACA,oBACA,SACA,cACA,WACA,oBACA,SACA,WACA,WACA,MACA,SACA,WACA,gBACA,SACA,oBACA,WACA,MACA,MACA,SACA,WACA,kBACA,SACA,WACA,gBACA,gBACA,UACA,gBACA,cACA,cACA,YACA,YACA,aACA,cACA,aACA,aACA,aACA,aACA,qBACA,WACA,SACA,eACA,aACA,aACA,UACA,UACA,gBACA,cACA,SACA,UACA,WACA,UACA,UACA,kBACA,SACA,MACA,YACA,OACA,SACA,iBACA,iBACA,gBACA,SACA,QACA,UACA,SACA,iBACA,WACA,cACA,UACA,WACA,QACA,KACA,WACA,UACA,QACA,gBACA,mBACA,kBACA,UACA,SACA,QACA,kBACA,iBACA,iBACA,iBACA,gBACA,gBACA,WACA,6BACA,QACA,iBACA,oBACA,oBACA,cACA,QACA,WACA,OACA,QACA,UACA,OACA,uBACA,UACA,iBACA,QACA,mBACA,yBACA,gBACA,oBACA,YACA,WACA,mBACA,QACA,iCACA,gBACA,QACA,cACA,QACA,iBACA,SACA,WACA,cACA,UACA,UACA,WACA,qBACA,QACA,eACA,QACA,gBACA,SACA,WACA,SACA,eACA,gBACA,aACA,QACA,cACA,aACA,WACA,QACA,eACA,kBACA,kBACA,iBACA,OACA,eACA,OACA,YACA,oBACA,kBACA,UACA,QACA,YACA,QACA,WACA,UACA,cACA,kBACA,OACA,SACA,cACA,YACA,wBACA,iBACA,aACA,cACA,WACA,eACA,mBACA,eACA,gBACA,cACA,YACA,YACA,YACA,eACA,qBACA,YACA,aACA,QACA,aACA,YACA,aACA,QACA,YACA,UACA,QACA,qBACA,UACA,aACA,SACA,YACA,mBACA,gBACA,OACA,SACA,QACA,OACA,aACA,WACA,WACA,QACA,QACA,YACA,cACA,oBACA,mBACA,YACA,4BACA,iBACA,sBACA,UACA,kBACA,aACA,aACA,aACA,OACA,eACA,YACA,SACA,SACA,YACA,UACA,UACA,eACA,mBACA,YACA,SACA,eACA,gBACA,uBACA,gBACA,0CACA,eACA,YACA,YACA,WACA,aACA,cACA,iBACA,WACA,cACA,UACA,iBACA,YACA,UACA,YACA,QACA,UACA,UACA,QACA,aACA,YACA,OACA,aACA,WACA,aACA,iBACA,uBACA,kBACA,mBACA,SACA,gBACA,SACA,QACA,aACA,qBACA,OACA,WACA,UACA,aACA,aACA,aACA,WACA,QACA,iBACA,iBACA,UACA,QACA,kBACA,YACA,UACA,UACA,SACA,UACA,UACA,qBACA,wBACA,KACA,OACA,WACA,WACA,SACA,UACA,MACA,gBACA,UACA,QACA,aACA,cACA,cACA,SACA,cACA,iBACA,WACA,gBACA,iBACA,aACA,aACA,SACA,mBACA,cACA,UACA,UACA,cACA,UACA,aACA,YACA,aACA,oBACA,kBACA,gBACA,kBACA,mBACA,gBACA,YACA,SACA,iBACA,mBACA,QACA,SACA,eACA,QACA,mBACA,iBACA,SACA,QACA,mBACA,eACA,iBACA,QACA,QACA,OACA,SACA,SACA,QACA,gBACA,WACA,aACA,mBACA,QACA,QACA,UACA,aACA,SACA,iBACA,OACA,WACA,SACA,gBACA,UACA,WACA,kBACA,UACA,iBACA,kBACA,WACA,cACA,YACA,aACA,YACA,gBACA,aACA,aACA,iBACA,aACA,QACA,WACA,UACA,qBACA,gBACA,UACA,gBACA,cACA,eACA,uBACA,QACA,cACA,eACA,QACA,mBACA,YACA,gBACA,OACA,cACA,WACA,UACA,OACA,KACA,UACA,WACA,qBACA,yBACA,qBACA,6BACA,YACA,cACA,cACA,sBACA,mBACA,QACA,SACA,aACA,aACA,QACA,cACA,UACA,aACA,oCACA,gBACA,UACA,UACA,SACA,SACA,WACA,SACA,gBACA,uBACA,eACA,iBACA,YACA,YACA,WACA,OACA,SACA,gBACA,UACA,mBACA,uBACA,kBACA,aACA,aACA,aACA,OACA,0BACA,6BACA,yBACA,oBACA,gBACA,UACA,oBACA,iBACA,UACA,yBACA,QACA,gBACA,qBACA,YACA,aACA,YACA,YACA,QACA,YACA,cACA,QACA,YACA,SACA,SACA,QACA,aACA,SACA,SACA,eACA,aACA,aACA,OACA,OACA,OACA,UACA,gBACA,iBACA,OACA,eACA,SACA,gBACA,mBACA,SACA,iBACA,qBACA,eACA,QACA,QACA,YACA,gBACA,SACA,eACA,wBACA,aACA,wBACA,wBACA,aACA,SACA,SACA,UACA,WACA,iBACA,SACA,SACA,OACA,WACA,UACA,gBACA,iBACA,eACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,QACA,SACA,mBACA,oBACA,WACA,aACA,WACA,OACA,aACA,gBACA,QACA,YACA,YACA,gBACA,cACA,YACA,sBACA,WACA,cACA,YACA,cACA,UACA,YACA,cACA,OACA,SACA,kBACA,OACA,eACA,mCACA,oBACA,oBACA,YACA,gBACA,WACA,gBACA,cACA,UACA,eACA,cACA,WACA,cACA,QACA,UACA,aACA,UACA,QACA,SACA,UACA,UACA,iBACA,SACA,QACA,SACA,WACA,aACA,eACA,QACA,QACA,kBACA,eACA,QACA,gBACA,YACA,SACA,eACA,UACA,WACA,gBACA,WACA,UACA,MACA,aACA,OACA,oBACA,WACA,UACA,kBACA,4BACA,gBACA,OACA,UACA,SACA,aACA,QACA,QACA,SACA,SACA,YACA,aACA,WACA,YACA,SACA,iBACA,WACA,UACA,OACA,UACA,OACA,0BACA,WACA,OACA,OACA,YACA,YACA,eACA,cACA,cACA,eACA,aACA,eACA,eACA,kBACA,OACA,eACA,QACA,aACA,aACA,QACA,QACA,QACA,UACA,SACA,YACA,QACA,aACA,qBACA,iBACA,YACA,WACA,QACA,aACA,OACA,SACA,MACA,WACA,WACA,SACA,QACA,QACA,OACA,UACA,SACA,gBACA,iBACA,UACA,OACA,UACA,oBACA,SACA,qBACA,YACA,qBACA,cACA,QACA,aACA,SACA,eACA,KACA,UACA,YACA,SACA,yBACA,sBACA,MACA,OACA,MACA,cACA,WACA,mBACA,KACA,QACA,QACA,iBACA,gBACA,aACA,SACA,SACA,qBACA,UACA,YACA,cACA,wBACA,QACA,kBACA,mBACA,mBACA,qBACA,eACA,eACA,iBACA,QACA,eACA,QACA,SACA,UACA,UACA,cACA,SACA,QACA,aACA,SACA,UACA,eACA,aACA,SACA,eACA,cACA,eACA,gBACA,SACA,YACA,gBACA,sBACA,gBACA,sBACA,eACA,cACA,cACA,iBACA,UACA,YACA,yBACA,0BACA,SACA,YACA,oBACA,SACA,aACA,cACA,YACA,aACA,QACA,cACA,gBACA,mBACA,kBACA,kBACA,WACA,oBACA,wBACA,mBACA,cACA,SACA,cACA,QACA,qBACA,mBACA,UACA,OACA,SACA,QACA,cACA,YACA,QACA,cACA,WACA,SACA,YACA,QACA,UACA,SACA,WACA,QACA,SACA,QACA,uBACA,SACA,SACA,eACA,uBACA,UACA,QACA,YACA,OACA,YACA,MACA,aACA,gBACA,gBACA,OACA,YACA,gBACA,qBACA,qBACA,SACA,kBACA,UACA,WACA,UACA,QACA,YACA,YACA,eACA,UACA,SACA,SACA,OACA,SACA,SACA,QACA,oBACA,iBACA,oBACA,UACA,iBACA,iBACA,SACA,aACA,YACA,QACA,YACA,mBACA,sBACA,gBACA,QACA,UACA,mBACA,cACA,oBACA,aACA,YACA,UACA,UACA,OACA,SACA,YACA,gBACA,cACA,aACA,MACA,SACA,QACA,UACA,cACA,eACA,aACA,YACA,WACA,aACA,SACA,UACA,iBACA,gBACA,aACA,aACA,UACA,WACA,MACA,aACA,WACA,gBACA,mBACA,WACA,QACA,iBACA,gBACA,YACA,SACA,gBACA,uBACA,eACA,iBACA,YACA,YACA,SACA,UACA,mBACA,SACA,iBACA,WACA,SACA,cACA,WACA,eACA,QACA,mBACA,eACA,aACA,kBACA,kBACA,0BACA,gBACA,YACA,gBACA,eACA,iBACA,eACA,eACA,OACA,UACA,eACA,cACA,cACA,SACA,gBACA,gBACA,OACA,gBACA,UACA,cACA,UACA,oBACA,aACA,SACA,cACA,qBACA,gBACA,UACA,YACA,SACA,gBACA,eACA,YACA,oBACA,mBACA,SACA,gBACA,oBACA,YACA,wBACA,QACA,SACA,gBACA,mBACA,aACA,YACA,SACA,sBACA,SACA,kBACA,sBACA,qBACA,WACA,cACA,SACA,qBACA,gBACA,YACA,MACA,SACA,aACA,aACA,UACA,cACA,WACA,cACA,gBACA,eACA,QACA,UACA,WACA,SACA,OACA,eACA,oBACA,SACA,WACA,QACA,cACA,QACA,eACA,OACA,WACA,MACA,QACA,kBACA,OACA,SACA,OACA,oBACA,OACA,QACA,kBACA,gBACA,cACA,cACA,UACA,WACA,WACA,UACA,gBACA,QACA,KACA,MACA,YACA,UACA,QACA,0BACA,SACA,YACA,cACA,OACA,MACA,YACA,QACA,QACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,iBACA,YACA,YACA,OACA,SACA,cACA,wBACA,aACA,aACA,sBACA,WACA,WACA,oBACA,cACA,gBACA,gBACA,iBACA,iBACA,gBACA,eACA,SACA,eACA,QACA,iBACA,qBACA,oBACA,WACA,IACA,mBACA,mBACA,cACA,oBACA,gBACA,QACA,iBACA,oBACA,SACA,gBACA,oBACA,mBACA,aACA,iBACA,eACA,iBACA,iBACA,QACA,QACA,SACA,aACA,SACA,OACA,iBACA,iBACA,MACA,kBACA,eACA,aACA,eACA,OACA,SACA,gBACA,sBACA,MACA,aACA,gBACA,SACA,OACA,cACA,mBACA,gBACA,aACA,eACA,OACA,QACA,UACA,UACA,YACA,SACA,aACA,eACA,cACA,QACA,OACA,QACA,WACA,UACA,oBACA,cACA,WACA,WACA,WACA,YACA,eACA,WACA,oBACA,yBACA,mBACA,kBACA,iBACA,iBACA,YACA,gBACA,cACA,iBACA,WACA,WACA,aACA,kBACA,UACA,UACA,WACA,eACA,eACA,iBACA,UACA,UACA,gBACA,gBACA,eACA,YACA,aACA,WACA,cACA,iBACA,OACA,WACA,oBACA,kBACA,OACA,aACA,UACA,UACA,iBACA,iBACA,QACA,gBACA,iBACA,wBACA,qBACA,eACA,gBACA,oBACA,oBACA,aACA,aACA,WACA,SACA,mBACA,cACA,iBACA,UACA,UACA,SACA,mBACA,sBACA,yBACA,mBACA,IACA,aACA,QACA,UACA,QACA,iBACA,oBACA,gBACA,yBACA,YACA,SACA,UACA,mBACA,MACA,YACA,QACA,eACA,WACA,SACA,sBACA,gBACA,cACA,cACA,YACA,kBACA,qBACA,QACA,gBACA,aACA,QACA,gBACA,WACA,oBACA,WACA,gBACA,SACA,aACA,gBACA,qBACA,QACA,gBACA,YACA,iBACA,mBACA,QACA,MACA,cACA,cACA,aACA,QACA,WACA,qBACA,SACA,mBACA,cACA,kBACA,WACA,cACA,oBACA,kBACA,iBACA,QACA,cACA,QACA,gBACA,WACA,MACA,YACA,WACA,WACA,gBACA,eACA,QACA,WACA,WACA,WACA,eACA,SACA,cACA,kBACA,OACA,SACA,QACA,QACA,WACA,kBACA,oBACA,cACA,eACA,eACA,sBACA,kBACA,SACA,SACA,cACA,iBACA,cACA,uBACA,qBACA,YACA,OACA,iBACA,oBACA,wBACA,mBACA,OACA,UACA,iBACA,iBACA,gBACA,cACA,gBACA,YACA,YACA,aACA,SACA,YACA,OACA,KACA,YACA,WACA,cACA,iBACA,kBACA,qBACA,SACA,iBACA,UACA,gBACA,cACA,UACA,cACA,iBACA,iBACA,eACA,aACA,eACA,aACA,UACA,gBACA,qBACA,YACA,kBACA,UACA,qBACA,SACA,eACA,kBACA,cACA,SACA,YACA,WACA,oBACA,uBACA,mBACA,WACA,SACA,gBACA,oBACA,mBACA,eACA,iBACA,WACA,aACA,iBACA,gBACA,aACA,YACA,OACA,SACA,WACA,WACA,eACA,cACA,eACA,cACA,SACA,kBACA,WACA,iBACA,cACA,gBACA,kBACA,WACA,OACA,4BACA,sBACA,gBACA,iBACA,IACA,UACA,gCACA,SACA,OACA,YACA,aACA,SACA,SACA,YACA,WACA,OACA,YACA,QACA,QACA,cACA,kBACA,uBACA,OACA,QACA,WACA,aACA,WACA,eACA,SACA,gBACA,SACA,eACA,UACA,SACA,cACA,oBACA,aACA,WACA,gBACA,eACA,mBACA,mBACA,UACA,SACA,UACA,QACA,UACA,0BACA,SACA,MACA,mBACA,OACA,cACA,kBACA,UACA,UACA,UACA,sBACA,QACA,gBACA,YACA,cACA,aACA,QACA,qBACA,WACA,QACA,gBACA,OACA,aACA,QACA,qBACA,QACA,mBACA,WACA,OACA,cACA,QACA,SACA,UACA,iBACA,YACA,UACA,OACA,QACA,WACA,QACA,YACA,aACA,WACA,UACA,QACA,cACA,UACA,gBACA,SACA,iBACA,sBACA,aACA,OACA,aACA,oBACA,QACA,OACA,OACA,gBACA,OACA,aACA,aACA,iBACA,cACA,OACA,SACA,QACA,MACA,sBACA,QACA,OACA,QACA,WACA,QACA,eACA,WACA,MACA,WACA,SACA,aACA,eACA,aACA,YACA,WACA,UACA,SACA,SACA,qBACA,YACA,gBACA,cACA,SACA,UACA,UACA,SACA,SACA,OACA,YACA,OACA,gBACA,mBACA,SACA,eACA,mCACA,gBACA,WACA,cACA,gBACA,YACA,aACA,QACA,YACA,QACA,WACA,UACA,UACA,qBACA,UACA,cACA,eACA,oBACA,aACA,YACA,WACA,cACA,WACA,QACA,QACA,WACA,eACA,iBACA,SACA,cACA,kBACA,8BACA,eACA,YACA,cACA,eACA,QACA,WACA,aACA,aACA,QACA,gBACA,qBACA,mBACA,gBACA,oBACA,SACA,gBACA,oBACA,mBACA,QACA,qBACA,UACA,kBACA,OACA,eACA,SACA,UACA,MACA,wBACA,OACA,WACA,oBACA,cACA,WACA,UACA,SACA,SACA,UACA,aACA,gBACA,uBACA,UACA,SACA,gBACA,YACA,cACA,mBACA,mBACA,oBACA,oBACA,kBACA,mBACA,kBACA,kBACA,mBACA,mBACA,cACA,eACA,gBACA,gBACA,gBACA,iBACA,gBACA,gBACA,cACA,eACA,cACA,eACA,kBACA,kBACA,iBACA,iBACA,kBACA,kBACA,iBACA,iBACA,iBACA,iBACA,eACA,gBACA,QACA,sBACA,UACA,aACA,gBACA,UACA,YACA,cACA,aACA,SACA,aACA,aACA,YACA,WACA,UACA,QACA,SACA,SACA,UACA,cACA,cACA,QACA,WACA,gBACA,MACA,UACA,mBACA,UACA,YACA,QACA,uBACA,UACA,sBACA,iBACA,aACA,YACA,cACA,eACA,iBACA,oBACA,qBACA,QACA,eACA,WACA,WACA,OACA,eACA,UACA,cACA,SACA,WACA,iBACA,cACA,QACA,YACA,UACA,kBACA,YACA,kBACA,WACA,YACA,YACA,aACA,cACA,kBACA,WACA,qBACA,UACA,UACA,cACA,WACA,WACA,QACA,WACA,OACA,YACA,kBACA,eACA,uBACA,4BACA,kBACA,mBACA,YACA,YACA,UACA,aACA,aACA,UACA,YACA,oBACA,cACA,UACA,iBACA,gBACA,aACA,MACA,YACA,eACA,eACA,iBACA,aACA,cACA,aACA,eACA,UACA,MACA,QACA,UACA,oBACA,0BACA,eACA,SACA,cACA,kBACA,iBACA,aACA,QACA,kBACA,cACA,WACA,SACA,WACA,gBACA,SACA,cACA,UACA,aACA,UACA,aACA,WACA,WACA,gBACA,cACA,aACA,iBACA,gBACA,cACA,SACA,aACA,YACA,aACA,gBACA,eACA,WACA,cACA,WACA,cACA,SACA,kBACA,gBACA,aACA,UACA,YACA,WACA,cACA,cACA,mBACA,gBACA,QACA,QACA,YACA,cACA,qBACA,iBACA,qBACA,oBACA,YACA,gBACA,wBACA,QACA,SACA,eACA,eACA,cACA,QACA,SACA,mBACA,uBACA,sBACA,SACA,sBACA,iBACA,aACA,gBACA,kBACA,YACA,YACA,UACA,SACA,SACA,uBACA,eACA,SACA,MACA,iBACA,QACA,iBACA,sBACA,kBACA,SACA,SACA,YACA,cACA,WACA,YACA,aACA,UACA,UACA,aACA,UACA,aACA,uBACA,OACA,OACA,gBACA,UACA,QACA,WACA,qBACA,cACA,OACA,WACA,gBACA,mBACA,QACA,kBACA,MACA,aACA,eACA,gBACA,qBACA,mBACA,UACA,UACA,gBACA,gBACA,UACA,YACA,aACA,SACA,aACA,YACA,MACA,WACA,cACA,SACA,eACA,QACA,iBACA,gBACA,WACA,WACA,mBACA,QACA,qBACA,YACA,OACA,mBACA,aACA,YACA,WACA,mBACA,SACA,WACA,OACA,kBACA,QACA,QACA,WACA,QACA,aACA,MACA,WACA,SACA,QACA,QACA,qBACA,SACA,UACA,mBACA,YACA,eACA,QACA,aACA,UACA,cACA,SACA,aACA,YACA,WACA,OACA,YACA,SACA,cACA,sBACA,yBACA,oBACA,eACA,UACA,OACA,kBACA,OACA,QACA,iBACA,uBACA,wBACA,qBACA,WACA,UACA,YACA,WACA,UACA,QACA,cACA,uBACA,cACA,UACA,SACA,SACA,YACA,gBACA,YACA,WACA,gBACA,UACA,UACA,QACA,eACA,QACA,WACA,WACA,WACA,YACA,gBACA,YACA,YACA,cACA,iBACA,WACA,UACA,SACA,UACA,QACA,WACA,YACA,aACA,mBACA,gBACA,UACA,WACA,eACA,aACA,aACA,OACA,6BACA,uBACA,oBACA,UACA,UACA,QACA,YACA,gBACA,QACA,YACA,UACA,UACA,OACA,sBACA,oBACA,qBACA,qBACA,oBACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,QACA,gBACA,YACA,MACA,aACA,UACA,cACA,kBACA,aACA,aACA,iBACA,eACA,kBACA,gBACA,eACA,mBACA,cACA,cACA,cACA,eACA,qBACA,YACA,cACA,kBACA,iBACA,gBACA,aACA,YACA,eACA,YACA,eACA,YACA,aACA,gBACA,oBACA,cACA,0BACA,SACA,UACA,uBACA,QACA,YACA,SACA,eACA,eACA,eACA,cACA,cACA,MACA,QACA,WACA,uBACA,OACA,cACA,mBACA,SACA,QACA,gBACA,QACA,iBACA,aACA,eACA,QACA,YACA,WACA,QACA,WACA,mBACA,qBACA,oBACA,qBACA,cACA,OACA,IACA,UACA,SACA,uBACA,YACA,kBACA,QACA,gBACA,eACA,SACA,iBACA,gBACA,QACA,QACA,SACA,UACA,eACA,aACA,YACA,iBACA,SACA,iBACA,YACA,cACA,aACA,UACA,gBACA,eACA,aACA,SACA,QACA,cACA,QACA,cACA,UACA,kBACA,wBACA,SACA,eACA,MACA,OACA,aACA,SACA,aACA,eACA,YACA,kBACA,gBACA,SACA,wBACA,SACA,OACA,mBACA,UACA,SACA,gBACA,gBACA,gBACA,kBACA,0BACA,iBACA,UACA,SACA,MACA,QACA,gBACA,QACA,YACA,UACA,qBACA,UACA,OACA,OACA,QACA,MACA,aACA,aACA,cACA,YACA,aACA,aACA,gBACA,QACA,oBACA,OACA,eACA,gBACA,aACA,QACA,gBACA,uBACA,uBACA,SACA,MACA,eACA,UACA,OACA,OACA,oBACA,MACA,aACA,SACA,OACA,eACA,oBACA,aACA,qBACA,oBACA,MACA,cACA,mBACA,UACA,UACA,SACA,OACA,YACA,SACA,QACA,QACA,uBACA,iBACA,QACA,QACA,qBACA,oBACA,QACA,aACA,qBACA,cACA,iBACA,gBACA,yBACA,mBACA,eACA,qBACA,iBACA,SACA,MACA,UACA,YACA,YACA,UACA,YACA,oBACA,WACA,UACA,cACA,aACA,YACA,SACA,cACA,YACA,SACA,UACA,aACA,cACA,SACA,aACA,SACA,UACA,iBACA,aACA,UACA,SACA,cACA,sBACA,gBACA,mBACA,gBACA,eACA,YACA,YACA,cACA,gBACA,MACA,cACA,iBACA,gBACA,qBACA,SACA,QACA,SACA,OACA,QACA,cACA,mBACA,OACA,gBACA,aACA,UACA,UACA,QACA,QACA,gBACA,QACA,mBACA,UACA,iBACA,UACA,2BACA,qBACA,SACA,iBACA,YACA,SACA,YACA,OACA,SACA,eACA,YACA,aACA,gBACA,cACA,YACA,QACA,wBACA,kBACA,WACA,kBACA,YACA,eACA,kBACA,SACA,YACA,YACA,UACA,gBACA,UACA,SACA,OACA,wBACA,QACA,cACA,SACA,YACA,SACA,kBACA,UACA,SACA,mBACA,WACA,kBACA,mBACA,kBACA,sBACA,iBACA,gBACA,WACA,cACA,UACA,UACA,gBACA,QACA,YACA,eACA,SACA,gBACA,mBACA,YACA,sBACA,QACA,aACA,YACA,gBACA,eACA,eACA,OACA,UACA,oBACA,mBACA,kBACA,MACA,eACA,oBACA,QACA,UACA,kBACA,4BACA,qBACA,qBACA,iBACA,mBACA,mBACA,iBACA,QACA,mBACA,WACA,MACA,UACA,QACA,SACA,gBACA,SACA,QACA,mBACA,iBACA,cACA,eACA,SACA,SACA,QACA,cACA,aACA,SACA,QACA,cACA,YACA,OACA,aACA,cACA,SACA,kBACA,qBACA,SACA,QACA,QACA,kBACA,sBACA,iBACA,WACA,QACA,gBACA,2BACA,qBACA,cACA,OACA,UACA,QACA,QACA,MACA,gBACA,gBACA,QACA,WACA,WACA,OACA,UACA,SACA,QACA,gBACA,uBACA,aACA,YACA,gBACA,QACA,MACA,UACA,aACA,WACA,oBACA,WACA,WACA,SACA,cACA,gBACA,kBACA,QACA,YACA,mBACA,WACA,iBACA,iBACA,WACA,SACA,aACA,aACA,aACA,WACA,YACA,gBACA,SACA,SACA,kBACA,WACA,aACA,cACA,UACA,UACA,UACA,QACA,UACA,aACA,gBACA,UACA,SACA,sBACA,qBACA,QACA,QACA,SACA,WACA,SACA,sBACA,WACA,aACA,WACA,UACA,eACA,qBACA,MACA,SACA,MACA,aACA,iBACA,SACA,QACA,mBACA,WACA,QACA,YACA,eACA,iBACA,kBACA,aACA,QACA,gBACA,qBACA,mBACA,qBACA,eACA,eACA,uBACA,SACA,gBACA,WACA,wBACA,cACA,qBACA,YACA,aACA,aACA,aACA,sBACA,aACA,WACA,cACA,WACA,eACA,cACA,sBACA,UACA,SACA,QACA,WACA,OACA,oBACA,OACA,eACA,eACA,gBACA,SACA,iBACA,OACA,MACA,SACA,OACA,kBACA,iBACA,SACA,gBACA,UACA,gBACA,SACA,YACA,mBACA,uBACA,SACA,aACA,sBACA,uBACA,WACA,SACA,UACA,gBACA,QACA,cACA,YACA,YACA,YACA,eACA,oBACA,cACA,qBACA,UACA,SACA,WACA,QACA,UACA,gBACA,WACA,UACA,oBACA,yBACA,uBACA,oBACA,UACA,QACA,kBACA,cACA,WACA,mBACA,cACA,kBACA,gBACA,QACA,WACA,qBACA,UACA,aACA,SACA,MACA,SACA,iBACA,QACA,WACA,gBACA,kBACA,QACA,YACA,gBACA,YACA,IACA,QACA,SACA,kBACA,WACA,yBACA,aACA,YACA,WACA,UACA,YACA,UACA,SACA,SACA,eACA,QACA,OACA,cACA,SACA,OACA,MACA,WACA,cACA,gBACA,iBACA,QACA,QACA,mBACA,SACA,SACA,WACA,SACA,kBACA,iBACA,QACA,SACA,qBACA,SACA,aACA,SACA,UACA,SACA,cACA,SACA,eACA,UACA,QACA,eACA,aACA,aACA,eACA,eACA,kBACA,OACA,QACA,aACA,aACA,OACA,cACA,UACA,QACA,aACA,UACA,iBACA,UACA,gBACA,eACA,QACA,eACA,QACA,QACA,SACA,cACA,UACA,SACA,sBACA,SACA,aACA,YACA,SACA,YACA,QACA,aACA,WACA,oBACA,wBACA,mBACA,cACA,oBACA,UACA,MACA,OACA,YACA,UACA,SACA,YACA,uBACA,YACA,WACA,iBACA,SACA,SACA,kBACA,gBACA,sBACA,YACA,gBACA,aACA,YACA,cACA,oBACA,iBACA,eACA,KACA,cACA,mBACA,kBACA,OACA,SACA,gBACA,gBACA,sBACA,YACA,kBACA,cACA,SACA,WACA,eACA,YACA,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","file":"client.b.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 199);\n","/**\r\n * Escapes a string to AO1 escape codes.\r\n * @param {string} estring the string to be escaped\r\n */\r\nexport function escapeChat(estring) {\r\n\treturn estring\r\n\t\t.replace(/#/g, \"<num>\")\r\n\t\t.replace(/&/g, \"<and>\")\r\n\t\t.replace(/%/g, \"<percent>\")\r\n\t\t.replace(/\\$/g, \"<dollar>\");\r\n}\r\n\r\n/**\r\n * Unescapes a string to AO1 escape codes.\r\n * @param {string} estring the string to be unescaped\r\n */\r\nexport function unescapeChat(estring) {\r\n\treturn estring\r\n\t\t.replace(/<num>/g, \"#\")\r\n\t\t.replace(/<and>/g, \"&\")\r\n\t\t.replace(/<percent>/g, \"%\")\r\n\t\t.replace(/<dollar>/g, \"$\");\r\n}\r\n\r\n/**\r\n * Escapes a string to be HTML-safe.\r\n * \r\n * XXX: This is unnecessary if we use `createTextNode` instead!\r\n * @param {string} unsafe an unsanitized string\r\n */\r\nexport function safe_tags(unsafe) {\r\n\tif (unsafe) {\r\n\t\treturn unsafe\r\n\t\t\t.replace(/>/g, \"&rt;\")\r\n\t\t\t.replace(/</g, \"<\");\r\n\t} else {\r\n\t\treturn \"\";\r\n\t}\r\n}\r\n\r\n/**\r\n * Encode text on client side.\r\n * @param {string} estring the string to be encoded\r\n */\r\nexport function encodeChat(estring) {\r\n\tconst selectedEncoding = document.getElementById(\"client_encoding\").value;\r\n\tif (selectedEncoding === \"unicode\") {\r\n\t\t// This approach works by escaping all special characters to Unicode escape sequences.\r\n\t\t// Source: https://gist.github.com/mathiasbynens/1243213\r\n\t\treturn estring.replace(/[^\\0-~]/g, function (ch) {\r\n\t\t\treturn \"\\\\u\" + (\"000\" + ch.charCodeAt().toString(16)).slice(-4);\r\n\t\t});\r\n\t} else if (selectedEncoding === \"utf16\") {\r\n\t\t// Source: https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String\r\n\t\tconst buffer = new ArrayBuffer(estring.length * 2);\r\n\t\tconst result = new Uint16Array(buffer);\r\n\t\tfor (let i = 0, strLen = estring.length; i < strLen; i++) {\r\n\t\t\tresult[i] = estring.charCodeAt(i);\r\n\t\t}\r\n\t\treturn String(result);\r\n\t} else {\r\n\t\treturn estring;\r\n\t}\r\n}\r\n\r\n/**\r\n * Decodes text on client side.\r\n * @param {string} estring the string to be decoded\r\n */\r\nexport function decodeChat(estring) {\r\n\tconst selectedDecoding = document.getElementById(\"client_decoding\").value;\r\n\tif (selectedDecoding === \"unicode\") {\r\n\t\t// Source: https://stackoverflow.com/questions/7885096/how-do-i-decode-a-string-with-escaped-unicode\r\n\t\treturn estring.replace(/\\\\u([\\d\\w]{1,})/gi, function (match, group) {\r\n\t\t\treturn String.fromCharCode(parseInt(group, 16));\r\n\t\t});\r\n\t} else if (selectedDecoding === \"utf16\") {\r\n\t\t// Source: https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String\r\n\t\treturn String.fromCharCode.apply(null, new Uint16Array(estring.split(\",\")));\r\n\t} else {\r\n\t\treturn estring;\r\n\t}\r\n}\r\n\r\n/**\r\n * XXX: a nasty hack made by gameboyprinter.\r\n * @param {string} msg chat message to prepare for display \r\n */\r\nexport function prepChat(msg) {\r\n\t// TODO: make this less awful\r\n\treturn unescapeChat(decodeChat(msg));\r\n}","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","module.exports = {};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","/*\n* Fingerprintjs2 2.1.0 - Modern & flexible browser fingerprint library v2\n* https://github.com/Valve/fingerprintjs2\n* Copyright (c) 2015 Valentin Vasilyev (valentin.vasilyev@outlook.com)\n* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.\n*\n* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n* ARE DISCLAIMED. IN NO EVENT SHALL VALENTIN VASILYEV BE LIABLE FOR ANY\n* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/* global define */\n(function (name, context, definition) {\n 'use strict'\n if (typeof window !== 'undefined' && typeof define === 'function' && define.amd) { define(definition) } else if (typeof module !== 'undefined' && module.exports) { module.exports = definition() } else if (context.exports) { context.exports = definition() } else { context[name] = definition() }\n})('Fingerprint2', this, function () {\n 'use strict'\n\n /// MurmurHash3 related functions\n\n //\n // Given two 64bit ints (as an array of two 32bit ints) returns the two\n // added together as a 64bit int (as an array of two 32bit ints).\n //\n var x64Add = function (m, n) {\n m = [m[0] >>> 16, m[0] & 0xffff, m[1] >>> 16, m[1] & 0xffff]\n n = [n[0] >>> 16, n[0] & 0xffff, n[1] >>> 16, n[1] & 0xffff]\n var o = [0, 0, 0, 0]\n o[3] += m[3] + n[3]\n o[2] += o[3] >>> 16\n o[3] &= 0xffff\n o[2] += m[2] + n[2]\n o[1] += o[2] >>> 16\n o[2] &= 0xffff\n o[1] += m[1] + n[1]\n o[0] += o[1] >>> 16\n o[1] &= 0xffff\n o[0] += m[0] + n[0]\n o[0] &= 0xffff\n return [(o[0] << 16) | o[1], (o[2] << 16) | o[3]]\n }\n\n //\n // Given two 64bit ints (as an array of two 32bit ints) returns the two\n // multiplied together as a 64bit int (as an array of two 32bit ints).\n //\n var x64Multiply = function (m, n) {\n m = [m[0] >>> 16, m[0] & 0xffff, m[1] >>> 16, m[1] & 0xffff]\n n = [n[0] >>> 16, n[0] & 0xffff, n[1] >>> 16, n[1] & 0xffff]\n var o = [0, 0, 0, 0]\n o[3] += m[3] * n[3]\n o[2] += o[3] >>> 16\n o[3] &= 0xffff\n o[2] += m[2] * n[3]\n o[1] += o[2] >>> 16\n o[2] &= 0xffff\n o[2] += m[3] * n[2]\n o[1] += o[2] >>> 16\n o[2] &= 0xffff\n o[1] += m[1] * n[3]\n o[0] += o[1] >>> 16\n o[1] &= 0xffff\n o[1] += m[2] * n[2]\n o[0] += o[1] >>> 16\n o[1] &= 0xffff\n o[1] += m[3] * n[1]\n o[0] += o[1] >>> 16\n o[1] &= 0xffff\n o[0] += (m[0] * n[3]) + (m[1] * n[2]) + (m[2] * n[1]) + (m[3] * n[0])\n o[0] &= 0xffff\n return [(o[0] << 16) | o[1], (o[2] << 16) | o[3]]\n }\n //\n // Given a 64bit int (as an array of two 32bit ints) and an int\n // representing a number of bit positions, returns the 64bit int (as an\n // array of two 32bit ints) rotated left by that number of positions.\n //\n var x64Rotl = function (m, n) {\n n %= 64\n if (n === 32) {\n return [m[1], m[0]]\n } else if (n < 32) {\n return [(m[0] << n) | (m[1] >>> (32 - n)), (m[1] << n) | (m[0] >>> (32 - n))]\n } else {\n n -= 32\n return [(m[1] << n) | (m[0] >>> (32 - n)), (m[0] << n) | (m[1] >>> (32 - n))]\n }\n }\n //\n // Given a 64bit int (as an array of two 32bit ints) and an int\n // representing a number of bit positions, returns the 64bit int (as an\n // array of two 32bit ints) shifted left by that number of positions.\n //\n var x64LeftShift = function (m, n) {\n n %= 64\n if (n === 0) {\n return m\n } else if (n < 32) {\n return [(m[0] << n) | (m[1] >>> (32 - n)), m[1] << n]\n } else {\n return [m[1] << (n - 32), 0]\n }\n }\n //\n // Given two 64bit ints (as an array of two 32bit ints) returns the two\n // xored together as a 64bit int (as an array of two 32bit ints).\n //\n var x64Xor = function (m, n) {\n return [m[0] ^ n[0], m[1] ^ n[1]]\n }\n //\n // Given a block, returns murmurHash3's final x64 mix of that block.\n // (`[0, h[0] >>> 1]` is a 33 bit unsigned right shift. This is the\n // only place where we need to right shift 64bit ints.)\n //\n var x64Fmix = function (h) {\n h = x64Xor(h, [0, h[0] >>> 1])\n h = x64Multiply(h, [0xff51afd7, 0xed558ccd])\n h = x64Xor(h, [0, h[0] >>> 1])\n h = x64Multiply(h, [0xc4ceb9fe, 0x1a85ec53])\n h = x64Xor(h, [0, h[0] >>> 1])\n return h\n }\n\n //\n // Given a string and an optional seed as an int, returns a 128 bit\n // hash using the x64 flavor of MurmurHash3, as an unsigned hex.\n //\n var x64hash128 = function (key, seed) {\n key = key || ''\n seed = seed || 0\n var remainder = key.length % 16\n var bytes = key.length - remainder\n var h1 = [0, seed]\n var h2 = [0, seed]\n var k1 = [0, 0]\n var k2 = [0, 0]\n var c1 = [0x87c37b91, 0x114253d5]\n var c2 = [0x4cf5ad43, 0x2745937f]\n for (var i = 0; i < bytes; i = i + 16) {\n k1 = [((key.charCodeAt(i + 4) & 0xff)) | ((key.charCodeAt(i + 5) & 0xff) << 8) | ((key.charCodeAt(i + 6) & 0xff) << 16) | ((key.charCodeAt(i + 7) & 0xff) << 24), ((key.charCodeAt(i) & 0xff)) | ((key.charCodeAt(i + 1) & 0xff) << 8) | ((key.charCodeAt(i + 2) & 0xff) << 16) | ((key.charCodeAt(i + 3) & 0xff) << 24)]\n k2 = [((key.charCodeAt(i + 12) & 0xff)) | ((key.charCodeAt(i + 13) & 0xff) << 8) | ((key.charCodeAt(i + 14) & 0xff) << 16) | ((key.charCodeAt(i + 15) & 0xff) << 24), ((key.charCodeAt(i + 8) & 0xff)) | ((key.charCodeAt(i + 9) & 0xff) << 8) | ((key.charCodeAt(i + 10) & 0xff) << 16) | ((key.charCodeAt(i + 11) & 0xff) << 24)]\n k1 = x64Multiply(k1, c1)\n k1 = x64Rotl(k1, 31)\n k1 = x64Multiply(k1, c2)\n h1 = x64Xor(h1, k1)\n h1 = x64Rotl(h1, 27)\n h1 = x64Add(h1, h2)\n h1 = x64Add(x64Multiply(h1, [0, 5]), [0, 0x52dce729])\n k2 = x64Multiply(k2, c2)\n k2 = x64Rotl(k2, 33)\n k2 = x64Multiply(k2, c1)\n h2 = x64Xor(h2, k2)\n h2 = x64Rotl(h2, 31)\n h2 = x64Add(h2, h1)\n h2 = x64Add(x64Multiply(h2, [0, 5]), [0, 0x38495ab5])\n }\n k1 = [0, 0]\n k2 = [0, 0]\n switch (remainder) {\n case 15:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 14)], 48))\n // fallthrough\n case 14:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 13)], 40))\n // fallthrough\n case 13:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 12)], 32))\n // fallthrough\n case 12:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 11)], 24))\n // fallthrough\n case 11:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 10)], 16))\n // fallthrough\n case 10:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 9)], 8))\n // fallthrough\n case 9:\n k2 = x64Xor(k2, [0, key.charCodeAt(i + 8)])\n k2 = x64Multiply(k2, c2)\n k2 = x64Rotl(k2, 33)\n k2 = x64Multiply(k2, c1)\n h2 = x64Xor(h2, k2)\n // fallthrough\n case 8:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 7)], 56))\n // fallthrough\n case 7:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 6)], 48))\n // fallthrough\n case 6:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 5)], 40))\n // fallthrough\n case 5:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 4)], 32))\n // fallthrough\n case 4:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 3)], 24))\n // fallthrough\n case 3:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 2)], 16))\n // fallthrough\n case 2:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 1)], 8))\n // fallthrough\n case 1:\n k1 = x64Xor(k1, [0, key.charCodeAt(i)])\n k1 = x64Multiply(k1, c1)\n k1 = x64Rotl(k1, 31)\n k1 = x64Multiply(k1, c2)\n h1 = x64Xor(h1, k1)\n // fallthrough\n }\n h1 = x64Xor(h1, [0, key.length])\n h2 = x64Xor(h2, [0, key.length])\n h1 = x64Add(h1, h2)\n h2 = x64Add(h2, h1)\n h1 = x64Fmix(h1)\n h2 = x64Fmix(h2)\n h1 = x64Add(h1, h2)\n h2 = x64Add(h2, h1)\n return ('00000000' + (h1[0] >>> 0).toString(16)).slice(-8) + ('00000000' + (h1[1] >>> 0).toString(16)).slice(-8) + ('00000000' + (h2[0] >>> 0).toString(16)).slice(-8) + ('00000000' + (h2[1] >>> 0).toString(16)).slice(-8)\n }\n\n var defaultOptions = {\n preprocessor: null,\n audio: {\n timeout: 1000,\n // On iOS 11, audio context can only be used in response to user interaction.\n // We require users to explicitly enable audio fingerprinting on iOS 11.\n // See https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088\n excludeIOS11: true\n },\n fonts: {\n swfContainerId: 'fingerprintjs2',\n swfPath: 'flash/compiled/FontList.swf',\n userDefinedFonts: [],\n extendedJsFonts: false\n },\n screen: {\n // To ensure consistent fingerprints when users rotate their mobile devices\n detectScreenOrientation: true\n },\n plugins: {\n sortPluginsFor: [/palemoon/i],\n excludeIE: false\n },\n extraComponents: [],\n excludes: {\n // Unreliable on Windows, see https://github.com/Valve/fingerprintjs2/issues/375\n 'enumerateDevices': true,\n // devicePixelRatio depends on browser zoom, and it's impossible to detect browser zoom\n 'pixelRatio': true,\n // DNT depends on incognito mode for some browsers (Chrome) and it's impossible to detect incognito mode\n 'doNotTrack': true,\n // uses js fonts already\n 'fontsFlash': true\n },\n NOT_AVAILABLE: 'not available',\n ERROR: 'error',\n EXCLUDED: 'excluded'\n }\n\n var each = function (obj, iterator) {\n if (Array.prototype.forEach && obj.forEach === Array.prototype.forEach) {\n obj.forEach(iterator)\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n iterator(obj[i], i, obj)\n }\n } else {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n iterator(obj[key], key, obj)\n }\n }\n }\n }\n\n var map = function (obj, iterator) {\n var results = []\n // Not using strict equality so that this acts as a\n // shortcut to checking for `null` and `undefined`.\n if (obj == null) {\n return results\n }\n if (Array.prototype.map && obj.map === Array.prototype.map) { return obj.map(iterator) }\n each(obj, function (value, index, list) {\n results.push(iterator(value, index, list))\n })\n return results\n }\n\n var extendSoft = function (target, source) {\n if (source == null) { return target }\n var value\n var key\n for (key in source) {\n value = source[key]\n if (value != null && !(Object.prototype.hasOwnProperty.call(target, key))) {\n target[key] = value\n }\n }\n return target\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices\n var enumerateDevicesKey = function (done, options) {\n if (!isEnumerateDevicesSupported()) {\n return done(options.NOT_AVAILABLE)\n }\n navigator.mediaDevices.enumerateDevices().then(function (devices) {\n done(devices.map(function (device) {\n return 'id=' + device.deviceId + ';gid=' + device.groupId + ';' + device.kind + ';' + device.label\n }))\n })\n .catch(function (error) {\n done(error)\n })\n }\n\n var isEnumerateDevicesSupported = function () {\n return (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices)\n }\n // Inspired by and based on https://github.com/cozylife/audio-fingerprint\n var audioKey = function (done, options) {\n var audioOptions = options.audio\n if (audioOptions.excludeIOS11 && navigator.userAgent.match(/OS 11.+Version\\/11.+Safari/)) {\n // See comment for excludeUserAgent and https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088\n return done(options.EXCLUDED)\n }\n\n var AudioContext = window.OfflineAudioContext || window.webkitOfflineAudioContext\n\n if (AudioContext == null) {\n return done(options.NOT_AVAILABLE)\n }\n\n var context = new AudioContext(1, 44100, 44100)\n\n var oscillator = context.createOscillator()\n oscillator.type = 'triangle'\n oscillator.frequency.setValueAtTime(10000, context.currentTime)\n\n var compressor = context.createDynamicsCompressor()\n each([\n ['threshold', -50],\n ['knee', 40],\n ['ratio', 12],\n ['reduction', -20],\n ['attack', 0],\n ['release', 0.25]\n ], function (item) {\n if (compressor[item[0]] !== undefined && typeof compressor[item[0]].setValueAtTime === 'function') {\n compressor[item[0]].setValueAtTime(item[1], context.currentTime)\n }\n })\n\n oscillator.connect(compressor)\n compressor.connect(context.destination)\n oscillator.start(0)\n context.startRendering()\n\n var audioTimeoutId = setTimeout(function () {\n console.warn('Audio fingerprint timed out. Please report bug at https://github.com/Valve/fingerprintjs2 with your user agent: \"' + navigator.userAgent + '\".')\n context.oncomplete = function () { }\n context = null\n return done('audioTimeout')\n }, audioOptions.timeout)\n\n context.oncomplete = function (event) {\n var fingerprint\n try {\n clearTimeout(audioTimeoutId)\n fingerprint = event.renderedBuffer.getChannelData(0)\n .slice(4500, 5000)\n .reduce(function (acc, val) { return acc + Math.abs(val) }, 0)\n .toString()\n oscillator.disconnect()\n compressor.disconnect()\n } catch (error) {\n done(error)\n return\n }\n done(fingerprint)\n }\n }\n var UserAgent = function (done) {\n done(navigator.userAgent)\n }\n var webdriver = function (done, options) {\n done(navigator.webdriver == null ? options.NOT_AVAILABLE : navigator.webdriver)\n }\n var languageKey = function (done, options) {\n done(navigator.language || navigator.userLanguage || navigator.browserLanguage || navigator.systemLanguage || options.NOT_AVAILABLE)\n }\n var colorDepthKey = function (done, options) {\n done(window.screen.colorDepth || options.NOT_AVAILABLE)\n }\n var deviceMemoryKey = function (done, options) {\n done(navigator.deviceMemory || options.NOT_AVAILABLE)\n }\n var pixelRatioKey = function (done, options) {\n done(window.devicePixelRatio || options.NOT_AVAILABLE)\n }\n var screenResolutionKey = function (done, options) {\n done(getScreenResolution(options))\n }\n var getScreenResolution = function (options) {\n var resolution = [window.screen.width, window.screen.height]\n if (options.screen.detectScreenOrientation) {\n resolution.sort().reverse()\n }\n return resolution\n }\n var availableScreenResolutionKey = function (done, options) {\n done(getAvailableScreenResolution(options))\n }\n var getAvailableScreenResolution = function (options) {\n if (window.screen.availWidth && window.screen.availHeight) {\n var available = [window.screen.availHeight, window.screen.availWidth]\n if (options.screen.detectScreenOrientation) {\n available.sort().reverse()\n }\n return available\n }\n // headless browsers\n return options.NOT_AVAILABLE\n }\n var timezoneOffset = function (done) {\n done(new Date().getTimezoneOffset())\n }\n var timezone = function (done, options) {\n if (window.Intl && window.Intl.DateTimeFormat) {\n done(new window.Intl.DateTimeFormat().resolvedOptions().timeZone)\n return\n }\n done(options.NOT_AVAILABLE)\n }\n var sessionStorageKey = function (done, options) {\n done(hasSessionStorage(options))\n }\n var localStorageKey = function (done, options) {\n done(hasLocalStorage(options))\n }\n var indexedDbKey = function (done, options) {\n done(hasIndexedDB(options))\n }\n var addBehaviorKey = function (done) {\n // body might not be defined at this point or removed programmatically\n done(!!(document.body && document.body.addBehavior))\n }\n var openDatabaseKey = function (done) {\n done(!!window.openDatabase)\n }\n var cpuClassKey = function (done, options) {\n done(getNavigatorCpuClass(options))\n }\n var platformKey = function (done, options) {\n done(getNavigatorPlatform(options))\n }\n var doNotTrackKey = function (done, options) {\n done(getDoNotTrack(options))\n }\n var canvasKey = function (done, options) {\n if (isCanvasSupported()) {\n done(getCanvasFp(options))\n return\n }\n done(options.NOT_AVAILABLE)\n }\n var webglKey = function (done, options) {\n if (isWebGlSupported()) {\n done(getWebglFp())\n return\n }\n done(options.NOT_AVAILABLE)\n }\n var webglVendorAndRendererKey = function (done) {\n if (isWebGlSupported()) {\n done(getWebglVendorAndRenderer())\n return\n }\n done()\n }\n var adBlockKey = function (done) {\n done(getAdBlock())\n }\n var hasLiedLanguagesKey = function (done) {\n done(getHasLiedLanguages())\n }\n var hasLiedResolutionKey = function (done) {\n done(getHasLiedResolution())\n }\n var hasLiedOsKey = function (done) {\n done(getHasLiedOs())\n }\n var hasLiedBrowserKey = function (done) {\n done(getHasLiedBrowser())\n }\n // flash fonts (will increase fingerprinting time 20X to ~ 130-150ms)\n var flashFontsKey = function (done, options) {\n // we do flash if swfobject is loaded\n if (!hasSwfObjectLoaded()) {\n return done('swf object not loaded')\n }\n if (!hasMinFlashInstalled()) {\n return done('flash not installed')\n }\n if (!options.fonts.swfPath) {\n return done('missing options.fonts.swfPath')\n }\n loadSwfAndDetectFonts(function (fonts) {\n done(fonts)\n }, options)\n }\n // kudos to http://www.lalit.org/lab/javascript-css-font-detect/\n var jsFontsKey = function (done, options) {\n // a font will be compared against all the three default fonts.\n // and if it doesn't match all 3 then that font is not available.\n var baseFonts = ['monospace', 'sans-serif', 'serif']\n\n var fontList = [\n 'Andale Mono', 'Arial', 'Arial Black', 'Arial Hebrew', 'Arial MT', 'Arial Narrow', 'Arial Rounded MT Bold', 'Arial Unicode MS',\n 'Bitstream Vera Sans Mono', 'Book Antiqua', 'Bookman Old Style',\n 'Calibri', 'Cambria', 'Cambria Math', 'Century', 'Century Gothic', 'Century Schoolbook', 'Comic Sans', 'Comic Sans MS', 'Consolas', 'Courier', 'Courier New',\n 'Geneva', 'Georgia',\n 'Helvetica', 'Helvetica Neue',\n 'Impact',\n 'Lucida Bright', 'Lucida Calligraphy', 'Lucida Console', 'Lucida Fax', 'LUCIDA GRANDE', 'Lucida Handwriting', 'Lucida Sans', 'Lucida Sans Typewriter', 'Lucida Sans Unicode',\n 'Microsoft Sans Serif', 'Monaco', 'Monotype Corsiva', 'MS Gothic', 'MS Outlook', 'MS PGothic', 'MS Reference Sans Serif', 'MS Sans Serif', 'MS Serif', 'MYRIAD', 'MYRIAD PRO',\n 'Palatino', 'Palatino Linotype',\n 'Segoe Print', 'Segoe Script', 'Segoe UI', 'Segoe UI Light', 'Segoe UI Semibold', 'Segoe UI Symbol',\n 'Tahoma', 'Times', 'Times New Roman', 'Times New Roman PS', 'Trebuchet MS',\n 'Verdana', 'Wingdings', 'Wingdings 2', 'Wingdings 3'\n ]\n\n if (options.fonts.extendedJsFonts) {\n var extendedFontList = [\n 'Abadi MT Condensed Light', 'Academy Engraved LET', 'ADOBE CASLON PRO', 'Adobe Garamond', 'ADOBE GARAMOND PRO', 'Agency FB', 'Aharoni', 'Albertus Extra Bold', 'Albertus Medium', 'Algerian', 'Amazone BT', 'American Typewriter',\n 'American Typewriter Condensed', 'AmerType Md BT', 'Andalus', 'Angsana New', 'AngsanaUPC', 'Antique Olive', 'Aparajita', 'Apple Chancery', 'Apple Color Emoji', 'Apple SD Gothic Neo', 'Arabic Typesetting', 'ARCHER',\n 'ARNO PRO', 'Arrus BT', 'Aurora Cn BT', 'AvantGarde Bk BT', 'AvantGarde Md BT', 'AVENIR', 'Ayuthaya', 'Bandy', 'Bangla Sangam MN', 'Bank Gothic', 'BankGothic Md BT', 'Baskerville',\n 'Baskerville Old Face', 'Batang', 'BatangChe', 'Bauer Bodoni', 'Bauhaus 93', 'Bazooka', 'Bell MT', 'Bembo', 'Benguiat Bk BT', 'Berlin Sans FB', 'Berlin Sans FB Demi', 'Bernard MT Condensed', 'BernhardFashion BT', 'BernhardMod BT', 'Big Caslon', 'BinnerD',\n 'Blackadder ITC', 'BlairMdITC TT', 'Bodoni 72', 'Bodoni 72 Oldstyle', 'Bodoni 72 Smallcaps', 'Bodoni MT', 'Bodoni MT Black', 'Bodoni MT Condensed', 'Bodoni MT Poster Compressed',\n 'Bookshelf Symbol 7', 'Boulder', 'Bradley Hand', 'Bradley Hand ITC', 'Bremen Bd BT', 'Britannic Bold', 'Broadway', 'Browallia New', 'BrowalliaUPC', 'Brush Script MT', 'Californian FB', 'Calisto MT', 'Calligrapher', 'Candara',\n 'CaslonOpnface BT', 'Castellar', 'Centaur', 'Cezanne', 'CG Omega', 'CG Times', 'Chalkboard', 'Chalkboard SE', 'Chalkduster', 'Charlesworth', 'Charter Bd BT', 'Charter BT', 'Chaucer',\n 'ChelthmITC Bk BT', 'Chiller', 'Clarendon', 'Clarendon Condensed', 'CloisterBlack BT', 'Cochin', 'Colonna MT', 'Constantia', 'Cooper Black', 'Copperplate', 'Copperplate Gothic', 'Copperplate Gothic Bold',\n 'Copperplate Gothic Light', 'CopperplGoth Bd BT', 'Corbel', 'Cordia New', 'CordiaUPC', 'Cornerstone', 'Coronet', 'Cuckoo', 'Curlz MT', 'DaunPenh', 'Dauphin', 'David', 'DB LCD Temp', 'DELICIOUS', 'Denmark',\n 'DFKai-SB', 'Didot', 'DilleniaUPC', 'DIN', 'DokChampa', 'Dotum', 'DotumChe', 'Ebrima', 'Edwardian Script ITC', 'Elephant', 'English 111 Vivace BT', 'Engravers MT', 'EngraversGothic BT', 'Eras Bold ITC', 'Eras Demi ITC', 'Eras Light ITC', 'Eras Medium ITC',\n 'EucrosiaUPC', 'Euphemia', 'Euphemia UCAS', 'EUROSTILE', 'Exotc350 Bd BT', 'FangSong', 'Felix Titling', 'Fixedsys', 'FONTIN', 'Footlight MT Light', 'Forte',\n 'FrankRuehl', 'Fransiscan', 'Freefrm721 Blk BT', 'FreesiaUPC', 'Freestyle Script', 'French Script MT', 'FrnkGothITC Bk BT', 'Fruitger', 'FRUTIGER',\n 'Futura', 'Futura Bk BT', 'Futura Lt BT', 'Futura Md BT', 'Futura ZBlk BT', 'FuturaBlack BT', 'Gabriola', 'Galliard BT', 'Gautami', 'Geeza Pro', 'Geometr231 BT', 'Geometr231 Hv BT', 'Geometr231 Lt BT', 'GeoSlab 703 Lt BT',\n 'GeoSlab 703 XBd BT', 'Gigi', 'Gill Sans', 'Gill Sans MT', 'Gill Sans MT Condensed', 'Gill Sans MT Ext Condensed Bold', 'Gill Sans Ultra Bold', 'Gill Sans Ultra Bold Condensed', 'Gisha', 'Gloucester MT Extra Condensed', 'GOTHAM', 'GOTHAM BOLD',\n 'Goudy Old Style', 'Goudy Stout', 'GoudyHandtooled BT', 'GoudyOLSt BT', 'Gujarati Sangam MN', 'Gulim', 'GulimChe', 'Gungsuh', 'GungsuhChe', 'Gurmukhi MN', 'Haettenschweiler', 'Harlow Solid Italic', 'Harrington', 'Heather', 'Heiti SC', 'Heiti TC', 'HELV',\n 'Herald', 'High Tower Text', 'Hiragino Kaku Gothic ProN', 'Hiragino Mincho ProN', 'Hoefler Text', 'Humanst 521 Cn BT', 'Humanst521 BT', 'Humanst521 Lt BT', 'Imprint MT Shadow', 'Incised901 Bd BT', 'Incised901 BT',\n 'Incised901 Lt BT', 'INCONSOLATA', 'Informal Roman', 'Informal011 BT', 'INTERSTATE', 'IrisUPC', 'Iskoola Pota', 'JasmineUPC', 'Jazz LET', 'Jenson', 'Jester', 'Jokerman', 'Juice ITC', 'Kabel Bk BT', 'Kabel Ult BT', 'Kailasa', 'KaiTi', 'Kalinga', 'Kannada Sangam MN',\n 'Kartika', 'Kaufmann Bd BT', 'Kaufmann BT', 'Khmer UI', 'KodchiangUPC', 'Kokila', 'Korinna BT', 'Kristen ITC', 'Krungthep', 'Kunstler Script', 'Lao UI', 'Latha', 'Leelawadee', 'Letter Gothic', 'Levenim MT', 'LilyUPC', 'Lithograph', 'Lithograph Light', 'Long Island',\n 'Lydian BT', 'Magneto', 'Maiandra GD', 'Malayalam Sangam MN', 'Malgun Gothic',\n 'Mangal', 'Marigold', 'Marion', 'Marker Felt', 'Market', 'Marlett', 'Matisse ITC', 'Matura MT Script Capitals', 'Meiryo', 'Meiryo UI', 'Microsoft Himalaya', 'Microsoft JhengHei', 'Microsoft New Tai Lue', 'Microsoft PhagsPa', 'Microsoft Tai Le',\n 'Microsoft Uighur', 'Microsoft YaHei', 'Microsoft Yi Baiti', 'MingLiU', 'MingLiU_HKSCS', 'MingLiU_HKSCS-ExtB', 'MingLiU-ExtB', 'Minion', 'Minion Pro', 'Miriam', 'Miriam Fixed', 'Mistral', 'Modern', 'Modern No. 20', 'Mona Lisa Solid ITC TT', 'Mongolian Baiti',\n 'MONO', 'MoolBoran', 'Mrs Eaves', 'MS LineDraw', 'MS Mincho', 'MS PMincho', 'MS Reference Specialty', 'MS UI Gothic', 'MT Extra', 'MUSEO', 'MV Boli',\n 'Nadeem', 'Narkisim', 'NEVIS', 'News Gothic', 'News GothicMT', 'NewsGoth BT', 'Niagara Engraved', 'Niagara Solid', 'Noteworthy', 'NSimSun', 'Nyala', 'OCR A Extended', 'Old Century', 'Old English Text MT', 'Onyx', 'Onyx BT', 'OPTIMA', 'Oriya Sangam MN',\n 'OSAKA', 'OzHandicraft BT', 'Palace Script MT', 'Papyrus', 'Parchment', 'Party LET', 'Pegasus', 'Perpetua', 'Perpetua Titling MT', 'PetitaBold', 'Pickwick', 'Plantagenet Cherokee', 'Playbill', 'PMingLiU', 'PMingLiU-ExtB',\n 'Poor Richard', 'Poster', 'PosterBodoni BT', 'PRINCETOWN LET', 'Pristina', 'PTBarnum BT', 'Pythagoras', 'Raavi', 'Rage Italic', 'Ravie', 'Ribbon131 Bd BT', 'Rockwell', 'Rockwell Condensed', 'Rockwell Extra Bold', 'Rod', 'Roman', 'Sakkal Majalla',\n 'Santa Fe LET', 'Savoye LET', 'Sceptre', 'Script', 'Script MT Bold', 'SCRIPTINA', 'Serifa', 'Serifa BT', 'Serifa Th BT', 'ShelleyVolante BT', 'Sherwood',\n 'Shonar Bangla', 'Showcard Gothic', 'Shruti', 'Signboard', 'SILKSCREEN', 'SimHei', 'Simplified Arabic', 'Simplified Arabic Fixed', 'SimSun', 'SimSun-ExtB', 'Sinhala Sangam MN', 'Sketch Rockwell', 'Skia', 'Small Fonts', 'Snap ITC', 'Snell Roundhand', 'Socket',\n 'Souvenir Lt BT', 'Staccato222 BT', 'Steamer', 'Stencil', 'Storybook', 'Styllo', 'Subway', 'Swis721 BlkEx BT', 'Swiss911 XCm BT', 'Sylfaen', 'Synchro LET', 'System', 'Tamil Sangam MN', 'Technical', 'Teletype', 'Telugu Sangam MN', 'Tempus Sans ITC',\n 'Terminal', 'Thonburi', 'Traditional Arabic', 'Trajan', 'TRAJAN PRO', 'Tristan', 'Tubular', 'Tunga', 'Tw Cen MT', 'Tw Cen MT Condensed', 'Tw Cen MT Condensed Extra Bold',\n 'TypoUpright BT', 'Unicorn', 'Univers', 'Univers CE 55 Medium', 'Univers Condensed', 'Utsaah', 'Vagabond', 'Vani', 'Vijaya', 'Viner Hand ITC', 'VisualUI', 'Vivaldi', 'Vladimir Script', 'Vrinda', 'Westminster', 'WHITNEY', 'Wide Latin',\n 'ZapfEllipt BT', 'ZapfHumnst BT', 'ZapfHumnst Dm BT', 'Zapfino', 'Zurich BlkEx BT', 'Zurich Ex BT', 'ZWAdobeF']\n fontList = fontList.concat(extendedFontList)\n }\n\n fontList = fontList.concat(options.fonts.userDefinedFonts)\n\n // remove duplicate fonts\n fontList = fontList.filter(function (font, position) {\n return fontList.indexOf(font) === position\n })\n\n // we use m or w because these two characters take up the maximum width.\n // And we use a LLi so that the same matching fonts can get separated\n var testString = 'mmmmmmmmmmlli'\n\n // we test using 72px font size, we may use any size. I guess larger the better.\n var testSize = '72px'\n\n var h = document.getElementsByTagName('body')[0]\n\n // div to load spans for the base fonts\n var baseFontsDiv = document.createElement('div')\n\n // div to load spans for the fonts to detect\n var fontsDiv = document.createElement('div')\n\n var defaultWidth = {}\n var defaultHeight = {}\n\n // creates a span where the fonts will be loaded\n var createSpan = function () {\n var s = document.createElement('span')\n /*\n * We need this css as in some weird browser this\n * span elements shows up for a microSec which creates a\n * bad user experience\n */\n s.style.position = 'absolute'\n s.style.left = '-9999px'\n s.style.fontSize = testSize\n\n // css font reset to reset external styles\n s.style.fontStyle = 'normal'\n s.style.fontWeight = 'normal'\n s.style.letterSpacing = 'normal'\n s.style.lineBreak = 'auto'\n s.style.lineHeight = 'normal'\n s.style.textTransform = 'none'\n s.style.textAlign = 'left'\n s.style.textDecoration = 'none'\n s.style.textShadow = 'none'\n s.style.whiteSpace = 'normal'\n s.style.wordBreak = 'normal'\n s.style.wordSpacing = 'normal'\n\n s.innerHTML = testString\n return s\n }\n\n // creates a span and load the font to detect and a base font for fallback\n var createSpanWithFonts = function (fontToDetect, baseFont) {\n var s = createSpan()\n s.style.fontFamily = \"'\" + fontToDetect + \"',\" + baseFont\n return s\n }\n\n // creates spans for the base fonts and adds them to baseFontsDiv\n var initializeBaseFontsSpans = function () {\n var spans = []\n for (var index = 0, length = baseFonts.length; index < length; index++) {\n var s = createSpan()\n s.style.fontFamily = baseFonts[index]\n baseFontsDiv.appendChild(s)\n spans.push(s)\n }\n return spans\n }\n\n // creates spans for the fonts to detect and adds them to fontsDiv\n var initializeFontsSpans = function () {\n var spans = {}\n for (var i = 0, l = fontList.length; i < l; i++) {\n var fontSpans = []\n for (var j = 0, numDefaultFonts = baseFonts.length; j < numDefaultFonts; j++) {\n var s = createSpanWithFonts(fontList[i], baseFonts[j])\n fontsDiv.appendChild(s)\n fontSpans.push(s)\n }\n spans[fontList[i]] = fontSpans // Stores {fontName : [spans for that font]}\n }\n return spans\n }\n\n // checks if a font is available\n var isFontAvailable = function (fontSpans) {\n var detected = false\n for (var i = 0; i < baseFonts.length; i++) {\n detected = (fontSpans[i].offsetWidth !== defaultWidth[baseFonts[i]] || fontSpans[i].offsetHeight !== defaultHeight[baseFonts[i]])\n if (detected) {\n return detected\n }\n }\n return detected\n }\n\n // create spans for base fonts\n var baseFontsSpans = initializeBaseFontsSpans()\n\n // add the spans to the DOM\n h.appendChild(baseFontsDiv)\n\n // get the default width for the three base fonts\n for (var index = 0, length = baseFonts.length; index < length; index++) {\n defaultWidth[baseFonts[index]] = baseFontsSpans[index].offsetWidth // width for the default font\n defaultHeight[baseFonts[index]] = baseFontsSpans[index].offsetHeight // height for the default font\n }\n\n // create spans for fonts to detect\n var fontsSpans = initializeFontsSpans()\n\n // add all the spans to the DOM\n h.appendChild(fontsDiv)\n\n // check available fonts\n var available = []\n for (var i = 0, l = fontList.length; i < l; i++) {\n if (isFontAvailable(fontsSpans[fontList[i]])) {\n available.push(fontList[i])\n }\n }\n\n // remove spans from DOM\n h.removeChild(fontsDiv)\n h.removeChild(baseFontsDiv)\n done(available)\n }\n var pluginsComponent = function (done, options) {\n if (isIE()) {\n if (!options.plugins.excludeIE) {\n done(getIEPlugins(options))\n } else {\n done(options.EXCLUDED)\n }\n } else {\n done(getRegularPlugins(options))\n }\n }\n var getRegularPlugins = function (options) {\n if (navigator.plugins == null) {\n return options.NOT_AVAILABLE\n }\n\n var plugins = []\n // plugins isn't defined in Node envs.\n for (var i = 0, l = navigator.plugins.length; i < l; i++) {\n if (navigator.plugins[i]) { plugins.push(navigator.plugins[i]) }\n }\n\n // sorting plugins only for those user agents, that we know randomize the plugins\n // every time we try to enumerate them\n if (pluginsShouldBeSorted(options)) {\n plugins = plugins.sort(function (a, b) {\n if (a.name > b.name) { return 1 }\n if (a.name < b.name) { return -1 }\n return 0\n })\n }\n return map(plugins, function (p) {\n var mimeTypes = map(p, function (mt) {\n return [mt.type, mt.suffixes]\n })\n return [p.name, p.description, mimeTypes]\n })\n }\n var getIEPlugins = function (options) {\n var result = []\n if ((Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(window, 'ActiveXObject')) || ('ActiveXObject' in window)) {\n var names = [\n 'AcroPDF.PDF', // Adobe PDF reader 7+\n 'Adodb.Stream',\n 'AgControl.AgControl', // Silverlight\n 'DevalVRXCtrl.DevalVRXCtrl.1',\n 'MacromediaFlashPaper.MacromediaFlashPaper',\n 'Msxml2.DOMDocument',\n 'Msxml2.XMLHTTP',\n 'PDF.PdfCtrl', // Adobe PDF reader 6 and earlier, brrr\n 'QuickTime.QuickTime', // QuickTime\n 'QuickTimeCheckObject.QuickTimeCheck.1',\n 'RealPlayer',\n 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)',\n 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)',\n 'Scripting.Dictionary',\n 'SWCtl.SWCtl', // ShockWave player\n 'Shell.UIHelper',\n 'ShockwaveFlash.ShockwaveFlash', // flash plugin\n 'Skype.Detection',\n 'TDCCtl.TDCCtl',\n 'WMPlayer.OCX', // Windows media player\n 'rmocx.RealPlayer G2 Control',\n 'rmocx.RealPlayer G2 Control.1'\n ]\n // starting to detect plugins in IE\n result = map(names, function (name) {\n try {\n // eslint-disable-next-line no-new\n new window.ActiveXObject(name)\n return name\n } catch (e) {\n return options.ERROR\n }\n })\n } else {\n result.push(options.NOT_AVAILABLE)\n }\n if (navigator.plugins) {\n result = result.concat(getRegularPlugins(options))\n }\n return result\n }\n var pluginsShouldBeSorted = function (options) {\n var should = false\n for (var i = 0, l = options.plugins.sortPluginsFor.length; i < l; i++) {\n var re = options.plugins.sortPluginsFor[i]\n if (navigator.userAgent.match(re)) {\n should = true\n break\n }\n }\n return should\n }\n var touchSupportKey = function (done) {\n done(getTouchSupport())\n }\n var hardwareConcurrencyKey = function (done, options) {\n done(getHardwareConcurrency(options))\n }\n var hasSessionStorage = function (options) {\n try {\n return !!window.sessionStorage\n } catch (e) {\n return options.ERROR // SecurityError when referencing it means it exists\n }\n }\n\n // https://bugzilla.mozilla.org/show_bug.cgi?id=781447\n var hasLocalStorage = function (options) {\n try {\n return !!window.localStorage\n } catch (e) {\n return options.ERROR // SecurityError when referencing it means it exists\n }\n }\n var hasIndexedDB = function (options) {\n try {\n return !!window.indexedDB\n } catch (e) {\n return options.ERROR // SecurityError when referencing it means it exists\n }\n }\n var getHardwareConcurrency = function (options) {\n if (navigator.hardwareConcurrency) {\n return navigator.hardwareConcurrency\n }\n return options.NOT_AVAILABLE\n }\n var getNavigatorCpuClass = function (options) {\n return navigator.cpuClass || options.NOT_AVAILABLE\n }\n var getNavigatorPlatform = function (options) {\n if (navigator.platform) {\n return navigator.platform\n } else {\n return options.NOT_AVAILABLE\n }\n }\n var getDoNotTrack = function (options) {\n if (navigator.doNotTrack) {\n return navigator.doNotTrack\n } else if (navigator.msDoNotTrack) {\n return navigator.msDoNotTrack\n } else if (window.doNotTrack) {\n return window.doNotTrack\n } else {\n return options.NOT_AVAILABLE\n }\n }\n // This is a crude and primitive touch screen detection.\n // It's not possible to currently reliably detect the availability of a touch screen\n // with a JS, without actually subscribing to a touch event.\n // http://www.stucox.com/blog/you-cant-detect-a-touchscreen/\n // https://github.com/Modernizr/Modernizr/issues/548\n // method returns an array of 3 values:\n // maxTouchPoints, the success or failure of creating a TouchEvent,\n // and the availability of the 'ontouchstart' property\n\n var getTouchSupport = function () {\n var maxTouchPoints = 0\n var touchEvent\n if (typeof navigator.maxTouchPoints !== 'undefined') {\n maxTouchPoints = navigator.maxTouchPoints\n } else if (typeof navigator.msMaxTouchPoints !== 'undefined') {\n maxTouchPoints = navigator.msMaxTouchPoints\n }\n try {\n document.createEvent('TouchEvent')\n touchEvent = true\n } catch (_) {\n touchEvent = false\n }\n var touchStart = 'ontouchstart' in window\n return [maxTouchPoints, touchEvent, touchStart]\n }\n // https://www.browserleaks.com/canvas#how-does-it-work\n\n var getCanvasFp = function (options) {\n var result = []\n // Very simple now, need to make it more complex (geo shapes etc)\n var canvas = document.createElement('canvas')\n canvas.width = 2000\n canvas.height = 200\n canvas.style.display = 'inline'\n var ctx = canvas.getContext('2d')\n // detect browser support of canvas winding\n // http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/\n // https://github.com/Modernizr/Modernizr/blob/master/feature-detects/canvas/winding.js\n ctx.rect(0, 0, 10, 10)\n ctx.rect(2, 2, 6, 6)\n result.push('canvas winding:' + ((ctx.isPointInPath(5, 5, 'evenodd') === false) ? 'yes' : 'no'))\n\n ctx.textBaseline = 'alphabetic'\n ctx.fillStyle = '#f60'\n ctx.fillRect(125, 1, 62, 20)\n ctx.fillStyle = '#069'\n // https://github.com/Valve/fingerprintjs2/issues/66\n if (options.dontUseFakeFontInCanvas) {\n ctx.font = '11pt Arial'\n } else {\n ctx.font = '11pt no-real-font-123'\n }\n ctx.fillText('Cwm fjordbank glyphs vext quiz, \\ud83d\\ude03', 2, 15)\n ctx.fillStyle = 'rgba(102, 204, 0, 0.2)'\n ctx.font = '18pt Arial'\n ctx.fillText('Cwm fjordbank glyphs vext quiz, \\ud83d\\ude03', 4, 45)\n\n // canvas blending\n // http://blogs.adobe.com/webplatform/2013/01/28/blending-features-in-canvas/\n // http://jsfiddle.net/NDYV8/16/\n ctx.globalCompositeOperation = 'multiply'\n ctx.fillStyle = 'rgb(255,0,255)'\n ctx.beginPath()\n ctx.arc(50, 50, 50, 0, Math.PI * 2, true)\n ctx.closePath()\n ctx.fill()\n ctx.fillStyle = 'rgb(0,255,255)'\n ctx.beginPath()\n ctx.arc(100, 50, 50, 0, Math.PI * 2, true)\n ctx.closePath()\n ctx.fill()\n ctx.fillStyle = 'rgb(255,255,0)'\n ctx.beginPath()\n ctx.arc(75, 100, 50, 0, Math.PI * 2, true)\n ctx.closePath()\n ctx.fill()\n ctx.fillStyle = 'rgb(255,0,255)'\n // canvas winding\n // http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/\n // http://jsfiddle.net/NDYV8/19/\n ctx.arc(75, 75, 75, 0, Math.PI * 2, true)\n ctx.arc(75, 75, 25, 0, Math.PI * 2, true)\n ctx.fill('evenodd')\n\n if (canvas.toDataURL) { result.push('canvas fp:' + canvas.toDataURL()) }\n return result\n }\n var getWebglFp = function () {\n var gl\n var fa2s = function (fa) {\n gl.clearColor(0.0, 0.0, 0.0, 1.0)\n gl.enable(gl.DEPTH_TEST)\n gl.depthFunc(gl.LEQUAL)\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)\n return '[' + fa[0] + ', ' + fa[1] + ']'\n }\n var maxAnisotropy = function (gl) {\n var ext = gl.getExtension('EXT_texture_filter_anisotropic') || gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic') || gl.getExtension('MOZ_EXT_texture_filter_anisotropic')\n if (ext) {\n var anisotropy = gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT)\n if (anisotropy === 0) {\n anisotropy = 2\n }\n return anisotropy\n } else {\n return null\n }\n }\n\n gl = getWebglCanvas()\n if (!gl) { return null }\n // WebGL fingerprinting is a combination of techniques, found in MaxMind antifraud script & Augur fingerprinting.\n // First it draws a gradient object with shaders and convers the image to the Base64 string.\n // Then it enumerates all WebGL extensions & capabilities and appends them to the Base64 string, resulting in a huge WebGL string, potentially very unique on each device\n // Since iOS supports webgl starting from version 8.1 and 8.1 runs on several graphics chips, the results may be different across ios devices, but we need to verify it.\n var result = []\n var vShaderTemplate = 'attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}'\n var fShaderTemplate = 'precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}'\n var vertexPosBuffer = gl.createBuffer()\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer)\n var vertices = new Float32Array([-0.2, -0.9, 0, 0.4, -0.26, 0, 0, 0.732134444, 0])\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW)\n vertexPosBuffer.itemSize = 3\n vertexPosBuffer.numItems = 3\n var program = gl.createProgram()\n var vshader = gl.createShader(gl.VERTEX_SHADER)\n gl.shaderSource(vshader, vShaderTemplate)\n gl.compileShader(vshader)\n var fshader = gl.createShader(gl.FRAGMENT_SHADER)\n gl.shaderSource(fshader, fShaderTemplate)\n gl.compileShader(fshader)\n gl.attachShader(program, vshader)\n gl.attachShader(program, fshader)\n gl.linkProgram(program)\n gl.useProgram(program)\n program.vertexPosAttrib = gl.getAttribLocation(program, 'attrVertex')\n program.offsetUniform = gl.getUniformLocation(program, 'uniformOffset')\n gl.enableVertexAttribArray(program.vertexPosArray)\n gl.vertexAttribPointer(program.vertexPosAttrib, vertexPosBuffer.itemSize, gl.FLOAT, !1, 0, 0)\n gl.uniform2f(program.offsetUniform, 1, 1)\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertexPosBuffer.numItems)\n try {\n result.push(gl.canvas.toDataURL())\n } catch (e) {\n /* .toDataURL may be absent or broken (blocked by extension) */\n }\n result.push('extensions:' + (gl.getSupportedExtensions() || []).join(';'))\n result.push('webgl aliased line width range:' + fa2s(gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE)))\n result.push('webgl aliased point size range:' + fa2s(gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE)))\n result.push('webgl alpha bits:' + gl.getParameter(gl.ALPHA_BITS))\n result.push('webgl antialiasing:' + (gl.getContextAttributes().antialias ? 'yes' : 'no'))\n result.push('webgl blue bits:' + gl.getParameter(gl.BLUE_BITS))\n result.push('webgl depth bits:' + gl.getParameter(gl.DEPTH_BITS))\n result.push('webgl green bits:' + gl.getParameter(gl.GREEN_BITS))\n result.push('webgl max anisotropy:' + maxAnisotropy(gl))\n result.push('webgl max combined texture image units:' + gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS))\n result.push('webgl max cube map texture size:' + gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE))\n result.push('webgl max fragment uniform vectors:' + gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS))\n result.push('webgl max render buffer size:' + gl.getParameter(gl.MAX_RENDERBUFFER_SIZE))\n result.push('webgl max texture image units:' + gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS))\n result.push('webgl max texture size:' + gl.getParameter(gl.MAX_TEXTURE_SIZE))\n result.push('webgl max varying vectors:' + gl.getParameter(gl.MAX_VARYING_VECTORS))\n result.push('webgl max vertex attribs:' + gl.getParameter(gl.MAX_VERTEX_ATTRIBS))\n result.push('webgl max vertex texture image units:' + gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS))\n result.push('webgl max vertex uniform vectors:' + gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS))\n result.push('webgl max viewport dims:' + fa2s(gl.getParameter(gl.MAX_VIEWPORT_DIMS)))\n result.push('webgl red bits:' + gl.getParameter(gl.RED_BITS))\n result.push('webgl renderer:' + gl.getParameter(gl.RENDERER))\n result.push('webgl shading language version:' + gl.getParameter(gl.SHADING_LANGUAGE_VERSION))\n result.push('webgl stencil bits:' + gl.getParameter(gl.STENCIL_BITS))\n result.push('webgl vendor:' + gl.getParameter(gl.VENDOR))\n result.push('webgl version:' + gl.getParameter(gl.VERSION))\n\n try {\n // Add the unmasked vendor and unmasked renderer if the debug_renderer_info extension is available\n var extensionDebugRendererInfo = gl.getExtension('WEBGL_debug_renderer_info')\n if (extensionDebugRendererInfo) {\n result.push('webgl unmasked vendor:' + gl.getParameter(extensionDebugRendererInfo.UNMASKED_VENDOR_WEBGL))\n result.push('webgl unmasked renderer:' + gl.getParameter(extensionDebugRendererInfo.UNMASKED_RENDERER_WEBGL))\n }\n } catch (e) { /* squelch */ }\n\n if (!gl.getShaderPrecisionFormat) {\n return result\n }\n\n each(['FLOAT', 'INT'], function (numType) {\n each(['VERTEX', 'FRAGMENT'], function (shader) {\n each(['HIGH', 'MEDIUM', 'LOW'], function (numSize) {\n each(['precision', 'rangeMin', 'rangeMax'], function (key) {\n var format = gl.getShaderPrecisionFormat(gl[shader + '_SHADER'], gl[numSize + '_' + numType])[key]\n if (key !== 'precision') {\n key = 'precision ' + key\n }\n var line = ['webgl ', shader.toLowerCase(), ' shader ', numSize.toLowerCase(), ' ', numType.toLowerCase(), ' ', key, ':', format].join('')\n result.push(line)\n })\n })\n })\n })\n return result\n }\n var getWebglVendorAndRenderer = function () {\n /* This a subset of the WebGL fingerprint with a lot of entropy, while being reasonably browser-independent */\n try {\n var glContext = getWebglCanvas()\n var extensionDebugRendererInfo = glContext.getExtension('WEBGL_debug_renderer_info')\n return glContext.getParameter(extensionDebugRendererInfo.UNMASKED_VENDOR_WEBGL) + '~' + glContext.getParameter(extensionDebugRendererInfo.UNMASKED_RENDERER_WEBGL)\n } catch (e) {\n return null\n }\n }\n var getAdBlock = function () {\n var ads = document.createElement('div')\n ads.innerHTML = ' '\n ads.className = 'adsbox'\n var result = false\n try {\n // body may not exist, that's why we need try/catch\n document.body.appendChild(ads)\n result = document.getElementsByClassName('adsbox')[0].offsetHeight === 0\n document.body.removeChild(ads)\n } catch (e) {\n result = false\n }\n return result\n }\n var getHasLiedLanguages = function () {\n // We check if navigator.language is equal to the first language of navigator.languages\n // navigator.languages is undefined on IE11 (and potentially older IEs)\n if (typeof navigator.languages !== 'undefined') {\n try {\n var firstLanguages = navigator.languages[0].substr(0, 2)\n if (firstLanguages !== navigator.language.substr(0, 2)) {\n return true\n }\n } catch (err) {\n return true\n }\n }\n return false\n }\n var getHasLiedResolution = function () {\n return window.screen.width < window.screen.availWidth || window.screen.height < window.screen.availHeight\n }\n var getHasLiedOs = function () {\n var userAgent = navigator.userAgent.toLowerCase()\n var oscpu = navigator.oscpu\n var platform = navigator.platform.toLowerCase()\n var os\n // We extract the OS from the user agent (respect the order of the if else if statement)\n if (userAgent.indexOf('windows phone') >= 0) {\n os = 'Windows Phone'\n } else if (userAgent.indexOf('win') >= 0) {\n os = 'Windows'\n } else if (userAgent.indexOf('android') >= 0) {\n os = 'Android'\n } else if (userAgent.indexOf('linux') >= 0 || userAgent.indexOf('cros') >= 0) {\n os = 'Linux'\n } else if (userAgent.indexOf('iphone') >= 0 || userAgent.indexOf('ipad') >= 0) {\n os = 'iOS'\n } else if (userAgent.indexOf('mac') >= 0) {\n os = 'Mac'\n } else {\n os = 'Other'\n }\n // We detect if the person uses a mobile device\n var mobileDevice = (('ontouchstart' in window) ||\n (navigator.maxTouchPoints > 0) ||\n (navigator.msMaxTouchPoints > 0))\n\n if (mobileDevice && os !== 'Windows Phone' && os !== 'Android' && os !== 'iOS' && os !== 'Other') {\n return true\n }\n\n // We compare oscpu with the OS extracted from the UA\n if (typeof oscpu !== 'undefined') {\n oscpu = oscpu.toLowerCase()\n if (oscpu.indexOf('win') >= 0 && os !== 'Windows' && os !== 'Windows Phone') {\n return true\n } else if (oscpu.indexOf('linux') >= 0 && os !== 'Linux' && os !== 'Android') {\n return true\n } else if (oscpu.indexOf('mac') >= 0 && os !== 'Mac' && os !== 'iOS') {\n return true\n } else if ((oscpu.indexOf('win') === -1 && oscpu.indexOf('linux') === -1 && oscpu.indexOf('mac') === -1) !== (os === 'Other')) {\n return true\n }\n }\n\n // We compare platform with the OS extracted from the UA\n if (platform.indexOf('win') >= 0 && os !== 'Windows' && os !== 'Windows Phone') {\n return true\n } else if ((platform.indexOf('linux') >= 0 || platform.indexOf('android') >= 0 || platform.indexOf('pike') >= 0) && os !== 'Linux' && os !== 'Android') {\n return true\n } else if ((platform.indexOf('mac') >= 0 || platform.indexOf('ipad') >= 0 || platform.indexOf('ipod') >= 0 || platform.indexOf('iphone') >= 0) && os !== 'Mac' && os !== 'iOS') {\n return true\n } else {\n var platformIsOther = platform.indexOf('win') < 0 &&\n platform.indexOf('linux') < 0 &&\n platform.indexOf('mac') < 0 &&\n platform.indexOf('iphone') < 0 &&\n platform.indexOf('ipad') < 0\n if (platformIsOther !== (os === 'Other')) {\n return true\n }\n }\n\n return typeof navigator.plugins === 'undefined' && os !== 'Windows' && os !== 'Windows Phone'\n }\n var getHasLiedBrowser = function () {\n var userAgent = navigator.userAgent.toLowerCase()\n var productSub = navigator.productSub\n\n // we extract the browser from the user agent (respect the order of the tests)\n var browser\n if (userAgent.indexOf('firefox') >= 0) {\n browser = 'Firefox'\n } else if (userAgent.indexOf('opera') >= 0 || userAgent.indexOf('opr') >= 0) {\n browser = 'Opera'\n } else if (userAgent.indexOf('chrome') >= 0) {\n browser = 'Chrome'\n } else if (userAgent.indexOf('safari') >= 0) {\n browser = 'Safari'\n } else if (userAgent.indexOf('trident') >= 0) {\n browser = 'Internet Explorer'\n } else {\n browser = 'Other'\n }\n\n if ((browser === 'Chrome' || browser === 'Safari' || browser === 'Opera') && productSub !== '20030107') {\n return true\n }\n\n // eslint-disable-next-line no-eval\n var tempRes = eval.toString().length\n if (tempRes === 37 && browser !== 'Safari' && browser !== 'Firefox' && browser !== 'Other') {\n return true\n } else if (tempRes === 39 && browser !== 'Internet Explorer' && browser !== 'Other') {\n return true\n } else if (tempRes === 33 && browser !== 'Chrome' && browser !== 'Opera' && browser !== 'Other') {\n return true\n }\n\n // We create an error to see how it is handled\n var errFirefox\n try {\n // eslint-disable-next-line no-throw-literal\n throw 'a'\n } catch (err) {\n try {\n err.toSource()\n errFirefox = true\n } catch (errOfErr) {\n errFirefox = false\n }\n }\n return errFirefox && browser !== 'Firefox' && browser !== 'Other'\n }\n var isCanvasSupported = function () {\n var elem = document.createElement('canvas')\n return !!(elem.getContext && elem.getContext('2d'))\n }\n var isWebGlSupported = function () {\n // code taken from Modernizr\n if (!isCanvasSupported()) {\n return false\n }\n\n var glContext = getWebglCanvas()\n return !!window.WebGLRenderingContext && !!glContext\n }\n var isIE = function () {\n if (navigator.appName === 'Microsoft Internet Explorer') {\n return true\n } else if (navigator.appName === 'Netscape' && /Trident/.test(navigator.userAgent)) { // IE 11\n return true\n }\n return false\n }\n var hasSwfObjectLoaded = function () {\n return typeof window.swfobject !== 'undefined'\n }\n var hasMinFlashInstalled = function () {\n return window.swfobject.hasFlashPlayerVersion('9.0.0')\n }\n var addFlashDivNode = function (options) {\n var node = document.createElement('div')\n node.setAttribute('id', options.fonts.swfContainerId)\n document.body.appendChild(node)\n }\n var loadSwfAndDetectFonts = function (done, options) {\n var hiddenCallback = '___fp_swf_loaded'\n window[hiddenCallback] = function (fonts) {\n done(fonts)\n }\n var id = options.fonts.swfContainerId\n addFlashDivNode()\n var flashvars = { onReady: hiddenCallback }\n var flashparams = { allowScriptAccess: 'always', menu: 'false' }\n window.swfobject.embedSWF(options.fonts.swfPath, id, '1', '1', '9.0.0', false, flashvars, flashparams, {})\n }\n var getWebglCanvas = function () {\n var canvas = document.createElement('canvas')\n var gl = null\n try {\n gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl')\n } catch (e) { /* squelch */ }\n if (!gl) { gl = null }\n return gl\n }\n\n var components = [\n { key: 'userAgent', getData: UserAgent },\n { key: 'webdriver', getData: webdriver },\n { key: 'language', getData: languageKey },\n { key: 'colorDepth', getData: colorDepthKey },\n { key: 'deviceMemory', getData: deviceMemoryKey },\n { key: 'pixelRatio', getData: pixelRatioKey },\n { key: 'hardwareConcurrency', getData: hardwareConcurrencyKey },\n { key: 'screenResolution', getData: screenResolutionKey },\n { key: 'availableScreenResolution', getData: availableScreenResolutionKey },\n { key: 'timezoneOffset', getData: timezoneOffset },\n { key: 'timezone', getData: timezone },\n { key: 'sessionStorage', getData: sessionStorageKey },\n { key: 'localStorage', getData: localStorageKey },\n { key: 'indexedDb', getData: indexedDbKey },\n { key: 'addBehavior', getData: addBehaviorKey },\n { key: 'openDatabase', getData: openDatabaseKey },\n { key: 'cpuClass', getData: cpuClassKey },\n { key: 'platform', getData: platformKey },\n { key: 'doNotTrack', getData: doNotTrackKey },\n { key: 'plugins', getData: pluginsComponent },\n { key: 'canvas', getData: canvasKey },\n { key: 'webgl', getData: webglKey },\n { key: 'webglVendorAndRenderer', getData: webglVendorAndRendererKey },\n { key: 'adBlock', getData: adBlockKey },\n { key: 'hasLiedLanguages', getData: hasLiedLanguagesKey },\n { key: 'hasLiedResolution', getData: hasLiedResolutionKey },\n { key: 'hasLiedOs', getData: hasLiedOsKey },\n { key: 'hasLiedBrowser', getData: hasLiedBrowserKey },\n { key: 'touchSupport', getData: touchSupportKey },\n { key: 'fonts', getData: jsFontsKey, pauseBefore: true },\n { key: 'fontsFlash', getData: flashFontsKey, pauseBefore: true },\n { key: 'audio', getData: audioKey },\n { key: 'enumerateDevices', getData: enumerateDevicesKey }\n ]\n\n var Fingerprint2 = function (options) {\n throw new Error(\"'new Fingerprint()' is deprecated, see https://github.com/Valve/fingerprintjs2#upgrade-guide-from-182-to-200\")\n }\n\n Fingerprint2.get = function (options, callback) {\n if (!callback) {\n callback = options\n options = {}\n } else if (!options) {\n options = {}\n }\n extendSoft(options, defaultOptions)\n options.components = options.extraComponents.concat(components)\n\n var keys = {\n data: [],\n addPreprocessedComponent: function (key, value) {\n if (typeof options.preprocessor === 'function') {\n value = options.preprocessor(key, value)\n }\n keys.data.push({ key: key, value: value })\n }\n }\n\n var i = -1\n var chainComponents = function (alreadyWaited) {\n i += 1\n if (i >= options.components.length) { // on finish\n callback(keys.data)\n return\n }\n var component = options.components[i]\n\n if (options.excludes[component.key]) {\n chainComponents(false) // skip\n return\n }\n\n if (!alreadyWaited && component.pauseBefore) {\n i -= 1\n setTimeout(function () {\n chainComponents(true)\n }, 1)\n return\n }\n\n try {\n component.getData(function (value) {\n keys.addPreprocessedComponent(component.key, value)\n chainComponents(false)\n }, options)\n } catch (error) {\n // main body error\n keys.addPreprocessedComponent(component.key, String(error))\n chainComponents(false)\n }\n }\n\n chainComponents(false)\n }\n\n Fingerprint2.getPromise = function (options) {\n return new Promise(function (resolve, reject) {\n Fingerprint2.get(options, resolve)\n })\n }\n\n Fingerprint2.getV18 = function (options, callback) {\n if (callback == null) {\n callback = options\n options = {}\n }\n return Fingerprint2.get(options, function (components) {\n var newComponents = []\n for (var i = 0; i < components.length; i++) {\n var component = components[i]\n if (component.value === (options.NOT_AVAILABLE || 'not available')) {\n newComponents.push({ key: component.key, value: 'unknown' })\n } else if (component.key === 'plugins') {\n newComponents.push({\n key: 'plugins',\n value: map(component.value, function (p) {\n var mimeTypes = map(p[2], function (mt) {\n if (mt.join) { return mt.join('~') }\n return mt\n }).join(',')\n return [p[0], p[1], mimeTypes].join('::')\n })\n })\n } else if (['canvas', 'webgl'].indexOf(component.key) !== -1) {\n newComponents.push({ key: component.key, value: component.value.join('~') })\n } else if (['sessionStorage', 'localStorage', 'indexedDb', 'addBehavior', 'openDatabase'].indexOf(component.key) !== -1) {\n if (component.value) {\n newComponents.push({ key: component.key, value: 1 })\n } else {\n // skip\n continue\n }\n } else {\n if (component.value) {\n newComponents.push(component.value.join ? { key: component.key, value: component.value.join(';') } : component)\n } else {\n newComponents.push({ key: component.key, value: component.value })\n }\n }\n }\n var murmur = x64hash128(map(newComponents, function (component) { return component.value }).join('~~~'), 31)\n callback(murmur, newComponents)\n })\n }\n\n Fingerprint2.x64hash128 = x64hash128\n Fingerprint2.VERSION = '2.1.0'\n return Fingerprint2\n})\n","module.exports = false;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\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 aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\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\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\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 = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.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 if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\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\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\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 nativeReplace.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","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.github.io/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","// `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 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","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\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","'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 $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","'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","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\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","'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","// `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","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\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","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/*\r\n * Glorious webAO\r\n * made by sD, refactored by oldmud0 and Qubrick\r\n * credits to aleks for original idea and source\r\n*/\r\n\r\nimport Fingerprint2 from 'fingerprintjs2';\r\n\r\nimport { escapeChat, encodeChat, prepChat, safe_tags } from './encoding.js';\r\n\r\n// Load some defaults for the background and evidence dropdowns\r\nimport character_arr from \"./characters.js\";\r\nimport background_arr from \"./backgrounds.js\";\r\nimport evidence_arr from \"./evidence.js\";\r\nimport sfx_arr from \"./sounds.js\";\r\n\r\nimport chatbox_arr from \"./styles/chatbox/chatboxes.js\";\r\n\r\nimport { EventEmitter } from \"events\";\r\n\r\nimport { version } from '../package.json';\r\n\r\nlet client;\r\nlet viewport;\r\n\r\n// Get the arguments from the URL bar\r\nconst queryDict = {};\r\nlocation.search.substr(1).split(\"&\").forEach(function (item) {\r\n\tqueryDict[item.split(\"=\")[0]] = item.split(\"=\")[1];\r\n});\r\n\r\nconst serverIP = queryDict.ip;\r\nlet mode = queryDict.mode;\r\n\r\n// Unless there is an asset URL specified, use the wasabi one\r\nconst DEFAULT_HOST = location.hostname ? \"https://s3.wasabisys.com/webao/base/\" : \"base/\";\r\nconst AO_HOST = queryDict.asset || DEFAULT_HOST;\r\nconst THEME = queryDict.theme || \"default\";\r\nconst MUSIC_HOST = AO_HOST + \"sounds/music/\";\r\n\r\nconst UPDATE_INTERVAL = 60;\r\n\r\nconst transparentPNG = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\";\r\n/**\r\n * Toggles AO1-style loading using paginated music packets for mobile platforms.\r\n * The old loading uses more smaller packets instead of a single big one,\r\n * which caused problems on low-memory devices in the past.\r\n */\r\nlet oldLoading = false;\r\n\r\n// presettings\r\nlet selectedEffect = 0;\r\nlet selectedMenu = 1;\r\nlet selectedShout = 0;\r\n\r\nlet extrafeatures = [];\r\n\r\nlet hdid;\r\nconst options = { fonts: { extendedJsFonts: true, userDefinedFonts: [\"Ace Attorney\", \"8bitoperator\", \"DINEngschrift\"] }, excludes: { userAgent: true, enumerateDevices: true } };\r\n\r\nif (window.requestIdleCallback) {\r\n\trequestIdleCallback(function () {\r\n\t\tFingerprint2.get(options, function (components) {\r\n\t\t\thdid = Fingerprint2.x64hash128(components.reduce((a, b) => `${a.value || a}, ${b.value}`), 31);\r\n\t\t\tclient = new Client(serverIP);\r\n\t\t\tviewport = new Viewport();\r\n\r\n\t\t\tif (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) {\r\n\t\t\t\toldLoading = true;\r\n\t\t\t}\r\n\t\t\tclient.loadResources();\r\n\t\t});\r\n\t});\r\n} else {\r\n\tsetTimeout(function () {\r\n\t\tFingerprint2.get(options, function (components) {\r\n\t\t\thdid = Fingerprint2.x64hash128(components.reduce((a, b) => `${a.value || a}, ${b.value}`), 31);\r\n\t\t\tclient = new Client(serverIP);\r\n\t\t\tviewport = new Viewport();\r\n\r\n\t\t\tif (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) {\r\n\t\t\t\toldLoading = true;\r\n\t\t\t}\r\n\t\t\tclient.loadResources();\r\n\t\t});\r\n\t}, 500);\r\n}\r\n\r\n\r\nlet lastICMessageTime = new Date(0);\r\n\r\nclass Client extends EventEmitter {\r\n\tconstructor(address) {\r\n\t\tsuper();\r\n\t\tthis.serv = new WebSocket(\"ws://\" + address);\r\n\t\t// Assign the websocket events\r\n\t\tthis.serv.addEventListener(\"open\", this.emit.bind(this, \"open\"));\r\n\t\tthis.serv.addEventListener(\"close\", this.emit.bind(this, \"close\"));\r\n\t\tthis.serv.addEventListener(\"message\", this.emit.bind(this, \"message\"));\r\n\t\tthis.serv.addEventListener(\"error\", this.emit.bind(this, \"error\"));\r\n\r\n\t\tthis.on(\"open\", this.onOpen.bind(this));\r\n\t\tthis.on(\"close\", this.onClose.bind(this));\r\n\t\tthis.on(\"message\", this.onMessage.bind(this));\r\n\t\tthis.on(\"error\", this.onError.bind(this));\r\n\r\n\t\t// Preset some of the variables\r\n\r\n\t\tthis.hp = [0, 0];\r\n\r\n\t\tthis.playerID = 1;\r\n\t\tthis.charID = -1;\r\n\t\tthis.char_list_length = 0;\r\n\t\tthis.evidence_list_length = 0;\r\n\t\tthis.music_list_length = 0;\r\n\t\tthis.testimonyID = 0;\r\n\r\n\t\tthis.chars = [];\r\n\t\tthis.emotes = [];\r\n\t\tthis.evidences = [];\r\n\t\tthis.areas = [];\r\n\t\tthis.musics = [];\r\n\r\n\t\tthis.resources = {\r\n\t\t\t\"holdit\": {\r\n\t\t\t\t\"src\": AO_HOST + \"misc/default/holdit_bubble.png\",\r\n\t\t\t\t\"duration\": 720\r\n\t\t\t},\r\n\t\t\t\"objection\": {\r\n\t\t\t\t\"src\": AO_HOST + \"misc/default/objection_bubble.png\",\r\n\t\t\t\t\"duration\": 720\r\n\t\t\t},\r\n\t\t\t\"takethat\": {\r\n\t\t\t\t\"src\": AO_HOST + \"misc/default/takethat_bubble.png\",\r\n\t\t\t\t\"duration\": 840\r\n\t\t\t},\r\n\t\t\t\"witnesstestimony\": {\r\n\t\t\t\t\"src\": AO_HOST + \"themes/\" + THEME + \"/witnesstestimony.gif\",\r\n\t\t\t\t\"duration\": 1560,\r\n\t\t\t\t\"sfx\": AO_HOST + \"sounds/general/sfx-testimony.wav\"\r\n\t\t\t},\r\n\t\t\t\"crossexamination\": {\r\n\t\t\t\t\"src\": AO_HOST + \"themes/\" + THEME + \"/crossexamination.gif\",\r\n\t\t\t\t\"duration\": 1600,\r\n\t\t\t\t\"sfx\": AO_HOST + \"sounds/general/sfx-testimony2.wav\"\r\n\t\t\t},\r\n\t\t\t\"guilty\": {\r\n\t\t\t\t\"src\": AO_HOST + \"themes/\" + THEME + \"/guilty.gif\",\r\n\t\t\t\t\"duration\": 2870,\r\n\t\t\t\t\"sfx\": AO_HOST + \"sounds/general/sfx-guilty.wav\"\r\n\t\t\t},\r\n\t\t\t\"notguilty\": {\r\n\t\t\t\t\"src\": AO_HOST + \"themes/\" + THEME + \"/notguilty.gif\",\r\n\t\t\t\t\"duration\": 2440,\r\n\t\t\t\t\"sfx\": AO_HOST + \"sounds/general/sfx-notguilty.wav\"\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tthis.selectedEmote = -1;\r\n\t\tthis.selectedEvidence = 0;\r\n\r\n\t\tthis.checkUpdater = null;\r\n\r\n\t\t/**\r\n\t\t * Assign handlers for all commands\r\n\t\t * If you implement a new command, you need to add it here\r\n\t\t */\r\n\t\tthis.on(\"MS\", this.handleMS.bind(this));\r\n\t\tthis.on(\"CT\", this.handleCT.bind(this));\r\n\t\tthis.on(\"MC\", this.handleMC.bind(this));\r\n\t\tthis.on(\"RMC\", this.handleRMC.bind(this));\r\n\t\tthis.on(\"CI\", this.handleCI.bind(this));\r\n\t\tthis.on(\"SC\", this.handleSC.bind(this));\r\n\t\tthis.on(\"EI\", this.handleEI.bind(this));\r\n\t\tthis.on(\"FL\", this.handleFL.bind(this));\r\n\t\tthis.on(\"LE\", this.handleLE.bind(this));\r\n\t\tthis.on(\"EM\", this.handleEM.bind(this));\r\n\t\tthis.on(\"SM\", this.handleSM.bind(this));\r\n\t\tthis.on(\"MM\", this.handleMM.bind(this));\r\n\t\tthis.on(\"BD\", this.handleBD.bind(this));\r\n\t\tthis.on(\"KB\", this.handleKB.bind(this));\r\n\t\tthis.on(\"KK\", this.handleKK.bind(this));\r\n\t\tthis.on(\"DONE\", this.handleDONE.bind(this));\r\n\t\tthis.on(\"BN\", this.handleBN.bind(this));\r\n\t\tthis.on(\"HP\", this.handleHP.bind(this));\r\n\t\tthis.on(\"RT\", this.handleRT.bind(this));\r\n\t\tthis.on(\"ZZ\", this.handleZZ.bind(this));\r\n\t\tthis.on(\"ID\", this.handleID.bind(this));\r\n\t\tthis.on(\"PN\", this.handlePN.bind(this));\r\n\t\tthis.on(\"SI\", this.handleSI.bind(this));\r\n\t\tthis.on(\"ARUP\", this.handleARUP.bind(this));\r\n\t\tthis.on(\"CharsCheck\", this.handleCharsCheck.bind(this));\r\n\t\tthis.on(\"decryptor\", this.handleDecryptor.bind(this));\r\n\t\tthis.on(\"PV\", this.handlePV.bind(this));\r\n\t\tthis.on(\"CHECK\", () => { });\r\n\r\n\t\tthis._lastTimeICReceived = new Date(0);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the current player's character.\r\n\t */\r\n\tget character() {\r\n\t\treturn this.chars[this.charID];\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the player's currently selected emote.\r\n\t */\r\n\tget emote() {\r\n\t\treturn this.emotes[this.selectedEmote];\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the current evidence ID unless the player doesn't want to present any evidence\r\n\t */\r\n\tget evidence() {\r\n\t\treturn (document.getElementById(\"button_present\").classList.contains(\"dark\")) ? this.selectedEvidence : 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Hook for sending messages to the server\r\n\t * @param {string} message the message to send\r\n\t */\r\n\tsendServer(message) {\r\n\t\t// console.log(message);\r\n\t\tthis.serv.send(message);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends an out-of-character chat message.\r\n\t * @param {string} message the message to send\r\n\t */\r\n\tsendOOC(message) {\r\n\t\tsetCookie(\"OOC_name\", document.getElementById(\"OOC_name\").value);\r\n\t\tthis.sendServer(`CT#${escapeChat(encodeChat(document.getElementById(\"OOC_name\").value))}#${escapeChat(encodeChat(message))}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends an in-character chat message.\r\n\t * @param {string} deskmod currently unused\r\n\t * @param {string} speaking who is speaking\r\n\t * @param {string} name the name of the current character\r\n\t * @param {string} silent whether or not it's silent\r\n\t * @param {string} message the message to be sent\r\n\t * @param {string} side the name of the side in the background\r\n\t * @param {string} sfx_name the name of the sound effect\r\n\t * @param {string} emote_modifier whether or not to zoom\r\n\t * @param {number} sfx_delay the delay (in milliseconds) to play the sound effect\r\n\t * @param {string} objection_modifier the number of the shout to play\r\n\t * @param {string} evidence the filename of evidence to show\r\n\t * @param {number} flip change to 1 to reverse sprite for position changes\r\n\t * @param {number} realization screen flash effect\r\n\t * @param {number} text_color text color\r\n\t * @param {string} showname custom name to be displayed (optional)\r\n\t * @param {number} other_charid paired character (optional)\r\n\t * @param {number} self_offset offset to paired character (optional)\r\n\t * @param {number} noninterrupting_preanim play the full preanim (optional)\r\n\t */\r\n\tsendIC(deskmod, preanim, name, emote, message, side, sfx_name, emote_modifier, sfx_delay, objection_modifier, evidence, flip, realization, text_color, showname, other_charid, self_offset, noninterrupting_preanim, looping_sfx, screenshake) {\r\n\t\tlet extra_cccc = ``;\r\n\t\tlet extra_27 = ``;\r\n\r\n\t\tif (extrafeatures.includes(\"cccc_ic_support\")) {\r\n\t\t\textra_cccc = `${showname}#${other_charid}#${self_offset}#${noninterrupting_preanim}#`;\r\n\r\n\t\t\tif (extrafeatures.includes(\"looping_sfx\")) {\r\n\t\t\t\tconst frame_screenshake = \"\";\r\n\t\t\t\tconst frame_realization = \"\";\r\n\t\t\t\tconst frame_sfx = \"\";\r\n\t\r\n\t\t\t\textra_27 = `${looping_sfx}#${screenshake}#${frame_screenshake}#${frame_realization}#${frame_sfx}#`;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tconst serverMessage = `MS#${deskmod}#${preanim}#${name}#${emote}` +\r\n\t\t\t`#${escapeChat(encodeChat(message))}#${side}#${sfx_name}#${emote_modifier}` +\r\n\t\t\t`#${this.charID}#${sfx_delay}#${objection_modifier}#${evidence}#${flip}#${realization}#${text_color}#${extra_cccc}${extra_27}%`;\r\n\t\t\r\n\t\tconsole.log(serverMessage);\r\n\t\t\r\n\t\tthis.sendServer(serverMessage);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends add evidence command.\r\n\t * @param {string} evidence name\r\n\t * @param {string} evidence description\r\n\t * @param {string} evidence image filename\r\n\t */\r\n\tsendPE(name, desc, img) {\r\n\t\tthis.sendServer(`PE#${escapeChat(encodeChat(name))}#${escapeChat(encodeChat(desc))}#${img}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends edit evidence command.\r\n\t * @param {number} evidence id\r\n\t * @param {string} evidence name\r\n\t * @param {string} evidence description\r\n\t * @param {string} evidence image filename\r\n\t */\r\n\tsendEE(id, name, desc, img) {\r\n\t\tthis.sendServer(`EE#${id}#${escapeChat(encodeChat(name))}#${escapeChat(encodeChat(desc))}#${img}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends delete evidence command.\r\n\t * @param {number} evidence id\r\n\t */\r\n\tsendDE(id) {\r\n\t\tthis.sendServer(`DE#${id}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends health point command.\r\n\t * @param {number} side the position\r\n\t * @param {number} hp the health point\r\n\t */\r\n\tsendHP(side, hp) {\r\n\t\tthis.sendServer(`HP#${side}#${hp}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends call mod command.\r\n\t * @param {string} message to mod\r\n\t */\r\n\tsendZZ(msg) {\r\n\t\tif (extrafeatures.includes(\"modcall_reason\")) {\r\n\t\t\tthis.sendServer(`ZZ#${msg}#%`);\r\n\t\t} else {\r\n\t\t\tthis.sendServer(`ZZ#%`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sends testimony command.\r\n\t * @param {string} testimony type\r\n\t */\r\n\tsendRT(testimony) {\r\n\t\tif (this.chars[this.charID].side === \"jud\") {\r\n\t\t\tthis.sendServer(`RT#${testimony}#%`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to change the music to the specified track.\r\n\t * @param {string} track the track ID\r\n\t */\r\n\tsendMusicChange(track) {\r\n\t\tthis.sendServer(`MC#${track}#${this.charID}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to leave the room and free the character slot.\r\n\t * \r\n\t * Note: This packet is undocumented. It is not implemented by\r\n\t * either the AO2 client or tsuserver.\r\n\t */\r\n\tsendLeaveRoom() {\r\n\t\tthis.sendServer(\"FC#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Begins the handshake process by sending an identifier\r\n\t * to the server.\r\n\t */\r\n\tjoinServer() {\r\n\t\tconsole.log(`Your emulated HDID is ${hdid}`);\r\n\r\n\t\tthis.sendServer(`HI#${hdid}#%`);\r\n\t\tthis.sendServer(`ID#webAO#webAO#%`);\r\n\t\tthis.checkUpdater = setInterval(() => this.sendCheck(), 5000);\r\n\t}\r\n\r\n\t/**\r\n\t * Load game resources and stored settings.\r\n\t */\r\n\tloadResources() {\r\n\t\tdocument.getElementById(\"client_version\").innerText = \"version \" + version;\r\n\r\n\t\t// Load iniedit character array to select\r\n\t\tconst iniedit_select = document.getElementById(\"client_ininame\");\r\n\t\tcharacter_arr.forEach(inicharacter => {\r\n\t\t\tiniedit_select.add(new Option(inicharacter));\r\n\t\t});\r\n\r\n\t\t// Load background array to select\r\n\t\tconst background_select = document.getElementById(\"bg_select\");\r\n\t\tbackground_select.add(new Option(\"Custom\", 0));\r\n\t\tbackground_arr.forEach(background => {\r\n\t\t\tbackground_select.add(new Option(background));\r\n\t\t});\r\n\r\n\t\t// Load evidence array to select\r\n\t\tconst evidence_select = document.getElementById(\"evi_select\");\r\n\t\tevidence_select.add(new Option(\"Custom\", 0));\r\n\t\tevidence_arr.forEach(evidence => {\r\n\t\t\tevidence_select.add(new Option(evidence));\r\n\t\t});\r\n\r\n\t\t// Read cookies and set the UI to its values\r\n\t\tdocument.getElementById(\"OOC_name\").value = getCookie(\"OOC_name\") || \"web\"+parseInt(Math.random()*100+10);\r\n\r\n\t\t// Read cookies and set the UI to its values\r\n\t\tvar cookietheme = getCookie(\"theme\") || \"default\";\r\n\r\n\t\tdocument.querySelector('#client_themeselect [value=\"' + cookietheme + '\"]').selected = true;\r\n\t\treloadTheme();\r\n\r\n\t\tvar cookiechatbox = getCookie(\"chatbox\") || \"dynamic\";\r\n\r\n\t\tdocument.querySelector('#client_chatboxselect [value=\"' + cookiechatbox + '\"]').selected = true;\r\n\t\tsetChatbox(cookiechatbox);\r\n\r\n\t\tdocument.getElementById(\"client_musicaudio\").volume = getCookie(\"musicVolume\") || 1;\r\n\t\tchangeMusicVolume();\r\n\t\tdocument.getElementById(\"client_svolume\").value = getCookie(\"sfxVolume\") || 1;\r\n\t\tchangeSFXVolume();\r\n\t\tdocument.getElementById(\"client_bvolume\").value = getCookie(\"blipVolume\") || 1;\r\n\t\tchangeBlipVolume();\r\n\r\n\t\tdocument.getElementById(\"ic_chat_name\").value = getCookie(\"ic_chat_name\");\r\n\t\tdocument.getElementById(\"showname\").checked = getCookie(\"showname\");\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to play as a specified character.\r\n\t * @param {number} character the character ID\r\n\t */\r\n\tsendCharacter(character) {\r\n\t\tif (this.chars[character].name)\r\n\t\t\tthis.sendServer(`CC#${this.playerID}#${character}#web#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to select a music track.\r\n\t * @param {number?} song the song to be played\r\n\t */\r\n\tsendMusic(song) {\r\n\t\tthis.sendServer(`MC#${song}#${this.charID}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends a keepalive packet.\r\n\t */\r\n\tsendCheck() {\r\n\t\tthis.sendServer(`CH#${this.charID}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when a connection is established to the server.\r\n\t */\r\n\tonOpen(_e) {\r\n\t\tclient.joinServer();\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when the connection to the server closes.\r\n\t * @param {CloseEvent} e\r\n\t */\r\n\tonClose(e) {\r\n\t\tconsole.error(`The connection was closed: ${e.reason} (${e.code})`);\r\n\t\tif (e.code !== 1001) {\r\n\t\t\tdocument.getElementById(\"client_error\").style.display = \"flex\";\r\n\t\t\tdocument.getElementById(\"client_loading\").style.display = \"none\";\r\n\t\t\tdocument.getElementById(\"error_id\").textContent = e.code;\r\n\t\t\tthis.cleanup();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when a packet is received from the server.\r\n\t * @param {MessageEvent} e\r\n\t */\r\n\tonMessage(e) {\r\n\t\tconst msg = e.data;\r\n\t\tconsole.debug(msg);\r\n\r\n\t\tconst lines = msg.split(\"%\");\r\n\t\tconst args = lines[0].split(\"#\");\r\n\t\tconst header = args[0];\r\n\r\n\t\tif (!this.emit(header, args)) {\r\n\t\t\tconsole.warn(`Invalid packet header ${header}`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when an network error occurs.\r\n\t * @param {ErrorEvent} e \r\n\t */\r\n\tonError(e) {\r\n\t\tconsole.error(`A network error occurred: ${e.reason} (${e.code})`);\r\n\t\tdocument.getElementById(\"client_error\").style.display = \"flex\";\r\n\t\tdocument.getElementById(\"error_id\").textContent = e.code;\r\n\t\tthis.cleanup();\r\n\t}\r\n\r\n\t/**\r\n\t * Stop sending keepalives to the server.\r\n\t */\r\n\tcleanup() {\r\n\t\tclearInterval(this.checkUpdater);\r\n\r\n\t\t// the connection got rekt, get rid of the old musiclist\r\n\t\tthis.resetMusiclist();\r\n\t\tdocument.getElementById(\"client_chartable\").innerHTML = \"\";\r\n\t}\r\n\r\n\t/**\r\n\t * Handles an in-character chat message.\r\n\t * @param {*} args packet arguments\r\n\t */\r\n\thandleMS(args) {\r\n\t\t// TODO: this if-statement might be a bug.\r\n\t\tif (args[4] !== viewport.chatmsg.content) {\r\n\t\t\tdocument.getElementById(\"client_inner_chat\").innerHTML = \"\";\r\n\r\n\t\t\tconst char_id = Number(args[9]);\r\n\t\t\tconst char_name = safe_tags(args[3]);\r\n\r\n\t\t\tlet msg_nameplate = args[3];\r\n\t\t\tlet msg_blips = \"male\";\r\n\t\t\tlet char_chatbox = \"default\";\r\n\t\t\tlet char_muted = false;\r\n\r\n\t\t\ttry {\r\n\t\t\t\tmsg_nameplate = this.chars[char_id].showname;\r\n\t\t\t\tmsg_blips = this.chars[char_id].gender;\r\n\t\t\t\tchar_chatbox = this.chars[char_id].chat;\r\n\t\t\t\tchar_muted = this.chars[char_id].muted;\t\t\t\t\r\n\r\n\t\t\t\tif(this.chars[char_id].name !== char_name) {\r\n\t\t\t\t\tconsole.info(this.chars[char_id].name + \" is iniediting to \" + char_name);\r\n\t\t\t\t\tconst chargs = (char_name + \"&\" + \"iniediter\").split(\"&\");\r\n\t\t\t\t\tthis.handleCharacterInfo(chargs,char_id);\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\tmsg_nameplate = args[3];\r\n\t\t\t\tmsg_blips = \"male\";\r\n\t\t\t\tchar_chatbox = \"default\";\r\n\t\t\t\tchar_muted = false;\r\n\t\t\t\tconsole.error(\"we're still missing some character data\");\r\n\t\t\t}\r\n\r\n\t\t\tif (char_muted === false) {\r\n\r\n\t\t\tlet chatmsg = {\r\n\t\t\t\tdeskmod: safe_tags(args[1]).toLowerCase(),\r\n\t\t\t\tpreanim: safe_tags(args[2]).toLowerCase(), // get preanim\r\n\t\t\t\tnameplate: msg_nameplate,\t\t\t\t// TODO: there's a new feature that let's people choose the name that's displayed\r\n\t\t\t\tchatbox: char_chatbox,\r\n\t\t\t\tname: char_name,\r\n\t\t\t\tsprite: safe_tags(args[4]).toLowerCase(),\r\n\t\t\t\tcontent: prepChat(args[5]), // Escape HTML tags\r\n\t\t\t\tside: args[6].toLowerCase(),\r\n\t\t\t\tsound: safe_tags(args[7]).toLowerCase(),\r\n\t\t\t\tblips: safe_tags(msg_blips),\r\n\t\t\t\ttype: Number(args[8]),\r\n\t\t\t\tcharid: char_id,\r\n\t\t\t\tsnddelay: Number(args[10]),\r\n\t\t\t\tobjection: Number(args[11]),\r\n\t\t\t\tevidence: safe_tags(args[12]),\r\n\t\t\t\tflip: Number(args[13]),\r\n\t\t\t\tflash: Number(args[14]),\r\n\t\t\t\tcolor: Number(args[15])\r\n\t\t\t};\r\n\r\n\t\t\tif (extrafeatures.includes(\"cccc_ic_support\")) {\r\n\t\t\t\tconst extra_cccc = {\r\n\t\t\t\t\tshowname: safe_tags(args[16]),\r\n\t\t\t\t\tother_charid: Number(args[17]),\r\n\t\t\t\t\tother_name: safe_tags(args[18]),\r\n\t\t\t\t\tother_emote: safe_tags(args[19]),\r\n\t\t\t\t\tself_offset: Number(args[20]),\r\n\t\t\t\t\tother_offset: Number(args[21]),\r\n\t\t\t\t\tother_flip: Number(args[22]),\r\n\t\t\t\t\tnoninterrupting_preanim: Number(args[23])\r\n\t\t\t\t};\r\n\t\t\t\tchatmsg = Object.assign(extra_cccc, chatmsg);\r\n\r\n\t\t\t\tif (extrafeatures.includes(\"looping_sfx\")) {\r\n\t\t\t\t\tconst extra_27 = {\r\n\t\t\t\t\t\tlooping_sfx: Number(args[24]),\r\n\t\t\t\t\t\tscreenshake: Number(args[25]),\r\n\t\t\t\t\t\tframe_screenshake: safe_tags(args[26]),\r\n\t\t\t\t\t\tframe_realization: safe_tags(args[27]),\r\n\t\t\t\t\t\tframe_sfx: safe_tags(args[28])\r\n\t\t\t\t\t};\r\n\t\t\t\t\tchatmsg = Object.assign(extra_27, chatmsg);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst extra_27 = {\r\n\t\t\t\t\t\tlooping_sfx: 0,\r\n\t\t\t\t\t\tscreenshake: 0,\r\n\t\t\t\t\t\tframe_screenshake: \"\",\r\n\t\t\t\t\t\tframe_realization: \"\",\r\n\t\t\t\t\t\tframe_sfx: \"\"\r\n\t\t\t\t\t};\r\n\t\t\t\t\tchatmsg = Object.assign(extra_27, chatmsg);\r\n\t\t\t\t}\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\tconst extra_cccc = {\r\n\t\t\t\t\tshowname: \"\",\r\n\t\t\t\t\tother_charid: 0,\r\n\t\t\t\t\tother_name: \"\",\r\n\t\t\t\t\tother_emote: \"\",\r\n\t\t\t\t\tself_offset: 0,\r\n\t\t\t\t\tother_offset: 0,\r\n\t\t\t\t\tother_flip: 0,\r\n\t\t\t\t\tnoninterrupting_preanim: 0\r\n\t\t\t\t};\r\n\t\t\t\tchatmsg = Object.assign(extra_cccc, chatmsg);\r\n\t\t\t}\r\n\r\n\t\t\t// our own message appeared, reset the buttons\r\n\t\t\tif (chatmsg.charid === this.charID) {\r\n\t\t\t\tresetICParams();\r\n\t\t\t}\r\n\r\n\t\t\tviewport.say(chatmsg); // no await\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles an out-of-character chat message.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleCT(args) {\r\n\t\tconst oocLog = document.getElementById(\"client_ooclog\");\r\n\t\toocLog.innerHTML += `${prepChat(args[1])}: ${prepChat(args[2])}\\r\\n`;\r\n\t\tif (oocLog.scrollTop > oocLog.scrollHeight - 600) {\r\n\t\t\toocLog.scrollTop = oocLog.scrollHeight;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a music change to an arbitrary resource.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleMC(args) {\r\n\t\tconst track = prepChat(args[1]);\r\n\t\tlet charID = Number(args[2]);\r\n \r\n\t\tconst music = viewport.music;\r\n\t\tlet musicname;\r\n\t\tmusic.pause();\r\n\t\tif(track.startsWith(\"http\")) {\r\n\t\t\tmusic.src = track;\r\n\t\t} else {\r\n\t\t\tmusic.src = MUSIC_HOST + encodeURI(track.toLowerCase());\r\n\t\t}\r\n\t\tmusic.play();\r\n\r\n\t\ttry {\r\n\t\t\tmusicname = this.chars[charID].name;\r\n\t\t} catch(e) {\r\n\t\t\tcharID = -1;\r\n\t\t}\r\n\r\n\t\tif (charID >= 0) {\r\n\t\t\tmusicname = this.chars[charID].name;\r\n\t\t\tappendICLog(`${musicname} changed music to ${track}`);\r\n\t\t} else {\r\n\t\t\tappendICLog(`The music was changed to ${track}`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a music change to an arbitrary resource, with an offset in seconds.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleRMC(args) {\r\n\t\tviewport.music.pause();\r\n\t\tconst music = viewport.music;\r\n\t\t// Music offset + drift from song loading\r\n\t\tmusic.totime = args[1];\r\n\t\tmusic.offset = new Date().getTime() / 1000;\r\n\t\tmusic.addEventListener(\"loadedmetadata\", function () {\r\n\t\t\tmusic.currentTime += parseFloat(music.totime + (new Date().getTime() / 1000 - music.offset)).toFixed(3);\r\n\t\t\tmusic.play();\r\n\t\t}, false);\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the incoming character information, and downloads the sprite + ini for it\r\n\t * @param {Array} chargs packet arguments\r\n\t * @param {Number} charid character ID\r\n\t */\r\n\tasync handleCharacterInfo(chargs, charid) {\r\n\t\tif (chargs[0]) {\r\n\t\t\tlet cini = {};\r\n\t\t\tlet icon = AO_HOST + \"characters/\" + encodeURI(chargs[0].toLowerCase()) + \"/char_icon.png\";\r\n\t\t\tlet img = document.getElementById(`demo_${charid}`);\r\n\t\t\timg.alt = chargs[0];\r\n\t\t\timg.src = icon;\t// seems like a good time to load the icon\r\n\r\n\t\t\t// If the ini doesn't exist on the server this will throw an error\r\n\t\t\ttry {\r\n\t\t\t\tconst cinidata = await request(AO_HOST + \"characters/\" + encodeURI(chargs[0].toLowerCase()) + \"/char.ini\");\r\n\t\t\t\tcini = INI.parse(cinidata);\r\n\t\t\t} catch (err) {\r\n\t\t\t\tcini = {};\r\n\t\t\t\timg.classList.add(\"noini\");\r\n\t\t\t\tconsole.warn(\"character \" + chargs[0] + \" is missing from webAO\");\r\n\t\t\t\t// If it does, give the user a visual indication that the character is unusable\r\n\t\t\t}\r\n\r\n\t\t\tconst mute_select = document.getElementById(\"mute_select\");\r\n\t\t\tmute_select.add(new Option(safe_tags(chargs[0]), charid));\r\n\t\t\tconst pair_select = document.getElementById(\"pair_select\");\r\n\t\t\tpair_select.add(new Option(safe_tags(chargs[0]), charid));\r\n\r\n\t\t\t// sometimes ini files lack important settings\r\n\t\t\tconst default_options = {\r\n\t\t\t\tname: chargs[0],\r\n\t\t\t\tshowname: chargs[0],\r\n\t\t\t\tside: \"def\",\r\n\t\t\t\tgender: \"male\",\r\n\t\t\t\tchat: \"aa\"\r\n\t\t\t};\r\n\t\t\tcini.options = Object.assign(default_options, cini.options);\r\n\r\n\t\t\t// sometimes ini files lack important settings\r\n\t\t\tconst default_emotions = {\r\n\t\t\t\tnumber: 0\r\n\t\t\t};\r\n\t\t\tcini.emotions = Object.assign(default_emotions, cini.emotions);\r\n\r\n\t\t\tthis.chars[charid] = {\r\n\t\t\t\tname: safe_tags(chargs[0]),\r\n\t\t\t\tshowname: safe_tags(cini.options.showname),\r\n\t\t\t\tdesc: safe_tags(chargs[1]),\r\n\t\t\t\tgender: safe_tags(cini.options.gender).toLowerCase(),\r\n\t\t\t\tside: safe_tags(cini.options.side).toLowerCase(),\r\n\t\t\t\tchat: safe_tags(cini.options.chat).toLowerCase(),\r\n\t\t\t\tevidence: chargs[3],\r\n\t\t\t\ticon: icon,\r\n\t\t\t\tinifile: cini,\r\n\t\t\t\tmuted: false\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tconsole.warn(\"missing charid \" + charid);\r\n\t\t\tlet img = document.getElementById(`demo_${charid}`);\r\n\t\t\timg.style.display = \"none\";\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming character information, bundling multiple characters\r\n\t * per packet.\r\n\t * CI#0#Phoenix&description&&&&#Miles ...\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleCI(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Character \" + args[1];\r\n\t\t// Loop through the 10 characters that were sent\r\n\t\tfor (let i = 2; i <= args.length - 2; i++) {\r\n\t\t\tif (i % 2 === 0) {\r\n\t\t\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Character ${i}/${this.char_list_length}`;\r\n\t\t\t\tconst chargs = args[i].split(\"&\");\r\n\t\t\t\tconst charid = args[i - 1];\r\n\t\t\t\tsetTimeout(() => this.handleCharacterInfo(chargs, charid), charid*10);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Request the next pack\r\n\t\tthis.sendServer(\"AN#\" + ((args[1] / 10) + 1) + \"#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming character information, containing all characters\r\n\t * in one packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleSC(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Characters\";\r\n\t\tfor (let i = 1; i < args.length; i++) {\r\n\t\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Character ${i}/${this.char_list_length}`;\r\n\t\t\tconst chargs = args[i].split(\"&\");\r\n\t\t\tconst charid = i - 1;\r\n\t\t\tsetTimeout(() => this.handleCharacterInfo(chargs, charid), charid*10);\r\n\t\t}\r\n\t\t// We're done with the characters, request the music\r\n\t\tthis.sendServer(\"RM#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming evidence information, containing only one evidence\r\n\t * item per packet.\r\n\t * \r\n\t * Mostly unimplemented in webAO.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleEI(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Evidence ${args[1]}/${this.evidence_list_length}`;\r\n\t\tthis.sendServer(\"RM#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming evidence list, all evidences at once\r\n\t * item per packet.\r\n\t * \r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleLE(args) {\r\n\t\tthis.evidences = [];\r\n\t\tfor (let i = 1; i < args.length - 1; i++) {\r\n\t\t\tconst arg = args[i].split(\"&\");\r\n\t\t\tthis.evidences[i - 1] = {\r\n\t\t\t\tname: prepChat(arg[0]),\r\n\t\t\t\tdesc: prepChat(arg[1]),\r\n\t\t\t\tfilename: safe_tags(arg[2]),\r\n\t\t\t\ticon: AO_HOST + \"evidence/\" + encodeURI(arg[2].toLowerCase())\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst evidence_box = document.getElementById(\"evidences\");\r\n\t\tevidence_box.innerHTML = \"\";\r\n\t\tfor (let i = 1; i <= this.evidences.length; i++) {\r\n\t\t\tevidence_box.innerHTML += `<img src=\"${this.evidences[i - 1].icon}\" \r\n\t\t\t\tid=\"evi_${i}\" \r\n\t\t\t\talt=\"${this.evidences[i - 1].name}\"\r\n\t\t\t\tclass=\"evi_icon\"\r\n\t\t\t\tonclick=\"pickEvidence(${i})\">`;\r\n\t\t}\r\n\t}\r\n\r\n\tresetMusiclist() {\r\n\t\tthis.musics = [];\r\n\t\tthis.areas = [];\r\n\t\tdocument.getElementById(\"client_musiclist\").innerHTML = \"\";\r\n\t\tdocument.getElementById(\"areas\").innerHTML = \"\";\t\t\r\n\t}\r\n\r\n\tisAudio(trackname) {\r\n\t\tif (/\\.(?:wav|mp3|mp4|ogg|opus)$/i.test(trackname) || // regex for file extenstions\r\n\t\t\ttrackname.startsWith(\"=\") ||\r\n\t\t\ttrackname.startsWith(\"-\")) // category markers\r\n\t\t{\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\thandleMusicInfo(trackindex,trackname) {\r\n\t\tif (this.isAudio(trackname)) {\r\n\t\t\t// After reached the audio put everything in the music list\r\n\t\t\tconst newentry = document.createElement(\"OPTION\");\r\n\t\t\tnewentry.text = trackname;\r\n\t\t\tdocument.getElementById(\"client_musiclist\").options.add(newentry);\r\n\t\t\tthis.musics.push(trackname);\r\n\t\t} else {\r\n\t\t\tconst thisarea = {\r\n\t\t\t\tname: trackname,\r\n\t\t\t\tplayers: 0,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\tcm: \"\",\r\n\t\t\t\tlocked: \"FREE\"\r\n\t\t\t};\r\n\r\n\t\t\tthis.areas.push(thisarea);\r\n\r\n\t\t\t// Create area button\r\n\t\t\tlet newarea = document.createElement(\"SPAN\");\r\n\t\t\tnewarea.classList = \"area-button area-default\";\r\n\t\t\tnewarea.id = \"area\" + trackindex;\r\n\t\t\tnewarea.innerText = thisarea.name;\r\n\t\t\tnewarea.title = \"Players: <br>\" +\r\n\t\t\t\t\"Status: <br>\" +\r\n\t\t\t\t\"CM: \";\r\n\t\t\tnewarea.onclick = function () {\r\n\t\t\t\tarea_click(this);\r\n\t\t\t};\r\n\r\n\t\t\tdocument.getElementById(\"areas\").appendChild(newarea);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming music information, containing multiple entries\r\n\t * per packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleEM(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Music\";\r\n\t\tif(args[1] === \"0\") {\r\n\t\t\tthis.resetMusiclist();\r\n\t\t}\r\n\r\n\t\tfor (let i = 2; i < args.length - 1; i++) {\r\n\t\t\tif (i % 2 === 0) {\r\n\t\t\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Music ${i}/${this.music_list_length}`;\r\n\t\t\t\tthis.handleMusicInfo(args[i-1],safe_tags(args[i]));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// get the next batch of tracks\r\n\t\tthis.sendServer(\"AM#\" + ((args[1] / 10) + 1) + \"#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming music information, containing all music in one packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleSM(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Music \";\r\n\t\tthis.resetMusiclist();\r\n\r\n\t\tfor (let i = 1; i < args.length - 1; i++) {\r\n\t\t\t// Check when found the song for the first time\r\n\t\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Music ${i}/${this.music_list_length}`;\r\n\t\t\tthis.handleMusicInfo(i-1,safe_tags(args[i]));\r\n\t\t}\r\n\r\n\t\t// Music done, carry on\r\n\t\tthis.sendServer(\"RD#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the \"MusicMode\" packet\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleMM(_args) {\r\n\t\t// It's unused nowadays, as preventing people from changing the music is now serverside\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the kicked packet\r\n\t * @param {String} type is it a kick or a ban\r\n\t * @param {String} reason why\r\n\t */\r\n\thandleBans(type, reason) {\r\n\t\tdocument.getElementById(\"client_error\").style.display = \"flex\";\r\n\t\tdocument.getElementById(\"client_errortext\").innerHTML = type + \":<br>\" + reason.replace(/\\n/g, \"<br />\");\r\n\t\tdocument.getElementsByClassName(\"client_reconnect\")[0].style.display = \"none\";\r\n\t\tdocument.getElementsByClassName(\"client_reconnect\")[1].style.display = \"none\";\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the kicked packet\r\n\t * @param {Array} args kick reason\r\n\t */\r\n\thandleKK(args) {\r\n\t\tthis.handleBans(\"Kicked\", safe_tags(args[1]));\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the banned packet\r\n\t * this one is sent when you are kicked off the server\r\n\t * @param {Array} args ban reason\r\n\t */\r\n\thandleKB(args) {\r\n\t\tthis.handleBans(\"Banned\", safe_tags(args[1]));\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the banned packet\r\n\t * this one is sent when you try to reconnect but you're banned\r\n\t * @param {Array} args ban reason\r\n\t */\r\n\thandleBD(args) {\r\n\t\tthis.handleBans(\"Banned\", safe_tags(args[1]));\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the handshake completion packet, meaning the player\r\n\t * is ready to select a character.\r\n\t * \r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleDONE(_args) {\r\n\t\tdocument.getElementById(\"client_loading\").style.display = \"none\";\r\n\t\tif (mode === \"watch\") {\t\t// Spectators don't need to pick a character\r\n\t\t\tdocument.getElementById(\"client_charselect\").style.display = \"none\";\r\n\t\t} else {\r\n\t\t\tdocument.getElementById(\"client_charselect\").style.display = \"block\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a background change.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleBN(args) {\r\n\t\tviewport.bgname = safe_tags(args[1]);\r\n\t\tconst bg_index = getIndexFromSelect(\"bg_select\", viewport.bgname);\r\n\t\tdocument.getElementById(\"bg_select\").selectedIndex = bg_index;\r\n\t\tupdateBackgroundPreview();\r\n\t\tif (bg_index === 0) {\r\n\t\t\tdocument.getElementById(\"bg_filename\").value = viewport.bgname;\r\n\t\t}\r\n\t\tdocument.getElementById(\"bg_preview\").src = AO_HOST + \"background/\" + encodeURI(args[1].toLowerCase()) + \"/defenseempty.png\";\r\n\t\tif (this.charID === -1) {\r\n\t\t\tviewport.changeBackground(\"jud\");\r\n\t\t} else {\r\n\t\t\tviewport.changeBackground(this.chars[this.charID].side);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a change in the health bars' states.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleHP(args) {\r\n\t\tconst percent_hp = Number(args[2]) * 10;\r\n\t\tlet healthbox;\r\n\t\tif (args[1] === \"1\") {\r\n\t\t\t// Def hp\r\n\t\t\tthis.hp[0] = args[2];\r\n\t\t\thealthbox = document.getElementById(\"client_defense_hp\");\r\n\t\t} else {\r\n\t\t\t// Pro hp\r\n\t\t\tthis.hp[1] = args[2];\r\n\t\t\thealthbox = document.getElementById(\"client_prosecutor_hp\");\r\n\t\t}\r\n\t\thealthbox.getElementsByClassName(\"health-bar\")[0].style.width = percent_hp + \"%\";\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a testimony states.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleRT(args) {\r\n\t\tconst judgeid = Number(args[2]);\r\n\t\tswitch (args[1]) {\r\n\t\t\tcase \"testimony1\":\r\n\t\t\t\tthis.testimonyID = 1;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"testimony2\":\r\n\t\t\t\t//Cross Examination\r\n\t\t\t\tthis.testimonyID = 2;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"judgeruling\":\r\n\t\t\t\tthis.testimonyID = 3 + judgeid;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.warn(\"Invalid testimony\");\r\n\t\t}\r\n\t\tviewport.initTestimonyUpdater();\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a modcall\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleZZ(args) {\r\n\t\tconst oocLog = document.getElementById(\"client_ooclog\");\r\n\t\toocLog.innerHTML += `$Alert: ${prepChat(args[1])}\\r\\n`;\r\n\t\tif (oocLog.scrollTop > oocLog.scrollHeight - 60) {\r\n\t\t\toocLog.scrollTop = oocLog.scrollHeight;\r\n\t\t}\r\n\t\tviewport.sfxaudio.pause();\r\n\t\tconst oldvolume = viewport.sfxaudio.volume;\r\n\t\tviewport.sfxaudio.volume = 1;\r\n\t\tviewport.sfxaudio.src = AO_HOST + \"sounds/general/sfx-gallery.wav\";\r\n\t\tviewport.sfxaudio.play();\r\n\t\tviewport.sfxaudio.volume = oldvolume;\r\n\t}\r\n\r\n\t/**\r\n\t * Identifies the server and issues a playerID\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleID(args) {\r\n\t\tthis.playerID = Number(args[1]);\r\n\t\tthis.serverSoftware = args[2].split(\"&\")[0];\r\n\t\tif (this.serverSoftware === \"serverD\")\r\n\t\t\tthis.serverVersion = args[2].split(\"&\")[1];\r\n\t\telse\r\n\t\t\tthis.serverVersion = args[3];\r\n\r\n\t\tif (this.serverSoftware === \"serverD\" && this.serverVersion === \"1377.152\")\r\n\t\t\toldLoading = true; // bugged version\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates how many users are on this server\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandlePN(_args) {\r\n\t\tthis.sendServer(\"askchaa#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handle the change of players in an area.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleARUP(args) {\r\n\t\targs = args.slice(1);\r\n\t\tfor (let i = 0; i < args.length - 2; i++) {\r\n\t\t\tif (this.areas[i]) { // the server sends us ARUP before we even get the area list\r\n\t\t\t\tconst thisarea = document.getElementById(\"area\" + i);\r\n\t\t\t\tswitch (Number(args[0])) {\r\n\t\t\t\t\tcase 0: // playercount\t\t\t\t\r\n\t\t\t\t\t\tthis.areas[i].players = Number(args[i+1]);\r\n\t\t\t\t\t\tthisarea.innerText = `${this.areas[i].name} (${this.areas[i].players})`;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 1: // status\r\n\t\t\t\t\t\tthis.areas[i].status = safe_tags(args[i+1]);\r\n\t\t\t\t\t\tthisarea.classList = \"area-button area-\" + this.areas[i].status.toLowerCase();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\tthis.areas[i].cm = safe_tags(args[i+1]);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 3:\r\n\t\t\t\t\t\tthis.areas[i].locked = safe_tags(args[i+1]);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthisarea.title = `Players: ${this.areas[i].players}\\n` +\r\n\t\t\t\t\t`Status: ${this.areas[i].status}\\n` +\r\n\t\t\t\t\t`CM: ${this.areas[i].cm}\\n` +\r\n\t\t\t\t\t`Area lock: ${this.areas[i].locked}`;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * With this the server tells us which features it supports\r\n\t * @param {Array} args list of features\r\n\t */\r\n\thandleFL(args) {\r\n\t\tconsole.info(\"Server-supported features:\");\r\n\t\tconsole.info(args);\r\n\t\textrafeatures = args;\r\n\r\n\t\tif (args.includes(\"yellowtext\")) {\r\n\t\t\tlet colorselect = document.getElementById(\"textcolor\");\r\n\r\n\t\t\tcolorselect.options[colorselect.options.length] = new Option(\"Yellow\", 5);\r\n\t\t\tcolorselect.options[colorselect.options.length] = new Option(\"Rainbow\", 6);\r\n\t\t\tcolorselect.options[colorselect.options.length] = new Option(\"Pink\", 7);\r\n\t\t\tcolorselect.options[colorselect.options.length] = new Option(\"Cyan\", 8);\r\n\t\t}\r\n\r\n\t\tif (args.includes(\"cccc_ic_support\")) {\r\n\t\t\tdocument.getElementById(\"cccc\").style.display = \"\";\r\n\t\t\tdocument.getElementById(\"pairing\").style.display = \"\";\r\n\t\t}\r\n\r\n\t\tif (args.includes(\"flipping\")) {\r\n\t\t\tdocument.getElementById(\"button_flip\").style.display = \"\";\r\n\t\t}\r\n\r\n\t\tif (args.includes(\"looping_sfx\")) {\r\n\t\t\tdocument.getElementById(\"button_shake\").style.display = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Received when the server announces its server info,\r\n\t * but we use it as a cue to begin retrieving characters.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleSI(args) {\r\n\t\tthis.char_list_length = Number(args[1]);\r\n\t\tthis.char_list_length += 1; // some servers count starting from 0 some from 1...\r\n\t\tthis.evidence_list_length = Number(args[2]);\r\n\t\tthis.music_list_length = Number(args[3]);\r\n\r\n\t\t// create the charselect grid, to be filled by the character loader\r\n\t\tdocument.getElementById(\"client_chartable\").innerHTML = \"\";\r\n\r\n\t\tfor (let i = 0; i < this.char_list_length; i++) {\r\n\t\t\tconst demothing = document.createElement(\"img\");\r\n\r\n\t\t\tdemothing.className = \"demothing\";\r\n\t\t\tdemothing.id = `demo_${i}`;\r\n\t\t\tconst demoonclick = document.createAttribute(\"onclick\");\r\n\t\t\tdemoonclick.value = `pickChar(${i})`;\r\n\t\t\tdemothing.setAttributeNode(demoonclick);\r\n\r\n\t\t\tdocument.getElementById(\"client_chartable\").appendChild(demothing);\r\n\t\t}\r\n\r\n\t\t// this is determined at the top of this file\r\n\t\tif (!oldLoading && extrafeatures.includes(\"fastloading\")) {\r\n\t\t\tthis.sendServer(\"RC#%\");\r\n\t\t} else {\r\n\t\t\tthis.sendServer(\"askchar2#%\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the list of all used and vacant characters.\r\n\t * @param {Array} args list of all characters represented as a 0 for free or a -1 for taken\r\n\t */\r\n\thandleCharsCheck(args) {\r\n\t\tfor (let i = 0; i < this.char_list_length; i++) {\r\n\t\t\tlet img = document.getElementById(`demo_${i}`);\r\n\r\n\t\t\tif (args[i + 1] === \"-1\")\r\n\t\t\t\timg.style.opacity = 0.25;\r\n\t\t\telse if (args[i + 1] === \"0\")\r\n\t\t\t\timg.style.opacity = 1;\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Decryptor for the command headers\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleDecryptor(_args) {\r\n\t\t// unused since AO2\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the server's assignment of a character for the player to use.\r\n\t * PV # playerID (unused) # CID # character ID\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\tasync handlePV(args) {\r\n\t\tthis.charID = Number(args[3]);\r\n\t\tdocument.getElementById(\"client_charselect\").style.display = \"none\";\r\n\r\n\t\tconst me = this.character;\r\n\t\tthis.selectedEmote = -1;\r\n\t\tconst emotes = this.emotes;\r\n\t\tconst emotesList = document.getElementById(\"client_emo\");\r\n\t\temotesList.style.display = \"\";\r\n\t\temotesList.innerHTML = \"\"; // Clear emote box\r\n\t\tconst ini = me.inifile;\r\n\t\tme.side = ini.options.side;\r\n\t\tupdateActionCommands(me.side);\r\n\t\tif(ini.emotions.number === 0) {\r\n\t\t\temotesList.innerHTML =\r\n\t\t\t\t\t`<span\r\n\t\t\t\t\tid=\"emo_0\"\r\n\t\t\t\t\talt=\"unavailable\"\r\n\t\t\t\t\tclass=\"emote_button\">No emotes available</span>`;\r\n\t\t}else{\r\n\t\tfor (let i = 1; i <= ini.emotions.number; i++) {\r\n\t\t\ttry {\r\n\t\t\t\tconst emoteinfo = ini.emotions[i].split(\"#\");\r\n\t\t\t\tlet esfx;\r\n\t\t\t\tlet esfxd;\r\n\t\t\t\ttry {\r\n\t\t\t\t\tesfx = ini.soundn[i] || \"0\";\r\n\t\t\t\t\tesfxd = Number(ini.soundt[i]) || 0;\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(\"ini sound is completly missing\");\r\n\t\t\t\t\tesfx = \"0\";\r\n\t\t\t\t\tesfxd = 0;\r\n\t\t\t\t}\r\n\t\t\t\t// Make sure the asset server is case insensitive, or that everything on it is lowercase\r\n\t\t\t\temotes[i] = {\r\n\t\t\t\t\tdesc: emoteinfo[0].toLowerCase(),\r\n\t\t\t\t\tpreanim: emoteinfo[1].toLowerCase(),\r\n\t\t\t\t\temote: emoteinfo[2].toLowerCase(),\r\n\t\t\t\t\tzoom: Number(emoteinfo[3]) || 0,\r\n\t\t\t\t\tsfx: esfx.toLowerCase(),\r\n\t\t\t\t\tsfxdelay: esfxd,\r\n\t\t\t\t\tframe_screenshake: \"\",\r\n\t\t\t\t\tframe_realization: \"\",\r\n\t\t\t\t\tframe_sfx: \"\",\r\n\t\t\t\t\tbutton_off: AO_HOST + `characters/${encodeURI(me.name.toLowerCase())}/emotions/button${i}_off.png`,\r\n\t\t\t\t\tbutton_on: AO_HOST + `characters/${encodeURI(me.name.toLowerCase())}/emotions/button${i}_on.png`\r\n\t\t\t\t};\r\n\t\t\t\temotesList.innerHTML +=\r\n\t\t\t\t\t`<img src=${emotes[i].button_off}\r\n\t\t\t\t\tid=\"emo_${i}\"\r\n\t\t\t\t\talt=\"${emotes[i].desc}\"\r\n\t\t\t\t\tclass=\"emote_button\"\r\n\t\t\t\t\tonclick=\"pickEmotion(${i})\">`;\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(\"missing emote \" + i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tpickEmotion(1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nclass Viewport {\r\n\tconstructor() {\r\n\t\tthis.textnow = \"\";\r\n\t\tthis.chatmsg = {\r\n\t\t\t\"content\": \"\",\r\n\t\t\t\"objection\": 0,\r\n\t\t\t\"sound\": \"\",\r\n\t\t\t\"startpreanim\": true,\r\n\t\t\t\"startspeaking\": false,\r\n\t\t\t\"side\": null,\r\n\t\t\t\"color\": 0,\r\n\t\t\t\"snddelay\": 0,\r\n\t\t\t\"preanimdelay\": 0\r\n\t\t};\r\n\r\n\t\tthis.shouts = [\r\n\t\t\tundefined,\r\n\t\t\t\"holdit\",\r\n\t\t\t\"objection\",\r\n\t\t\t\"takethat\"\r\n\t\t];\r\n\r\n\t\tthis.colors = [\r\n\t\t\t\"white\",\r\n\t\t\t\"green\",\r\n\t\t\t\"red\",\r\n\t\t\t\"orange\",\r\n\t\t\t\"blue\",\r\n\t\t\t\"yellow\",\r\n\t\t\t\"rainbow\",\r\n\t\t\t\"pink\",\r\n\t\t\t\"cyan\"\r\n\t\t];\r\n\r\n\t\t// Allocate multiple blip audio channels to make blips less jittery\r\n\r\n\t\tthis.blipChannels = new Array(6);\r\n\t\tthis.blipChannels.fill(new Audio(AO_HOST + \"sounds/general/sfx-blipmale.wav\"))\r\n\t\t\t.forEach(channel => channel.volume = 0.5);\r\n\t\tthis.currentBlipChannel = 0;\r\n\r\n\t\tthis.sfxaudio = new Audio(AO_HOST + \"sounds/general/sfx-blipmale.wav\");\r\n\t\tthis.sfxplayed = 0;\r\n\r\n\t\tthis.shoutaudio = new Audio();\r\n\r\n\t\tthis.music = document.getElementById(\"client_musicaudio\");\r\n\t\tthis.music.play();\r\n\r\n\t\tthis.updater = null;\r\n\t\tthis.testimonyUpdater = null;\r\n\r\n\t\tthis.bgname = \"gs4\";\r\n\r\n\t\tthis.lastChar = \"\";\r\n\t\tthis.lastEvi = 0;\r\n\r\n\t\tthis.testimonyTimer = 0;\r\n\t\tthis.shoutTimer = 0;\r\n\t\tthis.textTimer = 0;\r\n\r\n\t\tthis._animating = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns whether or not the viewport is busy\r\n\t * performing a task (animating).\r\n\t */\r\n\tget isAnimating() {\r\n\t\treturn this._animating;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the volume of the blip sound.\r\n\t * @param {number} volume\r\n\t */\r\n\tset blipVolume(volume) {\r\n\t\tthis.blipChannels.forEach(channel => channel.volume = volume);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the path which the background is located in.\r\n\t */\r\n\tget bgFolder() {\r\n\t\treturn `${AO_HOST}background/${encodeURI(this.bgname.toLowerCase())}/`;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Play any SFX\r\n\t * \r\n\t * @param {string} sfxname\r\n\t */\r\n\tasync playSFX(sfxname) {\r\n\t\tthis.sfxaudio.pause();\r\n\t\tthis.sfxaudio.src = sfxname;\r\n\t\tthis.sfxaudio.play();\r\n\t}\r\n\r\n\t/**\r\n * Changes the viewport background based on a given position.\r\n * \r\n * Valid positions: `def, pro, hld, hlp, wit, jud, jur, sea`\r\n * @param {string} position the position to change into\r\n */\r\nasync changeBackground(position) {\r\n\tconst bgfolder = viewport.bgFolder;\r\n\r\n\tconst bench = document.getElementById(\"client_bench\");\r\n\tconst court = document.getElementById(\"client_court\");\r\n\r\n\tconst positions = {\r\n\t\tdef: {\r\n\t\t\tbg: \"defenseempty.png\",\r\n\t\t\tdesk: { ao2: \"defensedesk.png\", ao1: \"bancodefensa.png\" },\r\n\t\t\tspeedLines: \"defense_speedlines.gif\"\r\n\t\t},\r\n\t\tpro: {\r\n\t\t\tbg: \"prosecutorempty.png\",\r\n\t\t\tdesk: { ao2: \"prosecutiondesk.png\", ao1: \"bancoacusacion.png\" },\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t},\r\n\t\thld: {\r\n\t\t\tbg: \"helperstand.png\",\r\n\t\t\tdesk: null,\r\n\t\t\tspeedLines: \"defense_speedlines.gif\"\r\n\t\t},\r\n\t\thlp: {\r\n\t\t\tbg: \"prohelperstand.png\",\r\n\t\t\tdesk: null,\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t},\r\n\t\twit: {\r\n\t\t\tbg: \"witnessempty.png\",\r\n\t\t\tdesk: { ao2: \"stand.png\", ao1: \"estrado.png\" },\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t},\r\n\t\tjud: {\r\n\t\t\tbg: \"judgestand.png\",\r\n\t\t\tdesk: { ao2: \"judgedesk.png\", ao1: \"judgedesk.gif\" },\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t},\r\n\t\tjur: {\r\n\t\t\tbg: \"jurystand.png\",\r\n\t\t\tdesk: { ao2: \"jurydesk.png\", ao1: \"estrado.png\" },\r\n\t\t\tspeedLines: \"defense_speedlines.gif\"\r\n\t\t},\r\n\t\tsea: {\r\n\t\t\tbg: \"seancestand.png\",\r\n\t\t\tdesk: { ao2: \"seancedesk.png\", ao1: \"estrado.png\" },\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t}\r\n\t};\r\n\r\n\tconst { bg, desk, speedLines } = positions[position];\r\n\r\n\tbench.className = position + \"_bench\";\r\n\tcourt.className = position + \"_court\";\r\n\r\n\tif (viewport.chatmsg.type === 5) {\r\n\t\tcourt.src = `${AO_HOST}themes/default/${encodeURI(speedLines)}`;\r\n\t\tbench.style.opacity = 0;\r\n\t} else {\r\n\t\tcourt.src = bgfolder + bg;\r\n\t\tif (desk) {\r\n\t\t\tconst deskFilename = await fileExists(bgfolder + desk.ao2) ? desk.ao2 : desk.ao1;\r\n\t\t\tbench.src = bgfolder + deskFilename;\r\n\t\t\tbench.style.opacity = 1;\r\n\t\t} else {\r\n\t\t\tbench.style.opacity = 0;\r\n\t\t}\r\n\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Intialize testimony updater \r\n\t */\r\n\tinitTestimonyUpdater() {\r\n\t\tconst testimonyFilenames = {\r\n\t\t\t1: \"witnesstestimony\",\r\n\t\t\t2: \"crossexamination\",\r\n\t\t\t3: \"notguilty\",\r\n\t\t\t4: \"guilty\"\r\n\t\t};\r\n\r\n\t\tconst testimony = testimonyFilenames[client.testimonyID];\r\n\t\tif (!testimony) {\r\n\t\t\tconsole.warn(`Invalid testimony ID ${client.testimonyID}`);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t(new Audio(client.resources[testimony].sfx)).play();\r\n\r\n\t\tconst testimonyOverlay = document.getElementById(\"client_testimony\");\r\n\t\ttestimonyOverlay.src = client.resources[testimony].src;\r\n\t\ttestimonyOverlay.style.opacity = 1;\r\n\r\n\t\tthis.testimonyTimer = 0;\r\n\t\tthis.testimonyUpdater = setTimeout(() => this.updateTestimony(), UPDATE_INTERVAL);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets animation length. If the animation cannot be found, it will\r\n\t * silently fail and return 0 instead.\r\n\t * @param {string} filename the animation file name\r\n\t */\r\n\tasync getAnimLength(filename) {\r\n\t\ttry {\r\n\t\t\tconst file = await requestBuffer(filename);\r\n\t\t\treturn this.calculateGifLength(file);\r\n\t\t} catch (err) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\toneSuccess(promises){\r\n\t\treturn Promise.all(promises.map(p => {\r\n\t\t// If a request fails, count that as a resolution so it will keep\r\n\t\t// waiting for other possible successes. If a request succeeds,\r\n\t\t// treat it as a rejection so Promise.all immediately bails out.\r\n\t\treturn p.then(\r\n\t\t\tval => Promise.reject(val),\r\n\t\t\terr => Promise.resolve(err)\r\n\t\t);\r\n\t\t})).then(\r\n\t\t// If '.all' resolved, we've just got an array of errors.\r\n\t\terrors => Promise.reject(errors),\r\n\t\t// If '.all' rejected, we've got the result we wanted.\r\n\t\tval => Promise.resolve(val)\r\n\t\t);\r\n\t}\r\n\r\n\trejectOnError(f) {\r\n\t\treturn new Promise((resolve, reject) =>\r\n\t\t\tf.then((res) => {\r\n\t\t\t\tif (res.ok) resolve(f);\r\n\t\t\t\telse reject(f);\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Adds up the frame delays to find out how long a GIF is\r\n\t * I totally didn't steal this\r\n\t * @param {data} gifFile the GIF data\r\n\t */\r\n\tcalculateGifLength(gifFile) {\r\n\t\tlet d = new Uint8Array(gifFile);\r\n\t\t// Thanks to http://justinsomnia.org/2006/10/gif-animation-duration-calculation/\r\n\t\t// And http://www.w3.org/Graphics/GIF/spec-gif89a.txt\r\n\t\tlet duration = 0;\r\n\t\tfor (var i = 0; i < d.length; i++) {\r\n\t\t\t// Find a Graphic Control Extension hex(21F904__ ____ __00)\r\n\t\t\tif (d[i] === 0x21\r\n\t\t\t\t&& d[i + 1] === 0xF9\r\n\t\t\t\t&& d[i + 2] === 0x04\r\n\t\t\t\t&& d[i + 7] === 0x00) {\r\n\t\t\t\t// Swap 5th and 6th bytes to get the delay per frame\r\n\t\t\t\tlet delay = (d[i + 5] << 8) | (d[i + 4] & 0xFF);\r\n\r\n\t\t\t\t// Should be aware browsers have a minimum frame delay \r\n\t\t\t\t// e.g. 6ms for IE, 2ms modern browsers (50fps)\r\n\t\t\t\tduration += delay < 2 ? 10 : delay;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn duration * 10;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the testimony overaly\r\n\t */\r\n\tupdateTestimony() {\r\n\t\tconst testimonyFilenames = {\r\n\t\t\t1: \"witnesstestimony\",\r\n\t\t\t2: \"crossexamination\",\r\n\t\t\t3: \"notguilty\",\r\n\t\t\t4: \"guilty\"\r\n\t\t};\r\n\r\n\t\t// Update timer\r\n\t\tthis.testimonyTimer = this.testimonyTimer + UPDATE_INTERVAL;\r\n\r\n\t\tconst testimony = testimonyFilenames[client.testimonyID];\r\n\t\tconst resource = client.resources[testimony];\r\n\t\tif (!resource) {\r\n\t\t\tthis.disposeTestimony();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.testimonyTimer >= resource.duration) {\r\n\t\t\tthis.disposeTestimony();\r\n\t\t} else {\r\n\t\t\tthis.testimonyUpdater = setTimeout(() => this.updateTestimony(), UPDATE_INTERVAL);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Dispose the testimony overlay\r\n\t */\r\n\tdisposeTestimony() {\r\n\t\tclient.testimonyID = 0;\r\n\t\tthis.testimonyTimer = 0;\r\n\t\tdocument.getElementById(\"client_testimony\").style.opacity = 0;\r\n\t\tclearTimeout(this.testimonyUpdater);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets a new emote.\r\n\t * TODO: merge this and initUpdater\r\n\t * This sets up everything before the tick() loops starts\r\n\t * a lot of things can probably be moved here, like starting the shout animation if there is one\r\n\t * TODO: the preanim logic, on the other hand, should probably be moved to tick()\r\n\t * @param {object} chatmsg the new chat message\r\n\t */\r\n\tasync say(chatmsg) {\r\n\t\tthis.chatmsg = chatmsg;\r\n\t\tthis.textnow = \"\";\r\n\t\tthis.sfxplayed = 0;\r\n\t\tthis.textTimer = 0;\r\n\t\tthis._animating = true;\r\n\r\n\t\t// stop updater\r\n\t\tclearTimeout(this.updater);\r\n\r\n\t\tconst fg = document.getElementById(\"client_fg\");\r\n\t\tconst gamewindow = document.getElementById(\"client_gamewindow\");\r\n\t\tconst waitingBox = document.getElementById(\"client_chatwaiting\");\r\n\r\n\t\t// Reset CSS animation\r\n\t\tfg.style.animation = \"\";\r\n\t\tgamewindow.style.animation = \"\";\r\n\t\twaitingBox.innerText = \"\";\r\n\t\t\r\n\t\tconst eviBox = document.getElementById(\"client_evi\");\t\t\r\n\r\n\t\tif (this.lastEvi !== this.chatmsg.evidence) {\r\n\t\t\teviBox.style.opacity = \"0\";\r\n\t\t\teviBox.style.height = \"0%\";\t\r\n\t\t}\r\n\t\tthis.lastEvi = this.chatmsg.evidence;\r\n\r\n\t\tconst charSprite = document.getElementById(\"client_char\");\r\n\t\tconst pairSprite = document.getElementById(\"client_pair_char\");\r\n\r\n\t\tconst chatContainerBox = document.getElementById(\"client_chatcontainer\");\t\r\n\t\tconst nameBoxInner = document.getElementById(\"client_inner_name\");\r\n\t\tconst chatBoxInner = document.getElementById(\"client_inner_chat\");\r\n\r\n\t\tconst displayname = (document.getElementById(\"showname\").checked && this.chatmsg.showname !== \"\") ? this.chatmsg.showname : this.chatmsg.nameplate;\r\n\r\n\t\t//Clear out the last message\r\n\t\tchatBoxInner.innerText = this.textnow;\r\n\t\tnameBoxInner.innerText = displayname;\r\n\t\t\r\n\t\tif (this.lastChar !== this.chatmsg.name) {\r\n\t\t\tcharSprite.style.opacity = 0;\r\n\t\t\tcharSprite.src = transparentPNG;\r\n\t\t\tpairSprite.style.opacity = 0;\r\n\t\t\tpairSprite.src = transparentPNG;\r\n\t\t}\r\n\t\tthis.lastChar = this.chatmsg.name;\r\n\r\n\t\tappendICLog(this.chatmsg.content, displayname);\r\n\r\n\t\t// start checking the files\r\n\t\ttry {\r\n\t\t\tconst { url: speakUrl } = await this.oneSuccess([\r\n\t\t\t\tthis.rejectOnError(fetch(AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/\" + this.chatmsg.sprite + \".png\")),\r\n\t\t\t\tthis.rejectOnError(fetch(AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/(b)\" + this.chatmsg.sprite + \".gif\"))\r\n\t\t\t]);\r\n\t\t\tthis.speakingSprite = speakUrl ? speakUrl : transparentPNG;\r\n\t\t} catch (error) {\r\n\t\t\tthis.speakingSprite = AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/(b)\" + this.chatmsg.sprite + \".gif\";\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst { url: silentUrl } = await this.oneSuccess([\r\n\t\t\t\tthis.rejectOnError(fetch(AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/\" + this.chatmsg.sprite + \".png\")),\r\n\t\t\t\tthis.rejectOnError(fetch(AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/(a)\" + this.chatmsg.sprite + \".gif\"))\r\n\t\t\t]);\r\n\t\t\tthis.silentSprite = silentUrl ? silentUrl : transparentPNG;\r\n\t\t} catch (error) {\r\n\t\t\tthis.silentSprite = AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/(a)\" + this.chatmsg.sprite + \".gif\";\r\n\t\t}\r\n\r\n\t\t// gets which shout shall played\r\n\t\tconst shoutSprite = document.getElementById(\"client_shout\");\r\n\t\tconst shout = this.shouts[this.chatmsg.objection];\r\n\t\tif (shout) {\r\n\t\t\t// Hide message box\r\n\t\t\tchatContainerBox.style.opacity = 0;\r\n\t\t\tshoutSprite.src = client.resources[shout][\"src\"];\r\n\t\t\tshoutSprite.style.opacity = 1;\r\n\t\t\tshoutSprite.style.animation = \"bubble 700ms steps(10, jump-both)\";\r\n\r\n\t\t\tlet shoutUrl;\r\n\r\n\t\t\ttry {\r\n\t\t\tconst { url: soundUrl } = await this.oneSuccess([\r\n\t\t\t\tthis.rejectOnError(fetch(`${AO_HOST}characters/${encodeURI(this.chatmsg.name.toLowerCase())}/${shout}.wav`)),\r\n\t\t\t\tthis.rejectOnError(fetch(`${AO_HOST}misc/default/objection.wav`))\r\n\t\t\t]);\r\n\t\t\tshoutUrl = soundUrl;\r\n\t\t\t} catch (error) {\r\n\t\t\t\tshoutUrl = AO_HOST + `${AO_HOST}characters/${encodeURI(this.chatmsg.name.toLowerCase())}/${shout}.wav`;\r\n\t\t\t}\r\n\r\n\t\t\tthis.shoutaudio.src = shoutUrl;\r\n\t\t\tthis.shoutaudio.play();\r\n\t\t\tthis.shoutTimer = client.resources[shout][\"duration\"];\r\n\t\t} else {\r\n\t\t\tthis.shoutTimer = 0;\r\n\t\t}\r\n\r\n\t\tthis.chatmsg.startpreanim = true;\r\n\t\tlet gifLength = 0;\r\n\t\tswitch (this.chatmsg.type) {\r\n\t\t\t// case 0:\r\n\t\t\t// normal emote, no preanim\r\n\t\t\tcase 1:\r\n\t\t\t\t// play preanim\r\n\t\t\t\t// Hide message box\r\n\t\t\t\tchatContainerBox.style.opacity = 0;\r\n\t\t\t\t// If preanim existed then determine the length\r\n\t\t\t\tgifLength = await this.getAnimLength(`${AO_HOST}characters/${encodeURI(this.chatmsg.name.toLowerCase())}/${encodeURI(this.chatmsg.preanim)}.gif`);\r\n\t\t\t\tthis.chatmsg.startspeaking = false;\r\n\t\t\t\tbreak;\r\n\t\t\t// case 5:\r\n\t\t\t// zoom\r\n\t\t\tdefault:\r\n\t\t\t\t// due to a retarded client bug, we need to strip the sfx from the MS, if the preanim isn't playing\r\n\t\t\t\tthis.chatmsg.sound = \"\";\r\n\t\t\t\tthis.chatmsg.startspeaking = true;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tthis.chatmsg.preanimdelay = parseInt(gifLength);\r\n\r\n\t\tthis.changeBackground(chatmsg.side);\r\n\r\n\t\tsetChatbox(chatmsg.chatbox);\r\n\t\tresizeChatbox();\r\n\r\n\t\t// Flip the character\r\n\t\tif (this.chatmsg.flip === 1) {\r\n\t\t\tcharSprite.style.transform = \"scaleX(-1)\";\r\n\t\t} else {\r\n\t\t\tcharSprite.style.transform = \"scaleX(1)\";\r\n\t\t}\r\n\r\n\t\tif (this.chatmsg.other_flip === 1) {\r\n\t\t\tpairSprite.style.transform = \"scaleX(-1)\";\r\n\t\t} else {\r\n\t\t\tpairSprite.style.transform = \"scaleX(1)\";\r\n\t\t}\r\n\r\n\t\tthis.blipChannels.forEach(channel => channel.src = `${AO_HOST}sounds/general/sfx-blip${encodeURI(this.chatmsg.blips.toLowerCase())}.wav`);\r\n\r\n\t\t// process markup\r\n\t\tif(this.chatmsg.content.startsWith(\"~~\")) {\r\n\t\t\tchatBoxInner.style.textAlign = \"center\";\r\n\t\t\tthis.chatmsg.content = this.chatmsg.content.substring(2, this.chatmsg.content.length);\r\n\t\t} else {\r\n\t\t\tchatBoxInner.style.textAlign = \"inherit\";\r\n\t\t}\r\n\r\n\t\tthis.tick();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the chatbox based on the given text.\r\n\t * \r\n\t * OK, here's the documentation on how this works:\r\n\t * \r\n\t * 1 flip\r\n\t * For whatever reason it starts off by checking if the character is flipped, every time this is called\r\n\t * This is probably a TODO to move this somewhere else\r\n\t * \r\n\t * 2 flip\r\n\t * If the server supports it, the same is done for the paired character\r\n\t * Both of these should probably be moved to say()\r\n\t * \r\n\t * 3 _animating\r\n\t * If we're not done with this characters animation, i.e. his text isn't fully there, set a timeout for the next tick/step to happen\r\n\t * \r\n\t * 5 startpreanim\r\n\t * If the shout timer is over it starts with the preanim\r\n\t * The first thing it checks for is the shake effect (TODO on client this is handled by the @ symbol and not a flag )\r\n\t * Then is the flash/realization effect\r\n\t * After that, the shout image is set to a transparent placeholder gif (TODO just hide it with CSS)\r\n\t * and the main characters preanim gif is loaded\r\n\t * If pairing is supported the paired character will just stand around with his idle sprite\r\n\t * \r\n\t * 6 preanimdelay over\r\n\t * this animates the evidence popup and finally shows the character name and message box\r\n\t * it sets the text color , changes the background (again TODO) and sets the character speaking sprite\r\n\t * \r\n\t * 7 textnow != content\r\n\t * this adds a character to the textbox and stops the animations if the entire message is present in the textbox\r\n\t * \r\n\t * 8 sfx\r\n\t * independent of the stuff above, this will play any sound effects specified by the emote the character sent.\r\n\t * happens after the shout delay + an sfx delay that comes with the message packet\r\n\t * \r\n\t * XXX: This relies on a global variable `this.chatmsg`!\r\n\t */\r\n\ttick() {\r\n\t\tif (this._animating) {\r\n\t\t\tthis.updater = setTimeout(() => this.tick(), UPDATE_INTERVAL);\r\n\t\t}\r\n\r\n\t\tconst gamewindow = document.getElementById(\"client_gamewindow\");\r\n\t\tconst waitingBox = document.getElementById(\"client_chatwaiting\");\r\n\t\tconst charSprite = document.getElementById(\"client_char\");\r\n\t\tconst pairSprite = document.getElementById(\"client_pair_char\");\r\n\t\tconst eviBox = document.getElementById(\"client_evi\");\r\n\t\tconst shoutSprite = document.getElementById(\"client_shout\");\r\n\t\tconst chatBoxInner = document.getElementById(\"client_inner_chat\");\t\t\r\n\r\n\t\t// TODO: preanims sometimes play when they're not supposed to\r\n\t\tif (this.textTimer >= this.shoutTimer && this.chatmsg.startpreanim) {\r\n\t\t\t// Effect stuff\r\n\t\t\tif (this.chatmsg.screenshake === 1) {\r\n\t\t\t\t// Shake screen\r\n\t\t\t\tthis.playSFX(AO_HOST + \"sounds/general/sfx-stab.wav\");\r\n\t\t\t\tgamewindow.style.animation = \"shake 0.2s 1\";\r\n\t\t\t}\r\n\t\t\tif (this.chatmsg.flash === 1) {\r\n\t\t\t\t// Flash screen\r\n\t\t\t\tthis.playSFX(AO_HOST + \"sounds/general/sfx-realization.wav\");\r\n\t\t\t\tdocument.getElementById(\"client_fg\").style.animation = \"flash 0.4s 1\";\r\n\t\t\t}\r\n\r\n\t\t\t// Pre-animation stuff\r\n\t\t\tif (this.chatmsg.preanimdelay > 0) {\r\n\t\t\t\tshoutSprite.style.opacity = 0;\r\n\t\t\t\tshoutSprite.style.animation = \"\";\r\n\t\t\t\tconst charName = this.chatmsg.name.toLowerCase();\r\n\t\t\t\tconst preanim = this.chatmsg.preanim.toLowerCase();\r\n\t\t\t\tcharSprite.src = `${AO_HOST}characters/${encodeURI(charName)}/${encodeURI(preanim)}.gif`;\r\n\t\t\t\tcharSprite.style.opacity = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.chatmsg.other_name) {\r\n\t\t\t\tconst pairName = this.chatmsg.other_name.toLowerCase();\r\n\t\t\t\tconst pairEmote = this.chatmsg.other_emote.toLowerCase();\r\n\t\t\t\tpairSprite.style.left = this.chatmsg.other_offset + \"%\";\r\n\t\t\t\tcharSprite.style.left = this.chatmsg.self_offset + \"%\";\r\n\t\t\t\tpairSprite.src = `${AO_HOST}characters/${pairName}/(a)${pairEmote}.gif`;\r\n\t\t\t\tpairSprite.style.opacity = 1;\r\n\t\t\t} else {\r\n\t\t\t\tpairSprite.style.opacity = 0;\r\n\t\t\t\tcharSprite.style.left = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.chatmsg.startpreanim = false;\r\n\t\t\tthis.chatmsg.startspeaking = true;\r\n\t\t} else if (this.textTimer >= this.shoutTimer + this.chatmsg.preanimdelay && !this.chatmsg.startpreanim) {\r\n\t\t\tif (this.chatmsg.startspeaking) {\r\n\t\t\t\tif (this.chatmsg.evidence > 0) {\r\n\t\t\t\t\t// Prepare evidence\r\n\t\t\t\t\teviBox.src = safe_tags(client.evidences[this.chatmsg.evidence - 1].icon);\r\n\r\n\t\t\t\t\teviBox.style.width = \"auto\";\r\n\t\t\t\t\teviBox.style.height = \"36.5%\";\r\n\t\t\t\t\teviBox.style.opacity = 1;\r\n\r\n\t\t\t\t\tif (this.chatmsg.side === \"def\") {\r\n\t\t\t\t\t\t// Only def show evidence on right\r\n\t\t\t\t\t\teviBox.style.right = \"1em\";\r\n\t\t\t\t\t\teviBox.style.left = \"initial\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\teviBox.style.right = \"initial\";\r\n\t\t\t\t\t\teviBox.style.left = \"1em\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresizeChatbox();\r\n\r\n\t\t\t\tconst chatContainerBox = document.getElementById(\"client_chatcontainer\");\r\n\t\t\t\tchatContainerBox.style.opacity = 1;\r\n\r\n\t\t\t\tchatBoxInner.className = \"text_\" + this.colors[this.chatmsg.color];\r\n\r\n\t\t\t\tthis.chatmsg.startspeaking = false;\r\n\r\n\t\t\t\tif (this.chatmsg.preanimdelay === 0) {\r\n\t\t\t\t\tshoutSprite.style.opacity = 0;\r\n\t\t\t\t\tshoutSprite.style.animation = \"\";\r\n\t\t\t\t\tthis.changeBackground(this.chatmsg.side);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (extrafeatures.includes(\"cccc_ic_support\")) {\r\n\t\t\t\t\tif (this.chatmsg.other_name) {\r\n\t\t\t\t\t\tconst pairName = this.chatmsg.other_name.toLowerCase();\r\n\t\t\t\t\t\tconst pairEmote = this.chatmsg.other_emote.toLowerCase();\r\n\t\t\t\t\t\tpairSprite.style.left = this.chatmsg.other_offset + \"%\";\r\n\t\t\t\t\t\tcharSprite.style.left = this.chatmsg.self_offset + \"%\";\r\n\t\t\t\t\t\tpairSprite.src = `${AO_HOST}characters/${pairName}/(a)${pairEmote}.gif`;\r\n\t\t\t\t\t\tpairSprite.style.opacity = 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpairSprite.style.opacity = 0;\r\n\t\t\t\t\t\tcharSprite.style.left = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcharSprite.src = this.speakingSprite;\r\n\t\t\t\tcharSprite.style.opacity = 1;\r\n\r\n\t\t\t\tif (this.textnow === this.chatmsg.content) {\r\n\t\t\t\t\tcharSprite.src = this.silentSprite;\r\n\t\t\t\t\tcharSprite.style.opacity = 1;\r\n\t\t\t\t\twaitingBox.innerHTML = \"►\";\r\n\t\t\t\t\tthis._animating = false;\r\n\t\t\t\t\tclearTimeout(this.updater);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (this.textnow !== this.chatmsg.content) {\r\n\t\t\t\t\tif (this.chatmsg.content.charAt(this.textnow.length) !== \" \") {\r\n\t\t\t\t\t\tthis.blipChannels[this.currentBlipChannel].play();\r\n\t\t\t\t\t\tthis.currentBlipChannel++;\r\n\t\t\t\t\t\tthis.currentBlipChannel %= this.blipChannels.length;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.textnow = this.chatmsg.content.substring(0, this.textnow.length + 1);\r\n\r\n\t\t\t\t\tchatBoxInner.innerText = this.textnow;\r\n\r\n\t\t\t\t\tif (this.textnow === this.chatmsg.content) {\r\n\t\t\t\t\t\tthis._animating = false;\r\n\t\t\t\t\t\tcharSprite.src = this.silentSprite;\r\n\t\t\t\t\t\tcharSprite.style.opacity = 1;\r\n\t\t\t\t\t\twaitingBox.innerHTML = \"►\";\r\n\t\t\t\t\t\tclearTimeout(this.updater);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!this.sfxplayed && this.chatmsg.snddelay + this.shoutTimer >= this.textTimer) {\r\n\t\t\tthis.sfxplayed = 1;\r\n\t\t\tif (this.chatmsg.sound !== \"0\" && this.chatmsg.sound !== \"1\" && this.chatmsg.sound !== \"\" && this.chatmsg.sound !== undefined) {\r\n\t\t\t\tthis.playSFX(AO_HOST + \"sounds/general/\" + encodeURI(this.chatmsg.sound.toLowerCase()) + \".wav\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.textTimer = this.textTimer + UPDATE_INTERVAL;\r\n\t}\r\n}\r\n\r\nclass INI {\r\n\tstatic parse(data) {\r\n\t\tconst regex = {\r\n\t\t\tsection: /^\\s*\\[\\s*([^\\]]*)\\s*\\]\\s*$/,\r\n\t\t\tparam: /^\\s*([\\w.\\-_]+)\\s*=\\s*(.*?)\\s*$/,\r\n\t\t\tcomment: /^\\s*;.*$/\r\n\t\t};\r\n\t\tconst value = {};\r\n\t\tconst lines = data.split(/\\r\\n|\\r|\\n/);\r\n\t\tlet section;\r\n\t\tlines.forEach(function (line) {\r\n\t\t\tif (regex.comment.test(line)) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if (line.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if (regex.param.test(line)) {\r\n\t\t\t\tconst match = line.match(regex.param);\r\n\t\t\t\tif (section) {\r\n\t\t\t\t\tif (match[1].toLowerCase() === \"showname\") {\t//don't lowercase the showname\r\n\t\t\t\t\t\tvalue[section][\"showname\"] = match[2];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvalue[section][match[1].toLowerCase()] = match[2].toLowerCase();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//} else { // we don't care about attributes without a section\r\n\t\t\t\t\t//\tvalue[match[1]] = match[2];\r\n\t\t\t\t}\r\n\t\t\t} else if (regex.section.test(line)) {\r\n\t\t\t\tconst match = line.match(regex.section);\r\n\t\t\t\tvalue[match[1].toLowerCase()] = {};\t\t\t\t//lowercase everything else\r\n\t\t\t\tsection = match[1].toLowerCase();\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn value;\r\n\t}\r\n}\r\n\r\n/**\r\n * read a cookie from storage\r\n * got this from w3schools\r\n * https://www.w3schools.com/js/js_cookies.asp\r\n * @param {String} cname The name of the cookie to return\r\n */\r\nfunction getCookie(cname) {\r\n\tvar name = cname + \"=\";\r\n\tvar decodedCookie = decodeURIComponent(document.cookie);\r\n\tvar ca = decodedCookie.split(';');\r\n\tfor (var i = 0; i < ca.length; i++) {\r\n\t\tvar c = ca[i];\r\n\t\twhile (c.charAt(0) === ' ') {\r\n\t\t\tc = c.substring(1);\r\n\t\t}\r\n\t\tif (c.indexOf(name) === 0) {\r\n\t\t\treturn c.substring(name.length, c.length);\r\n\t\t}\r\n\t}\r\n\treturn \"\";\r\n}\r\n\r\n/**\r\n * set a cookie\r\n * the version from w3schools expects these to expire\r\n * @param {String} cname The name of the cookie to return\r\n * @param {String} value The value of that cookie option\r\n */\r\nfunction setCookie(cname, value) {\r\n\tdocument.cookie = cname + \"=\" + value;\r\n}\r\n\r\n/**\r\n * Triggered when the Return key is pressed on the out-of-character chat input box.\r\n * @param {KeyboardEvent} event\r\n */\r\nexport function onOOCEnter(event) {\r\n\tif (event.keyCode === 13) {\r\n\t\tclient.sendOOC(document.getElementById(\"client_oocinputbox\").value);\r\n\t\tdocument.getElementById(\"client_oocinputbox\").value = \"\";\r\n\t}\r\n}\r\nwindow.onOOCEnter = onOOCEnter;\r\n\r\n/**\r\n * Triggered when the Return key is pressed on the in-character chat input box.\r\n * @param {KeyboardEvent} event\r\n */\r\nexport function onEnter(event) {\r\n\tif (event.keyCode === 13) {\r\n\t\tconst mychar = client.character;\r\n\t\tconst myemo = client.emote;\r\n\t\tconst evi = client.evidence;\r\n\t\tconst flip = ((document.getElementById(\"button_flip\").classList.contains(\"dark\")) ? 1 : 0);\r\n\t\tconst flash = ((document.getElementById(\"button_flash\").classList.contains(\"dark\")) ? 1 : 0);\r\n\t\tconst screenshake = ((document.getElementById(\"button_shake\").classList.contains(\"dark\")) ? 1 : 0);\r\n\t\tconst noninterrupting_preanim = ((document.getElementById(\"check_nonint\").checked) ? 1 : 0);\r\n\t\tconst looping_sfx = ((document.getElementById(\"check_loopsfx\").checked) ? 1 : 0);\r\n\t\tconst color = document.getElementById(\"textcolor\").value;\r\n\t\tconst showname = document.getElementById(\"ic_chat_name\").value;\r\n\t\tconst text = document.getElementById(\"client_inputbox\").value;\r\n\t\tconst pairchar = document.getElementById(\"pair_select\").value;\r\n\t\tconst pairoffset = document.getElementById(\"pair_offset\").value;\r\n\t\tlet sfxname = \"0\";\r\n\t\tlet sfxdelay = 0;\r\n\t\tlet preanim = \"-\";\r\n\t\tif (document.getElementById(\"sendsfx\").checked) {\r\n\t\t\tsfxname = myemo.sfx;\r\n\t\t\tsfxdelay = myemo.sfxdelay;\r\n\t\t}\r\n\r\n\t\tif (document.getElementById(\"sendpreanim\").checked) {\r\n\t\t\tpreanim = myemo.preanim;\r\n\t\t}\r\n\r\n\t\tclient.sendIC(\"chat\", preanim, mychar.name, myemo.emote,\r\n\t\t\ttext, mychar.side,\r\n\t\t\tsfxname, myemo.zoom, sfxdelay, selectedShout, evi, flip,\r\n\t\t\tflash, color, showname, pairchar, pairoffset, noninterrupting_preanim, looping_sfx, screenshake);\r\n\t}\r\n}\r\nwindow.onEnter = onEnter;\r\n\r\n/**\r\n * Resets the IC parameters for the player to enter a new chat message.\r\n * This should only be called when the player's previous chat message\r\n * was successfully sent/presented.\r\n */\r\nfunction resetICParams() {\r\n\tdocument.getElementById(\"client_inputbox\").value = \"\";\r\n\tdocument.getElementById(\"button_flash\").className = \"client_button\";\r\n\tdocument.getElementById(\"button_shake\").className = \"client_button\";\r\n\r\n\tdocument.getElementById(\"sendpreanim\").checked = false;\r\n\r\n\tif (selectedShout) {\r\n\t\tdocument.getElementById(\"button_\" + selectedShout).className = \"client_button\";\r\n\t\tselectedShout = 0;\r\n\t}\t\r\n}\r\n\r\n/**\r\n * Triggered when the music search bar is changed\r\n * @param {MouseEvent} event\r\n */\r\nexport function musiclist_filter(_event) {\r\n\tconst musiclist_element = document.getElementById(\"client_musiclist\");\r\n\tconst searchname = document.getElementById(\"client_musicsearch\").value;\r\n\r\n\tmusiclist_element.innerHTML = \"\";\r\n\r\n\tfor (const trackname of client.musics){\r\n\t\tif (trackname.toLowerCase().indexOf(searchname.toLowerCase()) !== -1) { \r\n\t\t\tconst newentry = document.createElement(\"OPTION\");\r\n\t\t\tnewentry.text = trackname;\r\n\t\t\tmusiclist_element.options.add(newentry);\r\n\t\t}\r\n\t}\t\t\r\n}\r\nwindow.musiclist_filter = musiclist_filter;\r\n\r\n/**\r\n * Triggered when an item on the music list is clicked.\r\n * @param {MouseEvent} event\r\n */\r\nexport function musiclist_click(_event) {\r\n\tconst playtrack = document.getElementById(\"client_musiclist\").value;\r\n\tclient.sendMusicChange(playtrack);\r\n\r\n\t// This is here so you can't actually select multiple tracks,\r\n\t// even though the select tag has the multiple option to render differently\r\n\tlet musiclist_elements = document.getElementById(\"client_musiclist\").selectedOptions;\r\n\tfor (let i = 0; i < musiclist_elements.length; i++) {\r\n\t\tmusiclist_elements[i].selected = false;\r\n\t}\r\n}\r\nwindow.musiclist_click = musiclist_click;\r\n\r\n/**\r\n * Triggered when a character in the mute list is clicked\r\n * @param {MouseEvent} event\r\n */\r\nexport function mutelist_click(_event) {\r\n\tconst mutelist = document.getElementById(\"mute_select\");\r\n\tconst selected_character = mutelist.options[mutelist.selectedIndex];\r\n\r\n\tif (client.chars[selected_character.value].muted === false) {\r\n\t\tclient.chars[selected_character.value].muted = true;\r\n\t\tselected_character.text = client.chars[selected_character.value].name + \" (muted)\";\r\n\t\tconsole.info(\"muted \" + client.chars[selected_character.value].name);\r\n\t} else {\r\n\t\tclient.chars[selected_character.value].muted = false;\r\n\t\tselected_character.text = client.chars[selected_character.value].name;\r\n\t}\r\n}\r\nwindow.mutelist_click = mutelist_click;\r\n\r\n/**\r\n * Triggered when the showname checkboc is clicked\r\n * @param {MouseEvent} event\r\n */\r\nexport function showname_click(_event) {\r\n\tsetCookie(\"showname\", document.getElementById(\"showname\").checked);\r\n\tsetCookie(\"ic_chat_name\", document.getElementById(\"ic_chat_name\").value);\r\n}\r\nwindow.showname_click = showname_click;\r\n\r\n/**\r\n * Triggered when an item on the area list is clicked.\r\n * @param {MouseEvent} event\r\n */\r\nexport function area_click(el) {\r\n\tconst area = client.areas[el.id.substr(4)].name;\r\n\tclient.sendMusicChange(area);\r\n\r\n\tconst areaHr = document.createElement(\"div\");\r\n\tareaHr.className = \"hrtext\";\r\n\tareaHr.textContent = `switched to ${el.textContent}`;\r\n\tdocument.getElementById(\"client_log\").appendChild(areaHr);\r\n}\r\nwindow.area_click = area_click;\r\n\r\n/**\r\n * Triggered by the music volume slider.\r\n */\r\nexport function changeMusicVolume() {\r\n\tsetCookie(\"musicVolume\", document.getElementById(\"client_musicaudio\").volume);\r\n}\r\nwindow.changeMusicVolume = changeMusicVolume;\r\n\r\n/**\r\n * Triggered by the sound effect volume slider.\r\n */\r\nexport function changeSFXVolume() {\r\n\tviewport.sfxaudio.volume = document.getElementById(\"client_svolume\").value;\r\n\tviewport.shoutaudio.volume = document.getElementById(\"client_svolume\").value;\r\n\tsetCookie(\"sfxVolume\", document.getElementById(\"client_svolume\").value);\r\n}\r\nwindow.changeSFXVolume = changeSFXVolume;\r\n\r\n/**\r\n * Triggered by the blip volume slider.\r\n */\r\nexport function changeBlipVolume() {\r\n\tviewport.blipVolume = document.getElementById(\"client_bvolume\").value;\r\n\tsetCookie(\"blipVolume\", document.getElementById(\"client_bvolume\").value);\r\n}\r\nwindow.changeBlipVolume = changeBlipVolume;\r\n\r\n/**\r\n * Triggered by the theme selector.\r\n */\r\nexport function reloadTheme() {\r\n\tviewport.theme = document.getElementById(\"client_themeselect\").value;\r\n\tsetCookie(\"theme\", viewport.theme);\r\n\tdocument.getElementById(\"client_theme\").href = \"styles/\" + viewport.theme + \".css\";\r\n}\r\nwindow.reloadTheme = reloadTheme;\r\n\r\n/**\r\n * Triggered by the modcall sfx dropdown\r\n */\r\nexport function modcall_test() {\r\n\tclient.handleZZ(\"test#test\".split(\"#\"));\r\n}\r\nwindow.modcall_test = modcall_test;\r\n\r\n/**\r\n * Triggered by the ini button.\r\n */\r\nexport async function iniedit() {\r\n\tconst ininame = document.getElementById(\"client_ininame\").value;\r\n\tconst inicharID = client.charID;\r\n\tawait client.handleCharacterInfo(ininame.split(\"&\"), inicharID);\r\n\tclient.handlePV((\"PV#0#CID#\" + inicharID).split(\"#\"));\r\n}\r\nwindow.iniedit = iniedit;\r\n\r\n/**\r\n * Triggered by the change aspect ratio checkbox\r\n */\r\nexport async function switchAspectRatio() {\r\n\tconst background = document.getElementById(\"client_background\");\r\n\tconst offsetCheck = document.getElementById(\"client_hdviewport_offset\");\r\n\tif(document.getElementById(\"client_hdviewport\").checked) {\r\n\t\tbackground.style.paddingBottom = \"56.25%\";\r\n\t\toffsetCheck.disabled = false;\r\n\t} else {\r\n\t\tbackground.style.paddingBottom = \"75%\";\r\n\t\toffsetCheck.disabled = true;\r\n\t}\r\n}\r\nwindow.switchAspectRatio = switchAspectRatio;\r\n\r\n/**\r\n * Triggered by the change aspect ratio checkbox\r\n */\r\nexport async function switchChatOffset() {\r\n\tconst container = document.getElementById(\"client_chatcontainer\");\r\n\tif(document.getElementById(\"client_hdviewport_offset\").checked) {\r\n\t\tcontainer.style.width = \"80%\";\r\n\t\tcontainer.style.left = \"10%\";\r\n\t} else {\r\n\t\tcontainer.style.width = \"100%\";\r\n\t\tcontainer.style.left = 0;\r\n\t}\r\n}\r\nwindow.switchChatOffset = switchChatOffset;\r\n\r\n/**\r\n * Triggered when a character icon is clicked in the character selection menu.\r\n * @param {MouseEvent} event\r\n */\r\nexport function changeCharacter(_event) {\r\n\tclient.sendLeaveRoom();\r\n\tdocument.getElementById(\"client_charselect\").style.display = \"block\";\r\n\tdocument.getElementById(\"client_emo\").innerHTML = \"\";\r\n}\r\nwindow.changeCharacter = changeCharacter;\r\n\r\n/**\r\n * Triggered when there was an error loading a character sprite.\r\n * @param {HTMLImageElement} image the element containing the missing image\r\n */\r\nexport function charError(image) {\r\n\tconsole.warn(image.src + \" is missing from webAO\");\r\n\t//image.src = transparentPNG;\r\n\treturn true;\r\n}\r\nwindow.charError = charError;\r\n\r\n/**\r\n * Triggered when there was an error loading a generic sprite.\r\n * @param {HTMLImageElement} image the element containing the missing image\r\n */\r\nexport function imgError(image) {\r\n\timage.onerror = \"\";\r\n\timage.src = \"\"; //unload so the old sprite doesn't persist\r\n\treturn true;\r\n}\r\nwindow.imgError = imgError;\r\n\r\n/**\r\n * Make a GET request for a specific URI.\r\n * @param {string} url the URI to be requested\r\n * @returns response data\r\n * @throws {Error} if status code is not 2xx, or a network error occurs\r\n */\r\nasync function requestBuffer(url) {\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tconst xhr = new XMLHttpRequest();\r\n\t\txhr.responseType = \"arraybuffer\";\r\n\t\txhr.addEventListener(\"error\", () => {\r\n\t\t\tconst err = new Error(`Request for ${url} failed: ${xhr.statusText}`);\r\n\t\t\terr.code = xhr.status;\r\n\t\t\treject(err);\r\n\t\t});\r\n\t\txhr.addEventListener(\"abort\", () => {\r\n\t\t\tconst err = new Error(`Request for ${url} was aborted!`);\r\n\t\t\terr.code = xhr.status;\r\n\t\t\treject(err);\r\n\t\t});\r\n\t\txhr.addEventListener(\"load\", () => {\r\n\t\t\tif (xhr.status < 200 || xhr.status >= 300) {\r\n\t\t\t\tconst err = new Error(`Request for ${url} failed with status code ${xhr.status}`);\r\n\t\t\t\terr.code = xhr.status;\r\n\t\t\t\treject(err);\r\n\t\t\t} else {\r\n\t\t\t\tresolve(xhr.response);\r\n\t\t\t}\r\n\t\t});\r\n\t\txhr.open(\"GET\", url, true);\r\n\t\txhr.send();\r\n\t});\r\n}\r\n\r\n/**\r\n * Make a GET request for a specific URI.\r\n * @param {string} url the URI to be requested\r\n * @returns response data\r\n * @throws {Error} if status code is not 2xx, or a network error occurs\r\n */\r\nasync function request(url) {\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tconst xhr = new XMLHttpRequest();\r\n\t\txhr.responseType = \"text\";\r\n\t\txhr.addEventListener(\"error\", () => {\r\n\t\t\tconst err = new Error(`Request for ${url} failed: ${xhr.statusText}`);\r\n\t\t\terr.code = xhr.status;\r\n\t\t\treject(err);\r\n\t\t});\r\n\t\txhr.addEventListener(\"abort\", () => {\r\n\t\t\tconst err = new Error(`Request for ${url} was aborted!`);\r\n\t\t\terr.code = xhr.status;\r\n\t\t\treject(err);\r\n\t\t});\r\n\t\txhr.addEventListener(\"load\", () => {\r\n\t\t\tif (xhr.status < 200 || xhr.status >= 300) {\r\n\t\t\t\tconst err = new Error(`Request for ${url} failed with status code ${xhr.status}`);\r\n\t\t\t\terr.code = xhr.status;\r\n\t\t\t\treject(err);\r\n\t\t\t} else {\r\n\t\t\t\tresolve(xhr.response);\r\n\t\t\t}\r\n\t\t});\r\n\t\txhr.open(\"GET\", url, true);\r\n\t\txhr.send();\r\n\t});\r\n}\r\n\r\n/**\r\n * Checks if a file exists at the specified URI.\r\n * @param {string} url the URI to be checked\r\n */\r\nasync function fileExists(url) {\r\n\ttry {\r\n\t\tawait request(url);\r\n\t\treturn true;\r\n\t} catch (err) {\r\n\t\tif (err.code >= 400) return false;\r\n\t\telse throw err;\r\n\t}\r\n}\r\n\r\n/**\r\n * Triggered when the reconnect button is pushed.\r\n */\r\nexport function ReconnectButton() {\r\n\tclient.cleanup();\r\n\tclient = new Client(serverIP);\r\n\tif (client) {\r\n\t\tmode = \"join\"; // HACK: see client.onOpen\r\n\r\n\t\tdocument.getElementById(\"client_error\").style.display = \"none\";\r\n\r\n\t}\r\n}\r\nwindow.ReconnectButton = ReconnectButton;\r\n\r\n/**\r\n * Appends a message to the in-character chat log.\r\n * @param {string} msg the string to be added\r\n * @param {string} name the name of the sender\r\n */\r\nfunction appendICLog(msg, name = \"\", time = new Date()) {\r\n\tconst entry = document.createElement(\"p\");\r\n\tconst nameField = document.createElement(\"span\");\r\n\tconst textField = document.createElement(\"span\");\r\n\tnameField.className = \"iclog_name\";\r\n\tnameField.appendChild(document.createTextNode(name));\r\n\r\n\ttextField.className = \"iclog_text\";\r\n\ttextField.appendChild(document.createTextNode(msg));\r\n\r\n\tentry.appendChild(nameField);\r\n\tentry.appendChild(textField);\r\n\r\n\t// Only put a timestamp if the minute has changed.\r\n\tif (lastICMessageTime.getMinutes() !== time.getMinutes()) {\r\n\t\tconst timeStamp = document.createElement(\"span\");\r\n\t\ttimeStamp.className = \"iclog_time\";\r\n\t\ttimeStamp.innerText = time.toLocaleTimeString(undefined, {\r\n\t\t\thour: \"numeric\",\r\n\t\t\tminute: \"2-digit\"\r\n\t\t});\r\n\t\tentry.appendChild(timeStamp);\r\n\t}\r\n\r\n\tconst clientLog = document.getElementById(\"client_log\");\r\n\tclientLog.appendChild(entry);\r\n\r\n\t/* This is a little buggy - some troubleshooting might be desirable */\r\n\tif (clientLog.scrollTop > clientLog.scrollHeight - 800) {\r\n\t\tclientLog.scrollTop = clientLog.scrollHeight;\r\n\t}\r\n\r\n\tlastICMessageTime = new Date();\r\n}\r\n\r\n/**\r\n * Triggered when the music search bar is changed\r\n * @param {MouseEvent} event\r\n */\r\nexport function chartable_filter(_event) {\r\n\tconst searchname = document.getElementById(\"client_charactersearch\").value;\r\n\r\n\tclient.chars.forEach(function (character, charid) {\r\n\t\tconst demothing = document.getElementById(`demo_${charid}`);\r\n\t\tif (character.name.toLowerCase().indexOf(searchname.toLowerCase()) === -1) { \r\n\t\t\tdemothing.style.display = \"none\";\r\n\t\t} else {\r\n\t\t\tdemothing.style.display = \"inline-block\";\r\n\t\t}\r\n\t});\r\n}\r\nwindow.chartable_filter = chartable_filter;\r\n\r\n/**\r\n * Requests to play as a character.\r\n * @param {number} ccharacter the character ID; if this is a large number,\r\n * then spectator is chosen instead.\r\n */\r\nexport function pickChar(ccharacter) {\r\n\tif (ccharacter===-1) {\r\n\t\t// Spectator\r\n\t\tdocument.getElementById(\"client_charselect\").style.display = \"none\";\t\t\r\n\t} else {\r\n\t\tclient.sendCharacter(ccharacter);\r\n\t}\r\n}\r\nwindow.pickChar = pickChar;\r\n\r\n/**\r\n * Highlights and selects an emotion for in-character chat.\r\n * @param {string} emo the new emotion to be selected\r\n */\r\nexport function pickEmotion(emo) {\r\n\ttry {\r\n\t\tif (client.selectedEmote !== -1) {\r\n\t\t\tdocument.getElementById(\"emo_\" + client.selectedEmote).src = client.emote.button_off;\r\n\t\t}\r\n\t} catch (err) {\r\n\t\t// do nothing\r\n\t}\r\n\tclient.selectedEmote = emo;\r\n\tdocument.getElementById(\"emo_\" + emo).src = client.emote.button_on;\r\n}\r\nwindow.pickEmotion = pickEmotion;\r\n\r\n/**\r\n * Highlights and selects an evidence for in-character chat.\r\n * @param {string} evidence the evidence to be presented\r\n */\r\nexport function pickEvidence(evidenceID) {\r\n\tconst evidence = Number(evidenceID);\r\n\tif (client.selectedEvidence !== evidence) {\r\n\t\t//Update selected evidence\t\t\r\n\t\tif (client.selectedEvidence > 0) {\r\n\t\t\tdocument.getElementById(\"evi_\" + client.selectedEvidence).className = \"evi_icon\";\r\n\t\t}\r\n\t\tdocument.getElementById(\"evi_\" + evidence).className = \"evi_icon dark\";\r\n\t\tclient.selectedEvidence = evidence;\r\n\r\n\t\t// Show evidence on information window\r\n\t\tdocument.getElementById(\"evi_name\").value = client.evidences[evidence - 1].name;\r\n\t\tdocument.getElementById(\"evi_desc\").value = client.evidences[evidence - 1].desc;\r\n\r\n\t\t// Update icon\r\n\t\tconst icon_id = getIndexFromSelect(\"evi_select\", client.evidences[evidence - 1].filename);\r\n\t\tdocument.getElementById(\"evi_select\").selectedIndex = icon_id;\r\n\t\tif (icon_id === 0) {\r\n\t\t\tdocument.getElementById(\"evi_filename\").value = client.evidences[evidence - 1].filename;\r\n\t\t}\r\n\t\tupdateEvidenceIcon();\r\n\r\n\t\t// Update button\r\n\t\tdocument.getElementById(\"evi_add\").className = \"client_button hover_button inactive\";\r\n\t\tdocument.getElementById(\"evi_edit\").className = \"client_button hover_button\";\r\n\t\tdocument.getElementById(\"evi_cancel\").className = \"client_button hover_button\";\r\n\t\tdocument.getElementById(\"evi_del\").className = \"client_button hover_button\";\r\n\t} else {\r\n\t\tcancelEvidence();\r\n\t}\r\n}\r\nwindow.pickEvidence = pickEvidence;\r\n\r\n/**\r\n * Add evidence.\r\n */\r\nexport function addEvidence() {\r\n\tconst evidence_select = document.getElementById(\"evi_select\");\r\n\tclient.sendPE(document.getElementById(\"evi_name\").value,\r\n\t\tdocument.getElementById(\"evi_desc\").value,\r\n\t\tevidence_select.selectedIndex === 0 ?\r\n\t\t\tdocument.getElementById(\"evi_filename\").value :\r\n\t\t\tevidence_select.options[evidence_select.selectedIndex].text\r\n\t);\r\n\tcancelEvidence();\r\n}\r\nwindow.addEvidence = addEvidence;\r\n\r\n/**\r\n * Edit selected evidence.\r\n */\r\nexport function editEvidence() {\r\n\tconst evidence_select = document.getElementById(\"evi_select\");\r\n\tconst id = parseInt(client.selectedEvidence) - 1;\r\n\tclient.sendEE(id,\r\n\t\tdocument.getElementById(\"evi_name\").value,\r\n\t\tdocument.getElementById(\"evi_desc\").value,\r\n\t\tevidence_select.selectedIndex === 0 ?\r\n\t\t\tdocument.getElementById(\"evi_filename\").value :\r\n\t\t\tevidence_select.options[evidence_select.selectedIndex].text\r\n\t);\r\n\tcancelEvidence();\r\n}\r\nwindow.editEvidence = editEvidence;\r\n\r\n/**\r\n * Delete selected evidence.\r\n */\r\nexport function deleteEvidence() {\r\n\tconst id = parseInt(client.selectedEvidence) - 1;\r\n\tclient.sendDE(id);\r\n\tcancelEvidence();\r\n}\r\nwindow.deleteEvidence = deleteEvidence;\r\n\r\n/**\r\n * Cancel evidence selection.\r\n */\r\nexport function cancelEvidence() {\r\n\t//Clear evidence data\r\n\tif (client.selectedEvidence > 0) {\r\n\t\tdocument.getElementById(\"evi_\" + client.selectedEvidence).className = \"evi_icon\";\r\n\t}\r\n\tclient.selectedEvidence = 0;\r\n\r\n\t// Clear evidence on information window\r\n\tdocument.getElementById(\"evi_select\").selectedIndex = 0;\r\n\tupdateEvidenceIcon(); // Update icon widget\r\n\tdocument.getElementById(\"evi_filename\").value = \"\";\r\n\tdocument.getElementById(\"evi_name\").value = \"\";\r\n\tdocument.getElementById(\"evi_desc\").value = \"\";\r\n\tdocument.getElementById(\"evi_preview\").src = AO_HOST + \"misc/empty.png\"; //Clear icon\r\n\r\n\t// Update button\r\n\tdocument.getElementById(\"evi_add\").className = \"client_button hover_button\";\r\n\tdocument.getElementById(\"evi_edit\").className = \"client_button hover_button inactive\";\r\n\tdocument.getElementById(\"evi_cancel\").className = \"client_button hover_button inactive\";\r\n\tdocument.getElementById(\"evi_del\").className = \"client_button hover_button inactive\";\r\n}\r\nwindow.cancelEvidence = cancelEvidence;\r\n\r\n/**\r\n * Find index of anything in select box.\r\n * @param {string} select_box the select element name\r\n * @param {string} value the value that need to be compared\r\n */\r\nexport function getIndexFromSelect(select_box, value) {\r\n\t//Find if icon alraedy existed in select box\r\n\tconst select_element = document.getElementById(select_box);\r\n\tfor (let i = 1; i < select_element.length; ++i) {\r\n\t\tif (select_element.options[i].value === value) {\r\n\t\t\treturn i;\r\n\t\t}\r\n\t}\r\n\treturn 0;\r\n}\r\nwindow.getIndexFromSelect = getIndexFromSelect;\r\n\r\n/**\r\n * Set the style of the chatbox\r\n */\r\nexport function setChatbox(style) {\r\n\tconst chatbox_theme = document.getElementById(\"chatbox_theme\");\r\n\tconst selected_theme = document.getElementById(\"client_chatboxselect\").value;\r\n\tsetCookie(\"chatbox\", selected_theme);\r\n\tif(selected_theme === \"dynamic\") {\r\n\t\tif (chatbox_arr.includes(style)) {\r\n\t\t\tchatbox_theme.href = \"styles/chatbox/\" + style + \".css\";\r\n\t\t} else {\r\n\t\t\tchatbox_theme.href = \"styles/chatbox/aa.css\";\r\n\t\t}\r\n\t} else {\r\n\t\tchatbox_theme.href = \"styles/chatbox/\" + selected_theme + \".css\";\r\n\t}\r\n}\r\nwindow.setChatbox = setChatbox;\r\n\r\n/**\r\n * Set the font size for the chatbox\r\n */\r\nexport function resizeChatbox() {\r\n\tconst chatContainerBox = document.getElementById(\"client_chatcontainer\");\r\n\tconst gameHeight = document.getElementById(\"client_background\").offsetHeight;\r\n \r\n\tchatContainerBox.style.fontSize = (gameHeight * 0.05) + \"px\";\r\n}\r\nwindow.resizeChatbox = resizeChatbox;\r\n\r\n/**\r\n * Update evidence icon.\r\n */\r\nexport function updateEvidenceIcon() {\r\n\tconst evidence_select = document.getElementById(\"evi_select\");\r\n\tconst evidence_filename = document.getElementById(\"evi_filename\");\r\n\tconst evidence_iconbox = document.getElementById(\"evi_preview\");\r\n\r\n\tif (evidence_select.selectedIndex === 0) {\r\n\t\tevidence_filename.style.display = \"initial\";\r\n\t\tevidence_iconbox.src = AO_HOST + \"evidence/\" + encodeURI(evidence_filename.value.toLowerCase());\r\n\t} else {\r\n\t\tevidence_filename.style.display = \"none\";\r\n\t\tevidence_iconbox.src = AO_HOST + \"evidence/\" + encodeURI(evidence_select.value.toLowerCase());\r\n\t}\r\n}\r\nwindow.updateEvidenceIcon = updateEvidenceIcon;\r\n\r\n/**\r\n * Update evidence icon.\r\n */\r\nexport function updateActionCommands(side) {\r\n\tif (side === \"jud\") {\r\n\t\tdocument.getElementById(\"judge_action\").style.display = \"inline-table\";\r\n\t\tdocument.getElementById(\"no_action\").style.display = \"none\";\r\n\t} else {\r\n\t\tdocument.getElementById(\"judge_action\").style.display = \"none\";\r\n\t\tdocument.getElementById(\"no_action\").style.display = \"inline-table\";\r\n\t}\r\n\r\n\t// Update role selector\r\n\tfor (let i = 0, role_select = document.getElementById(\"role_select\").options; i < role_select.length; i++) {\r\n\t\tif (side === role_select[i].value) {\r\n\t\t\trole_select.selectedIndex = i;\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n}\r\nwindow.updateActionCommands = updateActionCommands;\r\n\r\n/**\r\n * Change background via OOC.\r\n */\r\nexport function changeBackgroundOOC() {\r\n\tconst selectedBG = document.getElementById(\"bg_select\");\r\n\tconst changeBGCommand = document.getElementById(\"bg_command\").value;\r\n\tconst bgFilename = document.getElementById(\"bg_filename\");\r\n\r\n\tlet filename = \"\";\r\n\tif (selectedBG.selectedIndex === 0) {\r\n\t\tfilename = bgFilename.value;\r\n\t} else {\r\n\t\tfilename = selectedBG.value;\r\n\t}\r\n\tclient.sendOOC(\"/\" + changeBGCommand.replace(\"$1\", filename));\r\n}\r\nwindow.changeBackgroundOOC = changeBackgroundOOC;\r\n\r\n/**\r\n * Change role via OOC.\r\n */\r\nexport function changeRoleOOC() {\r\n\tconst role_select = document.getElementById(\"role_select\");\r\n\tconst role_command = document.getElementById(\"role_command\").value;\r\n\r\n\tclient.sendOOC(\"/\" + role_command.replace(\"$1\", role_select.value));\r\n\tupdateActionCommands(role_select.value);\r\n}\r\nwindow.changeRoleOOC = changeRoleOOC;\r\n\r\n/**\r\n * Random character via OOC.\r\n */\r\nexport function randomCharacterOOC() {\r\n\tclient.sendOOC(\"/\" + document.getElementById(\"randomchar_command\").value);\r\n}\r\nwindow.randomCharacterOOC = randomCharacterOOC;\r\n\r\n/**\r\n * Call mod.\r\n */\r\nexport function callMod() {\r\n\tlet modcall;\r\n\tif (extrafeatures.includes(\"modcall_reason\")) {\r\n\tmodcall = prompt(\"Please enter the reason for the modcall\", \"\");\r\n\t}\r\n\tif (modcall == null || modcall === \"\") {\r\n\t\t// cancel\r\n\t} else {\r\n\t\tclient.sendZZ(modcall);\r\n\t}\r\n}\r\nwindow.callMod = callMod;\r\n\r\n/**\r\n * Declare witness testimony.\r\n */\r\nexport function initWT() {\r\n\tclient.sendRT(\"testimony1\");\r\n}\r\nwindow.initWT = initWT;\r\n\r\n/**\r\n * Declare cross examination.\r\n */\r\nexport function initCE() {\r\n\tclient.sendRT(\"testimony2\");\r\n}\r\nwindow.initCE = initCE;\r\n\r\n/**\r\n * Declare the defendant not guilty\r\n */\r\nexport function notguilty() {\r\n\tclient.sendRT(\"judgeruling#0\");\r\n}\r\nwindow.notguilty = notguilty;\r\n\r\n/**\r\n * Declare the defendant not guilty\r\n */\r\nexport function guilty() {\r\n\tclient.sendRT(\"judgeruling#1\");\r\n}\r\nwindow.guilty = guilty;\r\n\r\n/**\r\n * Increment defense health point.\r\n */\r\nexport function addHPD() {\r\n\tclient.sendHP(1, String(parseInt(client.hp[0]) + 1));\r\n}\r\nwindow.addHPD = addHPD;\r\n\r\n/**\r\n * Decrement defense health point.\r\n */\r\nexport function redHPD() {\r\n\tclient.sendHP(1, String(parseInt(client.hp[0]) - 1));\r\n}\r\nwindow.redHPD = redHPD;\r\n\r\n/**\r\n * Increment prosecution health point.\r\n */\r\nexport function addHPP() {\r\n\tclient.sendHP(2, String(parseInt(client.hp[1]) + 1));\r\n}\r\nwindow.addHPP = addHPP;\r\n\r\n/**\r\n * Decrement prosecution health point.\r\n */\r\nexport function redHPP() {\r\n\tclient.sendHP(2, String(parseInt(client.hp[1]) - 1));\r\n}\r\nwindow.redHPP = redHPP;\r\n\r\n/**\r\n * Update background preview.\r\n */\r\nexport function updateBackgroundPreview() {\r\n\tconst background_select = document.getElementById(\"bg_select\");\r\n\tconst background_filename = document.getElementById(\"bg_filename\");\r\n\tconst background_preview = document.getElementById(\"bg_preview\");\r\n\r\n\tif (background_select.selectedIndex === 0) {\r\n\t\tbackground_filename.style.display = \"initial\";\r\n\t\tbackground_preview.src = AO_HOST + \"background/\" + encodeURI(background_filename.value.toLowerCase()) + \"/defenseempty.png\";\r\n\t} else {\r\n\t\tbackground_filename.style.display = \"none\";\r\n\t\tbackground_preview.src = AO_HOST + \"background/\" + encodeURI(background_select.value.toLowerCase()) + \"/defenseempty.png\";\r\n\t}\r\n}\r\nwindow.updateBackgroundPreview = updateBackgroundPreview;\r\n\r\n/**\r\n * Highlights and selects an effect for in-character chat.\r\n * If the same effect button is selected, then the effect is canceled.\r\n * @param {string} effect the new effect to be selected\r\n */\r\nexport function toggleEffect(button) {\r\n\tif (button.classList.contains(\"dark\")) {\r\n\t\tbutton.className = \"client_button\";\r\n\t} else {\r\n\t\tbutton.className = \"client_button dark\";\r\n\t}\r\n}\r\nwindow.toggleEffect = toggleEffect;\r\n\r\n/**\r\n * Highlights and selects a menu.\r\n * @param {string} menu the menu to be selected\r\n */\r\nexport function toggleMenu(menu) {\r\n\tif (menu !== selectedMenu) {\r\n\t\tdocument.getElementById(\"menu_\" + menu).className = \"menu_button active\";\r\n\t\tdocument.getElementById(\"content_\" + menu).className = \"menu_content active\";\r\n\t\tdocument.getElementById(\"menu_\" + selectedMenu).className = \"menu_button\";\r\n\t\tdocument.getElementById(\"content_\" + selectedMenu).className = \"menu_content\";\r\n\t\tselectedMenu = menu;\r\n\t}\r\n}\r\nwindow.toggleMenu = toggleMenu;\r\n\r\n/**\r\n * Highlights and selects a shout for in-character chat.\r\n * If the same shout button is selected, then the shout is canceled.\r\n * @param {string} shout the new shout to be selected\r\n */\r\nexport function toggleShout(shout) {\r\n\tif (shout === selectedShout) {\r\n\t\tdocument.getElementById(\"button_\" + shout).className = \"client_button\";\r\n\t\tselectedShout = 0;\r\n\t} else {\r\n\t\tdocument.getElementById(\"button_\" + shout).className = \"client_button dark\";\r\n\t\tif (selectedShout) {\r\n\t\t\tdocument.getElementById(\"button_\" + selectedShout).className = \"client_button\";\r\n\t\t}\r\n\t\tselectedShout = shout;\r\n\t}\r\n}\r\nwindow.toggleShout = toggleShout;","export default [\r\n \"(Jury)Ace\",\r\n \"(Jury)Armstrong\",\r\n \"(Jury)Balmung\",\r\n \"(Jury)Brisbane W\",\r\n \"(Jury)Dahlia\",\r\n \"(Jury)Desiree\",\r\n \"(Jury)Dzbilchaltunchunchucmil\",\r\n \"(Jury)Eldoon\",\r\n \"(Jury)Emaskye\",\r\n \"(Jury)Gant\",\r\n \"(Jury)June\",\r\n \"(Jury)Laurice\",\r\n \"(Jury)Meekins\",\r\n \"(Jury)Moe\",\r\n \"(Jury)Monopoly-Guy\",\r\n \"(Jury)Neil W\",\r\n \"(Jury)Oldbag\",\r\n \"(Jury)Peppers\",\r\n \"(Jury)Regina\",\r\n \"(Jury)Ron\",\r\n \"(Jury)Shakey\",\r\n \"(Jury)Snakey\",\r\n \"(Jury)Snow\",\r\n \"(Jury)Titus Kruuump\",\r\n \"(Jury)Vera\",\r\n \"(Jury)Vex\",\r\n \"(Pb)Korily\",\r\n \"(Pb)Saber Pendragon\",\r\n \"(T) Sachiko\",\r\n \"(Vlr)Dio\",\r\n \"(Vlr)K\",\r\n \"0 Louis Armstrong\",\r\n \"0 Master Anonymous\",\r\n \"1 Anon\",\r\n \"1 Anonymous\",\r\n \"1 Custom\",\r\n \"1 Elvis Presley\",\r\n \"10 Anon\",\r\n \"10 Custom\",\r\n \"10 Stevie Wonder\",\r\n \"11 Anon\",\r\n \"11 Custom\",\r\n \"11 Tina Turner\",\r\n \"12 Anon\",\r\n \"12 Custom\",\r\n \"12 David Bowie\",\r\n \"13 Anon\",\r\n \"13 Custom\",\r\n \"13 Jimi Hendrix\",\r\n \"14 Anon\",\r\n \"14 Billy Joel\",\r\n \"14 Custom\",\r\n \"15 Anon\",\r\n \"15 Custom\",\r\n \"15 Elton John\",\r\n \"16 Custom\",\r\n \"2 Anon\",\r\n \"2 Anonymous\",\r\n \"2 Custom\",\r\n \"2 Ludwig Van Beethoven\",\r\n \"3 Anon\",\r\n \"3 Anonymous\",\r\n \"3 Custom\",\r\n \"3 Wolfgang Mozart\",\r\n \"4 Anon\",\r\n \"4 Anonymous\",\r\n \"4 Custom\",\r\n \"4 Michael Jackson\",\r\n \"5 Anon\",\r\n \"5 Custom\",\r\n \"5 Prince\",\r\n \"5Pb\",\r\n \"6 Anon\",\r\n \"6 Custom\",\r\n \"6 Marvin Gaye\",\r\n \"7 Anon\",\r\n \"7 Aretha Franklin\",\r\n \"7 Custom\",\r\n \"707\",\r\n \"777\",\r\n \"8 Anon\",\r\n \"8 Custom\",\r\n \"8 Frank Sinatra\",\r\n \"9 Anon\",\r\n \"9 Custom\",\r\n \"9 Johnny Cash\",\r\n \"Aai Edgeworth\",\r\n \"Aai Ema\",\r\n \"Aai Franziska\",\r\n \"Aai Gregory\",\r\n \"Aai Gumshoe\",\r\n \"Aai Larry\",\r\n \"Aai Lotta\",\r\n \"Aai Maggey\",\r\n \"Aai Manfred\",\r\n \"Aai Oldbag\",\r\n \"Aai Regina\",\r\n \"Aai Sawhit\",\r\n \"Aai Shelly\",\r\n \"Aai-Youngfranziska\",\r\n \"Aaiedgey\",\r\n \"Aaiema\",\r\n \"Aaifranziska\",\r\n \"Aaigumshoe\",\r\n \"Aaimanfred\",\r\n \"Aaisnow\",\r\n \"Aai_Ema\",\r\n \"Aai_Franziska\",\r\n \"Aai_Gumshoe\",\r\n \"Abellc\",\r\n \"Abigail\",\r\n \"Aboborcg\",\r\n \"Abogado\",\r\n \"Abramlc\",\r\n \"Abyss Creatures\",\r\n \"Accord\",\r\n \"Ace\",\r\n \"Ace (999)\",\r\n \"Acro\",\r\n \"Adachi\",\r\n \"Adachi Gunless\",\r\n \"Adam Ladyfirst\",\r\n \"Adam Redifast\",\r\n \"Adamlc\",\r\n \"Addam\",\r\n \"Adenine\",\r\n \"Adrian\",\r\n \"Adrian Andrews\",\r\n \"Adriancc\",\r\n \"Ae Kuzuryuu\",\r\n \"Ae Leon\",\r\n \"Ae Mikan\",\r\n \"Ahlbi\",\r\n \"Ai\",\r\n \"Ai (Ppt)\",\r\n \"Ai Enma\",\r\n \"Aigis\",\r\n \"Aigis (Godot)\",\r\n \"Aiko Umesawa Png\",\r\n \"Aiko Umesawa_Hd\",\r\n \"Aiko_Hd\",\r\n \"Aisaka\",\r\n \"Akane\",\r\n \"Akane Owari Png\",\r\n \"Akane Owari_Hd\",\r\n \"Akane Owari_Rs\",\r\n \"Akane Taira_Hd\",\r\n \"Akatsubaki_Hd\",\r\n \"Akatsuki(Mha)\",\r\n \"Akeru_Hd\",\r\n \"Akhata Domoaukafe Cuyenray\",\r\n \"Akhos\",\r\n \"Akihiko Sanada\",\r\n \"Akihiko Sanada P3\",\r\n \"Akihiro Bakuhatsu\",\r\n \"Akira Satou\",\r\n \"Akyuu\",\r\n \"Alakazam\",\r\n \"Alba\",\r\n \"Albus\",\r\n \"Aldante\",\r\n \"Aleu\",\r\n \"Alex Louis Armstrong\",\r\n \"Alfendi\",\r\n \"Alfendi Layton\",\r\n \"Alice\",\r\n \"Alice Margatroid\",\r\n \"Alice Margatroid (Kid)\",\r\n \"Alice Sparkle\",\r\n \"Alice Yabusame_Hd\",\r\n \"Aliceyttd\",\r\n \"Alice_Hd\",\r\n \"Alicorn Twilight\",\r\n \"Alisa\",\r\n \"Alisa Illinichina Amiella (Sb)\",\r\n \"Alisha Diphda\",\r\n \"Alita\",\r\n \"Alita Tiala\",\r\n \"Almaz\",\r\n \"Alphonse Elric\",\r\n \"Alphys\",\r\n \"Altamont\",\r\n \"Alterego_Hd\",\r\n \"Amadeus\",\r\n \"Amakusa\",\r\n \"Amalthus\",\r\n \"Amalthus (Praetor)\",\r\n \"Amane\",\r\n \"Amane Suzuha\",\r\n \"Amara\",\r\n \"Amisia Erdehn\",\r\n \"Amitie\",\r\n \"Amy Rose\",\r\n \"Ananta\",\r\n \"Andistandhin\",\r\n \"Andrew Hussie\",\r\n \"Android 17\",\r\n \"Angel\",\r\n \"Angel Starr\",\r\n \"Angela (P)\",\r\n \"Angelalc\",\r\n \"Angie\",\r\n \"Angie Yonaga\",\r\n \"Angie Yonaga_Hd\",\r\n \"Angie Yonaga_Rs\",\r\n \"Angramainyufgo\",\r\n \"Aniu\",\r\n \"Ann Takamaki\",\r\n \"Anna\",\r\n \"Anna (Fe)\",\r\n \"Anna (Fewarriors)\",\r\n \"Anna Mittlemont\",\r\n \"Annette\",\r\n \"Annie\",\r\n \"Anonymous\",\r\n \"Anton\",\r\n \"Anzuyttd\",\r\n \"Anzu_Hd\",\r\n \"Aoi Asahina\",\r\n \"Aoi Asahina Png\",\r\n \"Aoto\",\r\n \"Apollo\",\r\n \"Apollo 3D B\",\r\n \"Apollo Dd\",\r\n \"Apollo Dd Wounded Wit\",\r\n \"Apollo Justice\",\r\n \"Apollo Leg\",\r\n \"Apollocodlc\",\r\n \"Apollodd\",\r\n \"Apollodd Dlc\",\r\n \"Apollodd Injured\",\r\n \"Apollodd Wit\",\r\n \"Apollodd Wit2\",\r\n \"Apolloddwit\",\r\n \"Apollodef\",\r\n \"Apollopro\",\r\n \"Apollosoj\",\r\n \"Apollosojwit\",\r\n \"Apollostylinstreet\",\r\n \"Apollowit\",\r\n \"Apolly Def\",\r\n \"Apple\",\r\n \"Applebloom\",\r\n \"Applejack\",\r\n \"Applejackd\",\r\n \"April\",\r\n \"April May\",\r\n \"Aprilcc\",\r\n \"Ar Ru\",\r\n \"Aradia Megido (Pq)\",\r\n \"Arakawa\",\r\n \"Arbiter V1\",\r\n \"Archer\",\r\n \"Archibald\",\r\n \"Archibald Doctor\",\r\n \"Arenea Sarket\",\r\n \"Aria\",\r\n \"Ariaco\",\r\n \"Arisa\",\r\n \"Arle\",\r\n \"Arle Nadja\",\r\n \"Arle20th\",\r\n \"Armandoh\",\r\n \"Armie\",\r\n \"Armor\",\r\n \"Armstrong\",\r\n \"Armstrongcc\",\r\n \"Artemis Injustice\",\r\n \"Arthur And Percy\",\r\n \"Arthur_Rs\",\r\n \"Artoria Pendragon (Alter)\",\r\n \"Artorialilyfgo\",\r\n \"Artoriapendragonfgo\",\r\n \"Asahina\",\r\n \"Asahina (Mm)_Hd\",\r\n \"Asahina_Hd\",\r\n \"Asayoru_Hd\",\r\n \"Asbellhant\",\r\n \"Asch\",\r\n \"Ashe Bradley\",\r\n \"Asistente\",\r\n \"Askari\",\r\n \"Asougi\",\r\n \"Asougipro\",\r\n \"Assasin\",\r\n \"Astolfo\",\r\n \"Asuka Hidori\",\r\n \"Asukasei Hino_Hd\",\r\n \"Asumi Jou\",\r\n \"Athena\",\r\n \"Athena Cykes\",\r\n \"Athena Dd Wit\",\r\n \"Athena Dd Wit School\",\r\n \"Athena Maid W\",\r\n \"Athena Soj Def The Good Fucking Version\",\r\n \"Athena Soj W\",\r\n \"Athena Wc\",\r\n \"Athena Wh\",\r\n \"Athenaco\",\r\n \"Athenaco-H\",\r\n \"Athenacodlc\",\r\n \"Athenacykessoj\",\r\n \"Athenada\",\r\n \"Athenadefaa\",\r\n \"Athenah\",\r\n \"Athenah School\",\r\n \"Athenasoj\",\r\n \"Athenaw\",\r\n \"Athenawit\",\r\n \"Atmey\",\r\n \"Atmeycc\",\r\n \"Atmeyhd\",\r\n \"Auchi\",\r\n \"Auchi Dgs2\",\r\n \"Auchi Wit\",\r\n \"Aura\",\r\n \"Aurora(Sb)\",\r\n \"Aya (Fs)\",\r\n \"Aya Hiromi\",\r\n \"Aya Shameimaru\",\r\n \"Aya Shameimaru (Swr)\",\r\n \"Ayame Hanato_Hd\",\r\n \"Ayasaki Kurosuke\",\r\n \"Ayinlc\",\r\n \"Azdaja Knelax\",\r\n \"Azrael\",\r\n \"Azura\",\r\n \"Azura (Fe)\",\r\n \"Azura (Fewarriors)\",\r\n \"Badd\",\r\n \"Baikenes\",\r\n \"Bailiff\",\r\n \"Bailiff Gb\",\r\n \"Bailiff Jp\",\r\n \"Bailiffdgs\",\r\n \"Bailiffs\",\r\n \"Balto\",\r\n \"Bandagedapollo\",\r\n \"Barbara Kamiya\",\r\n \"Barnham\",\r\n \"Barok\",\r\n \"Barok Van Zieks\",\r\n \"Barok Wit\",\r\n \"Barok Z\",\r\n \"Barrows\",\r\n \"Barton\",\r\n \"Basilio\",\r\n \"Battler\",\r\n \"Battler Ushiromiya\",\r\n \"Battler Ushiromiya_Hd\",\r\n \"Bb\",\r\n \"Beat\",\r\n \"Beat Frx\",\r\n \"Beatrice\",\r\n \"Beerus\",\r\n \"Bellboy\",\r\n \"Ben\",\r\n \"Ben And Trilo\",\r\n \"Beowulf\",\r\n \"Beppo\",\r\n \"Bernkastel\",\r\n \"Berry Judge\",\r\n \"Berry Punch\",\r\n \"Beruka\",\r\n \"Beta Monaca\",\r\n \"Betty De Famme\",\r\n \"Big Band\",\r\n \"Big Macintosh\",\r\n \"Big Saionji_Hd\",\r\n \"Bigband_Rs\",\r\n \"Bigby Wolf\",\r\n \"Bikini\",\r\n \"Bikini And Elise\",\r\n \"Bill Cipher\",\r\n \"Binahlc\",\r\n \"Birdman\",\r\n \"Birdman Leg\",\r\n \"Bisharp\",\r\n \"Black Mage\",\r\n \"Black Twi\",\r\n \"Blackquill\",\r\n \"Blackquill Dd Wit\",\r\n \"Blackquillddwit\",\r\n \"Blackquillsoj\",\r\n \"Blackquillsojco\",\r\n \"Blackquillsojwit\",\r\n \"Blackquillwit\",\r\n \"Blackstar\",\r\n \"Blaise\",\r\n \"Blaise Debeste\",\r\n \"Blake Belladonna\",\r\n \"Blanc\",\r\n \"Blanco\",\r\n \"Blind Prince\",\r\n \"Bobby\",\r\n \"Bobby Fullbright\",\r\n \"Bobbyfulbright\",\r\n \"Bonbon\",\r\n \"Bongo\",\r\n \"Bonnie And Karin\",\r\n \"Bonnie_Karin\",\r\n \"Bonny De Famme\",\r\n \"Bonzi\",\r\n \"Bosco\",\r\n \"Bowl\",\r\n \"Bowser\",\r\n \"Brando\",\r\n \"Brett\",\r\n \"Brigada S.O.S\",\r\n \"Brisbane\",\r\n \"Brisbane W\",\r\n \"Bruno Bucciarati\",\r\n \"Bucky\",\r\n \"Buddy\",\r\n \"Bulleta\",\r\n \"Bulletbbcf\",\r\n \"Burley\",\r\n \"Butch Browning\",\r\n \"Butz\",\r\n \"Butz Aai\",\r\n \"Butzcc\",\r\n \"Butzedgeworth\",\r\n \"Butzsoj\",\r\n \"Byakuren\",\r\n \"Byakuren Hijiri\",\r\n \"Byakuya\",\r\n \"Byakuya Togami\",\r\n \"Byakuya Twogami\",\r\n \"Byakuya2\",\r\n \"Byakuya2_Hd\",\r\n \"Byakuyaae\",\r\n \"Byakuyadr2\",\r\n \"Byakuyahd\",\r\n \"Byakuyatogami\",\r\n \"Byakuya_Hd\",\r\n \"Byakuya_Rs\",\r\n \"Byakuya_Togami\",\r\n \"Byleth (M)\",\r\n \"Byrne\",\r\n \"Cabanela\",\r\n \"Cadance\",\r\n \"Caeda (Fewarriors)\",\r\n \"Caeser Villan\",\r\n \"Calisto\",\r\n \"Calisto (Rev)\",\r\n \"Calisto Yew\",\r\n \"Camilla (Fe)\",\r\n \"Camilla (Fewarriors)\",\r\n \"Cammy\",\r\n \"Cammy Meele\",\r\n \"Candy Worthy\",\r\n \"Canon\",\r\n \"Captain Commando\",\r\n \"Carbuncle\",\r\n \"Carbuncle20th\",\r\n \"Carl\",\r\n \"Carl Clover\",\r\n \"Carmenlc\",\r\n \"Carmine\",\r\n \"Cave\",\r\n \"Cc\",\r\n \"Celeste\",\r\n \"Celestia\",\r\n \"Celestia Ludenberg\",\r\n \"Celestia Ludenberg Png\",\r\n \"Celestia Ludenburg\",\r\n \"Celestia Ludenburg (Fancy)\",\r\n \"Celestiaw\",\r\n \"Celestia_Hd\",\r\n \"Celestia_Rs\",\r\n \"Celica (Fewarriors)\",\r\n \"Celica A Mercury\",\r\n \"Celty\",\r\n \"Chacha\",\r\n \"Chandelure\",\r\n \"Changeling\",\r\n \"Chaos\",\r\n \"Chaos (Mha)\",\r\n \"Charles\",\r\n \"Charmeleon\",\r\n \"Charmeleon Oc Vn Casual (Pokemon)\",\r\n \"Charun Krojib\",\r\n \"Chelmey\",\r\n \"Cherche\",\r\n \"Cheria\",\r\n \"Chesed\",\r\n \"Chesedlc\",\r\n \"Chiaki\",\r\n \"Chiaki Nanami\",\r\n \"Chiaki Nanami Dr3_Hd\",\r\n \"Chiakinanami\",\r\n \"Chiakinanamihd\",\r\n \"Chiaki_Hd\",\r\n \"Chiaki_Rs\",\r\n \"Chidouin\",\r\n \"Chie\",\r\n \"Chie S\",\r\n \"Chie Satonaka\",\r\n \"Chihiro\",\r\n \"Chihiro Fujisaki\",\r\n \"Chihiro Fujisaki Png\",\r\n \"Chihirofujisaki\",\r\n \"Chihiro_Hd\",\r\n \"Chihiro_Rs\",\r\n \"Chinami_Hd\",\r\n \"Chip\",\r\n \"Chisa Yukizome (Future)\",\r\n \"Chisa Yukizome (Future)_Hd\",\r\n \"Chisa Yukizome (Young)\",\r\n \"Chisa Yukizome_Hd\",\r\n \"Chixie Roixmr\",\r\n \"Chocobo\",\r\n \"Chris Mclean (Td)\",\r\n \"Chris Redfield\",\r\n \"Christo\",\r\n \"Christophercolumbusfgo\",\r\n \"Chrom\",\r\n \"Chrom (Fates)\",\r\n \"Chrom (Fewarriors)\",\r\n \"Chrysalis\",\r\n \"Chun-Li_Rs\",\r\n \"Chunlipxz\",\r\n \"Cicatrice\",\r\n \"Cindy\",\r\n \"Cindy Law\",\r\n \"Cindy Smith\",\r\n \"Cirno\",\r\n \"Cirno Swr\",\r\n \"Claire\",\r\n \"Claude\",\r\n \"Clive\",\r\n \"Clive Dove\",\r\n \"Clonco\",\r\n \"Clover\",\r\n \"Clover (999)\",\r\n \"Clover Vlr\",\r\n \"Clownpiece\",\r\n \"Cm 1\",\r\n \"Cm 2\",\r\n \"Cm 3\",\r\n \"Co-Hobo\",\r\n \"Coco Atarashi\",\r\n \"Codeweaver (D)\",\r\n \"Cody\",\r\n \"Cody Hackins\",\r\n \"Cody T\",\r\n \"Colettebrunel\",\r\n \"Colgate Minuette\",\r\n \"Colias\",\r\n \"Colias Palaeno\",\r\n \"Color Splash Mario\",\r\n \"Colress (Sm)\",\r\n \"Compa\",\r\n \"Conan\",\r\n \"Conan Edo\",\r\n \"Conan Edogawa\",\r\n \"Connor\",\r\n \"Conway Stern\",\r\n \"Cordelia (Fewarriors)\",\r\n \"Corrin (F)\",\r\n \"Corrin F (Fewarriors)\",\r\n \"Corrin M (Fewarriors)\",\r\n \"Corrinmale\",\r\n \"Corvin\",\r\n \"Cosmos\",\r\n \"Cosmos2\",\r\n \"Courtney\",\r\n \"Courtney Sithe\",\r\n \"Cowboy\",\r\n \"Cowman\",\r\n \"Crab\",\r\n \"Credidus\",\r\n \"Crogrey\",\r\n \"Cronus Ampora\",\r\n \"Cruise Control\",\r\n \"Crusader Boi\",\r\n \"Custom1\",\r\n \"Custom10\",\r\n \"Custom11\",\r\n \"Custom12\",\r\n \"Custom13\",\r\n \"Custom14\",\r\n \"Custom15\",\r\n \"Custom16\",\r\n \"Custom17\",\r\n \"Custom18\",\r\n \"Custom19\",\r\n \"Custom2\",\r\n \"Custom20\",\r\n \"Custom3\",\r\n \"Custom4\",\r\n \"Custom5\",\r\n \"Custom6\",\r\n \"Custom7\",\r\n \"Custom8\",\r\n \"Custom9\",\r\n \"Dagas\",\r\n \"Dahlia\",\r\n \"Dahlia Hawthorne\",\r\n \"Daisaku Bandai_Hd\",\r\n \"Daiya_Hd\",\r\n \"Damon Gant\",\r\n \"Dan Kuso\",\r\n \"Dana\",\r\n \"Danazanevh\",\r\n \"Dane Gustavia\",\r\n \"Dante\",\r\n \"Dante Dmc\",\r\n \"Dante Pxz\",\r\n \"Daraya Jonjet\",\r\n \"Daring Dash\",\r\n \"Daring Do\",\r\n \"Darios (Fewarriors)\",\r\n \"Dark Pit\",\r\n \"Dark Prince\",\r\n \"Darkgodot\",\r\n \"Darkklavier\",\r\n \"Darklaw\",\r\n \"Darkthena\",\r\n \"Darkthena W\",\r\n \"Daru\",\r\n \"Daryan\",\r\n \"Daryan Crescend\",\r\n \"Datz\",\r\n \"Dave Strider\",\r\n \"Dave Strider (Candy Ending) (Pq)\",\r\n \"Dave Strider (Pq)\",\r\n \"Dd Apollo Justice\",\r\n \"De Killer\",\r\n \"De Killer Aai\",\r\n \"Deadpool\",\r\n \"Death The Kid\",\r\n \"Deaththekid\",\r\n \"Decargo\",\r\n \"Decargo Dgs2\",\r\n \"Dee Vasquez\",\r\n \"Dekiller\",\r\n \"Dekilleraai\",\r\n \"Delia\",\r\n \"Delicia\",\r\n \"Demitripxz\",\r\n \"Deplume\",\r\n \"Derpy\",\r\n \"Derpyw\",\r\n \"Descole\",\r\n \"Desiree\",\r\n \"Desirée Delite\",\r\n \"Dewott\",\r\n \"Dezel\",\r\n \"Dhurke\",\r\n \"Dhurke D\",\r\n \"Dhurke Def\",\r\n \"Di-Jun Huang\",\r\n \"Diana\",\r\n \"Diane\",\r\n \"Diane Makepeace\",\r\n \"Dick Gumshoe\",\r\n \"Diego\",\r\n \"Diego Armando\",\r\n \"Diego Leg\",\r\n \"Diegoa\",\r\n \"Diegoarmando\",\r\n \"Diegocc\",\r\n \"Diegodef\",\r\n \"Diemen Xicali\",\r\n \"Dimentio\",\r\n \"Dimitri\",\r\n \"Dio\",\r\n \"Dio Brando\",\r\n \"Dirk\",\r\n \"Dirk Strider (Pq)\",\r\n \"Disciple\",\r\n \"Discord\",\r\n \"Discord Whooves\",\r\n \"Discorded Frost Lightfall\",\r\n \"Discordrevamp\",\r\n \"Dist\",\r\n \"Dizzyes\",\r\n \"Dmitri\",\r\n \"Dobinbough\",\r\n \"Dogen\",\r\n \"Dolan\",\r\n \"Dolmes\",\r\n \"Dolphi\",\r\n \"Don Paolo\",\r\n \"Donnabella\",\r\n \"Donpaolo\",\r\n \"Doof Boof\",\r\n \"Doremi\",\r\n \"Dorothy Elford\",\r\n \"Dr.Hotti\",\r\n \"Drebber\",\r\n \"Drew\",\r\n \"Drhotti\",\r\n \"Duet\",\r\n \"Duet (Lamiroir & Machi)\",\r\n \"Duet Lym\",\r\n \"Dusk\",\r\n \"Echo\",\r\n \"Eddy Swop\",\r\n \"Edgeworth\",\r\n \"Edgeworthaai\",\r\n \"Edgeworthdd\",\r\n \"Edgeworthhd\",\r\n \"Edgeworthsoj\",\r\n \"Edgeworthw\",\r\n \"Edgeworthwdd\",\r\n \"Edmonddantes\",\r\n \"Edmonddantesfgo\",\r\n \"Edna\",\r\n \"Edward Elric\",\r\n \"Eevee\",\r\n \"Effie (Fe)\",\r\n \"Eiki Shiki\",\r\n \"Eilie\",\r\n \"Eirin\",\r\n \"Eizen\",\r\n \"El Gato\",\r\n \"Eldoon\",\r\n \"Eli Ayase\",\r\n \"Elise\",\r\n \"Elise (Fe)\",\r\n \"Elise (Fewarriors)\",\r\n \"Elise Deauxnim\",\r\n \"Elizabeth\",\r\n \"Eliza_Rs\",\r\n \"Ellen\",\r\n \"Ellen(Twh)\",\r\n \"Elma\",\r\n \"Eltnum\",\r\n \"Ema\",\r\n \"Ema H Hd\",\r\n \"Ema Skye\",\r\n \"Emaaai\",\r\n \"Emaaj\",\r\n \"Emacc\",\r\n \"Emah\",\r\n \"Emaskye\",\r\n \"Emasoj\",\r\n \"Emi Ibarazaki\",\r\n \"Emiri Kimidori\",\r\n \"Emma_Hd\",\r\n \"Emmy\",\r\n \"Enemies\",\r\n \"Enhanced Courtney\",\r\n \"Enkidu\",\r\n \"Equius Zahhak (Pq)\",\r\n \"Equius_Rs\",\r\n \"Eridan Ampora (Pq)\",\r\n \"Erik Wrench\",\r\n \"Erika\",\r\n \"Erio (Mha)\",\r\n \"Ernest\",\r\n \"Ernest Amano\",\r\n \"Es\",\r\n \"Espella\",\r\n \"Espella H\",\r\n \"Espeon\",\r\n \"Espeon Oc Vn (Pokemon)\",\r\n \"Espurr Vn (Pokemon)\",\r\n \"Ess\",\r\n \"Etna\",\r\n \"Eva\",\r\n \"Eve Belduke\",\r\n \"Everyday\",\r\n \"Evilmanfred Proc\",\r\n \"Ex\",\r\n \"Fanta\",\r\n \"Faris\",\r\n \"Faris Nyannyan\",\r\n \"Faris Wartime\",\r\n \"Fausticorn\",\r\n \"Fawles\",\r\n \"Feenie\",\r\n \"Feferi Peixes (Pq)\",\r\n \"Felicia\",\r\n \"Fem Kcalb\",\r\n \"Femalerobin\",\r\n \"Fennekin Vn (Pokemon)\",\r\n \"Filch\",\r\n \"Filly Applejack\",\r\n \"Filly Fluttershy\",\r\n \"Filly Pinkie Pie\",\r\n \"Filly Rainbow Dash\",\r\n \"Filly Rarity\",\r\n \"Filly Trixie\",\r\n \"Filly Twilight\",\r\n \"Finch\",\r\n \"Fiona Elford\",\r\n \"Fiora\",\r\n \"Fiscal\",\r\n \"Flandre\",\r\n \"Flareon\",\r\n \"Flavia (Fe)\",\r\n \"Flonne\",\r\n \"Flora\",\r\n \"Flora (Fe)\",\r\n \"Floren\",\r\n \"Florent\",\r\n \"Fluffle Puff\",\r\n \"Fluttershy\",\r\n \"Flynch\",\r\n \"Forrest (Fe)\",\r\n \"Fox Mccloud\",\r\n \"Frank Sahwit\",\r\n \"Franken Stein\",\r\n \"Franny\",\r\n \"Franziska\",\r\n \"Franziska Aai\",\r\n \"Franziska Aai Young\",\r\n \"Franziska V K\",\r\n \"Franziska Von Karma\",\r\n \"Franziskaaai\",\r\n \"Franziskacc\",\r\n \"Franziskagk\",\r\n \"Franziskayoung\",\r\n \"Fraxure\",\r\n \"Frederick\",\r\n \"Frederick (Fewarriors)\",\r\n \"Frost Lightfall Witness\",\r\n \"Fuhrer\",\r\n \"Fujita_Hd\",\r\n \"Fujiwara No Mokou\",\r\n \"Fukawa\",\r\n \"Fukawa2udg\",\r\n \"Fukawa_Drae\",\r\n \"Fulbright\",\r\n \"Fullbright\",\r\n \"Furio\",\r\n \"Furio Tigre\",\r\n \"Futaba Sakura\",\r\n \"Futo No Mononobe\",\r\n \"Future Twilight\",\r\n \"Fuuka Yamagishi\",\r\n \"Fuyuhiko\",\r\n \"Fuyuhiko Kuzuryuu\",\r\n \"Fuyuhiko Kuzuryuu Png\",\r\n \"Fuyuhikokuzuryuu\",\r\n \"Fuyuhiko_Hd\",\r\n \"Ga'ran\",\r\n \"Gabe Newell\",\r\n \"Gaius\",\r\n \"Gamzee Makara (Pq)\",\r\n \"Gamzee Makara Pq\",\r\n \"Gangrel\",\r\n \"Gant\",\r\n \"Gantcc\",\r\n \"Garan\",\r\n \"Garan Queen\",\r\n \"Gardevoir\",\r\n \"Gashu\",\r\n \"Gashu Satou\",\r\n \"Gashu_Hd\",\r\n \"Gaspen\",\r\n \"Gaspensoj\",\r\n \"Gavin\",\r\n \"Gavin K\",\r\n \"Ga_Ran\",\r\n \"Geburalc\",\r\n \"Geiru\",\r\n \"Gengar\",\r\n \"Genny\",\r\n \"Genocider Sho_Udg_Hd\",\r\n \"Gensho\",\r\n \"Gerome\",\r\n \"Gerry Scotti\",\r\n \"Gharnef (Fewarriors)\",\r\n \"Giffany\",\r\n \"Gilda\",\r\n \"Gilgamesh\",\r\n \"Gill\",\r\n \"Gillianvh\",\r\n \"Gin\",\r\n \"Gin Ibushi\",\r\n \"Gin Ibushi_Hd\",\r\n \"Gin Ibushi_Rs\",\r\n \"Gina\",\r\n \"Gina Dgs2\",\r\n \"Gina Lestrade\",\r\n \"Gina Lestrade Coat\",\r\n \"Gina Lestrade Dgs2\",\r\n \"Gin_Hd\",\r\n \"Giorno Giovanna\",\r\n \"Glaceon\",\r\n \"Godaircg\",\r\n \"Godfrey\",\r\n \"Godot\",\r\n \"Godot Hld\",\r\n \"Godot Leg\",\r\n \"Godot Prison\",\r\n \"Godotcc\",\r\n \"Godott\",\r\n \"Godotw\",\r\n \"Goku\",\r\n \"Golbat\",\r\n \"Goldie\",\r\n \"Gonta\",\r\n \"Gonta Alterego_Hd\",\r\n \"Gonta Gokuhara\",\r\n \"Gonta Gokuhara_Hd\",\r\n \"Gordeau\",\r\n \"Goro Majimav04\",\r\n \"Goro Majimav05\",\r\n \"Gossip\",\r\n \"Gothitelle\",\r\n \"Gothorita\",\r\n \"Gotts\",\r\n \"Goulloyne\",\r\n \"Granta Von Karma\",\r\n \"Great Gozu (Future)\",\r\n \"Great Gozu_Hd\",\r\n \"Greed\",\r\n \"Gregory\",\r\n \"Gregory Aa Style\",\r\n \"Gregory Aai\",\r\n \"Gregory Edgeworth\",\r\n \"Gregoryaai\",\r\n \"Gregorycc\",\r\n \"Gregson\",\r\n \"Greisen\",\r\n \"Grey\",\r\n \"Grosky\",\r\n \"Grossberg\",\r\n \"Grossberg Old\",\r\n \"Grossbergcc\",\r\n \"Grossbergw\",\r\n \"Gru\",\r\n \"Gruntz\",\r\n \"Gtcat\",\r\n \"Gumshoe\",\r\n \"Gumshoe Aai\",\r\n \"Gumshoe Proc\",\r\n \"Gumshoeaai\",\r\n \"Gumshoecc\",\r\n \"Gumshoey\",\r\n \"Gunbailiff\",\r\n \"Gundam\",\r\n \"Gundham\",\r\n \"Gundham Tanaka\",\r\n \"Gundhamtanaka\",\r\n \"Gundham_Hd\",\r\n \"Gundham_Rs\",\r\n \"Gurdurr\",\r\n \"Gustavia\",\r\n \"Guy\",\r\n \"Guy Eldoon\",\r\n \"Guycecil\",\r\n \"Hades Izanami\",\r\n \"Hadesizanamibbcf\",\r\n \"Hagakure\",\r\n \"Haiji\",\r\n \"Haiji Towa Png\",\r\n \"Haiji Towa_Hd\",\r\n \"Haijitowa\",\r\n \"Hajime\",\r\n \"Hajime Hinata\",\r\n \"Hajime Makuouchii_Hd\",\r\n \"Hajimehinata\",\r\n \"Hajimehinatahd\",\r\n \"Hajime_El\",\r\n \"Hajime_Hd\",\r\n \"Hakari\",\r\n \"Hakumen\",\r\n \"Halloweenphoenix\",\r\n \"Hanako\",\r\n \"Hanako Ikezawa\",\r\n \"Hanamura\",\r\n \"Hanbei\",\r\n \"Hanbei Solo\",\r\n \"Hanekoma\",\r\n \"Hanekoma Frx\",\r\n \"Haori\",\r\n \"Harriet Sinclair\",\r\n \"Haru Mitsuki\",\r\n \"Haruhi Def\",\r\n \"Haruhi Miyazaki\",\r\n \"Haruhi Suzumiya\",\r\n \"Haruhiko Kobashikawa_Hd\",\r\n \"Haruno Guujou\",\r\n \"Hasebercg\",\r\n \"Hashida Itaru\",\r\n \"Hashimoto_Hd\",\r\n \"Hata No Kokoro\",\r\n \"Hatsune Miku\",\r\n \"Hatsune_Miku\",\r\n \"Hawk\",\r\n \"Haxorus\",\r\n \"Hayasakayttd\",\r\n \"Hayasaka_Hd\",\r\n \"Hayden Shea\",\r\n \"Hazama\",\r\n \"Hazama Honaka\",\r\n \"Hazama Honoka\",\r\n \"Haze\",\r\n \"Heavy Weapons\",\r\n \"Heidern\",\r\n \"Helper Snow\",\r\n \"Hemlock\",\r\n \"Henry (Awakening)\",\r\n \"Henry (Fe)\",\r\n \"Herman\",\r\n \"Herman Crab\",\r\n \"Hershel Von Raiser\",\r\n \"Hershellayton\",\r\n \"Hexagon\",\r\n \"Hibarircg\",\r\n \"Hibiki\",\r\n \"Hibiki Kohaku\",\r\n \"Hibikikosuke\",\r\n \"Hibiki_Hd\",\r\n \"Hideaki Hakamichi\",\r\n \"Hideki Takahashi\",\r\n \"Hifumi\",\r\n \"Hifumi Yamada\",\r\n \"Hifumi Yamada Png\",\r\n \"Hifumi_Hd\",\r\n \"Hijirihara _Takumi_Hd\",\r\n \"Hilda\",\r\n \"Himiko\",\r\n \"Himiko Yumeno\",\r\n \"Himiko Yumeno_Hd\",\r\n \"Hinakoyttd\",\r\n \"Hinako_Hd\",\r\n \"Hinoka\",\r\n \"Hinoka (Fewarriors)\",\r\n \"Hiroko\",\r\n \"Hiroko Hagakure\",\r\n \"Hiroko Hagakure Png\",\r\n \"Hiroko Hagakure_Hd\",\r\n \"Histoire\",\r\n \"Hiyajo Maho\",\r\n \"Hiyoko\",\r\n \"Hiyoko Saionji Png\",\r\n \"Hiyokosaionji\",\r\n \"Hm2 Biker\",\r\n \"Hmm\",\r\n \"Hobbes\",\r\n \"Hobbes Def\",\r\n \"Hoboapollo\",\r\n \"Hobodef\",\r\n \"Hobodefense\",\r\n \"Hobohodo\",\r\n \"Hobophoenix\",\r\n \"Hobophoenixcc\",\r\n \"Hobo_Phoenix\",\r\n \"Hodlc\",\r\n \"Hokmalc\",\r\n \"Hollande\",\r\n \"Holmes\",\r\n \"Holo\",\r\n \"Hong Meiling\",\r\n \"Hong Meiling (Gt)\",\r\n \"Horace\",\r\n \"Hosonaga\",\r\n \"Hotti\",\r\n \"Hsien-Ko_Rs\",\r\n \"Huang\",\r\n \"Hubertoswell\",\r\n \"Hugh\",\r\n \"Hugh Def\",\r\n \"Hun\",\r\n \"Hutch\",\r\n \"Hutch Windibank\",\r\n \"Hyde\",\r\n \"I-Noes\",\r\n \"Iago\",\r\n \"Iago (Fewarriors)\",\r\n \"Ibis\",\r\n \"Ibuki\",\r\n \"Ibuki (Gray)_Hd\",\r\n \"Ibuki (Turbo)\",\r\n \"Ibuki Mioda\",\r\n \"Ibuki Suika\",\r\n \"Ibukihd\",\r\n \"Ibuki_Hd\",\r\n \"Ibuki_Rs\",\r\n \"Ichirin\",\r\n \"Ichirin Kumoi\",\r\n \"Idate\",\r\n \"If\",\r\n \"Ike\",\r\n \"Iku Nagae\",\r\n \"Ikusaba\",\r\n \"Illya\",\r\n \"Illyasviel Von Einzbern\",\r\n \"Ilyana\",\r\n \"Infernape\",\r\n \"Inferno Cop\",\r\n \"Inga\",\r\n \"Ini\",\r\n \"Ini Miney\",\r\n \"Inicc\",\r\n \"Inihd\",\r\n \"Iniswap1\",\r\n \"Iniswap10\",\r\n \"Iniswap2\",\r\n \"Iniswap3\",\r\n \"Iniswap4\",\r\n \"Iniswap5\",\r\n \"Iniswap6\",\r\n \"Iniswap7\",\r\n \"Iniswap8\",\r\n \"Iniswap9\",\r\n \"Inspector\",\r\n \"Inuyasha (Mha)\",\r\n \"Invective\",\r\n \"Invisible\",\r\n \"Iris\",\r\n \"Iris H\",\r\n \"Iris Watson\",\r\n \"Iris Watson Assistant\",\r\n \"Irisholmes\",\r\n \"Iriswatson\",\r\n \"Iriswatsonassistant\",\r\n \"Iroha_Hd\",\r\n \"Ishimaru\",\r\n \"Ishimaru Kiyotaka\",\r\n \"Ishimaru_Hd\",\r\n \"Issei Ryuudou\",\r\n \"Isshikikotone\",\r\n \"Itsuka Echizen\",\r\n \"Itsuki Koizumi\",\r\n \"Izaya Orihara\",\r\n \"Izayaorihara\",\r\n \"Izayoi\",\r\n \"Izumi Curtis\",\r\n \"Izuru\",\r\n \"Izuru Kamukura\",\r\n \"Izuru Kamukura Png\",\r\n \"Izuru Kamukura_Hd\",\r\n \"Izuru_Hd\",\r\n \"J\",\r\n \"Jacques Portsman\",\r\n \"Jade Harley (Pq)\",\r\n \"Jadecurtiss\",\r\n \"Jake English (Pq)\",\r\n \"Jake Marshall\",\r\n \"Jakob\",\r\n \"James Moriarty\",\r\n \"Jane Crocker (Pq)\",\r\n \"Jataro\",\r\n \"Jataro Kemuri\",\r\n \"Jataro Kemuri Png\",\r\n \"Jataro Kemuri_Hd\",\r\n \"Jay Elbird\",\r\n \"Jean Armstrong\",\r\n \"Jeanne Alter\",\r\n \"Jeannealterfgo\",\r\n \"Jeffrey Master\",\r\n \"Jenna\",\r\n \"Jevil\",\r\n \"Jezail\",\r\n \"Jigglypuff\",\r\n \"Jigoku\",\r\n \"Jill\",\r\n \"Jillstingraydr\",\r\n \"Jillstingrayvh\",\r\n \"Jin\",\r\n \"Jin Kirigiri_Hd\",\r\n \"Jin Kisaragi\",\r\n \"Jin Mitaka\",\r\n \"Jinkazamapxz\",\r\n \"Jinn\",\r\n \"Jinxie\",\r\n \"Joan Garrideb\",\r\n \"Joan Garrideb Juror\",\r\n \"Joe\",\r\n \"Joe Tazuna\",\r\n \"Joe Tazuna_Hd\",\r\n \"Joe_Hd\",\r\n \"John\",\r\n \"John Egbert\",\r\n \"John Egbert (Pq)\",\r\n \"John Garrideb\",\r\n \"John Marsh\",\r\n \"Johnegbertpq\",\r\n \"Joka\",\r\n \"Joker\",\r\n \"Jokerp5\",\r\n \"Jolteon\",\r\n \"Josephine\",\r\n \"Joshua\",\r\n \"Joshua Frx\",\r\n \"Joshua Kiryu\",\r\n \"Jotaro Kujo\",\r\n \"Jubei\",\r\n \"Jude\",\r\n \"Judge\",\r\n \"Judge 3D\",\r\n \"Judge C\",\r\n \"Judge Celestia Et\",\r\n \"Judge Eevee\",\r\n \"Judge Et\",\r\n \"Judge Gb\",\r\n \"Judge Gk\",\r\n \"Judge Gk2\",\r\n \"Judge Hakari\",\r\n \"Judge Jp\",\r\n \"Judge Labyrinthia\",\r\n \"Judge Labyrinthia Edit\",\r\n \"Judge Misdreavus\",\r\n \"Judge Mismagius\",\r\n \"Judge Palutena\",\r\n \"Judge Pawnarid\",\r\n \"Judge Sho\",\r\n \"Judge Sneasal\",\r\n \"Judge's Bro\",\r\n \"Judge's Bro Et\",\r\n \"Judgeaai\",\r\n \"Judgebro\",\r\n \"Judgebrocc\",\r\n \"Judgecalifornia\",\r\n \"Judgecc\",\r\n \"Judgedd\",\r\n \"Judgedgs\",\r\n \"Judgedgs-Eng\",\r\n \"Judgedgs-Jap\",\r\n \"Judgeedgeworth\",\r\n \"Judgegb\",\r\n \"Judgegk\",\r\n \"Judgekhura'in\",\r\n \"Judgekhura_In\",\r\n \"Judgeklavier\",\r\n \"Judgekuma\",\r\n \"Judges Bro\",\r\n \"Judgesoj\",\r\n \"Judge_S Bro\",\r\n \"Judge_S Bro Et\",\r\n \"Juez\",\r\n \"Julianne\",\r\n \"Juliuswillkresnik\",\r\n \"Jumin Han (Mha)\",\r\n \"June\",\r\n \"June (999)\",\r\n \"June Et\",\r\n \"Juniper\",\r\n \"Juniper Casual\",\r\n \"Juniper School\",\r\n \"Junko\",\r\n \"Junko (Speen)\",\r\n \"Junko Enoshima\",\r\n \"Junko Enoshima (Fake)\",\r\n \"Junko Enoshima Png\",\r\n \"Junkodespair\",\r\n \"Junkoenoshima\",\r\n \"Junkoenoshima(Mi)\",\r\n \"Junkoenoshima(Mm)\",\r\n \"Junkomm_Hd\",\r\n \"Junkomm_Rs\",\r\n \"Junko_Hd\",\r\n \"Junpei\",\r\n \"Junpei (Persona)\",\r\n \"Junpei Iori\",\r\n \"Junpei Iori P3\",\r\n \"Juripxz\",\r\n \"Justice\",\r\n \"Justin\",\r\n \"Justine Courtney\",\r\n \"Justine Courtneypro\",\r\n \"Juzo Sakakura (Future)\",\r\n \"Juzo Sakakura_Hd\",\r\n \"K\",\r\n \"K Twilight\",\r\n \"K1-B0\",\r\n \"Kadabra\",\r\n \"Kaede\",\r\n \"Kaede Akamatsu\",\r\n \"Kaede Akamatsu_Hd\",\r\n \"Kaedeakamatsu\",\r\n \"Kaedeakamatsu Hd (Uds)\",\r\n \"Kage Maru\",\r\n \"Kagero\",\r\n \"Kagerou\",\r\n \"Kaguya Houraisan\",\r\n \"Kai\",\r\n \"Kai Satou\",\r\n \"Kaito\",\r\n \"Kaito Momota\",\r\n \"Kaito_Hd\",\r\n \"Kai_Hd\",\r\n \"Kakeru Yamaguchi_Hd\",\r\n \"Kana (Female)\",\r\n \"Kana (Male)\",\r\n \"Kana Ise_Hd\",\r\n \"Kanade_Hd\",\r\n \"Kanata Inori_Hd\",\r\n \"Kanaya Maryam (Pq)\",\r\n \"Kanji\",\r\n \"Kanji Tatsumi\",\r\n \"Kanjiro_Hd\",\r\n \"Kanna\",\r\n \"Kanna Kizuchi\",\r\n \"Kanna_Hd\",\r\n \"Kanon Nakajima_Hd\",\r\n \"Kaorircg\",\r\n \"Karako Pierot\",\r\n \"Kariya\",\r\n \"Kariya Frx\",\r\n \"Karkat Vantas\",\r\n \"Karkat Vantas (Pq)\",\r\n \"Kasen\",\r\n \"Kasen Ibaraki\",\r\n \"Katherine\",\r\n \"Katherine Hall\",\r\n \"Katrielle Layton\",\r\n \"Katya\",\r\n \"Kay\",\r\n \"Kay Faraday\",\r\n \"Kay Injured\",\r\n \"Kay Masked\",\r\n \"Kazue\",\r\n \"Kazuichi\",\r\n \"Kazuichi Souda Png\",\r\n \"Kazuma\",\r\n \"Kazuma Assistant\",\r\n \"Kazuma Dgs2\",\r\n \"Kazuma Dgs2 Wit\",\r\n \"Kazuma W\",\r\n \"Kazumakiryu\",\r\n \"Kazumi Mishima_Hd\",\r\n \"Kazuo Tengan_Hd\",\r\n \"Kazuya Mishima\",\r\n \"Kcalb\",\r\n \"Kei Kousaka\",\r\n \"Keiji\",\r\n \"Keiji Shinogi\",\r\n \"Keiji_Hd\",\r\n \"Ken\",\r\n \"Ken Amada\",\r\n \"Kenjircg\",\r\n \"Kensfpxz\",\r\n \"Kidsworth Hld\",\r\n \"Kidworth Aai\",\r\n \"Kiibo\",\r\n \"Kiibo_El\",\r\n \"Kiibo_Hd\",\r\n \"Kiibo_Rs\",\r\n \"Kike Morande\",\r\n \"Killia\",\r\n \"King Sombra\",\r\n \"Kinji Uehara_Hd\",\r\n \"Kira\",\r\n \"Kiragi\",\r\n \"Kiraj\",\r\n \"Kirby\",\r\n \"Kirigiri\",\r\n \"Kirigiri Kid_Hd\",\r\n \"Kirigiri-English2\",\r\n \"Kirigiri_Hd\",\r\n \"Kirigiri_Hd2\",\r\n \"Kirigiri_Sd9\",\r\n \"Kiriko Nishizawa_Hd\",\r\n \"Kirisame Marisa\",\r\n \"Kirito\",\r\n \"Kirumi\",\r\n \"Kirumi Tojo\",\r\n \"Kirumi Tojo_Hd\",\r\n \"Kiryu Moeka\",\r\n \"Kisaragi Yamatoae_Hd\",\r\n \"Kisaragi Yamato_Hd\",\r\n \"Kismetcat\",\r\n \"Kite\",\r\n \"Kiyoka Maki_Hd\",\r\n \"Kiyotaka Ishimaru\",\r\n \"Kiyotaka Ishimaru Png\",\r\n \"Kizuna Tomori_Hd\",\r\n \"Klav\",\r\n \"Klavier\",\r\n \"Klavier Dd Pro\",\r\n \"Klavier Dd Wit\",\r\n \"Klavier Gavin\",\r\n \"Klavier Wit\",\r\n \"Klavier Young\",\r\n \"Klaviercc\",\r\n \"Klavierdd\",\r\n \"Klaviersoj\",\r\n \"Klonoa\",\r\n \"Klonoa_Rs\",\r\n \"Klug\",\r\n \"Km\",\r\n \"Knightley\",\r\n \"Knuckles\",\r\n \"Koakuma Kid\",\r\n \"Koga Mitsunari\",\r\n \"Koichi Kizakura\",\r\n \"Koichi Kizakura_Hd\",\r\n \"Koishi\",\r\n \"Koishi Komeiji\",\r\n \"Koizumi\",\r\n \"Koizumi (Hat)\",\r\n \"Koki Kariya\",\r\n \"Kokichi\",\r\n \"Kokichi Oma\",\r\n \"Kokichi Oma Hd\",\r\n \"Kokichi Oma_Hd\",\r\n \"Kokichi Ouma\",\r\n \"Kokichioma\",\r\n \"Kokichiomahd\",\r\n \"Kokichi_El\",\r\n \"Kokonoe\",\r\n \"Kokonoe (Mha)\",\r\n \"Kokoro Kurokawa_Hd\",\r\n \"Kokoro_Hd\",\r\n \"Komachi Onozuka\",\r\n \"Komaeda\",\r\n \"Komaeda_Servant_Hd\",\r\n \"Komaru\",\r\n \"Komaru Naegi\",\r\n \"Komaru Naegi_Hd\",\r\n \"Komarunaegi\",\r\n \"Kongou\",\r\n \"Koopatrol\",\r\n \"Korekiyo\",\r\n \"Korekiyo Shinguji\",\r\n \"Korekiyo Shinguji_Hd\",\r\n \"Korekiyoshinguji\",\r\n \"Koromaru\",\r\n \"Kotoko\",\r\n \"Kotoko Utsugi\",\r\n \"Kotoko Utsugi Png\",\r\n \"Kotoko Utsugi_Hd\",\r\n \"Kotokoutsugi\",\r\n \"Kotomine Kirei\",\r\n \"Kristoph\",\r\n \"Kristoph G\",\r\n \"Kristoph Gavin\",\r\n \"Kristoph H Et\",\r\n \"Kristophcc\",\r\n \"Kristophd\",\r\n \"Kudo\",\r\n \"Kurisu\",\r\n \"Kurogane\",\r\n \"Kurokuma\",\r\n \"Kurokuma Png\",\r\n \"Kurokuma_Hd\",\r\n \"Kurumadayttd\",\r\n \"Kurumada_Hd\",\r\n \"Kusuko\",\r\n \"Kutaka Niwatari\",\r\n \"Ky Kiske\",\r\n \"Kyoko Kirigiri\",\r\n \"Kyoko Midou\",\r\n \"Kyokokirigiri\",\r\n \"Kyokokirigirihd\",\r\n \"Kyokorcg\",\r\n \"Kyon\",\r\n \"Kyosuke Munakata (Future)\",\r\n \"Kyosuke Munakata_Hd\",\r\n \"Kyou Matsuoka\",\r\n \"Kyouhei Kadota\",\r\n \"L\",\r\n \"Lablanc\",\r\n \"Labras Oc Vn Casual (Pokemon)\",\r\n \"Labrys\",\r\n \"Laby\",\r\n \"Ladyfirst\",\r\n \"Laetitialc\",\r\n \"Laharl\",\r\n \"Lailah\",\r\n \"Lambda-11\",\r\n \"Lamiroir\",\r\n \"Lana\",\r\n \"Lana Skye\",\r\n \"Lanap\",\r\n \"Lance\",\r\n \"Lance Amano\",\r\n \"Lance Amano Wit\",\r\n \"Lancelotberserkerfgo\",\r\n \"Lang\",\r\n \"Langw\",\r\n \"Laphicet\",\r\n \"Larry Butz\",\r\n \"Larryaai\",\r\n \"Laruen Paups\",\r\n \"Laslow\",\r\n \"Latula Pyrope\",\r\n \"Lauren\",\r\n \"Lauren Paups\",\r\n \"Laurice\",\r\n \"Layton\",\r\n \"Layton Evil\",\r\n \"Layton Inquisitor\",\r\n \"Layton Pro\",\r\n \"Layton W\",\r\n \"Layton Winter\",\r\n \"Layton Young\",\r\n \"Laytoninquisidor\",\r\n \"Laytoninquisitor\",\r\n \"Laytonp\",\r\n \"Lbelle\",\r\n \"Leafeon\",\r\n \"Leifa\",\r\n \"Lelouch\",\r\n \"Lelouch Vi Britannia_Hd\",\r\n \"Lemres\",\r\n \"Leo\",\r\n \"Leo (Fewarriors)\",\r\n \"Leon\",\r\n \"Leon Kuwata\",\r\n \"Leon Kuwata Png\",\r\n \"Leon_Hd\",\r\n \"Letouse\",\r\n \"Lewdton\",\r\n \"Lianna (Fewarriors)\",\r\n \"Libra\",\r\n \"Lilia Bradley\",\r\n \"Lilith_Rs\",\r\n \"Lilly Satou\",\r\n \"Lillysatou\",\r\n \"Linda\",\r\n \"Linde (Fewarriors)\",\r\n \"Ling Yao\",\r\n \"Linne\",\r\n \"Lional Taylor\",\r\n \"Lisa\",\r\n \"Lisa Basil\",\r\n \"Lissa\",\r\n \"Lissa (Fewarriors)\",\r\n \"Lista\",\r\n \"Litchi Faye Ling\",\r\n \"Liz (Sb)\",\r\n \"Liza\",\r\n \"Lloydirving\",\r\n \"Lobco\",\r\n \"Lon'qu\",\r\n \"Lonekat\",\r\n \"Lonekat Takumi\",\r\n \"Long Lang\",\r\n \"Lopunny\",\r\n \"Lora\",\r\n \"Lorne\",\r\n \"Lornedef\",\r\n \"Lotta\",\r\n \"Lotta Aai\",\r\n \"Lotta Hart\",\r\n \"Lottaaai\",\r\n \"Lottacc\",\r\n \"Lotus\",\r\n \"Lotus (999)\",\r\n \"Lucario\",\r\n \"Lucario Riolu\",\r\n \"Lucina\",\r\n \"Lucina (Fates)\",\r\n \"Lucina (Fewarriors)\",\r\n \"Lucina(Sf)\",\r\n \"Lucy\",\r\n \"Lucy Baker\",\r\n \"Ludgerwillkresnik\",\r\n \"Luigi\",\r\n \"Luis\",\r\n \"Luka\",\r\n \"Luka Megurine\",\r\n \"Luke\",\r\n \"Luke Adult\",\r\n \"Luke Atmey\",\r\n \"Luke Fon Fabre\",\r\n \"Luke Triton\",\r\n \"Luna\",\r\n \"Lunas1\",\r\n \"Lupin\",\r\n \"Lyn\",\r\n \"Lyndis (Fewarriors)\",\r\n \"Lynne\",\r\n \"Lyra\",\r\n \"Lyria\",\r\n \"Macarona\",\r\n \"Machi\",\r\n \"Machi Tobaye\",\r\n \"Mackarel\",\r\n \"Mae\",\r\n \"Maeda_Hd\",\r\n \"Maggey\",\r\n \"Maggey Aai\",\r\n \"Maggey Bryde\",\r\n \"Maggey-Not\",\r\n \"Maggeyaai\",\r\n \"Maggeycc\",\r\n \"Magilou\",\r\n \"Maguro\",\r\n \"Mahiru\",\r\n \"Mahiru Koizumi Png\",\r\n \"Mahiru_Hd\",\r\n \"Mai Hanamichi\",\r\n \"Mai Natsume\",\r\n \"Maiday\",\r\n \"Maiyttd\",\r\n \"Maizono\",\r\n \"Mai_Hd\",\r\n \"Majima\",\r\n \"Maka\",\r\n \"Makepeace\",\r\n \"Maki\",\r\n \"Maki Harukawa\",\r\n \"Maki Harukawa_Hd\",\r\n \"Makoto\",\r\n \"Makoto Naegi\",\r\n \"Makoto Naegi (Future Foundation)\",\r\n \"Makoto Nanaya\",\r\n \"Makotoae\",\r\n \"Makotonaegi\",\r\n \"Makotonaegihd\",\r\n \"Makoto_Hd\",\r\n \"Male Etihw\",\r\n \"Malik\",\r\n \"Malkuthlc\",\r\n \"Malos\",\r\n \"Mamemomi\",\r\n \"Mamircg\",\r\n \"Mamizou\",\r\n \"Mamizou Futatsuiwa\",\r\n \"Manfred\",\r\n \"Manfred Aai\",\r\n \"Manfred Evil\",\r\n \"Manfred Von Karma\",\r\n \"Manfredaai\",\r\n \"Manfredcc\",\r\n \"Manfredw\",\r\n \"Manny Pardo\",\r\n \"Margaret\",\r\n \"Maria\",\r\n \"Marie\",\r\n \"Marie_Rs\",\r\n \"Marin Mizuta\",\r\n \"Marion Bergman\",\r\n \"Marisa\",\r\n \"Marisa Iamp\",\r\n \"Marisa Kirisame\",\r\n \"Marisa Kirisame (Touhou Hs)\",\r\n \"Marlon Rimes\",\r\n \"Marryanne\",\r\n \"Marryanneex\",\r\n \"Marryannemme\",\r\n \"Marsh\",\r\n \"Marshall\",\r\n \"Marshallcc\",\r\n \"Marshallhd\",\r\n \"Marth\",\r\n \"Marth (Fates)\",\r\n \"Marth (Fewarriors)\",\r\n \"Marvin Grossberg\",\r\n \"Marvus Xoloto\",\r\n \"Mary Shikashi Png\",\r\n \"Masaru\",\r\n \"Masaru Daimon\",\r\n \"Masaru Daimon Png\",\r\n \"Masaru Daimon_Hd\",\r\n \"Mashu\",\r\n \"Mashukyrielightfgo\",\r\n \"Matilda\",\r\n \"Matilda Headset\",\r\n \"Matt\",\r\n \"Matt Engarde\",\r\n \"Mattcc\",\r\n \"Maurice\",\r\n \"Max\",\r\n \"Maximillion Galactica\",\r\n \"Maya\",\r\n \"Maya Fey\",\r\n \"Maya Fey (Mushin)\",\r\n \"Maya Mushin\",\r\n \"Maya Pxz\",\r\n \"Mayaaai\",\r\n \"Mayacc\",\r\n \"Mayada\",\r\n \"Mayakid\",\r\n \"Mayaplvsaa\",\r\n \"Mayaplvsaa Co\",\r\n \"Mayaplvsaa Co Knight\",\r\n \"Mayasoj\",\r\n \"Mayuri\",\r\n \"Mayushii Zero\",\r\n \"Mbisonpxz\",\r\n \"Mdsky_Blank\",\r\n \"Mdsky_Bulbasaurf\",\r\n \"Mdsky_Bulbasaurm\",\r\n \"Mdsky_Charmanderf\",\r\n \"Mdsky_Charmanderm\",\r\n \"Mdsky_Chikorita\",\r\n \"Mdsky_Chikoritam\",\r\n \"Mdsky_Chimcharf\",\r\n \"Mdsky_Chimcharm\",\r\n \"Mdsky_Cyndaquilf\",\r\n \"Mdsky_Cyndaquilm\",\r\n \"Mdsky_Eevee\",\r\n \"Mdsky_Eeveef\",\r\n \"Mdsky_Mudkipf\",\r\n \"Mdsky_Mudkipm\",\r\n \"Mdsky_Pikachu\",\r\n \"Mdsky_Pikachuf\",\r\n \"Mdsky_Piplupf\",\r\n \"Mdsky_Piplupm\",\r\n \"Mdsky_Riolu\",\r\n \"Mdsky_Rioluf\",\r\n \"Mdsky_Shinx\",\r\n \"Mdsky_Shinxf\",\r\n \"Mdsky_Squirtlef\",\r\n \"Mdsky_Squirtlem\",\r\n \"Mdsky_Torchicf\",\r\n \"Mdsky_Torchicm\",\r\n \"Mdsky_Totodilef\",\r\n \"Mdsky_Totodilem\",\r\n \"Mdsky_Treeckof\",\r\n \"Mdsky_Treeckom\",\r\n \"Mdsky_Turtwigf\",\r\n \"Mdsky_Turtwigm\",\r\n \"Mdsky_Vulpix\",\r\n \"Mdsky_Vulpixm\",\r\n \"Means\",\r\n \"Medusa (Soul Eater)\",\r\n \"Meekins\",\r\n \"Meekinsaai\",\r\n \"Meenah Peixes\",\r\n \"Megaman\",\r\n \"Megaman X\",\r\n \"Megamanxpxz\",\r\n \"Megaman_Rs\",\r\n \"Megumi\",\r\n \"Megumi Frx\",\r\n \"Megumiyttd\",\r\n \"Megumi_Hd\",\r\n \"Megundal\",\r\n \"Meiling\",\r\n \"Meira\",\r\n \"Melody\",\r\n \"Meowth\",\r\n \"Merkava\",\r\n \"Meta Knight\",\r\n \"Metal Sonic\",\r\n \"Metis\",\r\n \"Mettaton\",\r\n \"Meulin Leijon\",\r\n \"Mia\",\r\n \"Mia Fey\",\r\n \"Mia Fey (Mushin)\",\r\n \"Mia Leg\",\r\n \"Mia Young\",\r\n \"Miacc\",\r\n \"Miaya_Gekkogahara_Hd\",\r\n \"Micaiah\",\r\n \"Michael Eaglesworth\",\r\n \"Michibatakashi\",\r\n \"Midoriyttd\",\r\n \"Midori_Hd\",\r\n \"Mika Aiuchi\",\r\n \"Mika Returna\",\r\n \"Mikado Sannoji\",\r\n \"Mikado Sannoji_Hd\",\r\n \"Mikako Kurokawa_Hd\",\r\n \"Mikan\",\r\n \"Mikantsumiki\",\r\n \"Mikan_Hd\",\r\n \"Mikan_Rs\",\r\n \"Mike\",\r\n \"Mike Meekins\",\r\n \"Mikhael\",\r\n \"Mikihiko_Hd\",\r\n \"Mikleo\",\r\n \"Mikotoba\",\r\n \"Mikuru Asahina\",\r\n \"Milamaxwell\",\r\n \"Miles\",\r\n \"Miles Aai\",\r\n \"Miles D\",\r\n \"Miles Dd Wit Et\",\r\n \"Miles Def\",\r\n \"Miles Edgeworth\",\r\n \"Miles Et\",\r\n \"Miles Pxz\",\r\n \"Miles Wit\",\r\n \"Miles Y Hd\",\r\n \"Miles Young\",\r\n \"Miles Young Wit\",\r\n \"Milesaai\",\r\n \"Milesaai Young Pro\",\r\n \"Milescc\",\r\n \"Milesdd\",\r\n \"Milesdd Aai\",\r\n \"Mileskid\",\r\n \"Milessoj\",\r\n \"Miley\",\r\n \"Miley_Hd\",\r\n \"Mima\",\r\n \"Minato P3\",\r\n \"Minecraft Steve\",\r\n \"Minerva (Fe)\",\r\n \"Minerva (Fewarriors)\",\r\n \"Mion Sonozaki (Higurashi)\",\r\n \"Misaki Asano_Hd\",\r\n \"Misaki Nakano_Hd\",\r\n \"Misakorcg\",\r\n \"Misako_Hd\",\r\n \"Mishima\",\r\n \"Mishima_Ex\",\r\n \"Mishima_Hd\",\r\n \"Missile\",\r\n \"Misuzurcg\",\r\n \"Mitsuhiro Higa_Hd\",\r\n \"Mitsuki Frx\",\r\n \"Mitsuru\",\r\n \"Mitsuru Kirijo\",\r\n \"Mitsurukirijo\",\r\n \"Mittlemont\",\r\n \"Miu\",\r\n \"Miu Iruma\",\r\n \"Miu Iruma_Hd\",\r\n \"Miyuki Shiba\",\r\n \"Mli Fluttershy\",\r\n \"Mli Pinkie\",\r\n \"Mli Rainbow\",\r\n \"Mli Trixie\",\r\n \"Mli Twilight\",\r\n \"Mmnaegi\",\r\n \"Moe\",\r\n \"Moeka\",\r\n \"Moge-Ko\",\r\n \"Mokou No Fujiwara\",\r\n \"Mom Lalonde (Rose) (Pq)\",\r\n \"Momoka Amari\",\r\n \"Monaca\",\r\n \"Monaca Towa\",\r\n \"Monaca Towa Png\",\r\n \"Monaca Towa_Hd\",\r\n \"Monakatowa\",\r\n \"Mondo\",\r\n \"Mondo Owada Png\",\r\n \"Mondooowada\",\r\n \"Mondo_Hd\",\r\n \"Moneko\",\r\n \"Monferno\",\r\n \"Monica Minami\",\r\n \"Monika\",\r\n \"Monocrow_Hd\",\r\n \"Monodam\",\r\n \"Monodam_Hd\",\r\n \"Monokid\",\r\n \"Monokid_Hd\",\r\n \"Monokubs\",\r\n \"Monokuma\",\r\n \"Monokuma Ball\",\r\n \"Monokuma V3\",\r\n \"Monokumav3\",\r\n \"Monokumav3 1.8\",\r\n \"Monokumav3_Hd\",\r\n \"Monokuma_Hd\",\r\n \"Monomi\",\r\n \"Monomi Png\",\r\n \"Monomi_Hd\",\r\n \"Monophanie\",\r\n \"Monophanie_Hd\",\r\n \"Monopoly-Guy\",\r\n \"Monosuke\",\r\n \"Monosuke_Hd\",\r\n \"Monotaro\",\r\n \"Monotaro_Hd\",\r\n \"Morgan\",\r\n \"Morgan (Female)\",\r\n \"Morgan (Male)\",\r\n \"Morgan Fey\",\r\n \"Morgana\",\r\n \"Morganap5\",\r\n \"Morrigan\",\r\n \"Morriganpxz\",\r\n \"Morrigan_Rs\",\r\n \"Motoko Shinanogi\",\r\n \"Mouri Kogorou\",\r\n \"Mr. H\",\r\n \"Mrhat\",\r\n \"Msfortune\",\r\n \"Mspa Reader\",\r\n \"Mudkipvn (Pokemon)\",\r\n \"Mukuro Ikusaba\",\r\n \"Mukuro Ikusaba Png\",\r\n \"Mukuro Ikusaba_Hd\",\r\n \"Mukuro_Hd\",\r\n \"Munehisa Iwai\",\r\n \"Musey Kellins-Trumend\",\r\n \"Myolc\",\r\n \"Myrina\",\r\n \"Mystery Iris\",\r\n \"Mòrag Ladair\",\r\n \"M븈ag Ladair\",\r\n \"Naegi\",\r\n \"Nagisa\",\r\n \"Nagisa Shingetsu\",\r\n \"Nagisa Shingetsu Png\",\r\n \"Nagisa Shingetsu_Hd\",\r\n \"Nagito\",\r\n \"Nagito Hackerman_Hd\",\r\n \"Nagito Komaeda\",\r\n \"Nagitobeta\",\r\n \"Nagitokomaeda\",\r\n \"Nagitokomaedahd\",\r\n \"Nagito_Hd\",\r\n \"Nagito_Rs\",\r\n \"Nahyuta\",\r\n \"Namine\",\r\n \"Nanami\",\r\n \"Nanami Chiaki (Neko)\",\r\n \"Nanamichiaki\",\r\n \"Nanase\",\r\n \"Nao\",\r\n \"Nao Egokoro_Hd\",\r\n \"Naoto\",\r\n \"Naoto Kurogane\",\r\n \"Naoto Kurogane(Mha)\",\r\n \"Naoto Shirogane\",\r\n \"Nao_Ex\",\r\n \"Nao_Hd\",\r\n \"Narcissus\",\r\n \"Naritakarcg\",\r\n \"Narrator\",\r\n \"Narratora\",\r\n \"Narrorator\",\r\n \"Naruwit\",\r\n \"Natsuki\",\r\n \"Natsuki_Hd\",\r\n \"Natsume\",\r\n \"Natsumi_Hd\",\r\n \"Navarre (Fewarriors)\",\r\n \"Near\",\r\n \"Neil\",\r\n \"Neil Marshall\",\r\n \"Neildef\",\r\n \"Neilw\",\r\n \"Nekomaru\",\r\n \"Nekomaru Nidai Png\",\r\n \"Nekomaru_Hd\",\r\n \"Neku\",\r\n \"Neku Frx\",\r\n \"Neku Sakuraba\",\r\n \"Neku Sakuraba_Hd\",\r\n \"Nemmy\",\r\n \"Nemmy Tinpillar\",\r\n \"Neo\",\r\n \"Neopolitan\",\r\n \"Neopolitanv2\",\r\n \"Nepeta Leijon\",\r\n \"Nepeta Leijon (Pq)\",\r\n \"Nepeta Leijon_Rs\",\r\n \"Nepgear\",\r\n \"Neptune\",\r\n \"Nero (Padoru)\",\r\n \"Nero Claudius\",\r\n \"Netzach\",\r\n \"Netzachlc\",\r\n \"New Folder\",\r\n \"Newman\",\r\n \"Newman Pro\",\r\n \"Newmanpro\",\r\n \"Nia\",\r\n \"Nicholas\",\r\n \"Nico Yazawa\",\r\n \"Nicole\",\r\n \"Nicole Swift\",\r\n \"Nidai\",\r\n \"Nightmare Moon\",\r\n \"Nikei Yomiuri\",\r\n \"Nikei_Hd\",\r\n \"Nikomina\",\r\n \"Nikomina Hatless\",\r\n \"Niles\",\r\n \"Niles (Fewarriors)\",\r\n \"Nina (Fe)\",\r\n \"Nine\",\r\n \"Nine The Phantom\",\r\n \"Ninja (Ff)\",\r\n \"Ninth Man\",\r\n \"Ninthman\",\r\n \"Nitori Kawashiro\",\r\n \"Noedig\",\r\n \"Noedig W\",\r\n \"Noel\",\r\n \"Noel Vermillion\",\r\n \"Noire\",\r\n \"Noise\",\r\n \"Noizercg\",\r\n \"Nu-13\",\r\n \"Nyanami_Hd\",\r\n \"Nyx\",\r\n \"O'malley\",\r\n \"O'reil\",\r\n \"Obama\",\r\n \"Oboro\",\r\n \"Oboro (Fewarriors)\",\r\n \"Obrona\",\r\n \"Octavia\",\r\n \"Octavia Richmond\",\r\n \"Odin Dark\",\r\n \"Ogiwarasaori\",\r\n \"Okabe\",\r\n \"Okada Izou\",\r\n \"Okayasu\",\r\n \"Old Phoenix\",\r\n \"Oldbag\",\r\n \"Oldbag Aai\",\r\n \"Oldbagaai\",\r\n \"Oldbagcc\",\r\n \"Olga\",\r\n \"Olga Orly\",\r\n \"Olivia\",\r\n \"Olivia (Fe)\",\r\n \"Olivia (Fewarriors)\",\r\n \"Omega God Zealous Tome\",\r\n \"Onesie_Gundham_Hd\",\r\n \"Ophelia Dusk\",\r\n \"Ophilia\",\r\n \"Orie\",\r\n \"Orie Ballardiae\",\r\n \"Orla\",\r\n \"Oscar\",\r\n \"Oscar Fairplay\",\r\n \"Oscar Fairplay Juror\",\r\n \"Oshawott Vn (Pokemon)\",\r\n \"Owain (Fewarriors)\",\r\n \"P.Layton\",\r\n \"Palaeno\",\r\n \"Palpatine\",\r\n \"Palutena\",\r\n \"Pandore\",\r\n \"Paolo\",\r\n \"Paper Luigi\",\r\n \"Paper Mario (Modern)\",\r\n \"Paper Peach\",\r\n \"Papyrus\",\r\n \"Parker\",\r\n \"Pascal\",\r\n \"Past Ashe\",\r\n \"Pastel Sketch\",\r\n \"Patchouli\",\r\n \"Patricia\",\r\n \"Patricia (Wh)\",\r\n \"Patrick\",\r\n \"Patroka\",\r\n \"Patty\",\r\n \"Paul Atishon\",\r\n \"Payne\",\r\n \"Payne Aa\",\r\n \"Payne Aj\",\r\n \"Payne Dd\",\r\n \"Payne Dgs\",\r\n \"Payne Dgs Wit\",\r\n \"Payne Max\",\r\n \"Payne Soj\",\r\n \"Payne Train\",\r\n \"Payne Train V2\",\r\n \"Payne Tt\",\r\n \"Paynecc\",\r\n \"Paynes\",\r\n \"Peacock\",\r\n \"Pearl\",\r\n \"Pearl Dd\",\r\n \"Pearl Fey\",\r\n \"Pearl Teen\",\r\n \"Pearl Teen Comfy\",\r\n \"Pearl Teen V2\",\r\n \"Pearlcc\",\r\n \"Pearlsoj\",\r\n \"Pearlsoj Def\",\r\n \"Pearlsoj2d\",\r\n \"Pees'lubin\",\r\n \"Peko\",\r\n \"Peko (Ultimate Despair)_Hd\",\r\n \"Peko Pekoyama Dr3_Hd\",\r\n \"Peko Pekoyama Png\",\r\n \"Peko_Hd\",\r\n \"Peko_Mm\",\r\n \"Penny\",\r\n \"Penny Aai\",\r\n \"Penny Nichols\",\r\n \"Peony\",\r\n \"Peppa Pig\",\r\n \"Peppers\",\r\n \"Perdido\",\r\n \"Peri\",\r\n \"Persona Animorphous\",\r\n \"Persona The Fifth\",\r\n \"Persona The Fourth\",\r\n \"Persona The Second\",\r\n \"Persona The Third\",\r\n \"Persona1\",\r\n \"Persona10\",\r\n \"Persona11\",\r\n \"Persona12\",\r\n \"Persona13\",\r\n \"Persona14\",\r\n \"Persona15\",\r\n \"Persona16\",\r\n \"Persona17\",\r\n \"Persona18\",\r\n \"Persona19\",\r\n \"Persona2\",\r\n \"Persona20\",\r\n \"Persona21\",\r\n \"Persona22\",\r\n \"Persona23\",\r\n \"Persona24\",\r\n \"Persona25\",\r\n \"Persona3\",\r\n \"Persona4\",\r\n \"Persona5\",\r\n \"Persona6\",\r\n \"Persona7\",\r\n \"Persona8\",\r\n \"Persona9\",\r\n \"Perun\",\r\n \"Peter Griffin\",\r\n \"Phantom R\",\r\n \"Phi\",\r\n \"Philo Reed\",\r\n \"Phoenix\",\r\n \"Phoenix Aai\",\r\n \"Phoenix Counsel\",\r\n \"Phoenix Dd\",\r\n \"Phoenix Et\",\r\n \"Phoenix Et Leg\",\r\n \"Phoenix Five\",\r\n \"Phoenix Five Et\",\r\n \"Phoenix Furio\",\r\n \"Phoenix Hobo\",\r\n \"Phoenix Hobo Def\",\r\n \"Phoenix Leg\",\r\n \"Phoenix Old\",\r\n \"Phoenix Pxz\",\r\n \"Phoenix Pxz2\",\r\n \"Phoenix The Wright\",\r\n \"Phoenix W\",\r\n \"Phoenix Wit\",\r\n \"Phoenix Witness\",\r\n \"Phoenix Wright\",\r\n \"Phoenix Young\",\r\n \"Phoenixaai\",\r\n \"Phoenixcc\",\r\n \"Phoenixcodlc\",\r\n \"Phoenixdd\",\r\n \"Phoenixddwit\",\r\n \"Phoenixhd\",\r\n \"Phoenixsoj\",\r\n \"Phoenixsojpro\",\r\n \"Phoenixsojwitness\",\r\n \"Phonon(Mha)\",\r\n \"Pidgeot Oc Vn (Pokemon)\",\r\n \"Pierce\",\r\n \"Pikachu\",\r\n \"Pikachu Vn (Pokemon)\",\r\n \"Pingu\",\r\n \"Pinkamena\",\r\n \"Pinkie\",\r\n \"Pirate Diego\",\r\n \"Pirate Dolan\",\r\n \"Pirate Gummy\",\r\n \"Pirate Hawk\",\r\n \"Piratezetta\",\r\n \"Pit\",\r\n \"Pitoo\",\r\n \"Platinum\",\r\n \"Platinum The Trinity\",\r\n \"Plum\",\r\n \"Plum Kitaki\",\r\n \"Plushset Shimmer\",\r\n \"Plutia\",\r\n \"Polly\",\r\n \"Polypa Goezee\",\r\n \"Ponco\",\r\n \"Pony Franziska\",\r\n \"Pony Judge\",\r\n \"Pony Phoenix\",\r\n \"Poppi\",\r\n \"Popplio3d\",\r\n \"Portsman\",\r\n \"Priam\",\r\n \"Prinplup\",\r\n \"Professor Layton\",\r\n \"Prosecutor Justice\",\r\n \"Prosecutorjustice\",\r\n \"Prosecutorjusticew\",\r\n \"Psychelocks\",\r\n \"Pyro\",\r\n \"Q\",\r\n \"Q Sfiii\",\r\n \"Q-Taro\",\r\n \"Q-Taro Burgerberg_Hd\",\r\n \"Q-Taro_Hd\",\r\n \"Quagmire Toilet\",\r\n \"Quark\",\r\n \"Querceus Alba\",\r\n \"Quercus Alba\",\r\n \"Rachel\",\r\n \"Rachel Alucard\",\r\n \"Rachelalucard\",\r\n \"Radio\",\r\n \"Ragna\",\r\n \"Raichu\",\r\n \"Rainbow\",\r\n \"Rainbow Dash\",\r\n \"Ralsei Pts\",\r\n \"Ramirezfn\",\r\n \"Ramona Flowers\",\r\n \"Ranger\",\r\n \"Ranger Justice\",\r\n \"Ranger_Hd\",\r\n \"Ranmaruyttd\",\r\n \"Ranmaru_Hd\",\r\n \"Rantaro\",\r\n \"Rantaro Amami\",\r\n \"Rantaroamami\",\r\n \"Rantaro_Hd\",\r\n \"Rarity\",\r\n \"Raven\",\r\n \"Raven (Tov)\",\r\n \"Rayfa\",\r\n \"Rayfa Padma\",\r\n \"Raymond\",\r\n \"Raymond Shields\",\r\n \"Raymond Shields Young\",\r\n \"Reaper\",\r\n \"Rebecca Ward\",\r\n \"Red\",\r\n \"Redd\",\r\n \"Redd White\",\r\n \"Regina\",\r\n \"Regina Aai\",\r\n \"Regina Berry\",\r\n \"Reginaaai\",\r\n \"Rei Mekaru_Y_Hd\",\r\n \"Reimu Hakurei\",\r\n \"Reisen\",\r\n \"Reisen Udongein Inaba\",\r\n \"Rei_Hd\",\r\n \"Reko\",\r\n \"Reko Yabusame_Hd\",\r\n \"Reko_Hd\",\r\n \"Relius\",\r\n \"Relius Clover\",\r\n \"Relius-Clover\",\r\n \"Remele Namaqq\",\r\n \"Remilia Scarlet\",\r\n \"Rena Ryuugu (Higurashi)\",\r\n \"Rentaro Satomi\",\r\n \"Renwick\",\r\n \"Retinz\",\r\n \"Rex\",\r\n \"Rhoda\",\r\n \"Rhoda Teneiro\",\r\n \"Rhyme\",\r\n \"Rhyme Frx\",\r\n \"Richard\",\r\n \"Richard Wellington\",\r\n \"Ridelle\",\r\n \"Rika\",\r\n \"Riku\",\r\n \"Rimes\",\r\n \"Rin\",\r\n \"Rin Howato\",\r\n \"Rin Tezuka\",\r\n \"Rin Tohsaka\",\r\n \"Ringoando\",\r\n \"Rinnatsume\",\r\n \"Rio Ranger\",\r\n \"Rio Ranger_Rs\",\r\n \"Riolu\",\r\n \"Riolu And Lucario\",\r\n \"Rise\",\r\n \"Rise Kujiawa\",\r\n \"Rise Kujikawa\",\r\n \"Riskyboots\",\r\n \"Robin\",\r\n \"Robin (Fates)\",\r\n \"Robin F (Fewarriors)\",\r\n \"Robin M (Fewarriors)\",\r\n \"Roboky\",\r\n \"Roc\",\r\n \"Roger Retinz\",\r\n \"Rokurou\",\r\n \"Rola\",\r\n \"Roll\",\r\n \"Romance Detective\",\r\n \"Ron\",\r\n \"Ron Delite\",\r\n \"Roscoe\",\r\n \"Rose\",\r\n \"Rose Lalonde\",\r\n \"Rose Lalonde (Pq)\",\r\n \"Rouge (Wh)\",\r\n \"Rowan (Fewarriors)\",\r\n \"Roxy Lalonde (Pq)\",\r\n \"Roy\",\r\n \"Roy Mustang\",\r\n \"Royal Guard Pony\",\r\n \"Roylett\",\r\n \"Roylott\",\r\n \"Rozaic\",\r\n \"Ruby\",\r\n \"Ruby Rose\",\r\n \"Rukako\",\r\n \"Rumba\",\r\n \"Rumia\",\r\n \"Ruruka Ando (Future)\",\r\n \"Ruruka Ando_Hd\",\r\n \"Rydia\",\r\n \"Ryoko\",\r\n \"Ryoko Otonashi Png\",\r\n \"Ryoko Otonashi_Hd\",\r\n \"Ryoma\",\r\n \"Ryoma (Fe)\",\r\n \"Ryoma (Fewarriors)\",\r\n \"Ryoma Hoshi\",\r\n \"Ryoma Hoshi_Hd\",\r\n \"Ryota Mitarai\",\r\n \"Ryota Mitarai (Future)\",\r\n \"Ryota Mitarai_Hd\",\r\n \"Ryougi Shiki\",\r\n \"Ryouken Hoinbo Wit\",\r\n \"Ryouko Asakura\",\r\n \"Ryo_Hd\",\r\n \"Ryu\",\r\n \"Ryu Arm\",\r\n \"Ryu Dlc W\",\r\n \"Ryu Hoshi\",\r\n \"Ryu Leg\",\r\n \"Ryunosuke\",\r\n \"Ryunosuke Witness\",\r\n \"Ryusfpxz\",\r\n \"Ryutaro\",\r\n \"Ryutaro Leg\",\r\n \"Ryuunosuke\",\r\n \"Ryuutarou\",\r\n \"Ryu_Rs\",\r\n \"Saber Alter\",\r\n \"Sabukorcg\",\r\n \"Saeran\",\r\n \"Safalin\",\r\n \"Safalin_Hd\",\r\n \"Sagisureiko\",\r\n \"Sahwit\",\r\n \"Sahwit Aai\",\r\n \"Sailor\",\r\n \"Saionji\",\r\n \"Saionji (Cute)\",\r\n \"Saionji_Hd\",\r\n \"Saitama\",\r\n \"Sakura\",\r\n \"Sakura (Fe)\",\r\n \"Sakura (Fewarriors)\",\r\n \"Sakura Futaba\",\r\n \"Sakura Ogami Png\",\r\n \"Sakura Oogami\",\r\n \"Sakura Ryoko\",\r\n \"Sakura_Hd\",\r\n \"Sakura_Rs\",\r\n \"Sakuya Iamp\",\r\n \"Sakuya Izayoi\",\r\n \"Sal\",\r\n \"Sal Manella\",\r\n \"Sanae Hanekoma\",\r\n \"Sanae Kochiya\",\r\n \"Sandy (Mlp Helper)\",\r\n \"Saness\",\r\n \"Sanic\",\r\n \"Sanmon\",\r\n \"Sans\",\r\n \"Santa\",\r\n \"Santa (999)\",\r\n \"Santa Shikiba_Hd\",\r\n \"Sara\",\r\n \"Sara Chidouin\",\r\n \"Sara Croft\",\r\n \"Sara_Ex\",\r\n \"Sara_Hd\",\r\n \"Sarge\",\r\n \"Sasha\",\r\n \"Sasha Buckler\",\r\n \"Satan\",\r\n \"Satan (Puyopuyo)\",\r\n \"Satanpp\",\r\n \"Satori Komeiji\",\r\n \"Sato_Hd\",\r\n \"Satsuki Iranami Grown_Hd\",\r\n \"Satsuki Iranami_Hd\",\r\n \"Sayaka\",\r\n \"Sayaka Maizono\",\r\n \"Sayaka_Hd\",\r\n \"Sayori\",\r\n \"Sayori_Hd\",\r\n \"Scar\",\r\n \"Schezo\",\r\n \"Schezo Wegey\",\r\n \"Scootaloo\",\r\n \"Scootalooa\",\r\n \"Scott Pilgrim\",\r\n \"Scuttlebutt\",\r\n \"Sebastian\",\r\n \"Seiko\",\r\n \"Seiko Kimura (Future)\",\r\n \"Seiko Kimura_Hd\",\r\n \"Seina_Hd\",\r\n \"Seishi Yodogawa\",\r\n \"Seishirou\",\r\n \"Seitokaichou\",\r\n \"Sekibanki (Swr)\",\r\n \"Selena\",\r\n \"Sellsword\",\r\n \"Serperior\",\r\n \"Servant\",\r\n \"Servant Saber\",\r\n \"Servine\",\r\n \"Seteth\",\r\n \"Seth\",\r\n \"Setsuka Chiebukuro_Hd\",\r\n \"Seven\",\r\n \"Seven (999)\",\r\n \"Shadow\",\r\n \"Shadowpxz\",\r\n \"Shakey\",\r\n \"Shamisenkyonsis\",\r\n \"Shantae\",\r\n \"Sheila\",\r\n \"Shelly De Killer\",\r\n \"Sherlock\",\r\n \"Sherlock Casual\",\r\n \"Sherlock Goggled\",\r\n \"Sherlock Holmes\",\r\n \"Sherlock Undercover\",\r\n \"Sherlockwatson\",\r\n \"Shi Long Lang\",\r\n \"Shi-Long\",\r\n \"Shiginohana\",\r\n \"Shigure\",\r\n \"Shih-Na\",\r\n \"Shiina Mikado\",\r\n \"Shiki\",\r\n \"Shiki Frx\",\r\n \"Shiki Misaki\",\r\n \"Shimon\",\r\n \"Shinichi Kudo\",\r\n \"Shinjiro Aragaki\",\r\n \"Shinji_Hd\",\r\n \"Shinmyoumaru Sukuna\",\r\n \"Shion\",\r\n \"Shiro (Fe)\",\r\n \"Shirokuma\",\r\n \"Shirokuma Png\",\r\n \"Shirokuma_Hd\",\r\n \"Shirou Emiya\",\r\n \"Shiv\",\r\n \"Shizune\",\r\n \"Shizune Hakamichi\",\r\n \"Shizuo Heiwajima\",\r\n \"Shizuoheiwajima\",\r\n \"Sho\",\r\n \"Sho Minazuki\",\r\n \"Shominamimoto Frx\",\r\n \"Shrek\",\r\n \"Shuichi\",\r\n \"Shuichi Saihara\",\r\n \"Shuichi Saihara (Hatless)\",\r\n \"Shuichi Saihara_Hd\",\r\n \"Shuichi Saihara_Rs\",\r\n \"Shuichisaihara\",\r\n \"Shuichisaiharaex\",\r\n \"Shuichisaiharahd\",\r\n \"Shuji Ikutsuki\",\r\n \"Shulk\",\r\n \"Shuuichi Saihara\",\r\n \"Siegbert\",\r\n \"Sig\",\r\n \"Sig25th\",\r\n \"Silas\",\r\n \"Silque\",\r\n \"Silver Shield\",\r\n \"Simeon\",\r\n \"Simon\",\r\n \"Simon Blackquill\",\r\n \"Simon Brezhnev\",\r\n \"Simon Clown\",\r\n \"Sirhan Dogen\",\r\n \"Sirius\",\r\n \"Sissel\",\r\n \"Sithe\",\r\n \"Small Trucy\",\r\n \"Small Vera\",\r\n \"Smiles\",\r\n \"Snake\",\r\n \"Snake (999)\",\r\n \"Snake 999\",\r\n \"Snow\",\r\n \"Sol Badguy\",\r\n \"Solbadguyes\",\r\n \"Soleil\",\r\n \"Solf J. Kimblee\",\r\n \"Sollux Captor (Pq)\",\r\n \"Sonata\",\r\n \"Sonex\",\r\n \"Sonia\",\r\n \"Sonia Nevermind\",\r\n \"Sonia Nevermind Png\",\r\n \"Sonianevermind\",\r\n \"Sonia_Hd\",\r\n \"Sonic\",\r\n \"Sonohigurashi\",\r\n \"Sonosuke Izayoi (Future)\",\r\n \"Sonosuke Izayoi_Hd\",\r\n \"Sophie (Fe)\",\r\n \"Sora\",\r\n \"Sora_Hd\",\r\n \"Sorey\",\r\n \"Sorin\",\r\n \"Sou\",\r\n \"Sou Hiyori_Hd\",\r\n \"Sou Hiyori_Rs\",\r\n \"Souda\",\r\n \"Souda_Hd\",\r\n \"Souda_Rs\",\r\n \"Soul\",\r\n \"Souseki\",\r\n \"Sou_Hd\",\r\n \"Spark\",\r\n \"Spark Brushel\",\r\n \"Sparkling Justice_Hd\",\r\n \"Speedwagon\",\r\n \"Spiderman\",\r\n \"Spiderman Hws\",\r\n \"Spike\",\r\n \"Spy\",\r\n \"Squigly\",\r\n \"Squigly_Rs\",\r\n \"Starbuck\",\r\n \"Starlight Glimmer\",\r\n \"Stella P\",\r\n \"Stickler\",\r\n \"Stitch\",\r\n \"Stock Image\",\r\n \"Strider Hiryu\",\r\n \"Striderhiryupxz\",\r\n \"Strix\",\r\n \"Stroganov\",\r\n \"Suciela Karinsha\",\r\n \"Sumireko\",\r\n \"Sumireko Usami\",\r\n \"Sunset Shimmer\",\r\n \"Susano'o\",\r\n \"Susato\",\r\n \"Susato Def\",\r\n \"Susato Dlc\",\r\n \"Susato Hld\",\r\n \"Susatoco\",\r\n \"Susatodef\",\r\n \"Suwako Moriya\",\r\n \"Suzaku\",\r\n \"Suzuha\",\r\n \"Suzumiya Haruhi\",\r\n \"Suzzanne\",\r\n \"Suzzanneex\",\r\n \"Suzzannemme\",\r\n \"Sweetie\",\r\n \"Sylvain\",\r\n \"Sylveon\",\r\n \"Syrup\",\r\n \"Syrupco\",\r\n \"Tae Takemi\",\r\n \"Tagora Gorjek\",\r\n \"Tahrust\",\r\n \"Taichi\",\r\n \"Taichi Fujisaki Png\",\r\n \"Taichi Fujisaki_Hd\",\r\n \"Taiga\",\r\n \"Tails\",\r\n \"Taizou\",\r\n \"Takahawk\",\r\n \"Takumi\",\r\n \"Takumi (Fewarriors)\",\r\n \"Tamamogz\",\r\n \"Taokaka V2\",\r\n \"Tateyuki\",\r\n \"Tato_Hd\",\r\n \"Tatsuya Suou\",\r\n \"Tavros Nitram (Pq)\",\r\n \"Ted\",\r\n \"Teddie\",\r\n \"Tee\",\r\n \"Teen Pearl\",\r\n \"Teikan Dragons\",\r\n \"Tekken\",\r\n \"Tenko\",\r\n \"Tenko Chabashira\",\r\n \"Tenko_Hd\",\r\n \"Tenma\",\r\n \"Tenmyouji\",\r\n \"Tennouji Nae\",\r\n \"Tennouji Yuugo\",\r\n \"Tenshi Hinanawi\",\r\n \"Tenshi Swr\",\r\n \"Teppo\",\r\n \"Terezi Pyrope\",\r\n \"Terezi Pyrope (Pq)\",\r\n \"Terezi Pyrope_Rs\",\r\n \"Terezi_Pyrope (Pq)\",\r\n \"Terry Bogard\",\r\n \"Terry Fawles\",\r\n \"Teruaki Kubota (999)\",\r\n \"Terumi\",\r\n \"Terumi Hooded\",\r\n \"Teruteru\",\r\n \"Teruteru Hanamura Png\",\r\n \"Teruteru_Hd\",\r\n \"Teruya Ootoria1_Hd\",\r\n \"Teruya_Hd\",\r\n \"Tewi Inaba\",\r\n \"Tezuka Rin\",\r\n \"Tf2_Spy_Hd\",\r\n \"Tharja (Fewarriors)\",\r\n \"The Doctor\",\r\n \"The King\",\r\n \"The King V2\",\r\n \"The Noid\",\r\n \"The Observer\",\r\n \"The Servant\",\r\n \"The Servant Injured\",\r\n \"Theking\",\r\n \"Thomas\",\r\n \"Tigre\",\r\n \"Tigredef\",\r\n \"Tiki\",\r\n \"Tiki (Fewarriors)\",\r\n \"Tina\",\r\n \"Tipherethalc\",\r\n \"Tipherethblc\",\r\n \"Titus Kruuump\",\r\n \"Tobias\",\r\n \"Tobias Gregson\",\r\n \"Toby\",\r\n \"Tod\",\r\n \"Togami\",\r\n \"Toko\",\r\n \"Toko Fukawa Png\",\r\n \"Toko Fukawa_Rs\",\r\n \"Tokoae\",\r\n \"Tokofukawaudg\",\r\n \"Toko_Hd\",\r\n \"Tomoka Minato\",\r\n \"Tonate\",\r\n \"Toon Link\",\r\n \"Torae Akatsubaki\",\r\n \"Torchic Vn (Pokemon)\",\r\n \"Toriel\",\r\n \"Toshiro_Hd\",\r\n \"Touko Fukawa_Udg_Hd\",\r\n \"Toyosatomimi No Miko\",\r\n \"Trilogia\",\r\n \"Trixie\",\r\n \"Trixiea\",\r\n \"Tron Bonne_Rs\",\r\n \"Trucy\",\r\n \"Trucy (Red)\",\r\n \"Trucy Def\",\r\n \"Trucy Pro\",\r\n \"Trucy Soj\",\r\n \"Trucy Wright\",\r\n \"Trucy Wright (Dd)\",\r\n \"Trucy Young\",\r\n \"Trucy Young (Blue)\",\r\n \"Trucydd\",\r\n \"Trucyh\",\r\n \"Trucysoj\",\r\n \"Trump\",\r\n \"Tsubaki\",\r\n \"Tsubaki Yayoi\",\r\n \"Tsukushi\",\r\n \"Tsumugi\",\r\n \"Tsumugi Shirogane\",\r\n \"Tsumugi Shirogane (Mm)\",\r\n \"Tsumugi Shirogane_Hd\",\r\n \"Tsurugi Kinjou_Hd\",\r\n \"Tsuruya\",\r\n \"Tully\",\r\n \"Tully Tinpillar\",\r\n \"Turner Grey\",\r\n \"Twilight\",\r\n \"Twilight Sparkle\",\r\n \"Tyrell Badd\",\r\n \"Tyrell Badd Wit\",\r\n \"Tyzias Entykk\",\r\n \"Uendo\",\r\n \"Ulalapxz\",\r\n \"Ultimate Dirk (Pq)\",\r\n \"Umbreon\",\r\n \"Umi Sonoda\",\r\n \"Undyne\",\r\n \"Uni\",\r\n \"Ursula\",\r\n \"Urumi Ushizaki\",\r\n \"Usami\",\r\n \"Usami_Hd\",\r\n \"Utsuho Reiuji\",\r\n \"Uzukamaru Taizo\",\r\n \"Uzuki\",\r\n \"Uzuki Frx\",\r\n \"Uzuki Yashiro\",\r\n \"Uzukumaru\",\r\n \"V\",\r\n \"Vaike\",\r\n \"Valant\",\r\n \"Valant Gramarye\",\r\n \"Valantcc\",\r\n \"Valkenhayn R. Hellsing\",\r\n \"Valvatorez\",\r\n \"Vangrants\",\r\n \"Vaporeon\",\r\n \"Vasquez\",\r\n \"Vasquezcc\",\r\n \"Vatista\",\r\n \"Vegeta\",\r\n \"Velvet\",\r\n \"Velvet Crowe\",\r\n \"Venus\",\r\n \"Vera\",\r\n \"Vera Misham\",\r\n \"Vergil\",\r\n \"Vert\",\r\n \"Vex\",\r\n \"Vex Tots\",\r\n \"Victor Kudo\",\r\n \"Vikare Ratite\",\r\n \"Vincent Brooks\",\r\n \"Vinyl\",\r\n \"Viola\",\r\n \"Viola Cadaverini\",\r\n \"Violet\",\r\n \"Viridi\",\r\n \"Viridian\",\r\n \"Virion\",\r\n \"Vittorio Sgarbi\",\r\n \"Vivian Bergman\",\r\n \"Vixey\",\r\n \"Vortex\",\r\n \"Vriska Serket (Pq)\",\r\n \"Vulper\",\r\n \"Wadanohara\",\r\n \"Wagner\",\r\n \"Waluigi\",\r\n \"Warden\",\r\n \"Watanabe_Hd\",\r\n \"Watson\",\r\n \"Waver Velvet\",\r\n \"Weavile\",\r\n \"Weiss\",\r\n \"Weiss Schnee\",\r\n \"Weiss(Mha)\",\r\n \"Wellington\",\r\n \"Wellingtoncc\",\r\n \"Wendy Oldbag\",\r\n \"Wesley Stickler\",\r\n \"Whis\",\r\n \"White\",\r\n \"White Mage\",\r\n \"Wigglytuff\",\r\n \"Will\",\r\n \"Will Powers\",\r\n \"William\",\r\n \"Willp\",\r\n \"Winchester\",\r\n \"Winfred\",\r\n \"Winfred Kitaki\",\r\n \"Winston\",\r\n \"Winston Payne\",\r\n \"Winstonpayne\",\r\n \"Wocky\",\r\n \"Wocky Kitaki\",\r\n \"Woman\",\r\n \"Woona\",\r\n \"Wright\",\r\n \"Wrightpolly\",\r\n \"Wulfric\",\r\n \"Xander\",\r\n \"Xander (Fewarriors)\",\r\n \"Xemnas\",\r\n \"Y Kristoph\",\r\n \"Yamadarcg\",\r\n \"Yamato\",\r\n \"Yangbbtag\",\r\n \"Yanni\",\r\n \"Yanni Yogi\",\r\n \"Yasuhiro\",\r\n \"Yasuhiro Hagakure\",\r\n \"Yasuhiro Hagakure Png\",\r\n \"Yasuhirohagakure\",\r\n \"Yasuhiro_Hd\",\r\n \"Yasuke Matsuda_Hd\",\r\n \"Yesodlc\",\r\n \"Yew\",\r\n \"Yoda\",\r\n \"Yodai Frx\",\r\n \"Yokorcg\",\r\n \"Yonaka\",\r\n \"Yonedajun\",\r\n \"Yorha 2B (Sinoalice)\",\r\n \"Yoruko_Hd\",\r\n \"Yosafire\",\r\n \"Yoshikage Kira\",\r\n \"Yoshua\",\r\n \"Yosuke\",\r\n \"Yosuke Hanamura\",\r\n \"Youmu Konpaku\",\r\n \"Youmu Konpaku (Swr)\",\r\n \"Young Kay\",\r\n \"Young Klavier\",\r\n \"Young Link\",\r\n \"Young Mia\",\r\n \"Young Trucy\",\r\n \"Youngaaiedgeworth\",\r\n \"Youngedgeworth\",\r\n \"Youngraymond\",\r\n \"Yu\",\r\n \"Yu Narukami\",\r\n \"Yui Samidare Png\",\r\n \"Yui Samidare_Hd\",\r\n \"Yuka\",\r\n \"Yukari\",\r\n \"Yukari Takeba\",\r\n \"Yukari Yakumo\",\r\n \"Yukari Yakumo (Swr)\",\r\n \"Yukari_Hd\",\r\n \"Yuki Maedaa1_Hd\",\r\n \"Yuki Nagato\",\r\n \"Yukiko\",\r\n \"Yukiko A\",\r\n \"Yukiko Amagi\",\r\n \"Yumeno_Rs\",\r\n \"Yunarukami\",\r\n \"Yunav\",\r\n \"Yuri\",\r\n \"Yuri (Ddlc)\",\r\n \"Yuri Kagarin_Hd\",\r\n \"Yuri Lowell\",\r\n \"Yurilibrarian_Ex\",\r\n \"Yurino_Hd\",\r\n \"Yuta\",\r\n \"Yuta Asahina\",\r\n \"Yuta Asahina Png\",\r\n \"Yuta Asahina_Hd\",\r\n \"Yutaka\",\r\n \"Yuujin\",\r\n \"Yuujin Mikotoba\",\r\n \"Yuujin Mikotoba Suit\",\r\n \"Yuuka Kazami\",\r\n \"Yuuki Terumi\",\r\n \"Yuuko Shirakawa\",\r\n \"Yuyuko Saigyouji\",\r\n \"Yuzuhara (Mha)\",\r\n \"Yuzuriha\",\r\n \"Zach\",\r\n \"Zacharias\",\r\n \"Zacharias Barnham\",\r\n \"Zaid\",\r\n \"Zak\",\r\n \"Zak Gramarye\",\r\n \"Zaveid\",\r\n \"Zealoustome\",\r\n \"Zecora\",\r\n \"Zeke\",\r\n \"Zeloswilder\",\r\n \"Zen\",\r\n \"Zero\",\r\n \"Zero (Cg)\",\r\n \"Zero Iii\",\r\n \"Zeropxz\",\r\n \"Zettaslow\",\r\n \"Zhuge Liang\",\r\n \"Zinc\",\r\n \"Zinc Lablanc\",\r\n \"Zizel\",\r\n \"Zonetan\",\r\n];\r\n","export default [\r\n\t\"Anime\",\r\n\t\"birthday\",\r\n\t\"Christmas\",\r\n\t\"CountyCourt\",\r\n\t\"CruiseCourt\",\r\n\t\"default\",\r\n\t\"DGSEnglishCourt\",\r\n\t\"DGSJapanCourt\",\r\n\t\"DualDestinies\",\r\n\t\"EnglishCourt\",\r\n\t\"gs4\",\r\n\t\"GS4Night\",\r\n\t\"HD\",\r\n\t\"Khura'in\",\r\n\t\"mlp\",\r\n\t\"NewCourt\",\r\n\t\"RuinedCourt\",\r\n\t\"Sky\",\r\n\t\"SpaceCourt\",\r\n\t\"Themis\",\r\n\t\"TouhouCourt\",\r\n\t\"WitchTrialCourt\",\r\n\t\"Zetta\"\r\n];","export default [\r\n\t\"1.png\",\r\n\t\"2.png\",\r\n\t\"3.png\",\r\n\t\"4.png\",\r\n\t\"5.png\",\r\n\t\"6.png\",\r\n\t\"empty.png\",\r\n\t\"lawyerbadge.png\"\r\n];","export default [\r\n\t\"aa\",\r\n\t\"chatdd\",\r\n\t\"dgs\",\r\n\t\"chatplvsaa\",\r\n\t\"trilogy\",\r\n\t\"chatfuture\",\r\n\t\"legacy\",\r\n\t\"dr1\",\r\n\t\"chatdr2\",\r\n\t\"drv3\",\r\n\t\"drae\",\r\n\t\"chatp3\",\r\n\t\"p4\",\r\n\t\"chat999\",\r\n\t\"halla\",\r\n\t\"homestuck\",\r\n\t\"yakuza\",\r\n\t\"yttd\",\r\n\t\"n64zelda\",\r\n\t\"papermario\"\r\n];"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./webAO/encoding.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/fingerprintjs2/fingerprint2.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./webAO/client.js","webpack:///./webAO/characters.js","webpack:///./webAO/backgrounds.js","webpack:///./webAO/evidence.js","webpack:///./webAO/styles/chatbox/chatboxes.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","escapeChat","estring","replace","unescapeChat","safe_tags","unsafe","encodeChat","selectedEncoding","document","getElementById","ch","charCodeAt","toString","slice","buffer","ArrayBuffer","length","result","Uint16Array","strLen","String","prepChat","msg","selectedDecoding","match","group","fromCharCode","parseInt","apply","split","NAME","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","isObject","has","classof","createNonEnumerableProperty","redefine","f","getPrototypeOf","setPrototypeOf","wellKnownSymbol","uid","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","isPrototypeOf","TO_STRING_TAG","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Int32Array","Uint32Array","Float32Array","Float64Array","isTypedArray","it","Function","TypeError","this","undefined","aTypedArray","aTypedArrayConstructor","C","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","KEY","forced","exportTypedArrayStaticMethod","error","isView","klass","Math","check","globalThis","window","self","exec","shared","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","toInteger","min","argument","getOwnPropertyDescriptor","setGlobal","copyConstructorProperties","isForced","options","source","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","fails","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","definePropertyModule","createPropertyDescriptor","requireObjectCoercible","IndexedObject","toObject","toLength","arraySpeciesCreate","push","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","that","specificCreate","boundFunction","index","forEach","map","filter","some","every","find","findIndex","ceil","floor","isNaN","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","simple","join","bitmap","configurable","writable","set","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","store","wmget","wmhas","wmset","metadata","STATE","getterFor","state","type","path","aFunction","variable","namespace","method","arguments","SPECIES","defaultConstructor","S","constructor","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","input","PREFERRED_STRING","fn","val","valueOf","max","integer","cache","thrower","METHOD_NAME","ACCESSORS","argument0","argument1","aPossiblePrototype","setter","CORRECT_SETTER","test","Array","proto","__proto__","context","definition","x64Add","x64Multiply","x64Rotl","x64LeftShift","x64Xor","x64Fmix","h","x64hash128","seed","remainder","bytes","h1","h2","k1","k2","c1","c2","defaultOptions","preprocessor","audio","timeout","excludeIOS11","fonts","swfContainerId","swfPath","userDefinedFonts","extendedJsFonts","screen","detectScreenOrientation","plugins","sortPluginsFor","excludeIE","extraComponents","excludes","NOT_AVAILABLE","ERROR","EXCLUDED","each","obj","iterator","results","list","isEnumerateDevicesSupported","navigator","mediaDevices","enumerateDevices","getScreenResolution","resolution","width","height","sort","reverse","getAvailableScreenResolution","availWidth","availHeight","available","getRegularPlugins","pluginsShouldBeSorted","a","b","mimeTypes","mt","suffixes","description","getIEPlugins","ActiveXObject","e","concat","should","re","userAgent","hasSessionStorage","sessionStorage","hasLocalStorage","localStorage","hasIndexedDB","indexedDB","getHardwareConcurrency","hardwareConcurrency","getNavigatorCpuClass","cpuClass","getNavigatorPlatform","platform","getDoNotTrack","doNotTrack","msDoNotTrack","getTouchSupport","touchEvent","maxTouchPoints","msMaxTouchPoints","createEvent","_","getCanvasFp","canvas","createElement","style","display","ctx","getContext","rect","isPointInPath","textBaseline","fillStyle","fillRect","dontUseFakeFontInCanvas","font","fillText","globalCompositeOperation","beginPath","arc","PI","closePath","fill","toDataURL","getWebglFp","gl","fa2s","fa","clearColor","enable","DEPTH_TEST","depthFunc","LEQUAL","clear","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","getWebglCanvas","vertexPosBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","vertices","bufferData","STATIC_DRAW","itemSize","numItems","program","createProgram","vshader","createShader","VERTEX_SHADER","shaderSource","compileShader","fshader","FRAGMENT_SHADER","attachShader","linkProgram","useProgram","vertexPosAttrib","getAttribLocation","offsetUniform","getUniformLocation","enableVertexAttribArray","vertexPosArray","vertexAttribPointer","FLOAT","uniform2f","drawArrays","TRIANGLE_STRIP","getSupportedExtensions","getParameter","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALPHA_BITS","getContextAttributes","antialias","BLUE_BITS","DEPTH_BITS","GREEN_BITS","ext","getExtension","anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT","maxAnisotropy","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_RENDERBUFFER_SIZE","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_SIZE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","RED_BITS","RENDERER","SHADING_LANGUAGE_VERSION","STENCIL_BITS","VENDOR","VERSION","extensionDebugRendererInfo","UNMASKED_VENDOR_WEBGL","UNMASKED_RENDERER_WEBGL","getShaderPrecisionFormat","numType","shader","numSize","format","line","toLowerCase","getWebglVendorAndRenderer","glContext","getAdBlock","ads","innerHTML","className","body","appendChild","getElementsByClassName","offsetHeight","removeChild","getHasLiedLanguages","languages","substr","language","err","getHasLiedResolution","getHasLiedOs","os","oscpu","indexOf","getHasLiedBrowser","browser","productSub","errFirefox","tempRes","eval","toSource","errOfErr","isCanvasSupported","elem","isWebGlSupported","WebGLRenderingContext","isIE","appName","hasSwfObjectLoaded","swfobject","hasMinFlashInstalled","hasFlashPlayerVersion","loadSwfAndDetectFonts","done","id","node","setAttribute","addFlashDivNode","flashvars","onReady","embedSWF","allowScriptAccess","menu","components","getData","webdriver","userLanguage","browserLanguage","systemLanguage","colorDepth","deviceMemory","devicePixelRatio","Date","getTimezoneOffset","Intl","DateTimeFormat","resolvedOptions","timeZone","addBehavior","openDatabase","baseFonts","fontList","position","getElementsByTagName","baseFontsDiv","fontsDiv","defaultWidth","defaultHeight","createSpan","left","fontSize","fontStyle","fontWeight","letterSpacing","lineBreak","lineHeight","textTransform","textAlign","textDecoration","textShadow","whiteSpace","wordBreak","wordSpacing","createSpanWithFonts","fontToDetect","baseFont","fontFamily","isFontAvailable","fontSpans","detected","offsetWidth","baseFontsSpans","spans","initializeBaseFontsSpans","fontsSpans","j","numDefaultFonts","initializeFontsSpans","pauseBefore","audioOptions","AudioContext","OfflineAudioContext","webkitOfflineAudioContext","oscillator","createOscillator","frequency","setValueAtTime","currentTime","compressor","createDynamicsCompressor","item","connect","destination","start","startRendering","audioTimeoutId","setTimeout","console","warn","oncomplete","event","fingerprint","clearTimeout","renderedBuffer","getChannelData","reduce","acc","abs","disconnect","then","devices","device","deviceId","groupId","kind","label","catch","Fingerprint2","Error","callback","extendSoft","keys","data","addPreprocessedComponent","chainComponents","alreadyWaited","component","getPromise","Promise","resolve","reject","getV18","newComponents","murmur","internalObjectKeys","getOwnPropertyNames","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","src","contentWindow","open","F","Properties","CORRECT_PROTOTYPE_GETTER","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","TAG","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","re1","re2","regexpFlags","stickyHelpers","nativeExec","RegExp","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","str","reCopy","sticky","flags","charsAdded","strCopy","multiline","propertyIsEnumerable","postfix","random","isArray","arg","addToUnscopables","Iterators","defineIterator","setInternalState","iterated","Arguments","IS_RIGHT","argumentsLength","memo","right","$","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","groups","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","stringMethod","regexMethod","string","R","EXISTS","functionToString","IS_PURE","version","copyright","getOwnPropertySymbols","propertyKey","V8_VERSION","array","foo","Boolean","process","versions","v8","end","endPos","getBuiltIn","CONSTRUCTOR_NAME","Constructor","charAt","unicode","nativePropertyIsEnumerable","NASHORN_BUG","1","V","names","replacement","feature","detection","normalize","POLYFILL","NATIVE","originalArray","UNSCOPABLES","ArrayPrototype","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","next","from","SKIP_CLOSING","ITERATION_SUPPORT","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","BUGGY_SAFARI_ITERATORS","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","0","nativeSlice","k","fin","ignoreCase","dotAll","fixRegExpWellKnownSymbolLogic","isRegExp","speciesConstructor","advanceStringIndex","callRegExpExec","arrayPush","SUPPORTS_Y","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","res","rx","unicodeMatching","q","A","z","DataView","redefineAll","anInstance","toIndex","IEEE754","arrayFill","setToStringTag","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","RangeError","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","isLittleEndian","intIndex","byteLength","byteOffset","conversion","NaN","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","offset","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toPositiveInteger","BYTES","ownKeys","getOwnPropertyDescriptorModule","createIteratorConstructor","IteratorsCore","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","dummy","Wrapper","NewTarget","NewTargetPrototype","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","MATCH","CONVERT_TO_STRING","pos","first","second","size","codeAt","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","reason","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","capture","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","toOffset","typedArrayFrom","setSpecies","inheritIfRequired","round","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","typedArrayOffset","$length","$len","$copyWithin","$every","$fill","$filter","$find","predicate","$findIndex","$forEach","$includes","searchElement","$indexOf","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","$map","mapfn","$reduce","$reduceRight","middle","arrayLike","len","$slice","$some","$sort","comparefn","begin","beginIndex","BYTES_PER_ELEMENT","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","g","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","objectKeys","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","arrayMethodIsStrict","STRICT_METHOD","RE","checkCorrectnessOfIteration","iterable","pow","log","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","nBits","getIteratorMethod","isArrayIteratorMethod","step","mapping","iteratorMethod","copyWithin","to","inc","nativeLastIndexOf","lastIndexOf","NEGATIVE_ZERO","__webpack_amd_options__","arrayBufferModule","createTypedArrayConstructor","init","wrappedWellKnownSymbolModule","ENTRIES","returnMethod","defer","channel","port","IS_IOS","location","setImmediate","clearImmediate","MessageChannel","Dispatch","counter","queue","run","runner","listener","post","postMessage","protocol","host","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","PromiseCapability","promise","$$resolve","$$reject","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ReflectOwnKeys","Reflect","ReflectApply","receiver","NumberIsNaN","Number","EventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","emit","unshift","warned","w","emitter","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","listenerCount","copy","setMaxListeners","getMaxListeners","doError","er","message","handler","listeners","addListener","on","prependListener","once","prependOnceListener","originalListener","shift","pop","spliceOne","off","removeAllListeners","rawListeners","eventNames","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","HIDDEN","TO_PRIMITIVE","$Symbol","$stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","wrap","symbol","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","stringify","space","$replacer","windowNames","getWindowNames","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","callWithSafeIterationClosing","nativeIndexOf","FunctionPrototype","FunctionPrototypeToString","nameRE","trim","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","third","radix","maxCode","digits","code","NumberWrapper","whitespace","ltrim","rtrim","thisNumberValue","repeat","nativeToFixed","toFixed","x","fractionDigits","fractDigits","multiply","divide","dataToString","x2","Infinity","assign","nativeAssign","B","chr","T","nativeGetPrototypeOf","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","iterate","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","dispatchEvent","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","enter","exit","onUnhandled","initEvent","isUnhandled","parent","internalReject","internalResolve","executor","onFulfilled","onRejected","fetch","capability","$promiseResolve","remaining","alreadyCalled","race","Result","stopped","AS_ENTRIES","IS_ITERATOR","iterFn","stop","flush","head","last","toggle","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","createTextNode","observe","characterData","promiseCapability","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","construct","Target","newTarget","$args","instance","factories","argsLength","partArgs","notARegExp","correctIsRegExpLogic","searchString","point","nativeMatch","matcher","matchStr","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","is","y","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","search","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","runtime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","client","viewport","queryDict","hdid","serverIP","ip","DEFAULT_HOST","hostname","AO_HOST","asset","THEME","theme","MUSIC_HOST","transparentPNG","oldLoading","selectedMenu","selectedShout","extrafeatures","requestIdleCallback","Client","Viewport","loadResources","lastICMessageTime","address","serv","WebSocket","onOpen","onClose","onMessage","onError","hp","playerID","charID","char_list_length","evidence_list_length","music_list_length","testimonyID","chars","emotes","evidences","areas","musics","resources","selectedEmote","selectedEvidence","checkUpdater","handleMS","handleCT","handleMC","handleRMC","handleCI","handleSC","handleEI","handleFL","handleLE","handleEM","handleSM","handleMM","handleBD","handleKB","handleKK","handleDONE","handleBN","handleHP","handleRT","handleZZ","handleID","handlePN","handleSI","handleARUP","handleCharsCheck","handleDecryptor","handlePV","_lastTimeICReceived","send","setCookie","sendServer","deskmod","preanim","emote","side","sfx_name","emote_modifier","sfx_delay","objection_modifier","evidence","flip","realization","text_color","showname","other_charid","self_offset","noninterrupting_preanim","looping_sfx","screenshake","extra_cccc","extra_27","serverMessage","img","testimony","track","setInterval","sendCheck","innerText","iniedit_select","character_arr","inicharacter","add","Option","background_select","background_arr","background","evidence_select","evidence_arr","getCookie","cookietheme","querySelector","selected","reloadTheme","cookiechatbox","setChatbox","volume","changeMusicVolume","changeSFXVolume","changeBlipVolume","checked","character","song","_e","joinServer","textContent","cleanup","debug","header","clearInterval","resetMusiclist","chatmsg","char_id","char_name","msg_nameplate","msg_blips","char_chatbox","char_muted","gender","chat","muted","chargs","handleCharacterInfo","nameplate","chatbox","sprite","sound","blips","charid","snddelay","objection","flash","color","other_name","other_emote","other_offset","other_flip","frame_screenshake","frame_realization","frame_sfx","say","oocLog","scrollTop","scrollHeight","musicname","music","pause","encodeURI","play","appendICLog","totime","getTime","parseFloat","cini","icon","alt","request","cinidata","INI","parse","classList","default_options","default_emotions","emotions","inifile","filename","evidence_box","trackname","trackindex","isAudio","newentry","text","thisarea","players","status","cm","locked","newarea","title","onclick","area_click","handleMusicInfo","_args","handleBans","bgname","bg_index","getIndexFromSelect","selectedIndex","updateBackgroundPreview","changeBackground","healthbox","percent_hp","judgeid","initTestimonyUpdater","sfxaudio","oldvolume","serverSoftware","serverVersion","colorselect","demothing","demoonclick","createAttribute","setAttributeNode","opacity","me","emotesList","ini","updateActionCommands","emoteinfo","esfx","esfxd","soundn","soundt","zoom","sfx","sfxdelay","button_off","button_on","pickEmotion","contains","textnow","shouts","colors","blipChannels","Audio","currentBlipChannel","sfxplayed","shoutaudio","updater","testimonyUpdater","lastChar","lastEvi","testimonyTimer","shoutTimer","textTimer","_animating","sfxname","bgfolder","bgFolder","bench","court","bg","def","desk","ao2","ao1","speedLines","pro","hld","hlp","wit","jud","jur","sea","fileExists","deskFilename","2","3","4","testimonyOverlay","updateTestimony","requestBuffer","file","calculateGifLength","promises","errors","gifFile","duration","delay","resource","disposeTestimony","fg","gamewindow","waitingBox","animation","eviBox","charSprite","pairSprite","chatContainerBox","nameBoxInner","chatBoxInner","displayname","oneSuccess","rejectOnError","speakUrl","url","speakingSprite","silentUrl","silentSprite","shoutSprite","shout","soundUrl","shoutUrl","startpreanim","gifLength","getAnimLength","startspeaking","preanimdelay","resizeChatbox","transform","substring","tick","playSFX","charName","pairName","pairEmote","section","regex","param","comment","cname","ca","decodeURIComponent","cookie","onOOCEnter","keyCode","sendOOC","onEnter","mychar","myemo","evi","pairchar","pairoffset","sendIC","musiclist_filter","_event","musiclist_element","searchname","musiclist_click","playtrack","sendMusicChange","musiclist_elements","selectedOptions","mutelist_click","mutelist","selected_character","showname_click","area","areaHr","blipVolume","href","modcall_test","iniedit","ininame","inicharID","switchAspectRatio","offsetCheck","paddingBottom","disabled","switchChatOffset","container","changeCharacter","sendLeaveRoom","charError","image","imgError","onerror","xhr","XMLHttpRequest","responseType","statusText","response","ReconnectButton","time","nameField","textField","getMinutes","timeStamp","toLocaleTimeString","hour","minute","clientLog","chartable_filter","pickChar","ccharacter","sendCharacter","emo","pickEvidence","evidenceID","icon_id","updateEvidenceIcon","cancelEvidence","addEvidence","sendPE","editEvidence","sendEE","deleteEvidence","sendDE","select_box","select_element","chatbox_theme","selected_theme","chatbox_arr","gameHeight","evidence_filename","evidence_iconbox","role_select","changeBackgroundOOC","selectedBG","changeBGCommand","bgFilename","changeRoleOOC","role_command","randomCharacterOOC","callMod","modcall","prompt","sendZZ","initWT","sendRT","initCE","notguilty","guilty","addHPD","sendHP","redHPD","addHPP","redHPP","background_filename","background_preview","toggleEffect","button","toggleMenu","toggleShout"],"mappings":"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S5B,EAAMO,WAAYP,EAAMI,UACtCE,EAAcN,GACP1B,IAKb,MAAS,SAAS2B,GAChB,IAAK,IAAIp1C,EAAIoG,KAAKovC,WAAWxyC,OAAS,EAAGhD,GAAK,IAAKA,EAAG,CACpD,IAAIm1C,EAAQ/uC,KAAKovC,WAAWx1C,GAC5B,GAAIm1C,EAAMC,SAAWA,EAAQ,CAC3B,IAAItB,EAASqB,EAAMO,WACnB,GAAoB,UAAhB5B,EAAO5mC,KAAkB,CAC3B,IAAI+pC,EAASnD,EAAO/pB,IACpB0rB,EAAcN,GAEhB,OAAO8B,GAMX,MAAM,IAAIjyB,MAAM,0BAGlBkyB,cAAe,SAASha,EAAU6X,EAAYC,GAa5C,OAZA5uC,KAAKktC,SAAW,CACdzhC,SAAUikB,EAAOoH,GACjB6X,WAAYA,EACZC,QAASA,GAGS,SAAhB5uC,KAAKmH,SAGPnH,KAAK2jB,SA1qBP1jB,GA6qBOotC,IAQJ3zC,EA1rBK,CAisBiBC,EAAOD,SAGtC,IACEq3C,mBAAqB7E,EACrB,MAAO8E,GAUPlxC,SAAS,IAAK,yBAAdA,CAAwCosC,K,olFCjsBtC+E,EACAC,E,wBCvBW,GACX,YACA,kBACA,gBACA,mBACA,eACA,gBACA,gCACA,eACA,gBACA,aACA,aACA,gBACA,gBACA,YACA,qBACA,eACA,eACA,gBACA,eACA,YACA,eACA,eACA,aACA,sBACA,aACA,YACA,aACA,sBACA,cACA,WACA,SACA,oBACA,qBACA,SACA,cACA,WACA,kBACA,UACA,YACA,mBACA,UACA,YACA,iBACA,UACA,YACA,iBACA,UACA,YACA,kBACA,UACA,gBACA,YACA,UACA,YACA,gBACA,YACA,SACA,cACA,WACA,yBACA,SACA,cACA,WACA,oBACA,SACA,cACA,WACA,oBACA,SACA,WACA,WACA,MACA,SACA,WACA,gBACA,SACA,oBACA,WACA,MACA,MACA,SACA,WACA,kBACA,SACA,WACA,gBACA,gBACA,UACA,gBACA,cACA,cACA,YACA,YACA,aACA,cACA,aACA,aACA,aACA,aACA,qBACA,WACA,SACA,eACA,aACA,aACA,UACA,UACA,gBACA,cACA,SACA,UACA,WACA,UACA,UACA,kBACA,SACA,MACA,YACA,OACA,SACA,iBACA,iBACA,gBACA,SACA,QACA,UACA,SACA,iBACA,WACA,cACA,UACA,WACA,QACA,KACA,WACA,UACA,QACA,gBACA,mBACA,kBACA,UACA,SACA,QACA,kBACA,iBACA,iBACA,iBACA,gBACA,gBACA,WACA,6BACA,QACA,iBACA,oBACA,oBACA,cACA,QACA,WACA,OACA,QACA,UACA,OACA,uBACA,UACA,iBACA,QACA,mBACA,yBACA,gBACA,oBACA,YACA,WACA,mBACA,QACA,iCACA,gBACA,QACA,cACA,QACA,iBACA,SACA,WACA,cACA,UACA,UACA,WACA,qBACA,QACA,eACA,QACA,gBACA,SACA,WACA,SACA,eACA,gBACA,aACA,QACA,cACA,aACA,WACA,QACA,eACA,kBACA,kBACA,iBACA,OACA,eACA,OACA,YACA,oBACA,kBACA,UACA,QACA,YACA,QACA,WACA,UACA,cACA,kBACA,OACA,SACA,cACA,YACA,wBACA,iBACA,aACA,cACA,WACA,eACA,mBACA,eACA,gBACA,cACA,YACA,YACA,YACA,eACA,qBACA,YACA,aACA,QACA,aACA,YACA,aACA,QACA,YACA,UACA,QACA,qBACA,UACA,aACA,SACA,YACA,mBACA,gBACA,OACA,SACA,QACA,OACA,aACA,WACA,WACA,QACA,QACA,YACA,cACA,oBACA,mBACA,YACA,4BACA,iBACA,sBACA,UACA,kBACA,aACA,aACA,aACA,OACA,eACA,YACA,SACA,SACA,YACA,UACA,UACA,eACA,mBACA,YACA,SACA,eACA,gBACA,uBACA,gBACA,0CACA,eACA,YACA,YACA,WACA,aACA,cACA,iBACA,WACA,cACA,UACA,iBACA,YACA,UACA,YACA,QACA,UACA,UACA,QACA,aACA,YACA,OACA,aACA,WACA,aACA,iBACA,uBACA,kBACA,mBACA,SACA,gBACA,SACA,QACA,aACA,qBACA,OACA,WACA,UACA,aACA,aACA,aACA,WACA,QACA,iBACA,iBACA,UACA,QACA,kBACA,YACA,UACA,UACA,SACA,UACA,UACA,qBACA,wBACA,KACA,OACA,WACA,WACA,SACA,UACA,MACA,gBACA,UACA,QACA,aACA,cACA,cACA,SACA,cACA,iBACA,WACA,gBACA,iBACA,aACA,aACA,SACA,mBACA,cACA,UACA,UACA,cACA,UACA,aACA,YACA,aACA,oBACA,kBACA,gBACA,kBACA,mBACA,gBACA,YACA,SACA,iBACA,mBACA,QACA,SACA,eACA,QACA,mBACA,iBACA,SACA,QACA,mBACA,eACA,iBACA,QACA,QACA,OACA,SACA,SACA,QACA,gBACA,WACA,aACA,mBACA,QACA,QACA,UACA,aACA,SACA,iBACA,OACA,WACA,SACA,gBACA,UACA,WACA,kBACA,UACA,iBACA,kBACA,WACA,cACA,YACA,aACA,YACA,gBACA,aACA,aACA,iBACA,aACA,QACA,WACA,UACA,qBACA,gBACA,UACA,gBACA,cACA,eACA,uBACA,QACA,cACA,eACA,QACA,mBACA,YACA,gBACA,OACA,cACA,WACA,UACA,OACA,KACA,UACA,WACA,qBACA,yBACA,qBACA,6BACA,YACA,cACA,cACA,sBACA,mBACA,QACA,SACA,aACA,aACA,QACA,cACA,UACA,aACA,oCACA,gBACA,UACA,UACA,SACA,SACA,WACA,SACA,gBACA,uBACA,eACA,iBACA,YACA,YACA,WACA,OACA,SACA,gBACA,UACA,mBACA,uBACA,kBACA,aACA,aACA,aACA,OACA,0BACA,6BACA,yBACA,oBACA,gBACA,UACA,oBACA,iBACA,UACA,yBACA,QACA,gBACA,qBACA,YACA,aACA,YACA,YACA,QACA,YACA,cACA,QACA,YACA,SACA,SACA,QACA,aACA,SACA,SACA,eACA,aACA,aACA,OACA,OACA,OACA,UACA,gBACA,iBACA,OACA,eACA,SACA,gBACA,mBACA,SACA,iBACA,qBACA,eACA,QACA,QACA,YACA,gBACA,SACA,eACA,wBACA,aACA,wBACA,wBACA,aACA,SACA,SACA,UACA,WACA,iBACA,SACA,SACA,OACA,WACA,UACA,gBACA,iBACA,eACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,QACA,SACA,mBACA,oBACA,WACA,aACA,WACA,OACA,aACA,gBACA,QACA,YACA,YACA,gBACA,cACA,YACA,sBACA,WACA,cACA,YACA,cACA,UACA,YACA,cACA,OACA,SACA,kBACA,OACA,eACA,mCACA,oBACA,oBACA,YACA,gBACA,WACA,gBACA,cACA,UACA,eACA,cACA,WACA,cACA,QACA,UACA,aACA,UACA,QACA,SACA,UACA,UACA,iBACA,SACA,QACA,SACA,WACA,aACA,eACA,QACA,QACA,kBACA,eACA,QACA,gBACA,YACA,SACA,eACA,UACA,WACA,gBACA,WACA,UACA,MACA,aACA,OACA,oBACA,WACA,UACA,kBACA,4BACA,gBACA,OACA,UACA,SACA,aACA,QACA,QACA,SACA,SACA,YACA,aACA,WACA,YACA,SACA,iBACA,WACA,UACA,OACA,UACA,OACA,0BACA,WACA,OACA,OACA,YACA,YACA,eACA,cACA,cACA,eACA,aACA,eACA,eACA,kBACA,OACA,eACA,QACA,aACA,aACA,QACA,QACA,QACA,UACA,SACA,YACA,QACA,aACA,qBACA,iBACA,YACA,WACA,QACA,aACA,OACA,SACA,MACA,WACA,WACA,SACA,QACA,QACA,OACA,UACA,SACA,gBACA,iBACA,UACA,OACA,UACA,oBACA,SACA,qBACA,YACA,qBACA,cACA,QACA,aACA,SACA,eACA,KACA,UACA,YACA,SACA,yBACA,sBACA,MACA,OACA,MACA,cACA,WACA,mBACA,KACA,QACA,QACA,iBACA,gBACA,aACA,SACA,SACA,qBACA,UACA,YACA,cACA,wBACA,QACA,kBACA,mBACA,mBACA,qBACA,eACA,eACA,iBACA,QACA,eACA,QACA,SACA,UACA,UACA,cACA,SACA,QACA,aACA,SACA,UACA,eACA,aACA,SACA,eACA,cACA,eACA,gBACA,SACA,YACA,gBACA,sBACA,gBACA,sBACA,eACA,cACA,cACA,iBACA,UACA,YACA,yBACA,0BACA,SACA,YACA,oBACA,SACA,aACA,cACA,YACA,aACA,QACA,cACA,gBACA,mBACA,kBACA,kBACA,WACA,oBACA,wBACA,mBACA,cACA,SACA,cACA,QACA,qBACA,mBACA,UACA,OACA,SACA,QACA,cACA,YACA,QACA,cACA,WACA,SACA,YACA,QACA,UACA,SACA,WACA,QACA,SACA,QACA,uBACA,SACA,SACA,eACA,uBACA,UACA,QACA,YACA,OACA,YACA,MACA,aACA,gBACA,gBACA,OACA,YACA,gBACA,qBACA,qBACA,SACA,kBACA,UACA,WACA,UACA,QACA,YACA,YACA,eACA,UACA,SACA,SACA,OACA,SACA,SACA,QACA,oBACA,iBACA,oBACA,UACA,iBACA,iBACA,SACA,aACA,YACA,QACA,YACA,mBACA,sBACA,gBACA,QACA,UACA,mBACA,cACA,oBACA,aACA,YACA,UACA,UACA,OACA,SACA,YACA,gBACA,cACA,aACA,MACA,SACA,QACA,UACA,cACA,eACA,aACA,YACA,WACA,aACA,SACA,UACA,iBACA,gBACA,aACA,aACA,UACA,WACA,MACA,aACA,WACA,gBACA,mBACA,WACA,QACA,iBACA,gBACA,YACA,SACA,gBACA,uBACA,eACA,iBACA,YACA,YACA,SACA,UACA,mBACA,SACA,iBACA,WACA,SACA,cACA,WACA,eACA,QACA,mBACA,eACA,aACA,kBACA,kBACA,0BACA,gBACA,YACA,gBACA,eACA,iBACA,eACA,eACA,OACA,UACA,eACA,cACA,cACA,SACA,gBACA,gBACA,OACA,gBACA,UACA,cACA,UACA,oBACA,aACA,SACA,cACA,qBACA,gBACA,UACA,YACA,SACA,gBACA,eACA,YACA,oBACA,mBACA,SACA,gBACA,oBACA,YACA,wBACA,QACA,SACA,gBACA,mBACA,aACA,YACA,SACA,sBACA,SACA,kBACA,sBACA,qBACA,WACA,cACA,SACA,qBACA,gBACA,YACA,MACA,SACA,aACA,aACA,UACA,cACA,WACA,cACA,gBACA,eACA,QACA,UACA,WACA,SACA,OACA,eACA,oBACA,SACA,WACA,QACA,cACA,QACA,eACA,OACA,WACA,MACA,QACA,kBACA,OACA,SACA,OACA,oBACA,OACA,QACA,kBACA,gBACA,cACA,cACA,UACA,WACA,WACA,UACA,gBACA,QACA,KACA,MACA,YACA,UACA,QACA,0BACA,SACA,YACA,cACA,OACA,MACA,YACA,QACA,QACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,iBACA,YACA,YACA,OACA,SACA,cACA,wBACA,aACA,aACA,sBACA,WACA,WACA,oBACA,cACA,gBACA,gBACA,iBACA,iBACA,gBACA,eACA,SACA,eACA,QACA,iBACA,qBACA,oBACA,WACA,IACA,mBACA,mBACA,cACA,oBACA,gBACA,QACA,iBACA,oBACA,SACA,gBACA,oBACA,mBACA,aACA,iBACA,eACA,iBACA,iBACA,QACA,QACA,SACA,aACA,SACA,OACA,iBACA,iBACA,MACA,kBACA,eACA,aACA,eACA,OACA,SACA,gBACA,sBACA,MACA,aACA,gBACA,SACA,OACA,cACA,mBACA,gBACA,aACA,eACA,OACA,QACA,UACA,UACA,YACA,SACA,aACA,eACA,cACA,QACA,OACA,QACA,WACA,UACA,oBACA,cACA,WACA,WACA,WACA,YACA,eACA,WACA,oBACA,yBACA,mBACA,kBACA,iBACA,iBACA,YACA,gBACA,cACA,iBACA,WACA,WACA,aACA,kBACA,UACA,UACA,WACA,eACA,eACA,iBACA,UACA,UACA,gBACA,gBACA,eACA,YACA,aACA,WACA,cACA,iBACA,OACA,WACA,oBACA,kBACA,OACA,aACA,UACA,UACA,iBACA,iBACA,QACA,gBACA,iBACA,wBACA,qBACA,eACA,gBACA,oBACA,oBACA,aACA,aACA,WACA,SACA,mBACA,cACA,iBACA,UACA,UACA,SACA,mBACA,sBACA,yBACA,mBACA,IACA,aACA,QACA,UACA,QACA,iBACA,oBACA,gBACA,yBACA,YACA,SACA,UACA,mBACA,MACA,YACA,QACA,eACA,WACA,SACA,sBACA,gBACA,cACA,cACA,YACA,kBACA,qBACA,QACA,gBACA,aACA,QACA,gBACA,WACA,oBACA,WACA,gBACA,SACA,aACA,gBACA,qBACA,QACA,gBACA,YACA,iBACA,mBACA,QACA,MACA,cACA,cACA,aACA,QACA,WACA,qBACA,SACA,mBACA,cACA,kBACA,WACA,cACA,oBACA,kBACA,iBACA,QACA,cACA,QACA,gBACA,WACA,MACA,YACA,WACA,WACA,gBACA,eACA,QACA,WACA,WACA,WACA,eACA,SACA,cACA,kBACA,OACA,SACA,QACA,QACA,WACA,kBACA,oBACA,cACA,eACA,eACA,sBACA,kBACA,SACA,SACA,cACA,iBACA,cACA,uBACA,qBACA,YACA,OACA,iBACA,oBACA,wBACA,mBACA,OACA,UACA,iBACA,iBACA,gBACA,cACA,gBACA,YACA,YACA,aACA,SACA,YACA,OACA,KACA,YACA,WACA,cACA,iBACA,kBACA,qBACA,SACA,iBACA,UACA,gBACA,cACA,UACA,cACA,iBACA,iBACA,eACA,aACA,eACA,aACA,UACA,gBACA,qBACA,YACA,kBACA,UACA,qBACA,SACA,eACA,kBACA,cACA,SACA,YACA,WACA,oBACA,uBACA,mBACA,WACA,SACA,gBACA,oBACA,mBACA,eACA,iBACA,WACA,aACA,iBACA,gBACA,aACA,YACA,OACA,SACA,WACA,WACA,eACA,cACA,eACA,cACA,SACA,kBACA,WACA,iBACA,cACA,gBACA,kBACA,WACA,OACA,4BACA,sBACA,gBACA,iBACA,IACA,UACA,gCACA,SACA,OACA,YACA,aACA,SACA,SACA,YACA,WACA,OACA,YACA,QACA,QACA,cACA,kBACA,uBACA,OACA,QACA,WACA,aACA,WACA,eACA,SACA,gBACA,SACA,eACA,UACA,SACA,cACA,oBACA,aACA,WACA,gBACA,eACA,mBACA,mBACA,UACA,SACA,UACA,QACA,UACA,0BACA,SACA,MACA,mBACA,OACA,cACA,kBACA,UACA,UACA,UACA,sBACA,QACA,gBACA,YACA,cACA,aACA,QACA,qBACA,WACA,QACA,gBACA,OACA,aACA,QACA,qBACA,QACA,mBACA,WACA,OACA,cACA,QACA,SACA,UACA,iBACA,YACA,UACA,OACA,QACA,WACA,QACA,YACA,aACA,WACA,UACA,QACA,cACA,UACA,gBACA,SACA,iBACA,sBACA,aACA,OACA,aACA,oBACA,QACA,OACA,OACA,gBACA,OACA,aACA,aACA,iBACA,cACA,OACA,SACA,QACA,MACA,sBACA,QACA,OACA,QACA,WACA,QACA,eACA,WACA,MACA,WACA,SACA,aACA,eACA,aACA,YACA,WACA,UACA,SACA,SACA,qBACA,YACA,gBACA,cACA,SACA,UACA,UACA,SACA,SACA,OACA,YACA,OACA,gBACA,mBACA,SACA,eACA,mCACA,gBACA,WACA,cACA,gBACA,YACA,aACA,QACA,YACA,QACA,WACA,UACA,UACA,qBACA,UACA,cACA,eACA,oBACA,aACA,YACA,WACA,cACA,WACA,QACA,QACA,WACA,eACA,iBACA,SACA,cACA,kBACA,8BACA,eACA,YACA,cACA,eACA,QACA,WACA,aACA,aACA,QACA,gBACA,qBACA,mBACA,gBACA,oBACA,SACA,gBACA,oBACA,mBACA,QACA,qBACA,UACA,kBACA,OACA,eACA,SACA,UACA,MACA,wBACA,OACA,WACA,oBACA,cACA,WACA,UACA,SACA,SACA,UACA,aACA,gBACA,uBACA,UACA,SACA,gBACA,YACA,cACA,mBACA,mBACA,oBACA,oBACA,kBACA,mBACA,kBACA,kBACA,mBACA,mBACA,cACA,eACA,gBACA,gBACA,gBACA,iBACA,gBACA,gBACA,cACA,eACA,cACA,eACA,kBACA,kBACA,iBACA,iBACA,kBACA,kBACA,iBACA,iBACA,iBACA,iBACA,eACA,gBACA,QACA,sBACA,UACA,aACA,gBACA,UACA,YACA,cACA,aACA,SACA,aACA,aACA,YACA,WACA,UACA,QACA,SACA,SACA,UACA,cACA,cACA,QACA,WACA,gBACA,MACA,UACA,mBACA,UACA,YACA,QACA,uBACA,UACA,sBACA,iBACA,aACA,YACA,cACA,eACA,iBACA,oBACA,qBACA,QACA,eACA,WACA,WACA,OACA,eACA,UACA,cACA,SACA,WACA,iBACA,cACA,QACA,YACA,UACA,kBACA,YACA,kBACA,WACA,YACA,YACA,aACA,cACA,kBACA,WACA,qBACA,UACA,UACA,cACA,WACA,WACA,QACA,WACA,OACA,YACA,kBACA,eACA,uBACA,4BACA,kBACA,mBACA,YACA,YACA,UACA,aACA,aACA,UACA,YACA,oBACA,cACA,UACA,iBACA,gBACA,aACA,MACA,YACA,eACA,eACA,iBACA,aACA,cACA,aACA,eACA,UACA,MACA,QACA,UACA,oBACA,0BACA,eACA,SACA,cACA,kBACA,iBACA,aACA,QACA,kBACA,cACA,WACA,SACA,WACA,gBACA,SACA,cACA,UACA,aACA,UACA,aACA,WACA,WACA,gBACA,cACA,aACA,iBACA,gBACA,cACA,SACA,aACA,YACA,aACA,gBACA,eACA,WACA,cACA,WACA,cACA,SACA,kBACA,gBACA,aACA,UACA,YACA,WACA,cACA,cACA,mBACA,gBACA,QACA,QACA,YACA,cACA,qBACA,iBACA,qBACA,oBACA,YACA,gBACA,wBACA,QACA,SACA,eACA,eACA,cACA,QACA,SACA,mBACA,uBACA,sBACA,SACA,sBACA,iBACA,aACA,gBACA,kBACA,YACA,YACA,UACA,SACA,SACA,uBACA,eACA,SACA,MACA,iBACA,QACA,iBACA,sBACA,kBACA,SACA,SACA,YACA,cACA,WACA,YACA,aACA,UACA,UACA,aACA,UACA,aACA,uBACA,OACA,OACA,gBACA,UACA,QACA,WACA,qBACA,cACA,OACA,WACA,gBACA,mBACA,QACA,kBACA,MACA,aACA,eACA,gBACA,qBACA,mBACA,UACA,UACA,gBACA,gBACA,UACA,YACA,aACA,SACA,aACA,YACA,MACA,WACA,cACA,SACA,eACA,QACA,iBACA,gBACA,WACA,WACA,mBACA,QACA,qBACA,YACA,OACA,mBACA,aACA,YACA,WACA,mBACA,SACA,WACA,OACA,kBACA,QACA,QACA,WACA,QACA,aACA,MACA,WACA,SACA,QACA,QACA,qBACA,SACA,UACA,mBACA,YACA,eACA,QACA,aACA,UACA,cACA,SACA,aACA,YACA,WACA,OACA,YACA,SACA,cACA,sBACA,yBACA,oBACA,eACA,UACA,OACA,kBACA,OACA,QACA,iBACA,uBACA,wBACA,qBACA,WACA,UACA,YACA,WACA,UACA,QACA,cACA,uBACA,cACA,UACA,SACA,SACA,YACA,gBACA,YACA,WACA,gBACA,UACA,UACA,QACA,eACA,QACA,WACA,WACA,WACA,YACA,gBACA,YACA,YACA,cACA,iBACA,WACA,UACA,SACA,UACA,QACA,WACA,YACA,aACA,mBACA,gBACA,UACA,WACA,eACA,aACA,aACA,OACA,6BACA,uBACA,oBACA,UACA,UACA,QACA,YACA,gBACA,QACA,YACA,UACA,UACA,OACA,sBACA,oBACA,qBACA,qBACA,oBACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,QACA,gBACA,YACA,MACA,aACA,UACA,cACA,kBACA,aACA,aACA,iBACA,eACA,kBACA,gBACA,eACA,mBACA,cACA,cACA,cACA,eACA,qBACA,YACA,cACA,kBACA,iBACA,gBACA,aACA,YACA,eACA,YACA,eACA,YACA,aACA,gBACA,oBACA,cACA,0BACA,SACA,UACA,uBACA,QACA,YACA,SACA,eACA,eACA,eACA,cACA,cACA,MACA,QACA,WACA,uBACA,OACA,cACA,mBACA,SACA,QACA,gBACA,QACA,iBACA,aACA,eACA,QACA,YACA,WACA,QACA,WACA,mBACA,qBACA,oBACA,qBACA,cACA,OACA,IACA,UACA,SACA,uBACA,YACA,kBACA,QACA,gBACA,eACA,SACA,iBACA,gBACA,QACA,QACA,SACA,UACA,eACA,aACA,YACA,iBACA,SACA,iBACA,YACA,cACA,aACA,UACA,gBACA,eACA,aACA,SACA,QACA,cACA,QACA,cACA,UACA,kBACA,wBACA,SACA,eACA,MACA,OACA,aACA,SACA,aACA,eACA,YACA,kBACA,gBACA,SACA,wBACA,SACA,OACA,mBACA,UACA,SACA,gBACA,gBACA,gBACA,kBACA,0BACA,iBACA,UACA,SACA,MACA,QACA,gBACA,QACA,YACA,UACA,qBACA,UACA,OACA,OACA,QACA,MACA,aACA,aACA,cACA,YACA,aACA,aACA,gBACA,QACA,oBACA,OACA,eACA,gBACA,aACA,QACA,gBACA,uBACA,uBACA,SACA,MACA,eACA,UACA,OACA,OACA,oBACA,MACA,aACA,SACA,OACA,eACA,oBACA,aACA,qBACA,oBACA,MACA,cACA,mBACA,UACA,UACA,SACA,OACA,YACA,SACA,QACA,QACA,uBACA,iBACA,QACA,QACA,qBACA,oBACA,QACA,aACA,qBACA,cACA,iBACA,gBACA,yBACA,mBACA,eACA,qBACA,iBACA,SACA,MACA,UACA,YACA,YACA,UACA,YACA,oBACA,WACA,UACA,cACA,aACA,YACA,SACA,cACA,YACA,SACA,UACA,aACA,cACA,SACA,aACA,SACA,UACA,iBACA,aACA,UACA,SACA,cACA,sBACA,gBACA,mBACA,gBACA,eACA,YACA,YACA,cACA,gBACA,MACA,cACA,iBACA,gBACA,qBACA,SACA,QACA,SACA,OACA,QACA,cACA,mBACA,OACA,gBACA,aACA,UACA,UACA,QACA,QACA,gBACA,QACA,mBACA,UACA,iBACA,UACA,2BACA,qBACA,SACA,iBACA,YACA,SACA,YACA,OACA,SACA,eACA,YACA,aACA,gBACA,cACA,YACA,QACA,wBACA,kBACA,WACA,kBACA,YACA,eACA,kBACA,SACA,YACA,YACA,UACA,gBACA,UACA,SACA,OACA,wBACA,QACA,cACA,SACA,YACA,SACA,kBACA,UACA,SACA,mBACA,WACA,kBACA,mBACA,kBACA,sBACA,iBACA,gBACA,WACA,cACA,UACA,UACA,gBACA,QACA,YACA,eACA,SACA,gBACA,mBACA,YACA,sBACA,QACA,aACA,YACA,gBACA,eACA,eACA,OACA,UACA,oBACA,mBACA,kBACA,MACA,eACA,oBACA,QACA,UACA,kBACA,4BACA,qBACA,qBACA,iBACA,mBACA,mBACA,iBACA,QACA,mBACA,WACA,MACA,UACA,QACA,SACA,gBACA,SACA,QACA,mBACA,iBACA,cACA,eACA,SACA,SACA,QACA,cACA,aACA,SACA,QACA,cACA,YACA,OACA,aACA,cACA,SACA,kBACA,qBACA,SACA,QACA,QACA,kBACA,sBACA,iBACA,WACA,QACA,gBACA,2BACA,qBACA,cACA,OACA,UACA,QACA,QACA,MACA,gBACA,gBACA,QACA,WACA,WACA,OACA,UACA,SACA,QACA,gBACA,uBACA,aACA,YACA,gBACA,QACA,MACA,UACA,aACA,WACA,oBACA,WACA,WACA,SACA,cACA,gBACA,kBACA,QACA,YACA,mBACA,WACA,iBACA,iBACA,WACA,SACA,aACA,aACA,aACA,WACA,YACA,gBACA,SACA,SACA,kBACA,WACA,aACA,cACA,UACA,UACA,UACA,QACA,UACA,aACA,gBACA,UACA,SACA,sBACA,qBACA,QACA,QACA,SACA,WACA,SACA,sBACA,WACA,aACA,WACA,UACA,eACA,qBACA,MACA,SACA,MACA,aACA,iBACA,SACA,QACA,mBACA,WACA,QACA,YACA,eACA,iBACA,kBACA,aACA,QACA,gBACA,qBACA,mBACA,qBACA,eACA,eACA,uBACA,SACA,gBACA,WACA,wBACA,cACA,qBACA,YACA,aACA,aACA,aACA,sBACA,aACA,WACA,cACA,WACA,eACA,cACA,sBACA,UACA,SACA,QACA,WACA,OACA,oBACA,OACA,eACA,eACA,gBACA,SACA,iBACA,OACA,MACA,SACA,OACA,kBACA,iBACA,SACA,gBACA,UACA,gBACA,SACA,YACA,mBACA,uBACA,SACA,aACA,sBACA,uBACA,WACA,SACA,UACA,gBACA,QACA,cACA,YACA,YACA,YACA,eACA,oBACA,cACA,qBACA,UACA,SACA,WACA,QACA,UACA,gBACA,WACA,UACA,oBACA,yBACA,uBACA,oBACA,UACA,QACA,kBACA,cACA,WACA,mBACA,cACA,kBACA,gBACA,QACA,WACA,qBACA,UACA,aACA,SACA,MACA,SACA,iBACA,QACA,WACA,gBACA,kBACA,QACA,YACA,gBACA,YACA,IACA,QACA,SACA,kBACA,WACA,yBACA,aACA,YACA,WACA,UACA,YACA,UACA,SACA,SACA,eACA,QACA,OACA,cACA,SACA,OACA,MACA,WACA,cACA,gBACA,iBACA,QACA,QACA,mBACA,SACA,SACA,WACA,SACA,kBACA,iBACA,QACA,SACA,qBACA,SACA,aACA,SACA,UACA,SACA,cACA,SACA,eACA,UACA,QACA,eACA,aACA,aACA,eACA,eACA,kBACA,OACA,QACA,aACA,aACA,OACA,cACA,UACA,QACA,aACA,UACA,iBACA,UACA,gBACA,eACA,QACA,eACA,QACA,QACA,SACA,cACA,UACA,SACA,sBACA,SACA,aACA,YACA,SACA,YACA,QACA,aACA,WACA,oBACA,wBACA,mBACA,cACA,oBACA,UACA,MACA,OACA,YACA,UACA,SACA,YACA,uBACA,YACA,WACA,iBACA,SACA,SACA,kBACA,gBACA,sBACA,YACA,gBACA,aACA,YACA,cACA,oBACA,iBACA,eACA,KACA,cACA,mBACA,kBACA,OACA,SACA,gBACA,gBACA,sBACA,YACA,kBACA,cACA,SACA,WACA,eACA,YACA,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","file":"client.b.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 199);\n","/**\r\n * Escapes a string to AO1 escape codes.\r\n * @param {string} estring the string to be escaped\r\n */\r\nexport function escapeChat(estring) {\r\n\treturn estring\r\n\t\t.replace(/#/g, \"<num>\")\r\n\t\t.replace(/&/g, \"<and>\")\r\n\t\t.replace(/%/g, \"<percent>\")\r\n\t\t.replace(/\\$/g, \"<dollar>\");\r\n}\r\n\r\n/**\r\n * Unescapes a string to AO1 escape codes.\r\n * @param {string} estring the string to be unescaped\r\n */\r\nexport function unescapeChat(estring) {\r\n\treturn estring\r\n\t\t.replace(/<num>/g, \"#\")\r\n\t\t.replace(/<and>/g, \"&\")\r\n\t\t.replace(/<percent>/g, \"%\")\r\n\t\t.replace(/<dollar>/g, \"$\");\r\n}\r\n\r\n/**\r\n * Escapes a string to be HTML-safe.\r\n * \r\n * XXX: This is unnecessary if we use `createTextNode` instead!\r\n * @param {string} unsafe an unsanitized string\r\n */\r\nexport function safe_tags(unsafe) {\r\n\tif (unsafe) {\r\n\t\treturn unsafe\r\n\t\t\t.replace(/>/g, \"&rt;\")\r\n\t\t\t.replace(/</g, \"<\");\r\n\t} else {\r\n\t\treturn \"\";\r\n\t}\r\n}\r\n\r\n/**\r\n * Encode text on client side.\r\n * @param {string} estring the string to be encoded\r\n */\r\nexport function encodeChat(estring) {\r\n\tconst selectedEncoding = document.getElementById(\"client_encoding\").value;\r\n\tif (selectedEncoding === \"unicode\") {\r\n\t\t// This approach works by escaping all special characters to Unicode escape sequences.\r\n\t\t// Source: https://gist.github.com/mathiasbynens/1243213\r\n\t\treturn estring.replace(/[^\\0-~]/g, function (ch) {\r\n\t\t\treturn \"\\\\u\" + (\"000\" + ch.charCodeAt().toString(16)).slice(-4);\r\n\t\t});\r\n\t} else if (selectedEncoding === \"utf16\") {\r\n\t\t// Source: https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String\r\n\t\tconst buffer = new ArrayBuffer(estring.length * 2);\r\n\t\tconst result = new Uint16Array(buffer);\r\n\t\tfor (let i = 0, strLen = estring.length; i < strLen; i++) {\r\n\t\t\tresult[i] = estring.charCodeAt(i);\r\n\t\t}\r\n\t\treturn String(result);\r\n\t} else {\r\n\t\treturn estring;\r\n\t}\r\n}\r\n\r\n/**\r\n * Decodes text on client side.\r\n * @param {string} estring the string to be decoded\r\n */\r\nexport function decodeChat(estring) {\r\n\tconst selectedDecoding = document.getElementById(\"client_decoding\").value;\r\n\tif (selectedDecoding === \"unicode\") {\r\n\t\t// Source: https://stackoverflow.com/questions/7885096/how-do-i-decode-a-string-with-escaped-unicode\r\n\t\treturn estring.replace(/\\\\u([\\d\\w]{1,})/gi, function (match, group) {\r\n\t\t\treturn String.fromCharCode(parseInt(group, 16));\r\n\t\t});\r\n\t} else if (selectedDecoding === \"utf16\") {\r\n\t\t// Source: https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String\r\n\t\treturn String.fromCharCode.apply(null, new Uint16Array(estring.split(\",\")));\r\n\t} else {\r\n\t\treturn estring;\r\n\t}\r\n}\r\n\r\n/**\r\n * XXX: a nasty hack made by gameboyprinter.\r\n * @param {string} msg chat message to prepare for display \r\n */\r\nexport function prepChat(msg) {\r\n\t// TODO: make this less awful\r\n\treturn unescapeChat(decodeChat(msg));\r\n}","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","module.exports = {};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","/*\n* Fingerprintjs2 2.1.0 - Modern & flexible browser fingerprint library v2\n* https://github.com/Valve/fingerprintjs2\n* Copyright (c) 2015 Valentin Vasilyev (valentin.vasilyev@outlook.com)\n* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.\n*\n* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n* ARE DISCLAIMED. IN NO EVENT SHALL VALENTIN VASILYEV BE LIABLE FOR ANY\n* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/* global define */\n(function (name, context, definition) {\n 'use strict'\n if (typeof window !== 'undefined' && typeof define === 'function' && define.amd) { define(definition) } else if (typeof module !== 'undefined' && module.exports) { module.exports = definition() } else if (context.exports) { context.exports = definition() } else { context[name] = definition() }\n})('Fingerprint2', this, function () {\n 'use strict'\n\n /// MurmurHash3 related functions\n\n //\n // Given two 64bit ints (as an array of two 32bit ints) returns the two\n // added together as a 64bit int (as an array of two 32bit ints).\n //\n var x64Add = function (m, n) {\n m = [m[0] >>> 16, m[0] & 0xffff, m[1] >>> 16, m[1] & 0xffff]\n n = [n[0] >>> 16, n[0] & 0xffff, n[1] >>> 16, n[1] & 0xffff]\n var o = [0, 0, 0, 0]\n o[3] += m[3] + n[3]\n o[2] += o[3] >>> 16\n o[3] &= 0xffff\n o[2] += m[2] + n[2]\n o[1] += o[2] >>> 16\n o[2] &= 0xffff\n o[1] += m[1] + n[1]\n o[0] += o[1] >>> 16\n o[1] &= 0xffff\n o[0] += m[0] + n[0]\n o[0] &= 0xffff\n return [(o[0] << 16) | o[1], (o[2] << 16) | o[3]]\n }\n\n //\n // Given two 64bit ints (as an array of two 32bit ints) returns the two\n // multiplied together as a 64bit int (as an array of two 32bit ints).\n //\n var x64Multiply = function (m, n) {\n m = [m[0] >>> 16, m[0] & 0xffff, m[1] >>> 16, m[1] & 0xffff]\n n = [n[0] >>> 16, n[0] & 0xffff, n[1] >>> 16, n[1] & 0xffff]\n var o = [0, 0, 0, 0]\n o[3] += m[3] * n[3]\n o[2] += o[3] >>> 16\n o[3] &= 0xffff\n o[2] += m[2] * n[3]\n o[1] += o[2] >>> 16\n o[2] &= 0xffff\n o[2] += m[3] * n[2]\n o[1] += o[2] >>> 16\n o[2] &= 0xffff\n o[1] += m[1] * n[3]\n o[0] += o[1] >>> 16\n o[1] &= 0xffff\n o[1] += m[2] * n[2]\n o[0] += o[1] >>> 16\n o[1] &= 0xffff\n o[1] += m[3] * n[1]\n o[0] += o[1] >>> 16\n o[1] &= 0xffff\n o[0] += (m[0] * n[3]) + (m[1] * n[2]) + (m[2] * n[1]) + (m[3] * n[0])\n o[0] &= 0xffff\n return [(o[0] << 16) | o[1], (o[2] << 16) | o[3]]\n }\n //\n // Given a 64bit int (as an array of two 32bit ints) and an int\n // representing a number of bit positions, returns the 64bit int (as an\n // array of two 32bit ints) rotated left by that number of positions.\n //\n var x64Rotl = function (m, n) {\n n %= 64\n if (n === 32) {\n return [m[1], m[0]]\n } else if (n < 32) {\n return [(m[0] << n) | (m[1] >>> (32 - n)), (m[1] << n) | (m[0] >>> (32 - n))]\n } else {\n n -= 32\n return [(m[1] << n) | (m[0] >>> (32 - n)), (m[0] << n) | (m[1] >>> (32 - n))]\n }\n }\n //\n // Given a 64bit int (as an array of two 32bit ints) and an int\n // representing a number of bit positions, returns the 64bit int (as an\n // array of two 32bit ints) shifted left by that number of positions.\n //\n var x64LeftShift = function (m, n) {\n n %= 64\n if (n === 0) {\n return m\n } else if (n < 32) {\n return [(m[0] << n) | (m[1] >>> (32 - n)), m[1] << n]\n } else {\n return [m[1] << (n - 32), 0]\n }\n }\n //\n // Given two 64bit ints (as an array of two 32bit ints) returns the two\n // xored together as a 64bit int (as an array of two 32bit ints).\n //\n var x64Xor = function (m, n) {\n return [m[0] ^ n[0], m[1] ^ n[1]]\n }\n //\n // Given a block, returns murmurHash3's final x64 mix of that block.\n // (`[0, h[0] >>> 1]` is a 33 bit unsigned right shift. This is the\n // only place where we need to right shift 64bit ints.)\n //\n var x64Fmix = function (h) {\n h = x64Xor(h, [0, h[0] >>> 1])\n h = x64Multiply(h, [0xff51afd7, 0xed558ccd])\n h = x64Xor(h, [0, h[0] >>> 1])\n h = x64Multiply(h, [0xc4ceb9fe, 0x1a85ec53])\n h = x64Xor(h, [0, h[0] >>> 1])\n return h\n }\n\n //\n // Given a string and an optional seed as an int, returns a 128 bit\n // hash using the x64 flavor of MurmurHash3, as an unsigned hex.\n //\n var x64hash128 = function (key, seed) {\n key = key || ''\n seed = seed || 0\n var remainder = key.length % 16\n var bytes = key.length - remainder\n var h1 = [0, seed]\n var h2 = [0, seed]\n var k1 = [0, 0]\n var k2 = [0, 0]\n var c1 = [0x87c37b91, 0x114253d5]\n var c2 = [0x4cf5ad43, 0x2745937f]\n for (var i = 0; i < bytes; i = i + 16) {\n k1 = [((key.charCodeAt(i + 4) & 0xff)) | ((key.charCodeAt(i + 5) & 0xff) << 8) | ((key.charCodeAt(i + 6) & 0xff) << 16) | ((key.charCodeAt(i + 7) & 0xff) << 24), ((key.charCodeAt(i) & 0xff)) | ((key.charCodeAt(i + 1) & 0xff) << 8) | ((key.charCodeAt(i + 2) & 0xff) << 16) | ((key.charCodeAt(i + 3) & 0xff) << 24)]\n k2 = [((key.charCodeAt(i + 12) & 0xff)) | ((key.charCodeAt(i + 13) & 0xff) << 8) | ((key.charCodeAt(i + 14) & 0xff) << 16) | ((key.charCodeAt(i + 15) & 0xff) << 24), ((key.charCodeAt(i + 8) & 0xff)) | ((key.charCodeAt(i + 9) & 0xff) << 8) | ((key.charCodeAt(i + 10) & 0xff) << 16) | ((key.charCodeAt(i + 11) & 0xff) << 24)]\n k1 = x64Multiply(k1, c1)\n k1 = x64Rotl(k1, 31)\n k1 = x64Multiply(k1, c2)\n h1 = x64Xor(h1, k1)\n h1 = x64Rotl(h1, 27)\n h1 = x64Add(h1, h2)\n h1 = x64Add(x64Multiply(h1, [0, 5]), [0, 0x52dce729])\n k2 = x64Multiply(k2, c2)\n k2 = x64Rotl(k2, 33)\n k2 = x64Multiply(k2, c1)\n h2 = x64Xor(h2, k2)\n h2 = x64Rotl(h2, 31)\n h2 = x64Add(h2, h1)\n h2 = x64Add(x64Multiply(h2, [0, 5]), [0, 0x38495ab5])\n }\n k1 = [0, 0]\n k2 = [0, 0]\n switch (remainder) {\n case 15:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 14)], 48))\n // fallthrough\n case 14:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 13)], 40))\n // fallthrough\n case 13:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 12)], 32))\n // fallthrough\n case 12:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 11)], 24))\n // fallthrough\n case 11:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 10)], 16))\n // fallthrough\n case 10:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 9)], 8))\n // fallthrough\n case 9:\n k2 = x64Xor(k2, [0, key.charCodeAt(i + 8)])\n k2 = x64Multiply(k2, c2)\n k2 = x64Rotl(k2, 33)\n k2 = x64Multiply(k2, c1)\n h2 = x64Xor(h2, k2)\n // fallthrough\n case 8:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 7)], 56))\n // fallthrough\n case 7:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 6)], 48))\n // fallthrough\n case 6:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 5)], 40))\n // fallthrough\n case 5:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 4)], 32))\n // fallthrough\n case 4:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 3)], 24))\n // fallthrough\n case 3:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 2)], 16))\n // fallthrough\n case 2:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 1)], 8))\n // fallthrough\n case 1:\n k1 = x64Xor(k1, [0, key.charCodeAt(i)])\n k1 = x64Multiply(k1, c1)\n k1 = x64Rotl(k1, 31)\n k1 = x64Multiply(k1, c2)\n h1 = x64Xor(h1, k1)\n // fallthrough\n }\n h1 = x64Xor(h1, [0, key.length])\n h2 = x64Xor(h2, [0, key.length])\n h1 = x64Add(h1, h2)\n h2 = x64Add(h2, h1)\n h1 = x64Fmix(h1)\n h2 = x64Fmix(h2)\n h1 = x64Add(h1, h2)\n h2 = x64Add(h2, h1)\n return ('00000000' + (h1[0] >>> 0).toString(16)).slice(-8) + ('00000000' + (h1[1] >>> 0).toString(16)).slice(-8) + ('00000000' + (h2[0] >>> 0).toString(16)).slice(-8) + ('00000000' + (h2[1] >>> 0).toString(16)).slice(-8)\n }\n\n var defaultOptions = {\n preprocessor: null,\n audio: {\n timeout: 1000,\n // On iOS 11, audio context can only be used in response to user interaction.\n // We require users to explicitly enable audio fingerprinting on iOS 11.\n // See https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088\n excludeIOS11: true\n },\n fonts: {\n swfContainerId: 'fingerprintjs2',\n swfPath: 'flash/compiled/FontList.swf',\n userDefinedFonts: [],\n extendedJsFonts: false\n },\n screen: {\n // To ensure consistent fingerprints when users rotate their mobile devices\n detectScreenOrientation: true\n },\n plugins: {\n sortPluginsFor: [/palemoon/i],\n excludeIE: false\n },\n extraComponents: [],\n excludes: {\n // Unreliable on Windows, see https://github.com/Valve/fingerprintjs2/issues/375\n 'enumerateDevices': true,\n // devicePixelRatio depends on browser zoom, and it's impossible to detect browser zoom\n 'pixelRatio': true,\n // DNT depends on incognito mode for some browsers (Chrome) and it's impossible to detect incognito mode\n 'doNotTrack': true,\n // uses js fonts already\n 'fontsFlash': true\n },\n NOT_AVAILABLE: 'not available',\n ERROR: 'error',\n EXCLUDED: 'excluded'\n }\n\n var each = function (obj, iterator) {\n if (Array.prototype.forEach && obj.forEach === Array.prototype.forEach) {\n obj.forEach(iterator)\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n iterator(obj[i], i, obj)\n }\n } else {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n iterator(obj[key], key, obj)\n }\n }\n }\n }\n\n var map = function (obj, iterator) {\n var results = []\n // Not using strict equality so that this acts as a\n // shortcut to checking for `null` and `undefined`.\n if (obj == null) {\n return results\n }\n if (Array.prototype.map && obj.map === Array.prototype.map) { return obj.map(iterator) }\n each(obj, function (value, index, list) {\n results.push(iterator(value, index, list))\n })\n return results\n }\n\n var extendSoft = function (target, source) {\n if (source == null) { return target }\n var value\n var key\n for (key in source) {\n value = source[key]\n if (value != null && !(Object.prototype.hasOwnProperty.call(target, key))) {\n target[key] = value\n }\n }\n return target\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices\n var enumerateDevicesKey = function (done, options) {\n if (!isEnumerateDevicesSupported()) {\n return done(options.NOT_AVAILABLE)\n }\n navigator.mediaDevices.enumerateDevices().then(function (devices) {\n done(devices.map(function (device) {\n return 'id=' + device.deviceId + ';gid=' + device.groupId + ';' + device.kind + ';' + device.label\n }))\n })\n .catch(function (error) {\n done(error)\n })\n }\n\n var isEnumerateDevicesSupported = function () {\n return (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices)\n }\n // Inspired by and based on https://github.com/cozylife/audio-fingerprint\n var audioKey = function (done, options) {\n var audioOptions = options.audio\n if (audioOptions.excludeIOS11 && navigator.userAgent.match(/OS 11.+Version\\/11.+Safari/)) {\n // See comment for excludeUserAgent and https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088\n return done(options.EXCLUDED)\n }\n\n var AudioContext = window.OfflineAudioContext || window.webkitOfflineAudioContext\n\n if (AudioContext == null) {\n return done(options.NOT_AVAILABLE)\n }\n\n var context = new AudioContext(1, 44100, 44100)\n\n var oscillator = context.createOscillator()\n oscillator.type = 'triangle'\n oscillator.frequency.setValueAtTime(10000, context.currentTime)\n\n var compressor = context.createDynamicsCompressor()\n each([\n ['threshold', -50],\n ['knee', 40],\n ['ratio', 12],\n ['reduction', -20],\n ['attack', 0],\n ['release', 0.25]\n ], function (item) {\n if (compressor[item[0]] !== undefined && typeof compressor[item[0]].setValueAtTime === 'function') {\n compressor[item[0]].setValueAtTime(item[1], context.currentTime)\n }\n })\n\n oscillator.connect(compressor)\n compressor.connect(context.destination)\n oscillator.start(0)\n context.startRendering()\n\n var audioTimeoutId = setTimeout(function () {\n console.warn('Audio fingerprint timed out. Please report bug at https://github.com/Valve/fingerprintjs2 with your user agent: \"' + navigator.userAgent + '\".')\n context.oncomplete = function () { }\n context = null\n return done('audioTimeout')\n }, audioOptions.timeout)\n\n context.oncomplete = function (event) {\n var fingerprint\n try {\n clearTimeout(audioTimeoutId)\n fingerprint = event.renderedBuffer.getChannelData(0)\n .slice(4500, 5000)\n .reduce(function (acc, val) { return acc + Math.abs(val) }, 0)\n .toString()\n oscillator.disconnect()\n compressor.disconnect()\n } catch (error) {\n done(error)\n return\n }\n done(fingerprint)\n }\n }\n var UserAgent = function (done) {\n done(navigator.userAgent)\n }\n var webdriver = function (done, options) {\n done(navigator.webdriver == null ? options.NOT_AVAILABLE : navigator.webdriver)\n }\n var languageKey = function (done, options) {\n done(navigator.language || navigator.userLanguage || navigator.browserLanguage || navigator.systemLanguage || options.NOT_AVAILABLE)\n }\n var colorDepthKey = function (done, options) {\n done(window.screen.colorDepth || options.NOT_AVAILABLE)\n }\n var deviceMemoryKey = function (done, options) {\n done(navigator.deviceMemory || options.NOT_AVAILABLE)\n }\n var pixelRatioKey = function (done, options) {\n done(window.devicePixelRatio || options.NOT_AVAILABLE)\n }\n var screenResolutionKey = function (done, options) {\n done(getScreenResolution(options))\n }\n var getScreenResolution = function (options) {\n var resolution = [window.screen.width, window.screen.height]\n if (options.screen.detectScreenOrientation) {\n resolution.sort().reverse()\n }\n return resolution\n }\n var availableScreenResolutionKey = function (done, options) {\n done(getAvailableScreenResolution(options))\n }\n var getAvailableScreenResolution = function (options) {\n if (window.screen.availWidth && window.screen.availHeight) {\n var available = [window.screen.availHeight, window.screen.availWidth]\n if (options.screen.detectScreenOrientation) {\n available.sort().reverse()\n }\n return available\n }\n // headless browsers\n return options.NOT_AVAILABLE\n }\n var timezoneOffset = function (done) {\n done(new Date().getTimezoneOffset())\n }\n var timezone = function (done, options) {\n if (window.Intl && window.Intl.DateTimeFormat) {\n done(new window.Intl.DateTimeFormat().resolvedOptions().timeZone)\n return\n }\n done(options.NOT_AVAILABLE)\n }\n var sessionStorageKey = function (done, options) {\n done(hasSessionStorage(options))\n }\n var localStorageKey = function (done, options) {\n done(hasLocalStorage(options))\n }\n var indexedDbKey = function (done, options) {\n done(hasIndexedDB(options))\n }\n var addBehaviorKey = function (done) {\n // body might not be defined at this point or removed programmatically\n done(!!(document.body && document.body.addBehavior))\n }\n var openDatabaseKey = function (done) {\n done(!!window.openDatabase)\n }\n var cpuClassKey = function (done, options) {\n done(getNavigatorCpuClass(options))\n }\n var platformKey = function (done, options) {\n done(getNavigatorPlatform(options))\n }\n var doNotTrackKey = function (done, options) {\n done(getDoNotTrack(options))\n }\n var canvasKey = function (done, options) {\n if (isCanvasSupported()) {\n done(getCanvasFp(options))\n return\n }\n done(options.NOT_AVAILABLE)\n }\n var webglKey = function (done, options) {\n if (isWebGlSupported()) {\n done(getWebglFp())\n return\n }\n done(options.NOT_AVAILABLE)\n }\n var webglVendorAndRendererKey = function (done) {\n if (isWebGlSupported()) {\n done(getWebglVendorAndRenderer())\n return\n }\n done()\n }\n var adBlockKey = function (done) {\n done(getAdBlock())\n }\n var hasLiedLanguagesKey = function (done) {\n done(getHasLiedLanguages())\n }\n var hasLiedResolutionKey = function (done) {\n done(getHasLiedResolution())\n }\n var hasLiedOsKey = function (done) {\n done(getHasLiedOs())\n }\n var hasLiedBrowserKey = function (done) {\n done(getHasLiedBrowser())\n }\n // flash fonts (will increase fingerprinting time 20X to ~ 130-150ms)\n var flashFontsKey = function (done, options) {\n // we do flash if swfobject is loaded\n if (!hasSwfObjectLoaded()) {\n return done('swf object not loaded')\n }\n if (!hasMinFlashInstalled()) {\n return done('flash not installed')\n }\n if (!options.fonts.swfPath) {\n return done('missing options.fonts.swfPath')\n }\n loadSwfAndDetectFonts(function (fonts) {\n done(fonts)\n }, options)\n }\n // kudos to http://www.lalit.org/lab/javascript-css-font-detect/\n var jsFontsKey = function (done, options) {\n // a font will be compared against all the three default fonts.\n // and if it doesn't match all 3 then that font is not available.\n var baseFonts = ['monospace', 'sans-serif', 'serif']\n\n var fontList = [\n 'Andale Mono', 'Arial', 'Arial Black', 'Arial Hebrew', 'Arial MT', 'Arial Narrow', 'Arial Rounded MT Bold', 'Arial Unicode MS',\n 'Bitstream Vera Sans Mono', 'Book Antiqua', 'Bookman Old Style',\n 'Calibri', 'Cambria', 'Cambria Math', 'Century', 'Century Gothic', 'Century Schoolbook', 'Comic Sans', 'Comic Sans MS', 'Consolas', 'Courier', 'Courier New',\n 'Geneva', 'Georgia',\n 'Helvetica', 'Helvetica Neue',\n 'Impact',\n 'Lucida Bright', 'Lucida Calligraphy', 'Lucida Console', 'Lucida Fax', 'LUCIDA GRANDE', 'Lucida Handwriting', 'Lucida Sans', 'Lucida Sans Typewriter', 'Lucida Sans Unicode',\n 'Microsoft Sans Serif', 'Monaco', 'Monotype Corsiva', 'MS Gothic', 'MS Outlook', 'MS PGothic', 'MS Reference Sans Serif', 'MS Sans Serif', 'MS Serif', 'MYRIAD', 'MYRIAD PRO',\n 'Palatino', 'Palatino Linotype',\n 'Segoe Print', 'Segoe Script', 'Segoe UI', 'Segoe UI Light', 'Segoe UI Semibold', 'Segoe UI Symbol',\n 'Tahoma', 'Times', 'Times New Roman', 'Times New Roman PS', 'Trebuchet MS',\n 'Verdana', 'Wingdings', 'Wingdings 2', 'Wingdings 3'\n ]\n\n if (options.fonts.extendedJsFonts) {\n var extendedFontList = [\n 'Abadi MT Condensed Light', 'Academy Engraved LET', 'ADOBE CASLON PRO', 'Adobe Garamond', 'ADOBE GARAMOND PRO', 'Agency FB', 'Aharoni', 'Albertus Extra Bold', 'Albertus Medium', 'Algerian', 'Amazone BT', 'American Typewriter',\n 'American Typewriter Condensed', 'AmerType Md BT', 'Andalus', 'Angsana New', 'AngsanaUPC', 'Antique Olive', 'Aparajita', 'Apple Chancery', 'Apple Color Emoji', 'Apple SD Gothic Neo', 'Arabic Typesetting', 'ARCHER',\n 'ARNO PRO', 'Arrus BT', 'Aurora Cn BT', 'AvantGarde Bk BT', 'AvantGarde Md BT', 'AVENIR', 'Ayuthaya', 'Bandy', 'Bangla Sangam MN', 'Bank Gothic', 'BankGothic Md BT', 'Baskerville',\n 'Baskerville Old Face', 'Batang', 'BatangChe', 'Bauer Bodoni', 'Bauhaus 93', 'Bazooka', 'Bell MT', 'Bembo', 'Benguiat Bk BT', 'Berlin Sans FB', 'Berlin Sans FB Demi', 'Bernard MT Condensed', 'BernhardFashion BT', 'BernhardMod BT', 'Big Caslon', 'BinnerD',\n 'Blackadder ITC', 'BlairMdITC TT', 'Bodoni 72', 'Bodoni 72 Oldstyle', 'Bodoni 72 Smallcaps', 'Bodoni MT', 'Bodoni MT Black', 'Bodoni MT Condensed', 'Bodoni MT Poster Compressed',\n 'Bookshelf Symbol 7', 'Boulder', 'Bradley Hand', 'Bradley Hand ITC', 'Bremen Bd BT', 'Britannic Bold', 'Broadway', 'Browallia New', 'BrowalliaUPC', 'Brush Script MT', 'Californian FB', 'Calisto MT', 'Calligrapher', 'Candara',\n 'CaslonOpnface BT', 'Castellar', 'Centaur', 'Cezanne', 'CG Omega', 'CG Times', 'Chalkboard', 'Chalkboard SE', 'Chalkduster', 'Charlesworth', 'Charter Bd BT', 'Charter BT', 'Chaucer',\n 'ChelthmITC Bk BT', 'Chiller', 'Clarendon', 'Clarendon Condensed', 'CloisterBlack BT', 'Cochin', 'Colonna MT', 'Constantia', 'Cooper Black', 'Copperplate', 'Copperplate Gothic', 'Copperplate Gothic Bold',\n 'Copperplate Gothic Light', 'CopperplGoth Bd BT', 'Corbel', 'Cordia New', 'CordiaUPC', 'Cornerstone', 'Coronet', 'Cuckoo', 'Curlz MT', 'DaunPenh', 'Dauphin', 'David', 'DB LCD Temp', 'DELICIOUS', 'Denmark',\n 'DFKai-SB', 'Didot', 'DilleniaUPC', 'DIN', 'DokChampa', 'Dotum', 'DotumChe', 'Ebrima', 'Edwardian Script ITC', 'Elephant', 'English 111 Vivace BT', 'Engravers MT', 'EngraversGothic BT', 'Eras Bold ITC', 'Eras Demi ITC', 'Eras Light ITC', 'Eras Medium ITC',\n 'EucrosiaUPC', 'Euphemia', 'Euphemia UCAS', 'EUROSTILE', 'Exotc350 Bd BT', 'FangSong', 'Felix Titling', 'Fixedsys', 'FONTIN', 'Footlight MT Light', 'Forte',\n 'FrankRuehl', 'Fransiscan', 'Freefrm721 Blk BT', 'FreesiaUPC', 'Freestyle Script', 'French Script MT', 'FrnkGothITC Bk BT', 'Fruitger', 'FRUTIGER',\n 'Futura', 'Futura Bk BT', 'Futura Lt BT', 'Futura Md BT', 'Futura ZBlk BT', 'FuturaBlack BT', 'Gabriola', 'Galliard BT', 'Gautami', 'Geeza Pro', 'Geometr231 BT', 'Geometr231 Hv BT', 'Geometr231 Lt BT', 'GeoSlab 703 Lt BT',\n 'GeoSlab 703 XBd BT', 'Gigi', 'Gill Sans', 'Gill Sans MT', 'Gill Sans MT Condensed', 'Gill Sans MT Ext Condensed Bold', 'Gill Sans Ultra Bold', 'Gill Sans Ultra Bold Condensed', 'Gisha', 'Gloucester MT Extra Condensed', 'GOTHAM', 'GOTHAM BOLD',\n 'Goudy Old Style', 'Goudy Stout', 'GoudyHandtooled BT', 'GoudyOLSt BT', 'Gujarati Sangam MN', 'Gulim', 'GulimChe', 'Gungsuh', 'GungsuhChe', 'Gurmukhi MN', 'Haettenschweiler', 'Harlow Solid Italic', 'Harrington', 'Heather', 'Heiti SC', 'Heiti TC', 'HELV',\n 'Herald', 'High Tower Text', 'Hiragino Kaku Gothic ProN', 'Hiragino Mincho ProN', 'Hoefler Text', 'Humanst 521 Cn BT', 'Humanst521 BT', 'Humanst521 Lt BT', 'Imprint MT Shadow', 'Incised901 Bd BT', 'Incised901 BT',\n 'Incised901 Lt BT', 'INCONSOLATA', 'Informal Roman', 'Informal011 BT', 'INTERSTATE', 'IrisUPC', 'Iskoola Pota', 'JasmineUPC', 'Jazz LET', 'Jenson', 'Jester', 'Jokerman', 'Juice ITC', 'Kabel Bk BT', 'Kabel Ult BT', 'Kailasa', 'KaiTi', 'Kalinga', 'Kannada Sangam MN',\n 'Kartika', 'Kaufmann Bd BT', 'Kaufmann BT', 'Khmer UI', 'KodchiangUPC', 'Kokila', 'Korinna BT', 'Kristen ITC', 'Krungthep', 'Kunstler Script', 'Lao UI', 'Latha', 'Leelawadee', 'Letter Gothic', 'Levenim MT', 'LilyUPC', 'Lithograph', 'Lithograph Light', 'Long Island',\n 'Lydian BT', 'Magneto', 'Maiandra GD', 'Malayalam Sangam MN', 'Malgun Gothic',\n 'Mangal', 'Marigold', 'Marion', 'Marker Felt', 'Market', 'Marlett', 'Matisse ITC', 'Matura MT Script Capitals', 'Meiryo', 'Meiryo UI', 'Microsoft Himalaya', 'Microsoft JhengHei', 'Microsoft New Tai Lue', 'Microsoft PhagsPa', 'Microsoft Tai Le',\n 'Microsoft Uighur', 'Microsoft YaHei', 'Microsoft Yi Baiti', 'MingLiU', 'MingLiU_HKSCS', 'MingLiU_HKSCS-ExtB', 'MingLiU-ExtB', 'Minion', 'Minion Pro', 'Miriam', 'Miriam Fixed', 'Mistral', 'Modern', 'Modern No. 20', 'Mona Lisa Solid ITC TT', 'Mongolian Baiti',\n 'MONO', 'MoolBoran', 'Mrs Eaves', 'MS LineDraw', 'MS Mincho', 'MS PMincho', 'MS Reference Specialty', 'MS UI Gothic', 'MT Extra', 'MUSEO', 'MV Boli',\n 'Nadeem', 'Narkisim', 'NEVIS', 'News Gothic', 'News GothicMT', 'NewsGoth BT', 'Niagara Engraved', 'Niagara Solid', 'Noteworthy', 'NSimSun', 'Nyala', 'OCR A Extended', 'Old Century', 'Old English Text MT', 'Onyx', 'Onyx BT', 'OPTIMA', 'Oriya Sangam MN',\n 'OSAKA', 'OzHandicraft BT', 'Palace Script MT', 'Papyrus', 'Parchment', 'Party LET', 'Pegasus', 'Perpetua', 'Perpetua Titling MT', 'PetitaBold', 'Pickwick', 'Plantagenet Cherokee', 'Playbill', 'PMingLiU', 'PMingLiU-ExtB',\n 'Poor Richard', 'Poster', 'PosterBodoni BT', 'PRINCETOWN LET', 'Pristina', 'PTBarnum BT', 'Pythagoras', 'Raavi', 'Rage Italic', 'Ravie', 'Ribbon131 Bd BT', 'Rockwell', 'Rockwell Condensed', 'Rockwell Extra Bold', 'Rod', 'Roman', 'Sakkal Majalla',\n 'Santa Fe LET', 'Savoye LET', 'Sceptre', 'Script', 'Script MT Bold', 'SCRIPTINA', 'Serifa', 'Serifa BT', 'Serifa Th BT', 'ShelleyVolante BT', 'Sherwood',\n 'Shonar Bangla', 'Showcard Gothic', 'Shruti', 'Signboard', 'SILKSCREEN', 'SimHei', 'Simplified Arabic', 'Simplified Arabic Fixed', 'SimSun', 'SimSun-ExtB', 'Sinhala Sangam MN', 'Sketch Rockwell', 'Skia', 'Small Fonts', 'Snap ITC', 'Snell Roundhand', 'Socket',\n 'Souvenir Lt BT', 'Staccato222 BT', 'Steamer', 'Stencil', 'Storybook', 'Styllo', 'Subway', 'Swis721 BlkEx BT', 'Swiss911 XCm BT', 'Sylfaen', 'Synchro LET', 'System', 'Tamil Sangam MN', 'Technical', 'Teletype', 'Telugu Sangam MN', 'Tempus Sans ITC',\n 'Terminal', 'Thonburi', 'Traditional Arabic', 'Trajan', 'TRAJAN PRO', 'Tristan', 'Tubular', 'Tunga', 'Tw Cen MT', 'Tw Cen MT Condensed', 'Tw Cen MT Condensed Extra Bold',\n 'TypoUpright BT', 'Unicorn', 'Univers', 'Univers CE 55 Medium', 'Univers Condensed', 'Utsaah', 'Vagabond', 'Vani', 'Vijaya', 'Viner Hand ITC', 'VisualUI', 'Vivaldi', 'Vladimir Script', 'Vrinda', 'Westminster', 'WHITNEY', 'Wide Latin',\n 'ZapfEllipt BT', 'ZapfHumnst BT', 'ZapfHumnst Dm BT', 'Zapfino', 'Zurich BlkEx BT', 'Zurich Ex BT', 'ZWAdobeF']\n fontList = fontList.concat(extendedFontList)\n }\n\n fontList = fontList.concat(options.fonts.userDefinedFonts)\n\n // remove duplicate fonts\n fontList = fontList.filter(function (font, position) {\n return fontList.indexOf(font) === position\n })\n\n // we use m or w because these two characters take up the maximum width.\n // And we use a LLi so that the same matching fonts can get separated\n var testString = 'mmmmmmmmmmlli'\n\n // we test using 72px font size, we may use any size. I guess larger the better.\n var testSize = '72px'\n\n var h = document.getElementsByTagName('body')[0]\n\n // div to load spans for the base fonts\n var baseFontsDiv = document.createElement('div')\n\n // div to load spans for the fonts to detect\n var fontsDiv = document.createElement('div')\n\n var defaultWidth = {}\n var defaultHeight = {}\n\n // creates a span where the fonts will be loaded\n var createSpan = function () {\n var s = document.createElement('span')\n /*\n * We need this css as in some weird browser this\n * span elements shows up for a microSec which creates a\n * bad user experience\n */\n s.style.position = 'absolute'\n s.style.left = '-9999px'\n s.style.fontSize = testSize\n\n // css font reset to reset external styles\n s.style.fontStyle = 'normal'\n s.style.fontWeight = 'normal'\n s.style.letterSpacing = 'normal'\n s.style.lineBreak = 'auto'\n s.style.lineHeight = 'normal'\n s.style.textTransform = 'none'\n s.style.textAlign = 'left'\n s.style.textDecoration = 'none'\n s.style.textShadow = 'none'\n s.style.whiteSpace = 'normal'\n s.style.wordBreak = 'normal'\n s.style.wordSpacing = 'normal'\n\n s.innerHTML = testString\n return s\n }\n\n // creates a span and load the font to detect and a base font for fallback\n var createSpanWithFonts = function (fontToDetect, baseFont) {\n var s = createSpan()\n s.style.fontFamily = \"'\" + fontToDetect + \"',\" + baseFont\n return s\n }\n\n // creates spans for the base fonts and adds them to baseFontsDiv\n var initializeBaseFontsSpans = function () {\n var spans = []\n for (var index = 0, length = baseFonts.length; index < length; index++) {\n var s = createSpan()\n s.style.fontFamily = baseFonts[index]\n baseFontsDiv.appendChild(s)\n spans.push(s)\n }\n return spans\n }\n\n // creates spans for the fonts to detect and adds them to fontsDiv\n var initializeFontsSpans = function () {\n var spans = {}\n for (var i = 0, l = fontList.length; i < l; i++) {\n var fontSpans = []\n for (var j = 0, numDefaultFonts = baseFonts.length; j < numDefaultFonts; j++) {\n var s = createSpanWithFonts(fontList[i], baseFonts[j])\n fontsDiv.appendChild(s)\n fontSpans.push(s)\n }\n spans[fontList[i]] = fontSpans // Stores {fontName : [spans for that font]}\n }\n return spans\n }\n\n // checks if a font is available\n var isFontAvailable = function (fontSpans) {\n var detected = false\n for (var i = 0; i < baseFonts.length; i++) {\n detected = (fontSpans[i].offsetWidth !== defaultWidth[baseFonts[i]] || fontSpans[i].offsetHeight !== defaultHeight[baseFonts[i]])\n if (detected) {\n return detected\n }\n }\n return detected\n }\n\n // create spans for base fonts\n var baseFontsSpans = initializeBaseFontsSpans()\n\n // add the spans to the DOM\n h.appendChild(baseFontsDiv)\n\n // get the default width for the three base fonts\n for (var index = 0, length = baseFonts.length; index < length; index++) {\n defaultWidth[baseFonts[index]] = baseFontsSpans[index].offsetWidth // width for the default font\n defaultHeight[baseFonts[index]] = baseFontsSpans[index].offsetHeight // height for the default font\n }\n\n // create spans for fonts to detect\n var fontsSpans = initializeFontsSpans()\n\n // add all the spans to the DOM\n h.appendChild(fontsDiv)\n\n // check available fonts\n var available = []\n for (var i = 0, l = fontList.length; i < l; i++) {\n if (isFontAvailable(fontsSpans[fontList[i]])) {\n available.push(fontList[i])\n }\n }\n\n // remove spans from DOM\n h.removeChild(fontsDiv)\n h.removeChild(baseFontsDiv)\n done(available)\n }\n var pluginsComponent = function (done, options) {\n if (isIE()) {\n if (!options.plugins.excludeIE) {\n done(getIEPlugins(options))\n } else {\n done(options.EXCLUDED)\n }\n } else {\n done(getRegularPlugins(options))\n }\n }\n var getRegularPlugins = function (options) {\n if (navigator.plugins == null) {\n return options.NOT_AVAILABLE\n }\n\n var plugins = []\n // plugins isn't defined in Node envs.\n for (var i = 0, l = navigator.plugins.length; i < l; i++) {\n if (navigator.plugins[i]) { plugins.push(navigator.plugins[i]) }\n }\n\n // sorting plugins only for those user agents, that we know randomize the plugins\n // every time we try to enumerate them\n if (pluginsShouldBeSorted(options)) {\n plugins = plugins.sort(function (a, b) {\n if (a.name > b.name) { return 1 }\n if (a.name < b.name) { return -1 }\n return 0\n })\n }\n return map(plugins, function (p) {\n var mimeTypes = map(p, function (mt) {\n return [mt.type, mt.suffixes]\n })\n return [p.name, p.description, mimeTypes]\n })\n }\n var getIEPlugins = function (options) {\n var result = []\n if ((Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(window, 'ActiveXObject')) || ('ActiveXObject' in window)) {\n var names = [\n 'AcroPDF.PDF', // Adobe PDF reader 7+\n 'Adodb.Stream',\n 'AgControl.AgControl', // Silverlight\n 'DevalVRXCtrl.DevalVRXCtrl.1',\n 'MacromediaFlashPaper.MacromediaFlashPaper',\n 'Msxml2.DOMDocument',\n 'Msxml2.XMLHTTP',\n 'PDF.PdfCtrl', // Adobe PDF reader 6 and earlier, brrr\n 'QuickTime.QuickTime', // QuickTime\n 'QuickTimeCheckObject.QuickTimeCheck.1',\n 'RealPlayer',\n 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)',\n 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)',\n 'Scripting.Dictionary',\n 'SWCtl.SWCtl', // ShockWave player\n 'Shell.UIHelper',\n 'ShockwaveFlash.ShockwaveFlash', // flash plugin\n 'Skype.Detection',\n 'TDCCtl.TDCCtl',\n 'WMPlayer.OCX', // Windows media player\n 'rmocx.RealPlayer G2 Control',\n 'rmocx.RealPlayer G2 Control.1'\n ]\n // starting to detect plugins in IE\n result = map(names, function (name) {\n try {\n // eslint-disable-next-line no-new\n new window.ActiveXObject(name)\n return name\n } catch (e) {\n return options.ERROR\n }\n })\n } else {\n result.push(options.NOT_AVAILABLE)\n }\n if (navigator.plugins) {\n result = result.concat(getRegularPlugins(options))\n }\n return result\n }\n var pluginsShouldBeSorted = function (options) {\n var should = false\n for (var i = 0, l = options.plugins.sortPluginsFor.length; i < l; i++) {\n var re = options.plugins.sortPluginsFor[i]\n if (navigator.userAgent.match(re)) {\n should = true\n break\n }\n }\n return should\n }\n var touchSupportKey = function (done) {\n done(getTouchSupport())\n }\n var hardwareConcurrencyKey = function (done, options) {\n done(getHardwareConcurrency(options))\n }\n var hasSessionStorage = function (options) {\n try {\n return !!window.sessionStorage\n } catch (e) {\n return options.ERROR // SecurityError when referencing it means it exists\n }\n }\n\n // https://bugzilla.mozilla.org/show_bug.cgi?id=781447\n var hasLocalStorage = function (options) {\n try {\n return !!window.localStorage\n } catch (e) {\n return options.ERROR // SecurityError when referencing it means it exists\n }\n }\n var hasIndexedDB = function (options) {\n try {\n return !!window.indexedDB\n } catch (e) {\n return options.ERROR // SecurityError when referencing it means it exists\n }\n }\n var getHardwareConcurrency = function (options) {\n if (navigator.hardwareConcurrency) {\n return navigator.hardwareConcurrency\n }\n return options.NOT_AVAILABLE\n }\n var getNavigatorCpuClass = function (options) {\n return navigator.cpuClass || options.NOT_AVAILABLE\n }\n var getNavigatorPlatform = function (options) {\n if (navigator.platform) {\n return navigator.platform\n } else {\n return options.NOT_AVAILABLE\n }\n }\n var getDoNotTrack = function (options) {\n if (navigator.doNotTrack) {\n return navigator.doNotTrack\n } else if (navigator.msDoNotTrack) {\n return navigator.msDoNotTrack\n } else if (window.doNotTrack) {\n return window.doNotTrack\n } else {\n return options.NOT_AVAILABLE\n }\n }\n // This is a crude and primitive touch screen detection.\n // It's not possible to currently reliably detect the availability of a touch screen\n // with a JS, without actually subscribing to a touch event.\n // http://www.stucox.com/blog/you-cant-detect-a-touchscreen/\n // https://github.com/Modernizr/Modernizr/issues/548\n // method returns an array of 3 values:\n // maxTouchPoints, the success or failure of creating a TouchEvent,\n // and the availability of the 'ontouchstart' property\n\n var getTouchSupport = function () {\n var maxTouchPoints = 0\n var touchEvent\n if (typeof navigator.maxTouchPoints !== 'undefined') {\n maxTouchPoints = navigator.maxTouchPoints\n } else if (typeof navigator.msMaxTouchPoints !== 'undefined') {\n maxTouchPoints = navigator.msMaxTouchPoints\n }\n try {\n document.createEvent('TouchEvent')\n touchEvent = true\n } catch (_) {\n touchEvent = false\n }\n var touchStart = 'ontouchstart' in window\n return [maxTouchPoints, touchEvent, touchStart]\n }\n // https://www.browserleaks.com/canvas#how-does-it-work\n\n var getCanvasFp = function (options) {\n var result = []\n // Very simple now, need to make it more complex (geo shapes etc)\n var canvas = document.createElement('canvas')\n canvas.width = 2000\n canvas.height = 200\n canvas.style.display = 'inline'\n var ctx = canvas.getContext('2d')\n // detect browser support of canvas winding\n // http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/\n // https://github.com/Modernizr/Modernizr/blob/master/feature-detects/canvas/winding.js\n ctx.rect(0, 0, 10, 10)\n ctx.rect(2, 2, 6, 6)\n result.push('canvas winding:' + ((ctx.isPointInPath(5, 5, 'evenodd') === false) ? 'yes' : 'no'))\n\n ctx.textBaseline = 'alphabetic'\n ctx.fillStyle = '#f60'\n ctx.fillRect(125, 1, 62, 20)\n ctx.fillStyle = '#069'\n // https://github.com/Valve/fingerprintjs2/issues/66\n if (options.dontUseFakeFontInCanvas) {\n ctx.font = '11pt Arial'\n } else {\n ctx.font = '11pt no-real-font-123'\n }\n ctx.fillText('Cwm fjordbank glyphs vext quiz, \\ud83d\\ude03', 2, 15)\n ctx.fillStyle = 'rgba(102, 204, 0, 0.2)'\n ctx.font = '18pt Arial'\n ctx.fillText('Cwm fjordbank glyphs vext quiz, \\ud83d\\ude03', 4, 45)\n\n // canvas blending\n // http://blogs.adobe.com/webplatform/2013/01/28/blending-features-in-canvas/\n // http://jsfiddle.net/NDYV8/16/\n ctx.globalCompositeOperation = 'multiply'\n ctx.fillStyle = 'rgb(255,0,255)'\n ctx.beginPath()\n ctx.arc(50, 50, 50, 0, Math.PI * 2, true)\n ctx.closePath()\n ctx.fill()\n ctx.fillStyle = 'rgb(0,255,255)'\n ctx.beginPath()\n ctx.arc(100, 50, 50, 0, Math.PI * 2, true)\n ctx.closePath()\n ctx.fill()\n ctx.fillStyle = 'rgb(255,255,0)'\n ctx.beginPath()\n ctx.arc(75, 100, 50, 0, Math.PI * 2, true)\n ctx.closePath()\n ctx.fill()\n ctx.fillStyle = 'rgb(255,0,255)'\n // canvas winding\n // http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/\n // http://jsfiddle.net/NDYV8/19/\n ctx.arc(75, 75, 75, 0, Math.PI * 2, true)\n ctx.arc(75, 75, 25, 0, Math.PI * 2, true)\n ctx.fill('evenodd')\n\n if (canvas.toDataURL) { result.push('canvas fp:' + canvas.toDataURL()) }\n return result\n }\n var getWebglFp = function () {\n var gl\n var fa2s = function (fa) {\n gl.clearColor(0.0, 0.0, 0.0, 1.0)\n gl.enable(gl.DEPTH_TEST)\n gl.depthFunc(gl.LEQUAL)\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)\n return '[' + fa[0] + ', ' + fa[1] + ']'\n }\n var maxAnisotropy = function (gl) {\n var ext = gl.getExtension('EXT_texture_filter_anisotropic') || gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic') || gl.getExtension('MOZ_EXT_texture_filter_anisotropic')\n if (ext) {\n var anisotropy = gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT)\n if (anisotropy === 0) {\n anisotropy = 2\n }\n return anisotropy\n } else {\n return null\n }\n }\n\n gl = getWebglCanvas()\n if (!gl) { return null }\n // WebGL fingerprinting is a combination of techniques, found in MaxMind antifraud script & Augur fingerprinting.\n // First it draws a gradient object with shaders and convers the image to the Base64 string.\n // Then it enumerates all WebGL extensions & capabilities and appends them to the Base64 string, resulting in a huge WebGL string, potentially very unique on each device\n // Since iOS supports webgl starting from version 8.1 and 8.1 runs on several graphics chips, the results may be different across ios devices, but we need to verify it.\n var result = []\n var vShaderTemplate = 'attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}'\n var fShaderTemplate = 'precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}'\n var vertexPosBuffer = gl.createBuffer()\n gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer)\n var vertices = new Float32Array([-0.2, -0.9, 0, 0.4, -0.26, 0, 0, 0.732134444, 0])\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW)\n vertexPosBuffer.itemSize = 3\n vertexPosBuffer.numItems = 3\n var program = gl.createProgram()\n var vshader = gl.createShader(gl.VERTEX_SHADER)\n gl.shaderSource(vshader, vShaderTemplate)\n gl.compileShader(vshader)\n var fshader = gl.createShader(gl.FRAGMENT_SHADER)\n gl.shaderSource(fshader, fShaderTemplate)\n gl.compileShader(fshader)\n gl.attachShader(program, vshader)\n gl.attachShader(program, fshader)\n gl.linkProgram(program)\n gl.useProgram(program)\n program.vertexPosAttrib = gl.getAttribLocation(program, 'attrVertex')\n program.offsetUniform = gl.getUniformLocation(program, 'uniformOffset')\n gl.enableVertexAttribArray(program.vertexPosArray)\n gl.vertexAttribPointer(program.vertexPosAttrib, vertexPosBuffer.itemSize, gl.FLOAT, !1, 0, 0)\n gl.uniform2f(program.offsetUniform, 1, 1)\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertexPosBuffer.numItems)\n try {\n result.push(gl.canvas.toDataURL())\n } catch (e) {\n /* .toDataURL may be absent or broken (blocked by extension) */\n }\n result.push('extensions:' + (gl.getSupportedExtensions() || []).join(';'))\n result.push('webgl aliased line width range:' + fa2s(gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE)))\n result.push('webgl aliased point size range:' + fa2s(gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE)))\n result.push('webgl alpha bits:' + gl.getParameter(gl.ALPHA_BITS))\n result.push('webgl antialiasing:' + (gl.getContextAttributes().antialias ? 'yes' : 'no'))\n result.push('webgl blue bits:' + gl.getParameter(gl.BLUE_BITS))\n result.push('webgl depth bits:' + gl.getParameter(gl.DEPTH_BITS))\n result.push('webgl green bits:' + gl.getParameter(gl.GREEN_BITS))\n result.push('webgl max anisotropy:' + maxAnisotropy(gl))\n result.push('webgl max combined texture image units:' + gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS))\n result.push('webgl max cube map texture size:' + gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE))\n result.push('webgl max fragment uniform vectors:' + gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS))\n result.push('webgl max render buffer size:' + gl.getParameter(gl.MAX_RENDERBUFFER_SIZE))\n result.push('webgl max texture image units:' + gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS))\n result.push('webgl max texture size:' + gl.getParameter(gl.MAX_TEXTURE_SIZE))\n result.push('webgl max varying vectors:' + gl.getParameter(gl.MAX_VARYING_VECTORS))\n result.push('webgl max vertex attribs:' + gl.getParameter(gl.MAX_VERTEX_ATTRIBS))\n result.push('webgl max vertex texture image units:' + gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS))\n result.push('webgl max vertex uniform vectors:' + gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS))\n result.push('webgl max viewport dims:' + fa2s(gl.getParameter(gl.MAX_VIEWPORT_DIMS)))\n result.push('webgl red bits:' + gl.getParameter(gl.RED_BITS))\n result.push('webgl renderer:' + gl.getParameter(gl.RENDERER))\n result.push('webgl shading language version:' + gl.getParameter(gl.SHADING_LANGUAGE_VERSION))\n result.push('webgl stencil bits:' + gl.getParameter(gl.STENCIL_BITS))\n result.push('webgl vendor:' + gl.getParameter(gl.VENDOR))\n result.push('webgl version:' + gl.getParameter(gl.VERSION))\n\n try {\n // Add the unmasked vendor and unmasked renderer if the debug_renderer_info extension is available\n var extensionDebugRendererInfo = gl.getExtension('WEBGL_debug_renderer_info')\n if (extensionDebugRendererInfo) {\n result.push('webgl unmasked vendor:' + gl.getParameter(extensionDebugRendererInfo.UNMASKED_VENDOR_WEBGL))\n result.push('webgl unmasked renderer:' + gl.getParameter(extensionDebugRendererInfo.UNMASKED_RENDERER_WEBGL))\n }\n } catch (e) { /* squelch */ }\n\n if (!gl.getShaderPrecisionFormat) {\n return result\n }\n\n each(['FLOAT', 'INT'], function (numType) {\n each(['VERTEX', 'FRAGMENT'], function (shader) {\n each(['HIGH', 'MEDIUM', 'LOW'], function (numSize) {\n each(['precision', 'rangeMin', 'rangeMax'], function (key) {\n var format = gl.getShaderPrecisionFormat(gl[shader + '_SHADER'], gl[numSize + '_' + numType])[key]\n if (key !== 'precision') {\n key = 'precision ' + key\n }\n var line = ['webgl ', shader.toLowerCase(), ' shader ', numSize.toLowerCase(), ' ', numType.toLowerCase(), ' ', key, ':', format].join('')\n result.push(line)\n })\n })\n })\n })\n return result\n }\n var getWebglVendorAndRenderer = function () {\n /* This a subset of the WebGL fingerprint with a lot of entropy, while being reasonably browser-independent */\n try {\n var glContext = getWebglCanvas()\n var extensionDebugRendererInfo = glContext.getExtension('WEBGL_debug_renderer_info')\n return glContext.getParameter(extensionDebugRendererInfo.UNMASKED_VENDOR_WEBGL) + '~' + glContext.getParameter(extensionDebugRendererInfo.UNMASKED_RENDERER_WEBGL)\n } catch (e) {\n return null\n }\n }\n var getAdBlock = function () {\n var ads = document.createElement('div')\n ads.innerHTML = ' '\n ads.className = 'adsbox'\n var result = false\n try {\n // body may not exist, that's why we need try/catch\n document.body.appendChild(ads)\n result = document.getElementsByClassName('adsbox')[0].offsetHeight === 0\n document.body.removeChild(ads)\n } catch (e) {\n result = false\n }\n return result\n }\n var getHasLiedLanguages = function () {\n // We check if navigator.language is equal to the first language of navigator.languages\n // navigator.languages is undefined on IE11 (and potentially older IEs)\n if (typeof navigator.languages !== 'undefined') {\n try {\n var firstLanguages = navigator.languages[0].substr(0, 2)\n if (firstLanguages !== navigator.language.substr(0, 2)) {\n return true\n }\n } catch (err) {\n return true\n }\n }\n return false\n }\n var getHasLiedResolution = function () {\n return window.screen.width < window.screen.availWidth || window.screen.height < window.screen.availHeight\n }\n var getHasLiedOs = function () {\n var userAgent = navigator.userAgent.toLowerCase()\n var oscpu = navigator.oscpu\n var platform = navigator.platform.toLowerCase()\n var os\n // We extract the OS from the user agent (respect the order of the if else if statement)\n if (userAgent.indexOf('windows phone') >= 0) {\n os = 'Windows Phone'\n } else if (userAgent.indexOf('win') >= 0) {\n os = 'Windows'\n } else if (userAgent.indexOf('android') >= 0) {\n os = 'Android'\n } else if (userAgent.indexOf('linux') >= 0 || userAgent.indexOf('cros') >= 0) {\n os = 'Linux'\n } else if (userAgent.indexOf('iphone') >= 0 || userAgent.indexOf('ipad') >= 0) {\n os = 'iOS'\n } else if (userAgent.indexOf('mac') >= 0) {\n os = 'Mac'\n } else {\n os = 'Other'\n }\n // We detect if the person uses a mobile device\n var mobileDevice = (('ontouchstart' in window) ||\n (navigator.maxTouchPoints > 0) ||\n (navigator.msMaxTouchPoints > 0))\n\n if (mobileDevice && os !== 'Windows Phone' && os !== 'Android' && os !== 'iOS' && os !== 'Other') {\n return true\n }\n\n // We compare oscpu with the OS extracted from the UA\n if (typeof oscpu !== 'undefined') {\n oscpu = oscpu.toLowerCase()\n if (oscpu.indexOf('win') >= 0 && os !== 'Windows' && os !== 'Windows Phone') {\n return true\n } else if (oscpu.indexOf('linux') >= 0 && os !== 'Linux' && os !== 'Android') {\n return true\n } else if (oscpu.indexOf('mac') >= 0 && os !== 'Mac' && os !== 'iOS') {\n return true\n } else if ((oscpu.indexOf('win') === -1 && oscpu.indexOf('linux') === -1 && oscpu.indexOf('mac') === -1) !== (os === 'Other')) {\n return true\n }\n }\n\n // We compare platform with the OS extracted from the UA\n if (platform.indexOf('win') >= 0 && os !== 'Windows' && os !== 'Windows Phone') {\n return true\n } else if ((platform.indexOf('linux') >= 0 || platform.indexOf('android') >= 0 || platform.indexOf('pike') >= 0) && os !== 'Linux' && os !== 'Android') {\n return true\n } else if ((platform.indexOf('mac') >= 0 || platform.indexOf('ipad') >= 0 || platform.indexOf('ipod') >= 0 || platform.indexOf('iphone') >= 0) && os !== 'Mac' && os !== 'iOS') {\n return true\n } else {\n var platformIsOther = platform.indexOf('win') < 0 &&\n platform.indexOf('linux') < 0 &&\n platform.indexOf('mac') < 0 &&\n platform.indexOf('iphone') < 0 &&\n platform.indexOf('ipad') < 0\n if (platformIsOther !== (os === 'Other')) {\n return true\n }\n }\n\n return typeof navigator.plugins === 'undefined' && os !== 'Windows' && os !== 'Windows Phone'\n }\n var getHasLiedBrowser = function () {\n var userAgent = navigator.userAgent.toLowerCase()\n var productSub = navigator.productSub\n\n // we extract the browser from the user agent (respect the order of the tests)\n var browser\n if (userAgent.indexOf('firefox') >= 0) {\n browser = 'Firefox'\n } else if (userAgent.indexOf('opera') >= 0 || userAgent.indexOf('opr') >= 0) {\n browser = 'Opera'\n } else if (userAgent.indexOf('chrome') >= 0) {\n browser = 'Chrome'\n } else if (userAgent.indexOf('safari') >= 0) {\n browser = 'Safari'\n } else if (userAgent.indexOf('trident') >= 0) {\n browser = 'Internet Explorer'\n } else {\n browser = 'Other'\n }\n\n if ((browser === 'Chrome' || browser === 'Safari' || browser === 'Opera') && productSub !== '20030107') {\n return true\n }\n\n // eslint-disable-next-line no-eval\n var tempRes = eval.toString().length\n if (tempRes === 37 && browser !== 'Safari' && browser !== 'Firefox' && browser !== 'Other') {\n return true\n } else if (tempRes === 39 && browser !== 'Internet Explorer' && browser !== 'Other') {\n return true\n } else if (tempRes === 33 && browser !== 'Chrome' && browser !== 'Opera' && browser !== 'Other') {\n return true\n }\n\n // We create an error to see how it is handled\n var errFirefox\n try {\n // eslint-disable-next-line no-throw-literal\n throw 'a'\n } catch (err) {\n try {\n err.toSource()\n errFirefox = true\n } catch (errOfErr) {\n errFirefox = false\n }\n }\n return errFirefox && browser !== 'Firefox' && browser !== 'Other'\n }\n var isCanvasSupported = function () {\n var elem = document.createElement('canvas')\n return !!(elem.getContext && elem.getContext('2d'))\n }\n var isWebGlSupported = function () {\n // code taken from Modernizr\n if (!isCanvasSupported()) {\n return false\n }\n\n var glContext = getWebglCanvas()\n return !!window.WebGLRenderingContext && !!glContext\n }\n var isIE = function () {\n if (navigator.appName === 'Microsoft Internet Explorer') {\n return true\n } else if (navigator.appName === 'Netscape' && /Trident/.test(navigator.userAgent)) { // IE 11\n return true\n }\n return false\n }\n var hasSwfObjectLoaded = function () {\n return typeof window.swfobject !== 'undefined'\n }\n var hasMinFlashInstalled = function () {\n return window.swfobject.hasFlashPlayerVersion('9.0.0')\n }\n var addFlashDivNode = function (options) {\n var node = document.createElement('div')\n node.setAttribute('id', options.fonts.swfContainerId)\n document.body.appendChild(node)\n }\n var loadSwfAndDetectFonts = function (done, options) {\n var hiddenCallback = '___fp_swf_loaded'\n window[hiddenCallback] = function (fonts) {\n done(fonts)\n }\n var id = options.fonts.swfContainerId\n addFlashDivNode()\n var flashvars = { onReady: hiddenCallback }\n var flashparams = { allowScriptAccess: 'always', menu: 'false' }\n window.swfobject.embedSWF(options.fonts.swfPath, id, '1', '1', '9.0.0', false, flashvars, flashparams, {})\n }\n var getWebglCanvas = function () {\n var canvas = document.createElement('canvas')\n var gl = null\n try {\n gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl')\n } catch (e) { /* squelch */ }\n if (!gl) { gl = null }\n return gl\n }\n\n var components = [\n { key: 'userAgent', getData: UserAgent },\n { key: 'webdriver', getData: webdriver },\n { key: 'language', getData: languageKey },\n { key: 'colorDepth', getData: colorDepthKey },\n { key: 'deviceMemory', getData: deviceMemoryKey },\n { key: 'pixelRatio', getData: pixelRatioKey },\n { key: 'hardwareConcurrency', getData: hardwareConcurrencyKey },\n { key: 'screenResolution', getData: screenResolutionKey },\n { key: 'availableScreenResolution', getData: availableScreenResolutionKey },\n { key: 'timezoneOffset', getData: timezoneOffset },\n { key: 'timezone', getData: timezone },\n { key: 'sessionStorage', getData: sessionStorageKey },\n { key: 'localStorage', getData: localStorageKey },\n { key: 'indexedDb', getData: indexedDbKey },\n { key: 'addBehavior', getData: addBehaviorKey },\n { key: 'openDatabase', getData: openDatabaseKey },\n { key: 'cpuClass', getData: cpuClassKey },\n { key: 'platform', getData: platformKey },\n { key: 'doNotTrack', getData: doNotTrackKey },\n { key: 'plugins', getData: pluginsComponent },\n { key: 'canvas', getData: canvasKey },\n { key: 'webgl', getData: webglKey },\n { key: 'webglVendorAndRenderer', getData: webglVendorAndRendererKey },\n { key: 'adBlock', getData: adBlockKey },\n { key: 'hasLiedLanguages', getData: hasLiedLanguagesKey },\n { key: 'hasLiedResolution', getData: hasLiedResolutionKey },\n { key: 'hasLiedOs', getData: hasLiedOsKey },\n { key: 'hasLiedBrowser', getData: hasLiedBrowserKey },\n { key: 'touchSupport', getData: touchSupportKey },\n { key: 'fonts', getData: jsFontsKey, pauseBefore: true },\n { key: 'fontsFlash', getData: flashFontsKey, pauseBefore: true },\n { key: 'audio', getData: audioKey },\n { key: 'enumerateDevices', getData: enumerateDevicesKey }\n ]\n\n var Fingerprint2 = function (options) {\n throw new Error(\"'new Fingerprint()' is deprecated, see https://github.com/Valve/fingerprintjs2#upgrade-guide-from-182-to-200\")\n }\n\n Fingerprint2.get = function (options, callback) {\n if (!callback) {\n callback = options\n options = {}\n } else if (!options) {\n options = {}\n }\n extendSoft(options, defaultOptions)\n options.components = options.extraComponents.concat(components)\n\n var keys = {\n data: [],\n addPreprocessedComponent: function (key, value) {\n if (typeof options.preprocessor === 'function') {\n value = options.preprocessor(key, value)\n }\n keys.data.push({ key: key, value: value })\n }\n }\n\n var i = -1\n var chainComponents = function (alreadyWaited) {\n i += 1\n if (i >= options.components.length) { // on finish\n callback(keys.data)\n return\n }\n var component = options.components[i]\n\n if (options.excludes[component.key]) {\n chainComponents(false) // skip\n return\n }\n\n if (!alreadyWaited && component.pauseBefore) {\n i -= 1\n setTimeout(function () {\n chainComponents(true)\n }, 1)\n return\n }\n\n try {\n component.getData(function (value) {\n keys.addPreprocessedComponent(component.key, value)\n chainComponents(false)\n }, options)\n } catch (error) {\n // main body error\n keys.addPreprocessedComponent(component.key, String(error))\n chainComponents(false)\n }\n }\n\n chainComponents(false)\n }\n\n Fingerprint2.getPromise = function (options) {\n return new Promise(function (resolve, reject) {\n Fingerprint2.get(options, resolve)\n })\n }\n\n Fingerprint2.getV18 = function (options, callback) {\n if (callback == null) {\n callback = options\n options = {}\n }\n return Fingerprint2.get(options, function (components) {\n var newComponents = []\n for (var i = 0; i < components.length; i++) {\n var component = components[i]\n if (component.value === (options.NOT_AVAILABLE || 'not available')) {\n newComponents.push({ key: component.key, value: 'unknown' })\n } else if (component.key === 'plugins') {\n newComponents.push({\n key: 'plugins',\n value: map(component.value, function (p) {\n var mimeTypes = map(p[2], function (mt) {\n if (mt.join) { return mt.join('~') }\n return mt\n }).join(',')\n return [p[0], p[1], mimeTypes].join('::')\n })\n })\n } else if (['canvas', 'webgl'].indexOf(component.key) !== -1) {\n newComponents.push({ key: component.key, value: component.value.join('~') })\n } else if (['sessionStorage', 'localStorage', 'indexedDb', 'addBehavior', 'openDatabase'].indexOf(component.key) !== -1) {\n if (component.value) {\n newComponents.push({ key: component.key, value: 1 })\n } else {\n // skip\n continue\n }\n } else {\n if (component.value) {\n newComponents.push(component.value.join ? { key: component.key, value: component.value.join(';') } : component)\n } else {\n newComponents.push({ key: component.key, value: component.value })\n }\n }\n }\n var murmur = x64hash128(map(newComponents, function (component) { return component.value }).join('~~~'), 31)\n callback(murmur, newComponents)\n })\n }\n\n Fingerprint2.x64hash128 = x64hash128\n Fingerprint2.VERSION = '2.1.0'\n return Fingerprint2\n})\n","module.exports = false;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\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 aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\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\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\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 = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.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 if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\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\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\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 nativeReplace.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","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.github.io/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","// `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 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","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\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","'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 $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","'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","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\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","'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","// `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","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\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","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/*\r\n * Glorious webAO\r\n * made by sD, refactored by oldmud0 and Qubrick\r\n * credits to aleks for original idea and source\r\n*/\r\n\r\nimport Fingerprint2 from 'fingerprintjs2';\r\n\r\nimport { escapeChat, encodeChat, prepChat, safe_tags } from './encoding.js';\r\n\r\n// Load some defaults for the background and evidence dropdowns\r\nimport character_arr from \"./characters.js\";\r\nimport background_arr from \"./backgrounds.js\";\r\nimport evidence_arr from \"./evidence.js\";\r\nimport sfx_arr from \"./sounds.js\";\r\n\r\nimport chatbox_arr from \"./styles/chatbox/chatboxes.js\";\r\n\r\nimport { EventEmitter } from \"events\";\r\n\r\nimport { version } from '../package.json';\r\n\r\nlet client;\r\nlet viewport;\r\n\r\n// Get the arguments from the URL bar\r\nconst queryDict = {};\r\nlocation.search.substr(1).split(\"&\").forEach(function (item) {\r\n\tqueryDict[item.split(\"=\")[0]] = item.split(\"=\")[1];\r\n});\r\n\r\nconst serverIP = queryDict.ip;\r\nlet mode = queryDict.mode;\r\n\r\n// Unless there is an asset URL specified, use the wasabi one\r\nconst DEFAULT_HOST = location.hostname ? \"https://s3.wasabisys.com/webao/base/\" : \"base/\";\r\nconst AO_HOST = queryDict.asset || DEFAULT_HOST;\r\nconst THEME = queryDict.theme || \"default\";\r\nconst MUSIC_HOST = AO_HOST + \"sounds/music/\";\r\n\r\nconst UPDATE_INTERVAL = 60;\r\n\r\nconst transparentPNG = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\";\r\n/**\r\n * Toggles AO1-style loading using paginated music packets for mobile platforms.\r\n * The old loading uses more smaller packets instead of a single big one,\r\n * which caused problems on low-memory devices in the past.\r\n */\r\nlet oldLoading = false;\r\n\r\n// presettings\r\nlet selectedEffect = 0;\r\nlet selectedMenu = 1;\r\nlet selectedShout = 0;\r\n\r\nlet extrafeatures = [];\r\n\r\nlet hdid;\r\nconst options = { fonts: { extendedJsFonts: true, userDefinedFonts: [\"Ace Attorney\", \"8bitoperator\", \"DINEngschrift\"] }, excludes: { userAgent: true, enumerateDevices: true } };\r\n\r\nif (window.requestIdleCallback) {\r\n\trequestIdleCallback(function () {\r\n\t\tFingerprint2.get(options, function (components) {\r\n\t\t\thdid = Fingerprint2.x64hash128(components.reduce((a, b) => `${a.value || a}, ${b.value}`), 31);\r\n\t\t\tclient = new Client(serverIP);\r\n\t\t\tviewport = new Viewport();\r\n\r\n\t\t\tif (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) {\r\n\t\t\t\toldLoading = true;\r\n\t\t\t}\r\n\t\t\tclient.loadResources();\r\n\t\t});\r\n\t});\r\n} else {\r\n\tsetTimeout(function () {\r\n\t\tFingerprint2.get(options, function (components) {\r\n\t\t\thdid = Fingerprint2.x64hash128(components.reduce((a, b) => `${a.value || a}, ${b.value}`), 31);\r\n\t\t\tclient = new Client(serverIP);\r\n\t\t\tviewport = new Viewport();\r\n\r\n\t\t\tif (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) {\r\n\t\t\t\toldLoading = true;\r\n\t\t\t}\r\n\t\t\tclient.loadResources();\r\n\t\t});\r\n\t}, 500);\r\n}\r\n\r\n\r\nlet lastICMessageTime = new Date(0);\r\n\r\nclass Client extends EventEmitter {\r\n\tconstructor(address) {\r\n\t\tsuper();\r\n\t\tthis.serv = new WebSocket(\"ws://\" + address);\r\n\t\t// Assign the websocket events\r\n\t\tthis.serv.addEventListener(\"open\", this.emit.bind(this, \"open\"));\r\n\t\tthis.serv.addEventListener(\"close\", this.emit.bind(this, \"close\"));\r\n\t\tthis.serv.addEventListener(\"message\", this.emit.bind(this, \"message\"));\r\n\t\tthis.serv.addEventListener(\"error\", this.emit.bind(this, \"error\"));\r\n\r\n\t\tthis.on(\"open\", this.onOpen.bind(this));\r\n\t\tthis.on(\"close\", this.onClose.bind(this));\r\n\t\tthis.on(\"message\", this.onMessage.bind(this));\r\n\t\tthis.on(\"error\", this.onError.bind(this));\r\n\r\n\t\t// Preset some of the variables\r\n\r\n\t\tthis.hp = [0, 0];\r\n\r\n\t\tthis.playerID = 1;\r\n\t\tthis.charID = -1;\r\n\t\tthis.char_list_length = 0;\r\n\t\tthis.evidence_list_length = 0;\r\n\t\tthis.music_list_length = 0;\r\n\t\tthis.testimonyID = 0;\r\n\r\n\t\tthis.chars = [];\r\n\t\tthis.emotes = [];\r\n\t\tthis.evidences = [];\r\n\t\tthis.areas = [];\r\n\t\tthis.musics = [];\r\n\r\n\t\tthis.resources = {\r\n\t\t\t\"holdit\": {\r\n\t\t\t\t\"src\": AO_HOST + \"misc/default/holdit_bubble.png\",\r\n\t\t\t\t\"duration\": 720\r\n\t\t\t},\r\n\t\t\t\"objection\": {\r\n\t\t\t\t\"src\": AO_HOST + \"misc/default/objection_bubble.png\",\r\n\t\t\t\t\"duration\": 720\r\n\t\t\t},\r\n\t\t\t\"takethat\": {\r\n\t\t\t\t\"src\": AO_HOST + \"misc/default/takethat_bubble.png\",\r\n\t\t\t\t\"duration\": 840\r\n\t\t\t},\r\n\t\t\t\"witnesstestimony\": {\r\n\t\t\t\t\"src\": AO_HOST + \"themes/\" + THEME + \"/witnesstestimony.gif\",\r\n\t\t\t\t\"duration\": 1560,\r\n\t\t\t\t\"sfx\": AO_HOST + \"sounds/general/sfx-testimony.wav\"\r\n\t\t\t},\r\n\t\t\t\"crossexamination\": {\r\n\t\t\t\t\"src\": AO_HOST + \"themes/\" + THEME + \"/crossexamination.gif\",\r\n\t\t\t\t\"duration\": 1600,\r\n\t\t\t\t\"sfx\": AO_HOST + \"sounds/general/sfx-testimony2.wav\"\r\n\t\t\t},\r\n\t\t\t\"guilty\": {\r\n\t\t\t\t\"src\": AO_HOST + \"themes/\" + THEME + \"/guilty.gif\",\r\n\t\t\t\t\"duration\": 2870,\r\n\t\t\t\t\"sfx\": AO_HOST + \"sounds/general/sfx-guilty.wav\"\r\n\t\t\t},\r\n\t\t\t\"notguilty\": {\r\n\t\t\t\t\"src\": AO_HOST + \"themes/\" + THEME + \"/notguilty.gif\",\r\n\t\t\t\t\"duration\": 2440,\r\n\t\t\t\t\"sfx\": AO_HOST + \"sounds/general/sfx-notguilty.wav\"\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tthis.selectedEmote = -1;\r\n\t\tthis.selectedEvidence = 0;\r\n\r\n\t\tthis.checkUpdater = null;\r\n\r\n\t\t/**\r\n\t\t * Assign handlers for all commands\r\n\t\t * If you implement a new command, you need to add it here\r\n\t\t */\r\n\t\tthis.on(\"MS\", this.handleMS.bind(this));\r\n\t\tthis.on(\"CT\", this.handleCT.bind(this));\r\n\t\tthis.on(\"MC\", this.handleMC.bind(this));\r\n\t\tthis.on(\"RMC\", this.handleRMC.bind(this));\r\n\t\tthis.on(\"CI\", this.handleCI.bind(this));\r\n\t\tthis.on(\"SC\", this.handleSC.bind(this));\r\n\t\tthis.on(\"EI\", this.handleEI.bind(this));\r\n\t\tthis.on(\"FL\", this.handleFL.bind(this));\r\n\t\tthis.on(\"LE\", this.handleLE.bind(this));\r\n\t\tthis.on(\"EM\", this.handleEM.bind(this));\r\n\t\tthis.on(\"SM\", this.handleSM.bind(this));\r\n\t\tthis.on(\"MM\", this.handleMM.bind(this));\r\n\t\tthis.on(\"BD\", this.handleBD.bind(this));\r\n\t\tthis.on(\"KB\", this.handleKB.bind(this));\r\n\t\tthis.on(\"KK\", this.handleKK.bind(this));\r\n\t\tthis.on(\"DONE\", this.handleDONE.bind(this));\r\n\t\tthis.on(\"BN\", this.handleBN.bind(this));\r\n\t\tthis.on(\"HP\", this.handleHP.bind(this));\r\n\t\tthis.on(\"RT\", this.handleRT.bind(this));\r\n\t\tthis.on(\"ZZ\", this.handleZZ.bind(this));\r\n\t\tthis.on(\"ID\", this.handleID.bind(this));\r\n\t\tthis.on(\"PN\", this.handlePN.bind(this));\r\n\t\tthis.on(\"SI\", this.handleSI.bind(this));\r\n\t\tthis.on(\"ARUP\", this.handleARUP.bind(this));\r\n\t\tthis.on(\"CharsCheck\", this.handleCharsCheck.bind(this));\r\n\t\tthis.on(\"decryptor\", this.handleDecryptor.bind(this));\r\n\t\tthis.on(\"PV\", this.handlePV.bind(this));\r\n\t\tthis.on(\"CHECK\", () => { });\r\n\r\n\t\tthis._lastTimeICReceived = new Date(0);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the current player's character.\r\n\t */\r\n\tget character() {\r\n\t\treturn this.chars[this.charID];\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the player's currently selected emote.\r\n\t */\r\n\tget emote() {\r\n\t\treturn this.emotes[this.selectedEmote];\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the current evidence ID unless the player doesn't want to present any evidence\r\n\t */\r\n\tget evidence() {\r\n\t\treturn (document.getElementById(\"button_present\").classList.contains(\"dark\")) ? this.selectedEvidence : 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Hook for sending messages to the server\r\n\t * @param {string} message the message to send\r\n\t */\r\n\tsendServer(message) {\r\n\t\t// console.log(message);\r\n\t\tthis.serv.send(message);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends an out-of-character chat message.\r\n\t * @param {string} message the message to send\r\n\t */\r\n\tsendOOC(message) {\r\n\t\tsetCookie(\"OOC_name\", document.getElementById(\"OOC_name\").value);\r\n\t\tthis.sendServer(`CT#${escapeChat(encodeChat(document.getElementById(\"OOC_name\").value))}#${escapeChat(encodeChat(message))}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends an in-character chat message.\r\n\t * @param {string} deskmod currently unused\r\n\t * @param {string} speaking who is speaking\r\n\t * @param {string} name the name of the current character\r\n\t * @param {string} silent whether or not it's silent\r\n\t * @param {string} message the message to be sent\r\n\t * @param {string} side the name of the side in the background\r\n\t * @param {string} sfx_name the name of the sound effect\r\n\t * @param {string} emote_modifier whether or not to zoom\r\n\t * @param {number} sfx_delay the delay (in milliseconds) to play the sound effect\r\n\t * @param {string} objection_modifier the number of the shout to play\r\n\t * @param {string} evidence the filename of evidence to show\r\n\t * @param {number} flip change to 1 to reverse sprite for position changes\r\n\t * @param {number} realization screen flash effect\r\n\t * @param {number} text_color text color\r\n\t * @param {string} showname custom name to be displayed (optional)\r\n\t * @param {number} other_charid paired character (optional)\r\n\t * @param {number} self_offset offset to paired character (optional)\r\n\t * @param {number} noninterrupting_preanim play the full preanim (optional)\r\n\t */\r\n\tsendIC(deskmod, preanim, name, emote, message, side, sfx_name, emote_modifier, sfx_delay, objection_modifier, evidence, flip, realization, text_color, showname, other_charid, self_offset, noninterrupting_preanim, looping_sfx, screenshake) {\r\n\t\tlet extra_cccc = ``;\r\n\t\tlet extra_27 = ``;\r\n\r\n\t\tif (extrafeatures.includes(\"cccc_ic_support\")) {\r\n\t\t\textra_cccc = `${showname}#${other_charid}#${self_offset}#${noninterrupting_preanim}#`;\r\n\r\n\t\t\tif (extrafeatures.includes(\"looping_sfx\")) {\r\n\t\t\t\tconst frame_screenshake = \"\";\r\n\t\t\t\tconst frame_realization = \"\";\r\n\t\t\t\tconst frame_sfx = \"\";\r\n\t\r\n\t\t\t\textra_27 = `${looping_sfx}#${screenshake}#${frame_screenshake}#${frame_realization}#${frame_sfx}#`;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tconst serverMessage = `MS#${deskmod}#${preanim}#${name}#${emote}` +\r\n\t\t\t`#${escapeChat(encodeChat(message))}#${side}#${sfx_name}#${emote_modifier}` +\r\n\t\t\t`#${this.charID}#${sfx_delay}#${objection_modifier}#${evidence}#${flip}#${realization}#${text_color}#${extra_cccc}${extra_27}%`;\r\n\t\t\r\n\t\tconsole.log(serverMessage);\r\n\t\t\r\n\t\tthis.sendServer(serverMessage);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends add evidence command.\r\n\t * @param {string} evidence name\r\n\t * @param {string} evidence description\r\n\t * @param {string} evidence image filename\r\n\t */\r\n\tsendPE(name, desc, img) {\r\n\t\tthis.sendServer(`PE#${escapeChat(encodeChat(name))}#${escapeChat(encodeChat(desc))}#${img}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends edit evidence command.\r\n\t * @param {number} evidence id\r\n\t * @param {string} evidence name\r\n\t * @param {string} evidence description\r\n\t * @param {string} evidence image filename\r\n\t */\r\n\tsendEE(id, name, desc, img) {\r\n\t\tthis.sendServer(`EE#${id}#${escapeChat(encodeChat(name))}#${escapeChat(encodeChat(desc))}#${img}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends delete evidence command.\r\n\t * @param {number} evidence id\r\n\t */\r\n\tsendDE(id) {\r\n\t\tthis.sendServer(`DE#${id}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends health point command.\r\n\t * @param {number} side the position\r\n\t * @param {number} hp the health point\r\n\t */\r\n\tsendHP(side, hp) {\r\n\t\tthis.sendServer(`HP#${side}#${hp}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends call mod command.\r\n\t * @param {string} message to mod\r\n\t */\r\n\tsendZZ(msg) {\r\n\t\tif (extrafeatures.includes(\"modcall_reason\")) {\r\n\t\t\tthis.sendServer(`ZZ#${msg}#%`);\r\n\t\t} else {\r\n\t\t\tthis.sendServer(`ZZ#%`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sends testimony command.\r\n\t * @param {string} testimony type\r\n\t */\r\n\tsendRT(testimony) {\r\n\t\tif (this.chars[this.charID].side === \"jud\") {\r\n\t\t\tthis.sendServer(`RT#${testimony}#%`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to change the music to the specified track.\r\n\t * @param {string} track the track ID\r\n\t */\r\n\tsendMusicChange(track) {\r\n\t\tthis.sendServer(`MC#${track}#${this.charID}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to leave the room and free the character slot.\r\n\t * \r\n\t * Note: This packet is undocumented. It is not implemented by\r\n\t * either the AO2 client or tsuserver.\r\n\t */\r\n\tsendLeaveRoom() {\r\n\t\tthis.sendServer(\"FC#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Begins the handshake process by sending an identifier\r\n\t * to the server.\r\n\t */\r\n\tjoinServer() {\r\n\t\tconsole.log(`Your emulated HDID is ${hdid}`);\r\n\r\n\t\tthis.sendServer(`HI#${hdid}#%`);\r\n\t\tthis.sendServer(`ID#webAO#webAO#%`);\r\n\t\tthis.checkUpdater = setInterval(() => this.sendCheck(), 5000);\r\n\t}\r\n\r\n\t/**\r\n\t * Load game resources and stored settings.\r\n\t */\r\n\tloadResources() {\r\n\t\tdocument.getElementById(\"client_version\").innerText = \"version \" + version;\r\n\r\n\t\t// Load iniedit character array to select\r\n\t\tconst iniedit_select = document.getElementById(\"client_ininame\");\r\n\t\tcharacter_arr.forEach(inicharacter => {\r\n\t\t\tiniedit_select.add(new Option(inicharacter));\r\n\t\t});\r\n\r\n\t\t// Load background array to select\r\n\t\tconst background_select = document.getElementById(\"bg_select\");\r\n\t\tbackground_select.add(new Option(\"Custom\", 0));\r\n\t\tbackground_arr.forEach(background => {\r\n\t\t\tbackground_select.add(new Option(background));\r\n\t\t});\r\n\r\n\t\t// Load evidence array to select\r\n\t\tconst evidence_select = document.getElementById(\"evi_select\");\r\n\t\tevidence_select.add(new Option(\"Custom\", 0));\r\n\t\tevidence_arr.forEach(evidence => {\r\n\t\t\tevidence_select.add(new Option(evidence));\r\n\t\t});\r\n\r\n\t\t// Read cookies and set the UI to its values\r\n\t\tdocument.getElementById(\"OOC_name\").value = getCookie(\"OOC_name\") || \"web\"+parseInt(Math.random()*100+10);\r\n\r\n\t\t// Read cookies and set the UI to its values\r\n\t\tvar cookietheme = getCookie(\"theme\") || \"default\";\r\n\r\n\t\tdocument.querySelector('#client_themeselect [value=\"' + cookietheme + '\"]').selected = true;\r\n\t\treloadTheme();\r\n\r\n\t\tvar cookiechatbox = getCookie(\"chatbox\") || \"dynamic\";\r\n\r\n\t\tdocument.querySelector('#client_chatboxselect [value=\"' + cookiechatbox + '\"]').selected = true;\r\n\t\tsetChatbox(cookiechatbox);\r\n\r\n\t\tdocument.getElementById(\"client_musicaudio\").volume = getCookie(\"musicVolume\") || 1;\r\n\t\tchangeMusicVolume();\r\n\t\tdocument.getElementById(\"client_svolume\").value = getCookie(\"sfxVolume\") || 1;\r\n\t\tchangeSFXVolume();\r\n\t\tdocument.getElementById(\"client_bvolume\").value = getCookie(\"blipVolume\") || 1;\r\n\t\tchangeBlipVolume();\r\n\r\n\t\tdocument.getElementById(\"ic_chat_name\").value = getCookie(\"ic_chat_name\");\r\n\t\tdocument.getElementById(\"showname\").checked = getCookie(\"showname\");\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to play as a specified character.\r\n\t * @param {number} character the character ID\r\n\t */\r\n\tsendCharacter(character) {\r\n\t\tif (this.chars[character].name)\r\n\t\t\tthis.sendServer(`CC#${this.playerID}#${character}#web#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to select a music track.\r\n\t * @param {number?} song the song to be played\r\n\t */\r\n\tsendMusic(song) {\r\n\t\tthis.sendServer(`MC#${song}#${this.charID}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends a keepalive packet.\r\n\t */\r\n\tsendCheck() {\r\n\t\tthis.sendServer(`CH#${this.charID}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when a connection is established to the server.\r\n\t */\r\n\tonOpen(_e) {\r\n\t\tclient.joinServer();\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when the connection to the server closes.\r\n\t * @param {CloseEvent} e\r\n\t */\r\n\tonClose(e) {\r\n\t\tconsole.error(`The connection was closed: ${e.reason} (${e.code})`);\r\n\t\tif (e.code !== 1001) {\r\n\t\t\tdocument.getElementById(\"client_error\").style.display = \"flex\";\r\n\t\t\tdocument.getElementById(\"client_loading\").style.display = \"none\";\r\n\t\t\tdocument.getElementById(\"error_id\").textContent = e.code;\r\n\t\t\tthis.cleanup();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when a packet is received from the server.\r\n\t * @param {MessageEvent} e\r\n\t */\r\n\tonMessage(e) {\r\n\t\tconst msg = e.data;\r\n\t\tconsole.debug(msg);\r\n\r\n\t\tconst lines = msg.split(\"%\");\r\n\t\tconst args = lines[0].split(\"#\");\r\n\t\tconst header = args[0];\r\n\r\n\t\tif (!this.emit(header, args)) {\r\n\t\t\tconsole.warn(`Invalid packet header ${header}`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when an network error occurs.\r\n\t * @param {ErrorEvent} e \r\n\t */\r\n\tonError(e) {\r\n\t\tconsole.error(`A network error occurred: ${e.reason} (${e.code})`);\r\n\t\tdocument.getElementById(\"client_error\").style.display = \"flex\";\r\n\t\tdocument.getElementById(\"error_id\").textContent = e.code;\r\n\t\tthis.cleanup();\r\n\t}\r\n\r\n\t/**\r\n\t * Stop sending keepalives to the server.\r\n\t */\r\n\tcleanup() {\r\n\t\tclearInterval(this.checkUpdater);\r\n\r\n\t\t// the connection got rekt, get rid of the old musiclist\r\n\t\tthis.resetMusiclist();\r\n\t\tdocument.getElementById(\"client_chartable\").innerHTML = \"\";\r\n\t}\r\n\r\n\t/**\r\n\t * Handles an in-character chat message.\r\n\t * @param {*} args packet arguments\r\n\t */\r\n\thandleMS(args) {\r\n\t\t// TODO: this if-statement might be a bug.\r\n\t\tif (args[4] !== viewport.chatmsg.content) {\r\n\t\t\tdocument.getElementById(\"client_inner_chat\").innerHTML = \"\";\r\n\r\n\t\t\tconst char_id = Number(args[9]);\r\n\t\t\tconst char_name = safe_tags(args[3]);\r\n\r\n\t\t\tlet msg_nameplate = args[3];\r\n\t\t\tlet msg_blips = \"male\";\r\n\t\t\tlet char_chatbox = \"default\";\r\n\t\t\tlet char_muted = false;\r\n\r\n\t\t\ttry {\r\n\t\t\t\tmsg_nameplate = this.chars[char_id].showname;\r\n\t\t\t\tmsg_blips = this.chars[char_id].gender;\r\n\t\t\t\tchar_chatbox = this.chars[char_id].chat;\r\n\t\t\t\tchar_muted = this.chars[char_id].muted;\t\t\t\t\r\n\r\n\t\t\t\tif(this.chars[char_id].name !== char_name) {\r\n\t\t\t\t\tconsole.info(this.chars[char_id].name + \" is iniediting to \" + char_name);\r\n\t\t\t\t\tconst chargs = (char_name + \"&\" + \"iniediter\").split(\"&\");\r\n\t\t\t\t\tthis.handleCharacterInfo(chargs,char_id);\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\tmsg_nameplate = args[3];\r\n\t\t\t\tmsg_blips = \"male\";\r\n\t\t\t\tchar_chatbox = \"default\";\r\n\t\t\t\tchar_muted = false;\r\n\t\t\t\tconsole.error(\"we're still missing some character data\");\r\n\t\t\t}\r\n\r\n\t\t\tif (char_muted === false) {\r\n\r\n\t\t\tlet chatmsg = {\r\n\t\t\t\tdeskmod: safe_tags(args[1]).toLowerCase(),\r\n\t\t\t\tpreanim: safe_tags(args[2]).toLowerCase(), // get preanim\r\n\t\t\t\tnameplate: msg_nameplate,\t\t\t\t// TODO: there's a new feature that let's people choose the name that's displayed\r\n\t\t\t\tchatbox: char_chatbox,\r\n\t\t\t\tname: char_name,\r\n\t\t\t\tsprite: safe_tags(args[4]).toLowerCase(),\r\n\t\t\t\tcontent: prepChat(args[5]), // Escape HTML tags\r\n\t\t\t\tside: args[6].toLowerCase(),\r\n\t\t\t\tsound: safe_tags(args[7]).toLowerCase(),\r\n\t\t\t\tblips: safe_tags(msg_blips),\r\n\t\t\t\ttype: Number(args[8]),\r\n\t\t\t\tcharid: char_id,\r\n\t\t\t\tsnddelay: Number(args[10]),\r\n\t\t\t\tobjection: Number(args[11]),\r\n\t\t\t\tevidence: safe_tags(args[12]),\r\n\t\t\t\tflip: Number(args[13]),\r\n\t\t\t\tflash: Number(args[14]),\r\n\t\t\t\tcolor: Number(args[15])\r\n\t\t\t};\r\n\r\n\t\t\tif (extrafeatures.includes(\"cccc_ic_support\")) {\r\n\t\t\t\tconst extra_cccc = {\r\n\t\t\t\t\tshowname: safe_tags(args[16]),\r\n\t\t\t\t\tother_charid: Number(args[17]),\r\n\t\t\t\t\tother_name: safe_tags(args[18]),\r\n\t\t\t\t\tother_emote: safe_tags(args[19]),\r\n\t\t\t\t\tself_offset: Number(args[20]),\r\n\t\t\t\t\tother_offset: Number(args[21]),\r\n\t\t\t\t\tother_flip: Number(args[22]),\r\n\t\t\t\t\tnoninterrupting_preanim: Number(args[23])\r\n\t\t\t\t};\r\n\t\t\t\tchatmsg = Object.assign(extra_cccc, chatmsg);\r\n\r\n\t\t\t\tif (extrafeatures.includes(\"looping_sfx\")) {\r\n\t\t\t\t\tconst extra_27 = {\r\n\t\t\t\t\t\tlooping_sfx: Number(args[24]),\r\n\t\t\t\t\t\tscreenshake: Number(args[25]),\r\n\t\t\t\t\t\tframe_screenshake: safe_tags(args[26]),\r\n\t\t\t\t\t\tframe_realization: safe_tags(args[27]),\r\n\t\t\t\t\t\tframe_sfx: safe_tags(args[28])\r\n\t\t\t\t\t};\r\n\t\t\t\t\tchatmsg = Object.assign(extra_27, chatmsg);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst extra_27 = {\r\n\t\t\t\t\t\tlooping_sfx: 0,\r\n\t\t\t\t\t\tscreenshake: 0,\r\n\t\t\t\t\t\tframe_screenshake: \"\",\r\n\t\t\t\t\t\tframe_realization: \"\",\r\n\t\t\t\t\t\tframe_sfx: \"\"\r\n\t\t\t\t\t};\r\n\t\t\t\t\tchatmsg = Object.assign(extra_27, chatmsg);\r\n\t\t\t\t}\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\tconst extra_cccc = {\r\n\t\t\t\t\tshowname: \"\",\r\n\t\t\t\t\tother_charid: 0,\r\n\t\t\t\t\tother_name: \"\",\r\n\t\t\t\t\tother_emote: \"\",\r\n\t\t\t\t\tself_offset: 0,\r\n\t\t\t\t\tother_offset: 0,\r\n\t\t\t\t\tother_flip: 0,\r\n\t\t\t\t\tnoninterrupting_preanim: 0\r\n\t\t\t\t};\r\n\t\t\t\tchatmsg = Object.assign(extra_cccc, chatmsg);\r\n\t\t\t}\r\n\r\n\t\t\t// our own message appeared, reset the buttons\r\n\t\t\tif (chatmsg.charid === this.charID) {\r\n\t\t\t\tresetICParams();\r\n\t\t\t}\r\n\r\n\t\t\tviewport.say(chatmsg); // no await\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles an out-of-character chat message.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleCT(args) {\r\n\t\tconst oocLog = document.getElementById(\"client_ooclog\");\r\n\t\toocLog.innerHTML += `${prepChat(args[1])}: ${prepChat(args[2])}\\r\\n`;\r\n\t\tif (oocLog.scrollTop > oocLog.scrollHeight - 600) {\r\n\t\t\toocLog.scrollTop = oocLog.scrollHeight;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a music change to an arbitrary resource.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleMC(args) {\r\n\t\tconst track = prepChat(args[1]);\r\n\t\tlet charID = Number(args[2]);\r\n \r\n\t\tconst music = viewport.music;\r\n\t\tlet musicname;\r\n\t\tmusic.pause();\r\n\t\tif(track.startsWith(\"http\")) {\r\n\t\t\tmusic.src = track;\r\n\t\t} else {\r\n\t\t\tmusic.src = MUSIC_HOST + encodeURI(track.toLowerCase());\r\n\t\t}\r\n\t\tmusic.play();\r\n\r\n\t\ttry {\r\n\t\t\tmusicname = this.chars[charID].name;\r\n\t\t} catch(e) {\r\n\t\t\tcharID = -1;\r\n\t\t}\r\n\r\n\t\tif (charID >= 0) {\r\n\t\t\tmusicname = this.chars[charID].name;\r\n\t\t\tappendICLog(`${musicname} changed music to ${track}`);\r\n\t\t} else {\r\n\t\t\tappendICLog(`The music was changed to ${track}`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a music change to an arbitrary resource, with an offset in seconds.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleRMC(args) {\r\n\t\tviewport.music.pause();\r\n\t\tconst music = viewport.music;\r\n\t\t// Music offset + drift from song loading\r\n\t\tmusic.totime = args[1];\r\n\t\tmusic.offset = new Date().getTime() / 1000;\r\n\t\tmusic.addEventListener(\"loadedmetadata\", function () {\r\n\t\t\tmusic.currentTime += parseFloat(music.totime + (new Date().getTime() / 1000 - music.offset)).toFixed(3);\r\n\t\t\tmusic.play();\r\n\t\t}, false);\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the incoming character information, and downloads the sprite + ini for it\r\n\t * @param {Array} chargs packet arguments\r\n\t * @param {Number} charid character ID\r\n\t */\r\n\tasync handleCharacterInfo(chargs, charid) {\r\n\t\tif (chargs[0]) {\r\n\t\t\tlet cini = {};\r\n\t\t\tlet icon = AO_HOST + \"characters/\" + encodeURI(chargs[0].toLowerCase()) + \"/char_icon.png\";\r\n\t\t\tlet img = document.getElementById(`demo_${charid}`);\r\n\t\t\timg.alt = chargs[0];\r\n\t\t\timg.src = icon;\t// seems like a good time to load the icon\r\n\r\n\t\t\t// If the ini doesn't exist on the server this will throw an error\r\n\t\t\ttry {\r\n\t\t\t\tconst cinidata = await request(AO_HOST + \"characters/\" + encodeURI(chargs[0].toLowerCase()) + \"/char.ini\");\r\n\t\t\t\tcini = INI.parse(cinidata);\r\n\t\t\t} catch (err) {\r\n\t\t\t\tcini = {};\r\n\t\t\t\timg.classList.add(\"noini\");\r\n\t\t\t\tconsole.warn(\"character \" + chargs[0] + \" is missing from webAO\");\r\n\t\t\t\t// If it does, give the user a visual indication that the character is unusable\r\n\t\t\t}\r\n\r\n\t\t\tconst mute_select = document.getElementById(\"mute_select\");\r\n\t\t\tmute_select.add(new Option(safe_tags(chargs[0]), charid));\r\n\t\t\tconst pair_select = document.getElementById(\"pair_select\");\r\n\t\t\tpair_select.add(new Option(safe_tags(chargs[0]), charid));\r\n\r\n\t\t\t// sometimes ini files lack important settings\r\n\t\t\tconst default_options = {\r\n\t\t\t\tname: chargs[0],\r\n\t\t\t\tshowname: chargs[0],\r\n\t\t\t\tside: \"def\",\r\n\t\t\t\tgender: \"male\",\r\n\t\t\t\tchat: \"aa\"\r\n\t\t\t};\r\n\t\t\tcini.options = Object.assign(default_options, cini.options);\r\n\r\n\t\t\t// sometimes ini files lack important settings\r\n\t\t\tconst default_emotions = {\r\n\t\t\t\tnumber: 0\r\n\t\t\t};\r\n\t\t\tcini.emotions = Object.assign(default_emotions, cini.emotions);\r\n\r\n\t\t\tthis.chars[charid] = {\r\n\t\t\t\tname: safe_tags(chargs[0]),\r\n\t\t\t\tshowname: safe_tags(cini.options.showname),\r\n\t\t\t\tdesc: safe_tags(chargs[1]),\r\n\t\t\t\tgender: safe_tags(cini.options.gender).toLowerCase(),\r\n\t\t\t\tside: safe_tags(cini.options.side).toLowerCase(),\r\n\t\t\t\tchat: safe_tags(cini.options.chat).toLowerCase(),\r\n\t\t\t\tevidence: chargs[3],\r\n\t\t\t\ticon: icon,\r\n\t\t\t\tinifile: cini,\r\n\t\t\t\tmuted: false\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tconsole.warn(\"missing charid \" + charid);\r\n\t\t\tlet img = document.getElementById(`demo_${charid}`);\r\n\t\t\timg.style.display = \"none\";\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming character information, bundling multiple characters\r\n\t * per packet.\r\n\t * CI#0#Phoenix&description&&&&#Miles ...\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleCI(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Character \" + args[1];\r\n\t\t// Loop through the 10 characters that were sent\r\n\t\tfor (let i = 2; i <= args.length - 2; i++) {\r\n\t\t\tif (i % 2 === 0) {\r\n\t\t\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Character ${i}/${this.char_list_length}`;\r\n\t\t\t\tconst chargs = args[i].split(\"&\");\r\n\t\t\t\tconst charid = args[i - 1];\r\n\t\t\t\tsetTimeout(() => this.handleCharacterInfo(chargs, charid), charid*10);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Request the next pack\r\n\t\tthis.sendServer(\"AN#\" + ((args[1] / 10) + 1) + \"#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming character information, containing all characters\r\n\t * in one packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleSC(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Characters\";\r\n\t\tfor (let i = 1; i < args.length; i++) {\r\n\t\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Character ${i}/${this.char_list_length}`;\r\n\t\t\tconst chargs = args[i].split(\"&\");\r\n\t\t\tconst charid = i - 1;\r\n\t\t\tsetTimeout(() => this.handleCharacterInfo(chargs, charid), charid*10);\r\n\t\t}\r\n\t\t// We're done with the characters, request the music\r\n\t\tthis.sendServer(\"RM#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming evidence information, containing only one evidence\r\n\t * item per packet.\r\n\t * \r\n\t * Mostly unimplemented in webAO.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleEI(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Evidence ${args[1]}/${this.evidence_list_length}`;\r\n\t\tthis.sendServer(\"RM#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming evidence list, all evidences at once\r\n\t * item per packet.\r\n\t * \r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleLE(args) {\r\n\t\tthis.evidences = [];\r\n\t\tfor (let i = 1; i < args.length - 1; i++) {\r\n\t\t\tconst arg = args[i].split(\"&\");\r\n\t\t\tthis.evidences[i - 1] = {\r\n\t\t\t\tname: prepChat(arg[0]),\r\n\t\t\t\tdesc: prepChat(arg[1]),\r\n\t\t\t\tfilename: safe_tags(arg[2]),\r\n\t\t\t\ticon: AO_HOST + \"evidence/\" + encodeURI(arg[2].toLowerCase())\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst evidence_box = document.getElementById(\"evidences\");\r\n\t\tevidence_box.innerHTML = \"\";\r\n\t\tfor (let i = 1; i <= this.evidences.length; i++) {\r\n\t\t\tevidence_box.innerHTML += `<img src=\"${this.evidences[i - 1].icon}\" \r\n\t\t\t\tid=\"evi_${i}\" \r\n\t\t\t\talt=\"${this.evidences[i - 1].name}\"\r\n\t\t\t\tclass=\"evi_icon\"\r\n\t\t\t\tonclick=\"pickEvidence(${i})\">`;\r\n\t\t}\r\n\t}\r\n\r\n\tresetMusiclist() {\r\n\t\tthis.musics = [];\r\n\t\tthis.areas = [];\r\n\t\tdocument.getElementById(\"client_musiclist\").innerHTML = \"\";\r\n\t\tdocument.getElementById(\"areas\").innerHTML = \"\";\t\t\r\n\t}\r\n\r\n\tisAudio(trackname) {\r\n\t\tif (/\\.(?:wav|mp3|mp4|ogg|opus)$/i.test(trackname) || // regex for file extenstions\r\n\t\t\ttrackname.startsWith(\"=\") ||\r\n\t\t\ttrackname.startsWith(\"-\")) // category markers\r\n\t\t{\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\thandleMusicInfo(trackindex,trackname) {\r\n\t\tif (this.isAudio(trackname)) {\r\n\t\t\t// After reached the audio put everything in the music list\r\n\t\t\tconst newentry = document.createElement(\"OPTION\");\r\n\t\t\tnewentry.text = trackname;\r\n\t\t\tdocument.getElementById(\"client_musiclist\").options.add(newentry);\r\n\t\t\tthis.musics.push(trackname);\r\n\t\t} else {\r\n\t\t\tconst thisarea = {\r\n\t\t\t\tname: trackname,\r\n\t\t\t\tplayers: 0,\r\n\t\t\t\tstatus: \"IDLE\",\r\n\t\t\t\tcm: \"\",\r\n\t\t\t\tlocked: \"FREE\"\r\n\t\t\t};\r\n\r\n\t\t\tthis.areas.push(thisarea);\r\n\r\n\t\t\t// Create area button\r\n\t\t\tlet newarea = document.createElement(\"SPAN\");\r\n\t\t\tnewarea.classList = \"area-button area-default\";\r\n\t\t\tnewarea.id = \"area\" + trackindex;\r\n\t\t\tnewarea.innerText = thisarea.name;\r\n\t\t\tnewarea.title = \"Players: <br>\" +\r\n\t\t\t\t\"Status: <br>\" +\r\n\t\t\t\t\"CM: \";\r\n\t\t\tnewarea.onclick = function () {\r\n\t\t\t\tarea_click(this);\r\n\t\t\t};\r\n\r\n\t\t\tdocument.getElementById(\"areas\").appendChild(newarea);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming music information, containing multiple entries\r\n\t * per packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleEM(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Music\";\r\n\t\tif(args[1] === \"0\") {\r\n\t\t\tthis.resetMusiclist();\r\n\t\t}\r\n\r\n\t\tfor (let i = 2; i < args.length - 1; i++) {\r\n\t\t\tif (i % 2 === 0) {\r\n\t\t\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Music ${i}/${this.music_list_length}`;\r\n\t\t\t\tthis.handleMusicInfo(args[i-1],safe_tags(args[i]));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// get the next batch of tracks\r\n\t\tthis.sendServer(\"AM#\" + ((args[1] / 10) + 1) + \"#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming music information, containing all music in one packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleSM(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Music \";\r\n\t\tthis.resetMusiclist();\r\n\r\n\t\tfor (let i = 1; i < args.length - 1; i++) {\r\n\t\t\t// Check when found the song for the first time\r\n\t\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = `Loading Music ${i}/${this.music_list_length}`;\r\n\t\t\tthis.handleMusicInfo(i-1,safe_tags(args[i]));\r\n\t\t}\r\n\r\n\t\t// Music done, carry on\r\n\t\tthis.sendServer(\"RD#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the \"MusicMode\" packet\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleMM(_args) {\r\n\t\t// It's unused nowadays, as preventing people from changing the music is now serverside\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the kicked packet\r\n\t * @param {String} type is it a kick or a ban\r\n\t * @param {String} reason why\r\n\t */\r\n\thandleBans(type, reason) {\r\n\t\tdocument.getElementById(\"client_error\").style.display = \"flex\";\r\n\t\tdocument.getElementById(\"client_errortext\").innerHTML = type + \":<br>\" + reason.replace(/\\n/g, \"<br />\");\r\n\t\tdocument.getElementsByClassName(\"client_reconnect\")[0].style.display = \"none\";\r\n\t\tdocument.getElementsByClassName(\"client_reconnect\")[1].style.display = \"none\";\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the kicked packet\r\n\t * @param {Array} args kick reason\r\n\t */\r\n\thandleKK(args) {\r\n\t\tthis.handleBans(\"Kicked\", safe_tags(args[1]));\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the banned packet\r\n\t * this one is sent when you are kicked off the server\r\n\t * @param {Array} args ban reason\r\n\t */\r\n\thandleKB(args) {\r\n\t\tthis.handleBans(\"Banned\", safe_tags(args[1]));\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the banned packet\r\n\t * this one is sent when you try to reconnect but you're banned\r\n\t * @param {Array} args ban reason\r\n\t */\r\n\thandleBD(args) {\r\n\t\tthis.handleBans(\"Banned\", safe_tags(args[1]));\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the handshake completion packet, meaning the player\r\n\t * is ready to select a character.\r\n\t * \r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleDONE(_args) {\r\n\t\tdocument.getElementById(\"client_loading\").style.display = \"none\";\r\n\t\tif (mode === \"watch\") {\t\t// Spectators don't need to pick a character\r\n\t\t\tdocument.getElementById(\"client_charselect\").style.display = \"none\";\r\n\t\t} else {\r\n\t\t\tdocument.getElementById(\"client_charselect\").style.display = \"block\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a background change.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleBN(args) {\r\n\t\tviewport.bgname = safe_tags(args[1]);\r\n\t\tconst bg_index = getIndexFromSelect(\"bg_select\", viewport.bgname);\r\n\t\tdocument.getElementById(\"bg_select\").selectedIndex = bg_index;\r\n\t\tupdateBackgroundPreview();\r\n\t\tif (bg_index === 0) {\r\n\t\t\tdocument.getElementById(\"bg_filename\").value = viewport.bgname;\r\n\t\t}\r\n\t\tdocument.getElementById(\"bg_preview\").src = AO_HOST + \"background/\" + encodeURI(args[1].toLowerCase()) + \"/defenseempty.png\";\r\n\t\tif (this.charID === -1) {\r\n\t\t\tviewport.changeBackground(\"jud\");\r\n\t\t} else {\r\n\t\t\tviewport.changeBackground(this.chars[this.charID].side);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a change in the health bars' states.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleHP(args) {\r\n\t\tconst percent_hp = Number(args[2]) * 10;\r\n\t\tlet healthbox;\r\n\t\tif (args[1] === \"1\") {\r\n\t\t\t// Def hp\r\n\t\t\tthis.hp[0] = args[2];\r\n\t\t\thealthbox = document.getElementById(\"client_defense_hp\");\r\n\t\t} else {\r\n\t\t\t// Pro hp\r\n\t\t\tthis.hp[1] = args[2];\r\n\t\t\thealthbox = document.getElementById(\"client_prosecutor_hp\");\r\n\t\t}\r\n\t\thealthbox.getElementsByClassName(\"health-bar\")[0].style.width = percent_hp + \"%\";\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a testimony states.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleRT(args) {\r\n\t\tconst judgeid = Number(args[2]);\r\n\t\tswitch (args[1]) {\r\n\t\t\tcase \"testimony1\":\r\n\t\t\t\tthis.testimonyID = 1;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"testimony2\":\r\n\t\t\t\t//Cross Examination\r\n\t\t\t\tthis.testimonyID = 2;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"judgeruling\":\r\n\t\t\t\tthis.testimonyID = 3 + judgeid;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.warn(\"Invalid testimony\");\r\n\t\t}\r\n\t\tviewport.initTestimonyUpdater();\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a modcall\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleZZ(args) {\r\n\t\tconst oocLog = document.getElementById(\"client_ooclog\");\r\n\t\toocLog.innerHTML += `$Alert: ${prepChat(args[1])}\\r\\n`;\r\n\t\tif (oocLog.scrollTop > oocLog.scrollHeight - 60) {\r\n\t\t\toocLog.scrollTop = oocLog.scrollHeight;\r\n\t\t}\r\n\t\tviewport.sfxaudio.pause();\r\n\t\tconst oldvolume = viewport.sfxaudio.volume;\r\n\t\tviewport.sfxaudio.volume = 1;\r\n\t\tviewport.sfxaudio.src = AO_HOST + \"sounds/general/sfx-gallery.wav\";\r\n\t\tviewport.sfxaudio.play();\r\n\t\tviewport.sfxaudio.volume = oldvolume;\r\n\t}\r\n\r\n\t/**\r\n\t * Identifies the server and issues a playerID\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleID(args) {\r\n\t\tthis.playerID = Number(args[1]);\r\n\t\tthis.serverSoftware = args[2].split(\"&\")[0];\r\n\t\tif (this.serverSoftware === \"serverD\")\r\n\t\t\tthis.serverVersion = args[2].split(\"&\")[1];\r\n\t\telse\r\n\t\t\tthis.serverVersion = args[3];\r\n\r\n\t\tif (this.serverSoftware === \"serverD\" && this.serverVersion === \"1377.152\")\r\n\t\t\toldLoading = true; // bugged version\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates how many users are on this server\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandlePN(_args) {\r\n\t\tthis.sendServer(\"askchaa#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handle the change of players in an area.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleARUP(args) {\r\n\t\targs = args.slice(1);\r\n\t\tfor (let i = 0; i < args.length - 2; i++) {\r\n\t\t\tif (this.areas[i]) { // the server sends us ARUP before we even get the area list\r\n\t\t\t\tconst thisarea = document.getElementById(\"area\" + i);\r\n\t\t\t\tswitch (Number(args[0])) {\r\n\t\t\t\t\tcase 0: // playercount\t\t\t\t\r\n\t\t\t\t\t\tthis.areas[i].players = Number(args[i+1]);\r\n\t\t\t\t\t\tthisarea.innerText = `${this.areas[i].name} (${this.areas[i].players})`;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 1: // status\r\n\t\t\t\t\t\tthis.areas[i].status = safe_tags(args[i+1]);\r\n\t\t\t\t\t\tthisarea.classList = \"area-button area-\" + this.areas[i].status.toLowerCase();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\tthis.areas[i].cm = safe_tags(args[i+1]);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 3:\r\n\t\t\t\t\t\tthis.areas[i].locked = safe_tags(args[i+1]);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthisarea.title = `Players: ${this.areas[i].players}\\n` +\r\n\t\t\t\t\t`Status: ${this.areas[i].status}\\n` +\r\n\t\t\t\t\t`CM: ${this.areas[i].cm}\\n` +\r\n\t\t\t\t\t`Area lock: ${this.areas[i].locked}`;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * With this the server tells us which features it supports\r\n\t * @param {Array} args list of features\r\n\t */\r\n\thandleFL(args) {\r\n\t\tconsole.info(\"Server-supported features:\");\r\n\t\tconsole.info(args);\r\n\t\textrafeatures = args;\r\n\r\n\t\tif (args.includes(\"yellowtext\")) {\r\n\t\t\tlet colorselect = document.getElementById(\"textcolor\");\r\n\r\n\t\t\tcolorselect.options[colorselect.options.length] = new Option(\"Yellow\", 5);\r\n\t\t\tcolorselect.options[colorselect.options.length] = new Option(\"Rainbow\", 6);\r\n\t\t\tcolorselect.options[colorselect.options.length] = new Option(\"Pink\", 7);\r\n\t\t\tcolorselect.options[colorselect.options.length] = new Option(\"Cyan\", 8);\r\n\t\t}\r\n\r\n\t\tif (args.includes(\"cccc_ic_support\")) {\r\n\t\t\tdocument.getElementById(\"cccc\").style.display = \"\";\r\n\t\t\tdocument.getElementById(\"pairing\").style.display = \"\";\r\n\t\t}\r\n\r\n\t\tif (args.includes(\"flipping\")) {\r\n\t\t\tdocument.getElementById(\"button_flip\").style.display = \"\";\r\n\t\t}\r\n\r\n\t\tif (args.includes(\"looping_sfx\")) {\r\n\t\t\tdocument.getElementById(\"button_shake\").style.display = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Received when the server announces its server info,\r\n\t * but we use it as a cue to begin retrieving characters.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleSI(args) {\r\n\t\tthis.char_list_length = Number(args[1]);\r\n\t\tthis.char_list_length += 1; // some servers count starting from 0 some from 1...\r\n\t\tthis.evidence_list_length = Number(args[2]);\r\n\t\tthis.music_list_length = Number(args[3]);\r\n\r\n\t\t// create the charselect grid, to be filled by the character loader\r\n\t\tdocument.getElementById(\"client_chartable\").innerHTML = \"\";\r\n\r\n\t\tfor (let i = 0; i < this.char_list_length; i++) {\r\n\t\t\tconst demothing = document.createElement(\"img\");\r\n\r\n\t\t\tdemothing.className = \"demothing\";\r\n\t\t\tdemothing.id = `demo_${i}`;\r\n\t\t\tconst demoonclick = document.createAttribute(\"onclick\");\r\n\t\t\tdemoonclick.value = `pickChar(${i})`;\r\n\t\t\tdemothing.setAttributeNode(demoonclick);\r\n\r\n\t\t\tdocument.getElementById(\"client_chartable\").appendChild(demothing);\r\n\t\t}\r\n\r\n\t\t// this is determined at the top of this file\r\n\t\tif (!oldLoading && extrafeatures.includes(\"fastloading\")) {\r\n\t\t\tthis.sendServer(\"RC#%\");\r\n\t\t} else {\r\n\t\t\tthis.sendServer(\"askchar2#%\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the list of all used and vacant characters.\r\n\t * @param {Array} args list of all characters represented as a 0 for free or a -1 for taken\r\n\t */\r\n\thandleCharsCheck(args) {\r\n\t\tfor (let i = 0; i < this.char_list_length; i++) {\r\n\t\t\tlet img = document.getElementById(`demo_${i}`);\r\n\r\n\t\t\tif (args[i + 1] === \"-1\")\r\n\t\t\t\timg.style.opacity = 0.25;\r\n\t\t\telse if (args[i + 1] === \"0\")\r\n\t\t\t\timg.style.opacity = 1;\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Decryptor for the command headers\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleDecryptor(_args) {\r\n\t\t// unused since AO2\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the server's assignment of a character for the player to use.\r\n\t * PV # playerID (unused) # CID # character ID\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\tasync handlePV(args) {\r\n\t\tthis.charID = Number(args[3]);\r\n\t\tdocument.getElementById(\"client_charselect\").style.display = \"none\";\r\n\r\n\t\tconst me = this.character;\r\n\t\tthis.selectedEmote = -1;\r\n\t\tconst emotes = this.emotes;\r\n\t\tconst emotesList = document.getElementById(\"client_emo\");\r\n\t\temotesList.style.display = \"\";\r\n\t\temotesList.innerHTML = \"\"; // Clear emote box\r\n\t\tconst ini = me.inifile;\r\n\t\tme.side = ini.options.side;\r\n\t\tupdateActionCommands(me.side);\r\n\t\tif(ini.emotions.number === 0) {\r\n\t\t\temotesList.innerHTML =\r\n\t\t\t\t\t`<span\r\n\t\t\t\t\tid=\"emo_0\"\r\n\t\t\t\t\talt=\"unavailable\"\r\n\t\t\t\t\tclass=\"emote_button\">No emotes available</span>`;\r\n\t\t}else{\r\n\t\tfor (let i = 1; i <= ini.emotions.number; i++) {\r\n\t\t\ttry {\r\n\t\t\t\tconst emoteinfo = ini.emotions[i].split(\"#\");\r\n\t\t\t\tlet esfx;\r\n\t\t\t\tlet esfxd;\r\n\t\t\t\ttry {\r\n\t\t\t\t\tesfx = ini.soundn[i] || \"0\";\r\n\t\t\t\t\tesfxd = Number(ini.soundt[i]) || 0;\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(\"ini sound is completly missing\");\r\n\t\t\t\t\tesfx = \"0\";\r\n\t\t\t\t\tesfxd = 0;\r\n\t\t\t\t}\r\n\t\t\t\t// Make sure the asset server is case insensitive, or that everything on it is lowercase\r\n\t\t\t\temotes[i] = {\r\n\t\t\t\t\tdesc: emoteinfo[0].toLowerCase(),\r\n\t\t\t\t\tpreanim: emoteinfo[1].toLowerCase(),\r\n\t\t\t\t\temote: emoteinfo[2].toLowerCase(),\r\n\t\t\t\t\tzoom: Number(emoteinfo[3]) || 0,\r\n\t\t\t\t\tsfx: esfx.toLowerCase(),\r\n\t\t\t\t\tsfxdelay: esfxd,\r\n\t\t\t\t\tframe_screenshake: \"\",\r\n\t\t\t\t\tframe_realization: \"\",\r\n\t\t\t\t\tframe_sfx: \"\",\r\n\t\t\t\t\tbutton_off: AO_HOST + `characters/${encodeURI(me.name.toLowerCase())}/emotions/button${i}_off.png`,\r\n\t\t\t\t\tbutton_on: AO_HOST + `characters/${encodeURI(me.name.toLowerCase())}/emotions/button${i}_on.png`\r\n\t\t\t\t};\r\n\t\t\t\temotesList.innerHTML +=\r\n\t\t\t\t\t`<img src=${emotes[i].button_off}\r\n\t\t\t\t\tid=\"emo_${i}\"\r\n\t\t\t\t\talt=\"${emotes[i].desc}\"\r\n\t\t\t\t\tclass=\"emote_button\"\r\n\t\t\t\t\tonclick=\"pickEmotion(${i})\">`;\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(\"missing emote \" + i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tpickEmotion(1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nclass Viewport {\r\n\tconstructor() {\r\n\t\tthis.textnow = \"\";\r\n\t\tthis.chatmsg = {\r\n\t\t\t\"content\": \"\",\r\n\t\t\t\"objection\": 0,\r\n\t\t\t\"sound\": \"\",\r\n\t\t\t\"startpreanim\": true,\r\n\t\t\t\"startspeaking\": false,\r\n\t\t\t\"side\": null,\r\n\t\t\t\"color\": 0,\r\n\t\t\t\"snddelay\": 0,\r\n\t\t\t\"preanimdelay\": 0\r\n\t\t};\r\n\r\n\t\tthis.shouts = [\r\n\t\t\tundefined,\r\n\t\t\t\"holdit\",\r\n\t\t\t\"objection\",\r\n\t\t\t\"takethat\"\r\n\t\t];\r\n\r\n\t\tthis.colors = [\r\n\t\t\t\"white\",\r\n\t\t\t\"green\",\r\n\t\t\t\"red\",\r\n\t\t\t\"orange\",\r\n\t\t\t\"blue\",\r\n\t\t\t\"yellow\",\r\n\t\t\t\"rainbow\",\r\n\t\t\t\"pink\",\r\n\t\t\t\"cyan\"\r\n\t\t];\r\n\r\n\t\t// Allocate multiple blip audio channels to make blips less jittery\r\n\r\n\t\tthis.blipChannels = new Array(6);\r\n\t\tthis.blipChannels.fill(new Audio(AO_HOST + \"sounds/general/sfx-blipmale.wav\"))\r\n\t\t\t.forEach(channel => channel.volume = 0.5);\r\n\t\tthis.currentBlipChannel = 0;\r\n\r\n\t\tthis.sfxaudio = new Audio(AO_HOST + \"sounds/general/sfx-blipmale.wav\");\r\n\t\tthis.sfxplayed = 0;\r\n\r\n\t\tthis.shoutaudio = new Audio();\r\n\r\n\t\tthis.music = document.getElementById(\"client_musicaudio\");\r\n\t\tthis.music.play();\r\n\r\n\t\tthis.updater = null;\r\n\t\tthis.testimonyUpdater = null;\r\n\r\n\t\tthis.bgname = \"gs4\";\r\n\r\n\t\tthis.lastChar = \"\";\r\n\t\tthis.lastEvi = 0;\r\n\r\n\t\tthis.testimonyTimer = 0;\r\n\t\tthis.shoutTimer = 0;\r\n\t\tthis.textTimer = 0;\r\n\r\n\t\tthis._animating = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns whether or not the viewport is busy\r\n\t * performing a task (animating).\r\n\t */\r\n\tget isAnimating() {\r\n\t\treturn this._animating;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the volume of the blip sound.\r\n\t * @param {number} volume\r\n\t */\r\n\tset blipVolume(volume) {\r\n\t\tthis.blipChannels.forEach(channel => channel.volume = volume);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the path which the background is located in.\r\n\t */\r\n\tget bgFolder() {\r\n\t\treturn `${AO_HOST}background/${encodeURI(this.bgname.toLowerCase())}/`;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Play any SFX\r\n\t * \r\n\t * @param {string} sfxname\r\n\t */\r\n\tasync playSFX(sfxname) {\r\n\t\tthis.sfxaudio.pause();\r\n\t\tthis.sfxaudio.src = sfxname;\r\n\t\tthis.sfxaudio.play();\r\n\t}\r\n\r\n\t/**\r\n * Changes the viewport background based on a given position.\r\n * \r\n * Valid positions: `def, pro, hld, hlp, wit, jud, jur, sea`\r\n * @param {string} position the position to change into\r\n */\r\nasync changeBackground(position) {\r\n\tconst bgfolder = viewport.bgFolder;\r\n\r\n\tconst bench = document.getElementById(\"client_bench\");\r\n\tconst court = document.getElementById(\"client_court\");\r\n\r\n\tconst positions = {\r\n\t\tdef: {\r\n\t\t\tbg: \"defenseempty.png\",\r\n\t\t\tdesk: { ao2: \"defensedesk.png\", ao1: \"bancodefensa.png\" },\r\n\t\t\tspeedLines: \"defense_speedlines.gif\"\r\n\t\t},\r\n\t\tpro: {\r\n\t\t\tbg: \"prosecutorempty.png\",\r\n\t\t\tdesk: { ao2: \"prosecutiondesk.png\", ao1: \"bancoacusacion.png\" },\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t},\r\n\t\thld: {\r\n\t\t\tbg: \"helperstand.png\",\r\n\t\t\tdesk: null,\r\n\t\t\tspeedLines: \"defense_speedlines.gif\"\r\n\t\t},\r\n\t\thlp: {\r\n\t\t\tbg: \"prohelperstand.png\",\r\n\t\t\tdesk: null,\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t},\r\n\t\twit: {\r\n\t\t\tbg: \"witnessempty.png\",\r\n\t\t\tdesk: { ao2: \"stand.png\", ao1: \"estrado.png\" },\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t},\r\n\t\tjud: {\r\n\t\t\tbg: \"judgestand.png\",\r\n\t\t\tdesk: { ao2: \"judgedesk.png\", ao1: \"judgedesk.gif\" },\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t},\r\n\t\tjur: {\r\n\t\t\tbg: \"jurystand.png\",\r\n\t\t\tdesk: { ao2: \"jurydesk.png\", ao1: \"estrado.png\" },\r\n\t\t\tspeedLines: \"defense_speedlines.gif\"\r\n\t\t},\r\n\t\tsea: {\r\n\t\t\tbg: \"seancestand.png\",\r\n\t\t\tdesk: { ao2: \"seancedesk.png\", ao1: \"estrado.png\" },\r\n\t\t\tspeedLines: \"prosecution_speedlines.gif\"\r\n\t\t}\r\n\t};\r\n\r\n\tconst { bg, desk, speedLines } = positions[position];\r\n\r\n\tbench.className = position + \"_bench\";\r\n\tcourt.className = position + \"_court\";\r\n\r\n\tif (viewport.chatmsg.type === 5) {\r\n\t\tcourt.src = `${AO_HOST}themes/default/${encodeURI(speedLines)}`;\r\n\t\tbench.style.opacity = 0;\r\n\t} else {\r\n\t\tcourt.src = bgfolder + bg;\r\n\t\tif (desk) {\r\n\t\t\tconst deskFilename = await fileExists(bgfolder + desk.ao2) ? desk.ao2 : desk.ao1;\r\n\t\t\tbench.src = bgfolder + deskFilename;\r\n\t\t\tbench.style.opacity = 1;\r\n\t\t} else {\r\n\t\t\tbench.style.opacity = 0;\r\n\t\t}\r\n\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Intialize testimony updater \r\n\t */\r\n\tinitTestimonyUpdater() {\r\n\t\tconst testimonyFilenames = {\r\n\t\t\t1: \"witnesstestimony\",\r\n\t\t\t2: \"crossexamination\",\r\n\t\t\t3: \"notguilty\",\r\n\t\t\t4: \"guilty\"\r\n\t\t};\r\n\r\n\t\tconst testimony = testimonyFilenames[client.testimonyID];\r\n\t\tif (!testimony) {\r\n\t\t\tconsole.warn(`Invalid testimony ID ${client.testimonyID}`);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t(new Audio(client.resources[testimony].sfx)).play();\r\n\r\n\t\tconst testimonyOverlay = document.getElementById(\"client_testimony\");\r\n\t\ttestimonyOverlay.src = client.resources[testimony].src;\r\n\t\ttestimonyOverlay.style.opacity = 1;\r\n\r\n\t\tthis.testimonyTimer = 0;\r\n\t\tthis.testimonyUpdater = setTimeout(() => this.updateTestimony(), UPDATE_INTERVAL);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets animation length. If the animation cannot be found, it will\r\n\t * silently fail and return 0 instead.\r\n\t * @param {string} filename the animation file name\r\n\t */\r\n\tasync getAnimLength(filename) {\r\n\t\ttry {\r\n\t\t\tconst file = await requestBuffer(filename);\r\n\t\t\treturn this.calculateGifLength(file);\r\n\t\t} catch (err) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\toneSuccess(promises){\r\n\t\treturn Promise.all(promises.map(p => {\r\n\t\t// If a request fails, count that as a resolution so it will keep\r\n\t\t// waiting for other possible successes. If a request succeeds,\r\n\t\t// treat it as a rejection so Promise.all immediately bails out.\r\n\t\treturn p.then(\r\n\t\t\tval => Promise.reject(val),\r\n\t\t\terr => Promise.resolve(err)\r\n\t\t);\r\n\t\t})).then(\r\n\t\t// If '.all' resolved, we've just got an array of errors.\r\n\t\terrors => Promise.reject(errors),\r\n\t\t// If '.all' rejected, we've got the result we wanted.\r\n\t\tval => Promise.resolve(val)\r\n\t\t);\r\n\t}\r\n\r\n\trejectOnError(f) {\r\n\t\treturn new Promise((resolve, reject) =>\r\n\t\t\tf.then((res) => {\r\n\t\t\t\tif (res.ok) resolve(f);\r\n\t\t\t\telse reject(f);\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Adds up the frame delays to find out how long a GIF is\r\n\t * I totally didn't steal this\r\n\t * @param {data} gifFile the GIF data\r\n\t */\r\n\tcalculateGifLength(gifFile) {\r\n\t\tlet d = new Uint8Array(gifFile);\r\n\t\t// Thanks to http://justinsomnia.org/2006/10/gif-animation-duration-calculation/\r\n\t\t// And http://www.w3.org/Graphics/GIF/spec-gif89a.txt\r\n\t\tlet duration = 0;\r\n\t\tfor (var i = 0; i < d.length; i++) {\r\n\t\t\t// Find a Graphic Control Extension hex(21F904__ ____ __00)\r\n\t\t\tif (d[i] === 0x21\r\n\t\t\t\t&& d[i + 1] === 0xF9\r\n\t\t\t\t&& d[i + 2] === 0x04\r\n\t\t\t\t&& d[i + 7] === 0x00) {\r\n\t\t\t\t// Swap 5th and 6th bytes to get the delay per frame\r\n\t\t\t\tlet delay = (d[i + 5] << 8) | (d[i + 4] & 0xFF);\r\n\r\n\t\t\t\t// Should be aware browsers have a minimum frame delay \r\n\t\t\t\t// e.g. 6ms for IE, 2ms modern browsers (50fps)\r\n\t\t\t\tduration += delay < 2 ? 10 : delay;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn duration * 10;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the testimony overaly\r\n\t */\r\n\tupdateTestimony() {\r\n\t\tconst testimonyFilenames = {\r\n\t\t\t1: \"witnesstestimony\",\r\n\t\t\t2: \"crossexamination\",\r\n\t\t\t3: \"notguilty\",\r\n\t\t\t4: \"guilty\"\r\n\t\t};\r\n\r\n\t\t// Update timer\r\n\t\tthis.testimonyTimer = this.testimonyTimer + UPDATE_INTERVAL;\r\n\r\n\t\tconst testimony = testimonyFilenames[client.testimonyID];\r\n\t\tconst resource = client.resources[testimony];\r\n\t\tif (!resource) {\r\n\t\t\tthis.disposeTestimony();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.testimonyTimer >= resource.duration) {\r\n\t\t\tthis.disposeTestimony();\r\n\t\t} else {\r\n\t\t\tthis.testimonyUpdater = setTimeout(() => this.updateTestimony(), UPDATE_INTERVAL);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Dispose the testimony overlay\r\n\t */\r\n\tdisposeTestimony() {\r\n\t\tclient.testimonyID = 0;\r\n\t\tthis.testimonyTimer = 0;\r\n\t\tdocument.getElementById(\"client_testimony\").style.opacity = 0;\r\n\t\tclearTimeout(this.testimonyUpdater);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets a new emote.\r\n\t * TODO: merge this and initUpdater\r\n\t * This sets up everything before the tick() loops starts\r\n\t * a lot of things can probably be moved here, like starting the shout animation if there is one\r\n\t * TODO: the preanim logic, on the other hand, should probably be moved to tick()\r\n\t * @param {object} chatmsg the new chat message\r\n\t */\r\n\tasync say(chatmsg) {\r\n\t\tthis.chatmsg = chatmsg;\r\n\t\tthis.textnow = \"\";\r\n\t\tthis.sfxplayed = 0;\r\n\t\tthis.textTimer = 0;\r\n\t\tthis._animating = true;\r\n\r\n\t\t// stop updater\r\n\t\tclearTimeout(this.updater);\r\n\r\n\t\tconst fg = document.getElementById(\"client_fg\");\r\n\t\tconst gamewindow = document.getElementById(\"client_gamewindow\");\r\n\t\tconst waitingBox = document.getElementById(\"client_chatwaiting\");\r\n\r\n\t\t// Reset CSS animation\r\n\t\tfg.style.animation = \"\";\r\n\t\tgamewindow.style.animation = \"\";\r\n\t\twaitingBox.style.opacity = 0;\r\n\t\t\r\n\t\tconst eviBox = document.getElementById(\"client_evi\");\t\t\r\n\r\n\t\tif (this.lastEvi !== this.chatmsg.evidence) {\r\n\t\t\teviBox.style.opacity = \"0\";\r\n\t\t\teviBox.style.height = \"0%\";\t\r\n\t\t}\r\n\t\tthis.lastEvi = this.chatmsg.evidence;\r\n\r\n\t\tconst charSprite = document.getElementById(\"client_char\");\r\n\t\tconst pairSprite = document.getElementById(\"client_pair_char\");\r\n\r\n\t\tconst chatContainerBox = document.getElementById(\"client_chatcontainer\");\t\r\n\t\tconst nameBoxInner = document.getElementById(\"client_inner_name\");\r\n\t\tconst chatBoxInner = document.getElementById(\"client_inner_chat\");\r\n\r\n\t\tconst displayname = (document.getElementById(\"showname\").checked && this.chatmsg.showname !== \"\") ? this.chatmsg.showname : this.chatmsg.nameplate;\r\n\r\n\t\t//Clear out the last message\r\n\t\tchatBoxInner.innerText = this.textnow;\r\n\t\tnameBoxInner.innerText = displayname;\r\n\t\t\r\n\t\tif (this.lastChar !== this.chatmsg.name) {\r\n\t\t\tcharSprite.style.opacity = 0;\r\n\t\t\tcharSprite.src = transparentPNG;\r\n\t\t\tpairSprite.style.opacity = 0;\r\n\t\t\tpairSprite.src = transparentPNG;\r\n\t\t}\r\n\t\tthis.lastChar = this.chatmsg.name;\r\n\r\n\t\tappendICLog(this.chatmsg.content, displayname);\r\n\r\n\t\t// start checking the files\r\n\t\ttry {\r\n\t\t\tconst { url: speakUrl } = await this.oneSuccess([\r\n\t\t\t\tthis.rejectOnError(fetch(AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/\" + this.chatmsg.sprite + \".png\")),\r\n\t\t\t\tthis.rejectOnError(fetch(AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/(b)\" + this.chatmsg.sprite + \".gif\"))\r\n\t\t\t]);\r\n\t\t\tthis.speakingSprite = speakUrl ? speakUrl : transparentPNG;\r\n\t\t} catch (error) {\r\n\t\t\tthis.speakingSprite = AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/(b)\" + this.chatmsg.sprite + \".gif\";\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst { url: silentUrl } = await this.oneSuccess([\r\n\t\t\t\tthis.rejectOnError(fetch(AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/\" + this.chatmsg.sprite + \".png\")),\r\n\t\t\t\tthis.rejectOnError(fetch(AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/(a)\" + this.chatmsg.sprite + \".gif\"))\r\n\t\t\t]);\r\n\t\t\tthis.silentSprite = silentUrl ? silentUrl : transparentPNG;\r\n\t\t} catch (error) {\r\n\t\t\tthis.silentSprite = AO_HOST + \"characters/\" + encodeURI(this.chatmsg.name.toLowerCase()) + \"/(a)\" + this.chatmsg.sprite + \".gif\";\r\n\t\t}\r\n\r\n\t\t// gets which shout shall played\r\n\t\tconst shoutSprite = document.getElementById(\"client_shout\");\r\n\t\tconst shout = this.shouts[this.chatmsg.objection];\r\n\t\tif (shout) {\r\n\t\t\t// Hide message box\r\n\t\t\tchatContainerBox.style.opacity = 0;\r\n\t\t\tshoutSprite.src = client.resources[shout][\"src\"];\r\n\t\t\tshoutSprite.style.opacity = 1;\r\n\t\t\tshoutSprite.style.animation = \"bubble 700ms steps(10, jump-both)\";\r\n\r\n\t\t\tlet shoutUrl;\r\n\r\n\t\t\ttry {\r\n\t\t\tconst { url: soundUrl } = await this.oneSuccess([\r\n\t\t\t\tthis.rejectOnError(fetch(`${AO_HOST}characters/${encodeURI(this.chatmsg.name.toLowerCase())}/${shout}.wav`)),\r\n\t\t\t\tthis.rejectOnError(fetch(`${AO_HOST}misc/default/objection.wav`))\r\n\t\t\t]);\r\n\t\t\tshoutUrl = soundUrl;\r\n\t\t\t} catch (error) {\r\n\t\t\t\tshoutUrl = AO_HOST + `${AO_HOST}characters/${encodeURI(this.chatmsg.name.toLowerCase())}/${shout}.wav`;\r\n\t\t\t}\r\n\r\n\t\t\tthis.shoutaudio.src = shoutUrl;\r\n\t\t\tthis.shoutaudio.play();\r\n\t\t\tthis.shoutTimer = client.resources[shout][\"duration\"];\r\n\t\t} else {\r\n\t\t\tthis.shoutTimer = 0;\r\n\t\t}\r\n\r\n\t\tthis.chatmsg.startpreanim = true;\r\n\t\tlet gifLength = 0;\r\n\t\tswitch (this.chatmsg.type) {\r\n\t\t\t// case 0:\r\n\t\t\t// normal emote, no preanim\r\n\t\t\tcase 1:\r\n\t\t\t\t// play preanim\r\n\t\t\t\t// Hide message box\r\n\t\t\t\tchatContainerBox.style.opacity = 0;\r\n\t\t\t\t// If preanim existed then determine the length\r\n\t\t\t\tgifLength = await this.getAnimLength(`${AO_HOST}characters/${encodeURI(this.chatmsg.name.toLowerCase())}/${encodeURI(this.chatmsg.preanim)}.gif`);\r\n\t\t\t\tthis.chatmsg.startspeaking = false;\r\n\t\t\t\tbreak;\r\n\t\t\t// case 5:\r\n\t\t\t// zoom\r\n\t\t\tdefault:\r\n\t\t\t\t// due to a retarded client bug, we need to strip the sfx from the MS, if the preanim isn't playing\r\n\t\t\t\tthis.chatmsg.sound = \"\";\r\n\t\t\t\tthis.chatmsg.startspeaking = true;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tthis.chatmsg.preanimdelay = parseInt(gifLength);\r\n\r\n\t\tthis.changeBackground(chatmsg.side);\r\n\r\n\t\tsetChatbox(chatmsg.chatbox);\r\n\t\tresizeChatbox();\r\n\r\n\t\t// Flip the character\r\n\t\tif (this.chatmsg.flip === 1) {\r\n\t\t\tcharSprite.style.transform = \"scaleX(-1)\";\r\n\t\t} else {\r\n\t\t\tcharSprite.style.transform = \"scaleX(1)\";\r\n\t\t}\r\n\r\n\t\tif (this.chatmsg.other_flip === 1) {\r\n\t\t\tpairSprite.style.transform = \"scaleX(-1)\";\r\n\t\t} else {\r\n\t\t\tpairSprite.style.transform = \"scaleX(1)\";\r\n\t\t}\r\n\r\n\t\tthis.blipChannels.forEach(channel => channel.src = `${AO_HOST}sounds/general/sfx-blip${encodeURI(this.chatmsg.blips.toLowerCase())}.wav`);\r\n\r\n\t\t// process markup\r\n\t\tif(this.chatmsg.content.startsWith(\"~~\")) {\r\n\t\t\tchatBoxInner.style.textAlign = \"center\";\r\n\t\t\tthis.chatmsg.content = this.chatmsg.content.substring(2, this.chatmsg.content.length);\r\n\t\t} else {\r\n\t\t\tchatBoxInner.style.textAlign = \"inherit\";\r\n\t\t}\r\n\r\n\t\tthis.tick();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the chatbox based on the given text.\r\n\t * \r\n\t * OK, here's the documentation on how this works:\r\n\t * \r\n\t * 1 flip\r\n\t * For whatever reason it starts off by checking if the character is flipped, every time this is called\r\n\t * This is probably a TODO to move this somewhere else\r\n\t * \r\n\t * 2 flip\r\n\t * If the server supports it, the same is done for the paired character\r\n\t * Both of these should probably be moved to say()\r\n\t * \r\n\t * 3 _animating\r\n\t * If we're not done with this characters animation, i.e. his text isn't fully there, set a timeout for the next tick/step to happen\r\n\t * \r\n\t * 5 startpreanim\r\n\t * If the shout timer is over it starts with the preanim\r\n\t * The first thing it checks for is the shake effect (TODO on client this is handled by the @ symbol and not a flag )\r\n\t * Then is the flash/realization effect\r\n\t * After that, the shout image is set to a transparent placeholder gif (TODO just hide it with CSS)\r\n\t * and the main characters preanim gif is loaded\r\n\t * If pairing is supported the paired character will just stand around with his idle sprite\r\n\t * \r\n\t * 6 preanimdelay over\r\n\t * this animates the evidence popup and finally shows the character name and message box\r\n\t * it sets the text color , changes the background (again TODO) and sets the character speaking sprite\r\n\t * \r\n\t * 7 textnow != content\r\n\t * this adds a character to the textbox and stops the animations if the entire message is present in the textbox\r\n\t * \r\n\t * 8 sfx\r\n\t * independent of the stuff above, this will play any sound effects specified by the emote the character sent.\r\n\t * happens after the shout delay + an sfx delay that comes with the message packet\r\n\t * \r\n\t * XXX: This relies on a global variable `this.chatmsg`!\r\n\t */\r\n\ttick() {\r\n\t\tif (this._animating) {\r\n\t\t\tthis.updater = setTimeout(() => this.tick(), UPDATE_INTERVAL);\r\n\t\t}\r\n\r\n\t\tconst gamewindow = document.getElementById(\"client_gamewindow\");\r\n\t\tconst waitingBox = document.getElementById(\"client_chatwaiting\");\r\n\t\tconst charSprite = document.getElementById(\"client_char\");\r\n\t\tconst pairSprite = document.getElementById(\"client_pair_char\");\r\n\t\tconst eviBox = document.getElementById(\"client_evi\");\r\n\t\tconst shoutSprite = document.getElementById(\"client_shout\");\r\n\t\tconst chatBoxInner = document.getElementById(\"client_inner_chat\");\t\t\r\n\r\n\t\t// TODO: preanims sometimes play when they're not supposed to\r\n\t\tif (this.textTimer >= this.shoutTimer && this.chatmsg.startpreanim) {\r\n\t\t\t// Effect stuff\r\n\t\t\tif (this.chatmsg.screenshake === 1) {\r\n\t\t\t\t// Shake screen\r\n\t\t\t\tthis.playSFX(AO_HOST + \"sounds/general/sfx-stab.wav\");\r\n\t\t\t\tgamewindow.style.animation = \"shake 0.2s 1\";\r\n\t\t\t}\r\n\t\t\tif (this.chatmsg.flash === 1) {\r\n\t\t\t\t// Flash screen\r\n\t\t\t\tthis.playSFX(AO_HOST + \"sounds/general/sfx-realization.wav\");\r\n\t\t\t\tdocument.getElementById(\"client_fg\").style.animation = \"flash 0.4s 1\";\r\n\t\t\t}\r\n\r\n\t\t\t// Pre-animation stuff\r\n\t\t\tif (this.chatmsg.preanimdelay > 0) {\r\n\t\t\t\tshoutSprite.style.opacity = 0;\r\n\t\t\t\tshoutSprite.style.animation = \"\";\r\n\t\t\t\tconst charName = this.chatmsg.name.toLowerCase();\r\n\t\t\t\tconst preanim = this.chatmsg.preanim.toLowerCase();\r\n\t\t\t\tcharSprite.src = `${AO_HOST}characters/${encodeURI(charName)}/${encodeURI(preanim)}.gif`;\r\n\t\t\t\tcharSprite.style.opacity = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.chatmsg.other_name) {\r\n\t\t\t\tconst pairName = this.chatmsg.other_name.toLowerCase();\r\n\t\t\t\tconst pairEmote = this.chatmsg.other_emote.toLowerCase();\r\n\t\t\t\tpairSprite.style.left = this.chatmsg.other_offset + \"%\";\r\n\t\t\t\tcharSprite.style.left = this.chatmsg.self_offset + \"%\";\r\n\t\t\t\tpairSprite.src = `${AO_HOST}characters/${pairName}/(a)${pairEmote}.gif`;\r\n\t\t\t\tpairSprite.style.opacity = 1;\r\n\t\t\t} else {\r\n\t\t\t\tpairSprite.style.opacity = 0;\r\n\t\t\t\tcharSprite.style.left = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.chatmsg.startpreanim = false;\r\n\t\t\tthis.chatmsg.startspeaking = true;\r\n\t\t} else if (this.textTimer >= this.shoutTimer + this.chatmsg.preanimdelay && !this.chatmsg.startpreanim) {\r\n\t\t\tif (this.chatmsg.startspeaking) {\r\n\t\t\t\tif (this.chatmsg.evidence > 0) {\r\n\t\t\t\t\t// Prepare evidence\r\n\t\t\t\t\teviBox.src = safe_tags(client.evidences[this.chatmsg.evidence - 1].icon);\r\n\r\n\t\t\t\t\teviBox.style.width = \"auto\";\r\n\t\t\t\t\teviBox.style.height = \"36.5%\";\r\n\t\t\t\t\teviBox.style.opacity = 1;\r\n\r\n\t\t\t\t\tif (this.chatmsg.side === \"def\") {\r\n\t\t\t\t\t\t// Only def show evidence on right\r\n\t\t\t\t\t\teviBox.style.right = \"1em\";\r\n\t\t\t\t\t\teviBox.style.left = \"initial\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\teviBox.style.right = \"initial\";\r\n\t\t\t\t\t\teviBox.style.left = \"1em\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresizeChatbox();\r\n\r\n\t\t\t\tconst chatContainerBox = document.getElementById(\"client_chatcontainer\");\r\n\t\t\t\tchatContainerBox.style.opacity = 1;\r\n\r\n\t\t\t\tchatBoxInner.className = \"text_\" + this.colors[this.chatmsg.color];\r\n\r\n\t\t\t\tthis.chatmsg.startspeaking = false;\r\n\r\n\t\t\t\tif (this.chatmsg.preanimdelay === 0) {\r\n\t\t\t\t\tshoutSprite.style.opacity = 0;\r\n\t\t\t\t\tshoutSprite.style.animation = \"\";\r\n\t\t\t\t\tthis.changeBackground(this.chatmsg.side);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (extrafeatures.includes(\"cccc_ic_support\")) {\r\n\t\t\t\t\tif (this.chatmsg.other_name) {\r\n\t\t\t\t\t\tconst pairName = this.chatmsg.other_name.toLowerCase();\r\n\t\t\t\t\t\tconst pairEmote = this.chatmsg.other_emote.toLowerCase();\r\n\t\t\t\t\t\tpairSprite.style.left = this.chatmsg.other_offset + \"%\";\r\n\t\t\t\t\t\tcharSprite.style.left = this.chatmsg.self_offset + \"%\";\r\n\t\t\t\t\t\tpairSprite.src = `${AO_HOST}characters/${pairName}/(a)${pairEmote}.gif`;\r\n\t\t\t\t\t\tpairSprite.style.opacity = 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpairSprite.style.opacity = 0;\r\n\t\t\t\t\t\tcharSprite.style.left = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcharSprite.src = this.speakingSprite;\r\n\t\t\t\tcharSprite.style.opacity = 1;\r\n\r\n\t\t\t\tif (this.textnow === this.chatmsg.content) {\r\n\t\t\t\t\tcharSprite.src = this.silentSprite;\r\n\t\t\t\t\tcharSprite.style.opacity = 1;\r\n\t\t\t\t\twaitingBox.style.opacity = 1;\r\n\t\t\t\t\tthis._animating = false;\r\n\t\t\t\t\tclearTimeout(this.updater);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (this.textnow !== this.chatmsg.content) {\r\n\t\t\t\t\tif (this.chatmsg.content.charAt(this.textnow.length) !== \" \") {\r\n\t\t\t\t\t\tthis.blipChannels[this.currentBlipChannel].play();\r\n\t\t\t\t\t\tthis.currentBlipChannel++;\r\n\t\t\t\t\t\tthis.currentBlipChannel %= this.blipChannels.length;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.textnow = this.chatmsg.content.substring(0, this.textnow.length + 1);\r\n\r\n\t\t\t\t\tchatBoxInner.innerText = this.textnow;\r\n\r\n\t\t\t\t\tif (this.textnow === this.chatmsg.content) {\r\n\t\t\t\t\t\tthis._animating = false;\r\n\t\t\t\t\t\tcharSprite.src = this.silentSprite;\r\n\t\t\t\t\t\tcharSprite.style.opacity = 1;\r\n\t\t\t\t\t\twaitingBox.style.opacity = 1;\r\n\t\t\t\t\t\tclearTimeout(this.updater);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!this.sfxplayed && this.chatmsg.snddelay + this.shoutTimer >= this.textTimer) {\r\n\t\t\tthis.sfxplayed = 1;\r\n\t\t\tif (this.chatmsg.sound !== \"0\" && this.chatmsg.sound !== \"1\" && this.chatmsg.sound !== \"\" && this.chatmsg.sound !== undefined) {\r\n\t\t\t\tthis.playSFX(AO_HOST + \"sounds/general/\" + encodeURI(this.chatmsg.sound.toLowerCase()) + \".wav\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.textTimer = this.textTimer + UPDATE_INTERVAL;\r\n\t}\r\n}\r\n\r\nclass INI {\r\n\tstatic parse(data) {\r\n\t\tconst regex = {\r\n\t\t\tsection: /^\\s*\\[\\s*([^\\]]*)\\s*\\]\\s*$/,\r\n\t\t\tparam: /^\\s*([\\w.\\-_]+)\\s*=\\s*(.*?)\\s*$/,\r\n\t\t\tcomment: /^\\s*;.*$/\r\n\t\t};\r\n\t\tconst value = {};\r\n\t\tconst lines = data.split(/\\r\\n|\\r|\\n/);\r\n\t\tlet section;\r\n\t\tlines.forEach(function (line) {\r\n\t\t\tif (regex.comment.test(line)) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if (line.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if (regex.param.test(line)) {\r\n\t\t\t\tconst match = line.match(regex.param);\r\n\t\t\t\tif (section) {\r\n\t\t\t\t\tif (match[1].toLowerCase() === \"showname\") {\t//don't lowercase the showname\r\n\t\t\t\t\t\tvalue[section][\"showname\"] = match[2];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvalue[section][match[1].toLowerCase()] = match[2].toLowerCase();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//} else { // we don't care about attributes without a section\r\n\t\t\t\t\t//\tvalue[match[1]] = match[2];\r\n\t\t\t\t}\r\n\t\t\t} else if (regex.section.test(line)) {\r\n\t\t\t\tconst match = line.match(regex.section);\r\n\t\t\t\tvalue[match[1].toLowerCase()] = {};\t\t\t\t//lowercase everything else\r\n\t\t\t\tsection = match[1].toLowerCase();\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn value;\r\n\t}\r\n}\r\n\r\n/**\r\n * read a cookie from storage\r\n * got this from w3schools\r\n * https://www.w3schools.com/js/js_cookies.asp\r\n * @param {String} cname The name of the cookie to return\r\n */\r\nfunction getCookie(cname) {\r\n\tvar name = cname + \"=\";\r\n\tvar decodedCookie = decodeURIComponent(document.cookie);\r\n\tvar ca = decodedCookie.split(';');\r\n\tfor (var i = 0; i < ca.length; i++) {\r\n\t\tvar c = ca[i];\r\n\t\twhile (c.charAt(0) === ' ') {\r\n\t\t\tc = c.substring(1);\r\n\t\t}\r\n\t\tif (c.indexOf(name) === 0) {\r\n\t\t\treturn c.substring(name.length, c.length);\r\n\t\t}\r\n\t}\r\n\treturn \"\";\r\n}\r\n\r\n/**\r\n * set a cookie\r\n * the version from w3schools expects these to expire\r\n * @param {String} cname The name of the cookie to return\r\n * @param {String} value The value of that cookie option\r\n */\r\nfunction setCookie(cname, value) {\r\n\tdocument.cookie = cname + \"=\" + value;\r\n}\r\n\r\n/**\r\n * Triggered when the Return key is pressed on the out-of-character chat input box.\r\n * @param {KeyboardEvent} event\r\n */\r\nexport function onOOCEnter(event) {\r\n\tif (event.keyCode === 13) {\r\n\t\tclient.sendOOC(document.getElementById(\"client_oocinputbox\").value);\r\n\t\tdocument.getElementById(\"client_oocinputbox\").value = \"\";\r\n\t}\r\n}\r\nwindow.onOOCEnter = onOOCEnter;\r\n\r\n/**\r\n * Triggered when the Return key is pressed on the in-character chat input box.\r\n * @param {KeyboardEvent} event\r\n */\r\nexport function onEnter(event) {\r\n\tif (event.keyCode === 13) {\r\n\t\tconst mychar = client.character;\r\n\t\tconst myemo = client.emote;\r\n\t\tconst evi = client.evidence;\r\n\t\tconst flip = ((document.getElementById(\"button_flip\").classList.contains(\"dark\")) ? 1 : 0);\r\n\t\tconst flash = ((document.getElementById(\"button_flash\").classList.contains(\"dark\")) ? 1 : 0);\r\n\t\tconst screenshake = ((document.getElementById(\"button_shake\").classList.contains(\"dark\")) ? 1 : 0);\r\n\t\tconst noninterrupting_preanim = ((document.getElementById(\"check_nonint\").checked) ? 1 : 0);\r\n\t\tconst looping_sfx = ((document.getElementById(\"check_loopsfx\").checked) ? 1 : 0);\r\n\t\tconst color = document.getElementById(\"textcolor\").value;\r\n\t\tconst showname = document.getElementById(\"ic_chat_name\").value;\r\n\t\tconst text = document.getElementById(\"client_inputbox\").value;\r\n\t\tconst pairchar = document.getElementById(\"pair_select\").value;\r\n\t\tconst pairoffset = document.getElementById(\"pair_offset\").value;\r\n\t\tlet sfxname = \"0\";\r\n\t\tlet sfxdelay = 0;\r\n\t\tlet preanim = \"-\";\r\n\t\tif (document.getElementById(\"sendsfx\").checked) {\r\n\t\t\tsfxname = myemo.sfx;\r\n\t\t\tsfxdelay = myemo.sfxdelay;\r\n\t\t}\r\n\r\n\t\tif (document.getElementById(\"sendpreanim\").checked) {\r\n\t\t\tpreanim = myemo.preanim;\r\n\t\t}\r\n\r\n\t\tclient.sendIC(\"chat\", preanim, mychar.name, myemo.emote,\r\n\t\t\ttext, mychar.side,\r\n\t\t\tsfxname, myemo.zoom, sfxdelay, selectedShout, evi, flip,\r\n\t\t\tflash, color, showname, pairchar, pairoffset, noninterrupting_preanim, looping_sfx, screenshake);\r\n\t}\r\n}\r\nwindow.onEnter = onEnter;\r\n\r\n/**\r\n * Resets the IC parameters for the player to enter a new chat message.\r\n * This should only be called when the player's previous chat message\r\n * was successfully sent/presented.\r\n */\r\nfunction resetICParams() {\r\n\tdocument.getElementById(\"client_inputbox\").value = \"\";\r\n\tdocument.getElementById(\"button_flash\").className = \"client_button\";\r\n\tdocument.getElementById(\"button_shake\").className = \"client_button\";\r\n\r\n\tdocument.getElementById(\"sendpreanim\").checked = false;\r\n\r\n\tif (selectedShout) {\r\n\t\tdocument.getElementById(\"button_\" + selectedShout).className = \"client_button\";\r\n\t\tselectedShout = 0;\r\n\t}\t\r\n}\r\n\r\n/**\r\n * Triggered when the music search bar is changed\r\n * @param {MouseEvent} event\r\n */\r\nexport function musiclist_filter(_event) {\r\n\tconst musiclist_element = document.getElementById(\"client_musiclist\");\r\n\tconst searchname = document.getElementById(\"client_musicsearch\").value;\r\n\r\n\tmusiclist_element.innerHTML = \"\";\r\n\r\n\tfor (const trackname of client.musics){\r\n\t\tif (trackname.toLowerCase().indexOf(searchname.toLowerCase()) !== -1) { \r\n\t\t\tconst newentry = document.createElement(\"OPTION\");\r\n\t\t\tnewentry.text = trackname;\r\n\t\t\tmusiclist_element.options.add(newentry);\r\n\t\t}\r\n\t}\t\t\r\n}\r\nwindow.musiclist_filter = musiclist_filter;\r\n\r\n/**\r\n * Triggered when an item on the music list is clicked.\r\n * @param {MouseEvent} event\r\n */\r\nexport function musiclist_click(_event) {\r\n\tconst playtrack = document.getElementById(\"client_musiclist\").value;\r\n\tclient.sendMusicChange(playtrack);\r\n\r\n\t// This is here so you can't actually select multiple tracks,\r\n\t// even though the select tag has the multiple option to render differently\r\n\tlet musiclist_elements = document.getElementById(\"client_musiclist\").selectedOptions;\r\n\tfor (let i = 0; i < musiclist_elements.length; i++) {\r\n\t\tmusiclist_elements[i].selected = false;\r\n\t}\r\n}\r\nwindow.musiclist_click = musiclist_click;\r\n\r\n/**\r\n * Triggered when a character in the mute list is clicked\r\n * @param {MouseEvent} event\r\n */\r\nexport function mutelist_click(_event) {\r\n\tconst mutelist = document.getElementById(\"mute_select\");\r\n\tconst selected_character = mutelist.options[mutelist.selectedIndex];\r\n\r\n\tif (client.chars[selected_character.value].muted === false) {\r\n\t\tclient.chars[selected_character.value].muted = true;\r\n\t\tselected_character.text = client.chars[selected_character.value].name + \" (muted)\";\r\n\t\tconsole.info(\"muted \" + client.chars[selected_character.value].name);\r\n\t} else {\r\n\t\tclient.chars[selected_character.value].muted = false;\r\n\t\tselected_character.text = client.chars[selected_character.value].name;\r\n\t}\r\n}\r\nwindow.mutelist_click = mutelist_click;\r\n\r\n/**\r\n * Triggered when the showname checkboc is clicked\r\n * @param {MouseEvent} event\r\n */\r\nexport function showname_click(_event) {\r\n\tsetCookie(\"showname\", document.getElementById(\"showname\").checked);\r\n\tsetCookie(\"ic_chat_name\", document.getElementById(\"ic_chat_name\").value);\r\n}\r\nwindow.showname_click = showname_click;\r\n\r\n/**\r\n * Triggered when an item on the area list is clicked.\r\n * @param {MouseEvent} event\r\n */\r\nexport function area_click(el) {\r\n\tconst area = client.areas[el.id.substr(4)].name;\r\n\tclient.sendMusicChange(area);\r\n\r\n\tconst areaHr = document.createElement(\"div\");\r\n\tareaHr.className = \"hrtext\";\r\n\tareaHr.textContent = `switched to ${el.textContent}`;\r\n\tdocument.getElementById(\"client_log\").appendChild(areaHr);\r\n}\r\nwindow.area_click = area_click;\r\n\r\n/**\r\n * Triggered by the music volume slider.\r\n */\r\nexport function changeMusicVolume() {\r\n\tsetCookie(\"musicVolume\", document.getElementById(\"client_musicaudio\").volume);\r\n}\r\nwindow.changeMusicVolume = changeMusicVolume;\r\n\r\n/**\r\n * Triggered by the sound effect volume slider.\r\n */\r\nexport function changeSFXVolume() {\r\n\tviewport.sfxaudio.volume = document.getElementById(\"client_svolume\").value;\r\n\tviewport.shoutaudio.volume = document.getElementById(\"client_svolume\").value;\r\n\tsetCookie(\"sfxVolume\", document.getElementById(\"client_svolume\").value);\r\n}\r\nwindow.changeSFXVolume = changeSFXVolume;\r\n\r\n/**\r\n * Triggered by the blip volume slider.\r\n */\r\nexport function changeBlipVolume() {\r\n\tviewport.blipVolume = document.getElementById(\"client_bvolume\").value;\r\n\tsetCookie(\"blipVolume\", document.getElementById(\"client_bvolume\").value);\r\n}\r\nwindow.changeBlipVolume = changeBlipVolume;\r\n\r\n/**\r\n * Triggered by the theme selector.\r\n */\r\nexport function reloadTheme() {\r\n\tviewport.theme = document.getElementById(\"client_themeselect\").value;\r\n\tsetCookie(\"theme\", viewport.theme);\r\n\tdocument.getElementById(\"client_theme\").href = \"styles/\" + viewport.theme + \".css\";\r\n}\r\nwindow.reloadTheme = reloadTheme;\r\n\r\n/**\r\n * Triggered by the modcall sfx dropdown\r\n */\r\nexport function modcall_test() {\r\n\tclient.handleZZ(\"test#test\".split(\"#\"));\r\n}\r\nwindow.modcall_test = modcall_test;\r\n\r\n/**\r\n * Triggered by the ini button.\r\n */\r\nexport async function iniedit() {\r\n\tconst ininame = document.getElementById(\"client_ininame\").value;\r\n\tconst inicharID = client.charID;\r\n\tawait client.handleCharacterInfo(ininame.split(\"&\"), inicharID);\r\n\tclient.handlePV((\"PV#0#CID#\" + inicharID).split(\"#\"));\r\n}\r\nwindow.iniedit = iniedit;\r\n\r\n/**\r\n * Triggered by the change aspect ratio checkbox\r\n */\r\nexport async function switchAspectRatio() {\r\n\tconst background = document.getElementById(\"client_background\");\r\n\tconst offsetCheck = document.getElementById(\"client_hdviewport_offset\");\r\n\tif(document.getElementById(\"client_hdviewport\").checked) {\r\n\t\tbackground.style.paddingBottom = \"56.25%\";\r\n\t\toffsetCheck.disabled = false;\r\n\t} else {\r\n\t\tbackground.style.paddingBottom = \"75%\";\r\n\t\toffsetCheck.disabled = true;\r\n\t}\r\n}\r\nwindow.switchAspectRatio = switchAspectRatio;\r\n\r\n/**\r\n * Triggered by the change aspect ratio checkbox\r\n */\r\nexport async function switchChatOffset() {\r\n\tconst container = document.getElementById(\"client_chatcontainer\");\r\n\tif(document.getElementById(\"client_hdviewport_offset\").checked) {\r\n\t\tcontainer.style.width = \"80%\";\r\n\t\tcontainer.style.left = \"10%\";\r\n\t} else {\r\n\t\tcontainer.style.width = \"100%\";\r\n\t\tcontainer.style.left = 0;\r\n\t}\r\n}\r\nwindow.switchChatOffset = switchChatOffset;\r\n\r\n/**\r\n * Triggered when a character icon is clicked in the character selection menu.\r\n * @param {MouseEvent} event\r\n */\r\nexport function changeCharacter(_event) {\r\n\tclient.sendLeaveRoom();\r\n\tdocument.getElementById(\"client_charselect\").style.display = \"block\";\r\n\tdocument.getElementById(\"client_emo\").innerHTML = \"\";\r\n}\r\nwindow.changeCharacter = changeCharacter;\r\n\r\n/**\r\n * Triggered when there was an error loading a character sprite.\r\n * @param {HTMLImageElement} image the element containing the missing image\r\n */\r\nexport function charError(image) {\r\n\tconsole.warn(image.src + \" is missing from webAO\");\r\n\t//image.src = transparentPNG;\r\n\treturn true;\r\n}\r\nwindow.charError = charError;\r\n\r\n/**\r\n * Triggered when there was an error loading a generic sprite.\r\n * @param {HTMLImageElement} image the element containing the missing image\r\n */\r\nexport function imgError(image) {\r\n\timage.onerror = \"\";\r\n\timage.src = \"\"; //unload so the old sprite doesn't persist\r\n\treturn true;\r\n}\r\nwindow.imgError = imgError;\r\n\r\n/**\r\n * Make a GET request for a specific URI.\r\n * @param {string} url the URI to be requested\r\n * @returns response data\r\n * @throws {Error} if status code is not 2xx, or a network error occurs\r\n */\r\nasync function requestBuffer(url) {\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tconst xhr = new XMLHttpRequest();\r\n\t\txhr.responseType = \"arraybuffer\";\r\n\t\txhr.addEventListener(\"error\", () => {\r\n\t\t\tconst err = new Error(`Request for ${url} failed: ${xhr.statusText}`);\r\n\t\t\terr.code = xhr.status;\r\n\t\t\treject(err);\r\n\t\t});\r\n\t\txhr.addEventListener(\"abort\", () => {\r\n\t\t\tconst err = new Error(`Request for ${url} was aborted!`);\r\n\t\t\terr.code = xhr.status;\r\n\t\t\treject(err);\r\n\t\t});\r\n\t\txhr.addEventListener(\"load\", () => {\r\n\t\t\tif (xhr.status < 200 || xhr.status >= 300) {\r\n\t\t\t\tconst err = new Error(`Request for ${url} failed with status code ${xhr.status}`);\r\n\t\t\t\terr.code = xhr.status;\r\n\t\t\t\treject(err);\r\n\t\t\t} else {\r\n\t\t\t\tresolve(xhr.response);\r\n\t\t\t}\r\n\t\t});\r\n\t\txhr.open(\"GET\", url, true);\r\n\t\txhr.send();\r\n\t});\r\n}\r\n\r\n/**\r\n * Make a GET request for a specific URI.\r\n * @param {string} url the URI to be requested\r\n * @returns response data\r\n * @throws {Error} if status code is not 2xx, or a network error occurs\r\n */\r\nasync function request(url) {\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tconst xhr = new XMLHttpRequest();\r\n\t\txhr.responseType = \"text\";\r\n\t\txhr.addEventListener(\"error\", () => {\r\n\t\t\tconst err = new Error(`Request for ${url} failed: ${xhr.statusText}`);\r\n\t\t\terr.code = xhr.status;\r\n\t\t\treject(err);\r\n\t\t});\r\n\t\txhr.addEventListener(\"abort\", () => {\r\n\t\t\tconst err = new Error(`Request for ${url} was aborted!`);\r\n\t\t\terr.code = xhr.status;\r\n\t\t\treject(err);\r\n\t\t});\r\n\t\txhr.addEventListener(\"load\", () => {\r\n\t\t\tif (xhr.status < 200 || xhr.status >= 300) {\r\n\t\t\t\tconst err = new Error(`Request for ${url} failed with status code ${xhr.status}`);\r\n\t\t\t\terr.code = xhr.status;\r\n\t\t\t\treject(err);\r\n\t\t\t} else {\r\n\t\t\t\tresolve(xhr.response);\r\n\t\t\t}\r\n\t\t});\r\n\t\txhr.open(\"GET\", url, true);\r\n\t\txhr.send();\r\n\t});\r\n}\r\n\r\n/**\r\n * Checks if a file exists at the specified URI.\r\n * @param {string} url the URI to be checked\r\n */\r\nasync function fileExists(url) {\r\n\ttry {\r\n\t\tawait request(url);\r\n\t\treturn true;\r\n\t} catch (err) {\r\n\t\tif (err.code >= 400) return false;\r\n\t\telse throw err;\r\n\t}\r\n}\r\n\r\n/**\r\n * Triggered when the reconnect button is pushed.\r\n */\r\nexport function ReconnectButton() {\r\n\tclient.cleanup();\r\n\tclient = new Client(serverIP);\r\n\tif (client) {\r\n\t\tmode = \"join\"; // HACK: see client.onOpen\r\n\r\n\t\tdocument.getElementById(\"client_error\").style.display = \"none\";\r\n\r\n\t}\r\n}\r\nwindow.ReconnectButton = ReconnectButton;\r\n\r\n/**\r\n * Appends a message to the in-character chat log.\r\n * @param {string} msg the string to be added\r\n * @param {string} name the name of the sender\r\n */\r\nfunction appendICLog(msg, name = \"\", time = new Date()) {\r\n\tconst entry = document.createElement(\"p\");\r\n\tconst nameField = document.createElement(\"span\");\r\n\tconst textField = document.createElement(\"span\");\r\n\tnameField.className = \"iclog_name\";\r\n\tnameField.appendChild(document.createTextNode(name));\r\n\r\n\ttextField.className = \"iclog_text\";\r\n\ttextField.appendChild(document.createTextNode(msg));\r\n\r\n\tentry.appendChild(nameField);\r\n\tentry.appendChild(textField);\r\n\r\n\t// Only put a timestamp if the minute has changed.\r\n\tif (lastICMessageTime.getMinutes() !== time.getMinutes()) {\r\n\t\tconst timeStamp = document.createElement(\"span\");\r\n\t\ttimeStamp.className = \"iclog_time\";\r\n\t\ttimeStamp.innerText = time.toLocaleTimeString(undefined, {\r\n\t\t\thour: \"numeric\",\r\n\t\t\tminute: \"2-digit\"\r\n\t\t});\r\n\t\tentry.appendChild(timeStamp);\r\n\t}\r\n\r\n\tconst clientLog = document.getElementById(\"client_log\");\r\n\tclientLog.appendChild(entry);\r\n\r\n\t/* This is a little buggy - some troubleshooting might be desirable */\r\n\tif (clientLog.scrollTop > clientLog.scrollHeight - 800) {\r\n\t\tclientLog.scrollTop = clientLog.scrollHeight;\r\n\t}\r\n\r\n\tlastICMessageTime = new Date();\r\n}\r\n\r\n/**\r\n * Triggered when the music search bar is changed\r\n * @param {MouseEvent} event\r\n */\r\nexport function chartable_filter(_event) {\r\n\tconst searchname = document.getElementById(\"client_charactersearch\").value;\r\n\r\n\tclient.chars.forEach(function (character, charid) {\r\n\t\tconst demothing = document.getElementById(`demo_${charid}`);\r\n\t\tif (character.name.toLowerCase().indexOf(searchname.toLowerCase()) === -1) { \r\n\t\t\tdemothing.style.display = \"none\";\r\n\t\t} else {\r\n\t\t\tdemothing.style.display = \"inline-block\";\r\n\t\t}\r\n\t});\r\n}\r\nwindow.chartable_filter = chartable_filter;\r\n\r\n/**\r\n * Requests to play as a character.\r\n * @param {number} ccharacter the character ID; if this is a large number,\r\n * then spectator is chosen instead.\r\n */\r\nexport function pickChar(ccharacter) {\r\n\tif (ccharacter===-1) {\r\n\t\t// Spectator\r\n\t\tdocument.getElementById(\"client_charselect\").style.display = \"none\";\t\t\r\n\t} else {\r\n\t\tclient.sendCharacter(ccharacter);\r\n\t}\r\n}\r\nwindow.pickChar = pickChar;\r\n\r\n/**\r\n * Highlights and selects an emotion for in-character chat.\r\n * @param {string} emo the new emotion to be selected\r\n */\r\nexport function pickEmotion(emo) {\r\n\ttry {\r\n\t\tif (client.selectedEmote !== -1) {\r\n\t\t\tdocument.getElementById(\"emo_\" + client.selectedEmote).src = client.emote.button_off;\r\n\t\t}\r\n\t} catch (err) {\r\n\t\t// do nothing\r\n\t}\r\n\tclient.selectedEmote = emo;\r\n\tdocument.getElementById(\"emo_\" + emo).src = client.emote.button_on;\r\n}\r\nwindow.pickEmotion = pickEmotion;\r\n\r\n/**\r\n * Highlights and selects an evidence for in-character chat.\r\n * @param {string} evidence the evidence to be presented\r\n */\r\nexport function pickEvidence(evidenceID) {\r\n\tconst evidence = Number(evidenceID);\r\n\tif (client.selectedEvidence !== evidence) {\r\n\t\t//Update selected evidence\t\t\r\n\t\tif (client.selectedEvidence > 0) {\r\n\t\t\tdocument.getElementById(\"evi_\" + client.selectedEvidence).className = \"evi_icon\";\r\n\t\t}\r\n\t\tdocument.getElementById(\"evi_\" + evidence).className = \"evi_icon dark\";\r\n\t\tclient.selectedEvidence = evidence;\r\n\r\n\t\t// Show evidence on information window\r\n\t\tdocument.getElementById(\"evi_name\").value = client.evidences[evidence - 1].name;\r\n\t\tdocument.getElementById(\"evi_desc\").value = client.evidences[evidence - 1].desc;\r\n\r\n\t\t// Update icon\r\n\t\tconst icon_id = getIndexFromSelect(\"evi_select\", client.evidences[evidence - 1].filename);\r\n\t\tdocument.getElementById(\"evi_select\").selectedIndex = icon_id;\r\n\t\tif (icon_id === 0) {\r\n\t\t\tdocument.getElementById(\"evi_filename\").value = client.evidences[evidence - 1].filename;\r\n\t\t}\r\n\t\tupdateEvidenceIcon();\r\n\r\n\t\t// Update button\r\n\t\tdocument.getElementById(\"evi_add\").className = \"client_button hover_button inactive\";\r\n\t\tdocument.getElementById(\"evi_edit\").className = \"client_button hover_button\";\r\n\t\tdocument.getElementById(\"evi_cancel\").className = \"client_button hover_button\";\r\n\t\tdocument.getElementById(\"evi_del\").className = \"client_button hover_button\";\r\n\t} else {\r\n\t\tcancelEvidence();\r\n\t}\r\n}\r\nwindow.pickEvidence = pickEvidence;\r\n\r\n/**\r\n * Add evidence.\r\n */\r\nexport function addEvidence() {\r\n\tconst evidence_select = document.getElementById(\"evi_select\");\r\n\tclient.sendPE(document.getElementById(\"evi_name\").value,\r\n\t\tdocument.getElementById(\"evi_desc\").value,\r\n\t\tevidence_select.selectedIndex === 0 ?\r\n\t\t\tdocument.getElementById(\"evi_filename\").value :\r\n\t\t\tevidence_select.options[evidence_select.selectedIndex].text\r\n\t);\r\n\tcancelEvidence();\r\n}\r\nwindow.addEvidence = addEvidence;\r\n\r\n/**\r\n * Edit selected evidence.\r\n */\r\nexport function editEvidence() {\r\n\tconst evidence_select = document.getElementById(\"evi_select\");\r\n\tconst id = parseInt(client.selectedEvidence) - 1;\r\n\tclient.sendEE(id,\r\n\t\tdocument.getElementById(\"evi_name\").value,\r\n\t\tdocument.getElementById(\"evi_desc\").value,\r\n\t\tevidence_select.selectedIndex === 0 ?\r\n\t\t\tdocument.getElementById(\"evi_filename\").value :\r\n\t\t\tevidence_select.options[evidence_select.selectedIndex].text\r\n\t);\r\n\tcancelEvidence();\r\n}\r\nwindow.editEvidence = editEvidence;\r\n\r\n/**\r\n * Delete selected evidence.\r\n */\r\nexport function deleteEvidence() {\r\n\tconst id = parseInt(client.selectedEvidence) - 1;\r\n\tclient.sendDE(id);\r\n\tcancelEvidence();\r\n}\r\nwindow.deleteEvidence = deleteEvidence;\r\n\r\n/**\r\n * Cancel evidence selection.\r\n */\r\nexport function cancelEvidence() {\r\n\t//Clear evidence data\r\n\tif (client.selectedEvidence > 0) {\r\n\t\tdocument.getElementById(\"evi_\" + client.selectedEvidence).className = \"evi_icon\";\r\n\t}\r\n\tclient.selectedEvidence = 0;\r\n\r\n\t// Clear evidence on information window\r\n\tdocument.getElementById(\"evi_select\").selectedIndex = 0;\r\n\tupdateEvidenceIcon(); // Update icon widget\r\n\tdocument.getElementById(\"evi_filename\").value = \"\";\r\n\tdocument.getElementById(\"evi_name\").value = \"\";\r\n\tdocument.getElementById(\"evi_desc\").value = \"\";\r\n\tdocument.getElementById(\"evi_preview\").src = AO_HOST + \"misc/empty.png\"; //Clear icon\r\n\r\n\t// Update button\r\n\tdocument.getElementById(\"evi_add\").className = \"client_button hover_button\";\r\n\tdocument.getElementById(\"evi_edit\").className = \"client_button hover_button inactive\";\r\n\tdocument.getElementById(\"evi_cancel\").className = \"client_button hover_button inactive\";\r\n\tdocument.getElementById(\"evi_del\").className = \"client_button hover_button inactive\";\r\n}\r\nwindow.cancelEvidence = cancelEvidence;\r\n\r\n/**\r\n * Find index of anything in select box.\r\n * @param {string} select_box the select element name\r\n * @param {string} value the value that need to be compared\r\n */\r\nexport function getIndexFromSelect(select_box, value) {\r\n\t//Find if icon alraedy existed in select box\r\n\tconst select_element = document.getElementById(select_box);\r\n\tfor (let i = 1; i < select_element.length; ++i) {\r\n\t\tif (select_element.options[i].value === value) {\r\n\t\t\treturn i;\r\n\t\t}\r\n\t}\r\n\treturn 0;\r\n}\r\nwindow.getIndexFromSelect = getIndexFromSelect;\r\n\r\n/**\r\n * Set the style of the chatbox\r\n */\r\nexport function setChatbox(style) {\r\n\tconst chatbox_theme = document.getElementById(\"chatbox_theme\");\r\n\tconst selected_theme = document.getElementById(\"client_chatboxselect\").value;\r\n\tsetCookie(\"chatbox\", selected_theme);\r\n\tif(selected_theme === \"dynamic\") {\r\n\t\tif (chatbox_arr.includes(style)) {\r\n\t\t\tchatbox_theme.href = \"styles/chatbox/\" + style + \".css\";\r\n\t\t} else {\r\n\t\t\tchatbox_theme.href = \"styles/chatbox/aa.css\";\r\n\t\t}\r\n\t} else {\r\n\t\tchatbox_theme.href = \"styles/chatbox/\" + selected_theme + \".css\";\r\n\t}\r\n}\r\nwindow.setChatbox = setChatbox;\r\n\r\n/**\r\n * Set the font size for the chatbox\r\n */\r\nexport function resizeChatbox() {\r\n\tconst chatContainerBox = document.getElementById(\"client_chatcontainer\");\r\n\tconst gameHeight = document.getElementById(\"client_background\").offsetHeight;\r\n \r\n\tchatContainerBox.style.fontSize = (gameHeight * 0.05) + \"px\";\r\n}\r\nwindow.resizeChatbox = resizeChatbox;\r\n\r\n/**\r\n * Update evidence icon.\r\n */\r\nexport function updateEvidenceIcon() {\r\n\tconst evidence_select = document.getElementById(\"evi_select\");\r\n\tconst evidence_filename = document.getElementById(\"evi_filename\");\r\n\tconst evidence_iconbox = document.getElementById(\"evi_preview\");\r\n\r\n\tif (evidence_select.selectedIndex === 0) {\r\n\t\tevidence_filename.style.display = \"initial\";\r\n\t\tevidence_iconbox.src = AO_HOST + \"evidence/\" + encodeURI(evidence_filename.value.toLowerCase());\r\n\t} else {\r\n\t\tevidence_filename.style.display = \"none\";\r\n\t\tevidence_iconbox.src = AO_HOST + \"evidence/\" + encodeURI(evidence_select.value.toLowerCase());\r\n\t}\r\n}\r\nwindow.updateEvidenceIcon = updateEvidenceIcon;\r\n\r\n/**\r\n * Update evidence icon.\r\n */\r\nexport function updateActionCommands(side) {\r\n\tif (side === \"jud\") {\r\n\t\tdocument.getElementById(\"judge_action\").style.display = \"inline-table\";\r\n\t\tdocument.getElementById(\"no_action\").style.display = \"none\";\r\n\t} else {\r\n\t\tdocument.getElementById(\"judge_action\").style.display = \"none\";\r\n\t\tdocument.getElementById(\"no_action\").style.display = \"inline-table\";\r\n\t}\r\n\r\n\t// Update role selector\r\n\tfor (let i = 0, role_select = document.getElementById(\"role_select\").options; i < role_select.length; i++) {\r\n\t\tif (side === role_select[i].value) {\r\n\t\t\trole_select.selectedIndex = i;\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n}\r\nwindow.updateActionCommands = updateActionCommands;\r\n\r\n/**\r\n * Change background via OOC.\r\n */\r\nexport function changeBackgroundOOC() {\r\n\tconst selectedBG = document.getElementById(\"bg_select\");\r\n\tconst changeBGCommand = document.getElementById(\"bg_command\").value;\r\n\tconst bgFilename = document.getElementById(\"bg_filename\");\r\n\r\n\tlet filename = \"\";\r\n\tif (selectedBG.selectedIndex === 0) {\r\n\t\tfilename = bgFilename.value;\r\n\t} else {\r\n\t\tfilename = selectedBG.value;\r\n\t}\r\n\tclient.sendOOC(\"/\" + changeBGCommand.replace(\"$1\", filename));\r\n}\r\nwindow.changeBackgroundOOC = changeBackgroundOOC;\r\n\r\n/**\r\n * Change role via OOC.\r\n */\r\nexport function changeRoleOOC() {\r\n\tconst role_select = document.getElementById(\"role_select\");\r\n\tconst role_command = document.getElementById(\"role_command\").value;\r\n\r\n\tclient.sendOOC(\"/\" + role_command.replace(\"$1\", role_select.value));\r\n\tupdateActionCommands(role_select.value);\r\n}\r\nwindow.changeRoleOOC = changeRoleOOC;\r\n\r\n/**\r\n * Random character via OOC.\r\n */\r\nexport function randomCharacterOOC() {\r\n\tclient.sendOOC(\"/\" + document.getElementById(\"randomchar_command\").value);\r\n}\r\nwindow.randomCharacterOOC = randomCharacterOOC;\r\n\r\n/**\r\n * Call mod.\r\n */\r\nexport function callMod() {\r\n\tlet modcall;\r\n\tif (extrafeatures.includes(\"modcall_reason\")) {\r\n\tmodcall = prompt(\"Please enter the reason for the modcall\", \"\");\r\n\t}\r\n\tif (modcall == null || modcall === \"\") {\r\n\t\t// cancel\r\n\t} else {\r\n\t\tclient.sendZZ(modcall);\r\n\t}\r\n}\r\nwindow.callMod = callMod;\r\n\r\n/**\r\n * Declare witness testimony.\r\n */\r\nexport function initWT() {\r\n\tclient.sendRT(\"testimony1\");\r\n}\r\nwindow.initWT = initWT;\r\n\r\n/**\r\n * Declare cross examination.\r\n */\r\nexport function initCE() {\r\n\tclient.sendRT(\"testimony2\");\r\n}\r\nwindow.initCE = initCE;\r\n\r\n/**\r\n * Declare the defendant not guilty\r\n */\r\nexport function notguilty() {\r\n\tclient.sendRT(\"judgeruling#0\");\r\n}\r\nwindow.notguilty = notguilty;\r\n\r\n/**\r\n * Declare the defendant not guilty\r\n */\r\nexport function guilty() {\r\n\tclient.sendRT(\"judgeruling#1\");\r\n}\r\nwindow.guilty = guilty;\r\n\r\n/**\r\n * Increment defense health point.\r\n */\r\nexport function addHPD() {\r\n\tclient.sendHP(1, String(parseInt(client.hp[0]) + 1));\r\n}\r\nwindow.addHPD = addHPD;\r\n\r\n/**\r\n * Decrement defense health point.\r\n */\r\nexport function redHPD() {\r\n\tclient.sendHP(1, String(parseInt(client.hp[0]) - 1));\r\n}\r\nwindow.redHPD = redHPD;\r\n\r\n/**\r\n * Increment prosecution health point.\r\n */\r\nexport function addHPP() {\r\n\tclient.sendHP(2, String(parseInt(client.hp[1]) + 1));\r\n}\r\nwindow.addHPP = addHPP;\r\n\r\n/**\r\n * Decrement prosecution health point.\r\n */\r\nexport function redHPP() {\r\n\tclient.sendHP(2, String(parseInt(client.hp[1]) - 1));\r\n}\r\nwindow.redHPP = redHPP;\r\n\r\n/**\r\n * Update background preview.\r\n */\r\nexport function updateBackgroundPreview() {\r\n\tconst background_select = document.getElementById(\"bg_select\");\r\n\tconst background_filename = document.getElementById(\"bg_filename\");\r\n\tconst background_preview = document.getElementById(\"bg_preview\");\r\n\r\n\tif (background_select.selectedIndex === 0) {\r\n\t\tbackground_filename.style.display = \"initial\";\r\n\t\tbackground_preview.src = AO_HOST + \"background/\" + encodeURI(background_filename.value.toLowerCase()) + \"/defenseempty.png\";\r\n\t} else {\r\n\t\tbackground_filename.style.display = \"none\";\r\n\t\tbackground_preview.src = AO_HOST + \"background/\" + encodeURI(background_select.value.toLowerCase()) + \"/defenseempty.png\";\r\n\t}\r\n}\r\nwindow.updateBackgroundPreview = updateBackgroundPreview;\r\n\r\n/**\r\n * Highlights and selects an effect for in-character chat.\r\n * If the same effect button is selected, then the effect is canceled.\r\n * @param {string} effect the new effect to be selected\r\n */\r\nexport function toggleEffect(button) {\r\n\tif (button.classList.contains(\"dark\")) {\r\n\t\tbutton.className = \"client_button\";\r\n\t} else {\r\n\t\tbutton.className = \"client_button dark\";\r\n\t}\r\n}\r\nwindow.toggleEffect = toggleEffect;\r\n\r\n/**\r\n * Highlights and selects a menu.\r\n * @param {string} menu the menu to be selected\r\n */\r\nexport function toggleMenu(menu) {\r\n\tif (menu !== selectedMenu) {\r\n\t\tdocument.getElementById(\"menu_\" + menu).className = \"menu_button active\";\r\n\t\tdocument.getElementById(\"content_\" + menu).className = \"menu_content active\";\r\n\t\tdocument.getElementById(\"menu_\" + selectedMenu).className = \"menu_button\";\r\n\t\tdocument.getElementById(\"content_\" + selectedMenu).className = \"menu_content\";\r\n\t\tselectedMenu = menu;\r\n\t}\r\n}\r\nwindow.toggleMenu = toggleMenu;\r\n\r\n/**\r\n * Highlights and selects a shout for in-character chat.\r\n * If the same shout button is selected, then the shout is canceled.\r\n * @param {string} shout the new shout to be selected\r\n */\r\nexport function toggleShout(shout) {\r\n\tif (shout === selectedShout) {\r\n\t\tdocument.getElementById(\"button_\" + shout).className = \"client_button\";\r\n\t\tselectedShout = 0;\r\n\t} else {\r\n\t\tdocument.getElementById(\"button_\" + shout).className = \"client_button dark\";\r\n\t\tif (selectedShout) {\r\n\t\t\tdocument.getElementById(\"button_\" + selectedShout).className = \"client_button\";\r\n\t\t}\r\n\t\tselectedShout = shout;\r\n\t}\r\n}\r\nwindow.toggleShout = toggleShout;","export default [\r\n \"(Jury)Ace\",\r\n \"(Jury)Armstrong\",\r\n \"(Jury)Balmung\",\r\n \"(Jury)Brisbane W\",\r\n \"(Jury)Dahlia\",\r\n \"(Jury)Desiree\",\r\n \"(Jury)Dzbilchaltunchunchucmil\",\r\n \"(Jury)Eldoon\",\r\n \"(Jury)Emaskye\",\r\n \"(Jury)Gant\",\r\n \"(Jury)June\",\r\n \"(Jury)Laurice\",\r\n \"(Jury)Meekins\",\r\n \"(Jury)Moe\",\r\n \"(Jury)Monopoly-Guy\",\r\n \"(Jury)Neil W\",\r\n \"(Jury)Oldbag\",\r\n \"(Jury)Peppers\",\r\n \"(Jury)Regina\",\r\n \"(Jury)Ron\",\r\n \"(Jury)Shakey\",\r\n \"(Jury)Snakey\",\r\n \"(Jury)Snow\",\r\n \"(Jury)Titus Kruuump\",\r\n \"(Jury)Vera\",\r\n \"(Jury)Vex\",\r\n \"(Pb)Korily\",\r\n \"(Pb)Saber Pendragon\",\r\n \"(T) Sachiko\",\r\n \"(Vlr)Dio\",\r\n \"(Vlr)K\",\r\n \"0 Louis Armstrong\",\r\n \"0 Master Anonymous\",\r\n \"1 Anon\",\r\n \"1 Anonymous\",\r\n \"1 Custom\",\r\n \"1 Elvis Presley\",\r\n \"10 Anon\",\r\n \"10 Custom\",\r\n \"10 Stevie Wonder\",\r\n \"11 Anon\",\r\n \"11 Custom\",\r\n \"11 Tina Turner\",\r\n \"12 Anon\",\r\n \"12 Custom\",\r\n \"12 David Bowie\",\r\n \"13 Anon\",\r\n \"13 Custom\",\r\n \"13 Jimi Hendrix\",\r\n \"14 Anon\",\r\n \"14 Billy Joel\",\r\n \"14 Custom\",\r\n \"15 Anon\",\r\n \"15 Custom\",\r\n \"15 Elton John\",\r\n \"16 Custom\",\r\n \"2 Anon\",\r\n \"2 Anonymous\",\r\n \"2 Custom\",\r\n \"2 Ludwig Van Beethoven\",\r\n \"3 Anon\",\r\n \"3 Anonymous\",\r\n \"3 Custom\",\r\n \"3 Wolfgang Mozart\",\r\n \"4 Anon\",\r\n \"4 Anonymous\",\r\n \"4 Custom\",\r\n \"4 Michael Jackson\",\r\n \"5 Anon\",\r\n \"5 Custom\",\r\n \"5 Prince\",\r\n \"5Pb\",\r\n \"6 Anon\",\r\n \"6 Custom\",\r\n \"6 Marvin Gaye\",\r\n \"7 Anon\",\r\n \"7 Aretha Franklin\",\r\n \"7 Custom\",\r\n \"707\",\r\n \"777\",\r\n \"8 Anon\",\r\n \"8 Custom\",\r\n \"8 Frank Sinatra\",\r\n \"9 Anon\",\r\n \"9 Custom\",\r\n \"9 Johnny Cash\",\r\n \"Aai Edgeworth\",\r\n \"Aai Ema\",\r\n \"Aai Franziska\",\r\n \"Aai Gregory\",\r\n \"Aai Gumshoe\",\r\n \"Aai Larry\",\r\n \"Aai Lotta\",\r\n \"Aai Maggey\",\r\n \"Aai Manfred\",\r\n \"Aai Oldbag\",\r\n \"Aai Regina\",\r\n \"Aai Sawhit\",\r\n \"Aai Shelly\",\r\n \"Aai-Youngfranziska\",\r\n \"Aaiedgey\",\r\n \"Aaiema\",\r\n \"Aaifranziska\",\r\n \"Aaigumshoe\",\r\n \"Aaimanfred\",\r\n \"Aaisnow\",\r\n \"Aai_Ema\",\r\n \"Aai_Franziska\",\r\n \"Aai_Gumshoe\",\r\n \"Abellc\",\r\n \"Abigail\",\r\n \"Aboborcg\",\r\n \"Abogado\",\r\n \"Abramlc\",\r\n \"Abyss Creatures\",\r\n \"Accord\",\r\n \"Ace\",\r\n \"Ace (999)\",\r\n \"Acro\",\r\n \"Adachi\",\r\n \"Adachi Gunless\",\r\n \"Adam Ladyfirst\",\r\n \"Adam Redifast\",\r\n \"Adamlc\",\r\n \"Addam\",\r\n \"Adenine\",\r\n \"Adrian\",\r\n \"Adrian Andrews\",\r\n \"Adriancc\",\r\n \"Ae Kuzuryuu\",\r\n \"Ae Leon\",\r\n \"Ae Mikan\",\r\n \"Ahlbi\",\r\n \"Ai\",\r\n \"Ai (Ppt)\",\r\n \"Ai Enma\",\r\n \"Aigis\",\r\n \"Aigis (Godot)\",\r\n \"Aiko Umesawa Png\",\r\n \"Aiko Umesawa_Hd\",\r\n \"Aiko_Hd\",\r\n \"Aisaka\",\r\n \"Akane\",\r\n \"Akane Owari Png\",\r\n \"Akane Owari_Hd\",\r\n \"Akane Owari_Rs\",\r\n \"Akane Taira_Hd\",\r\n \"Akatsubaki_Hd\",\r\n \"Akatsuki(Mha)\",\r\n \"Akeru_Hd\",\r\n \"Akhata Domoaukafe Cuyenray\",\r\n \"Akhos\",\r\n \"Akihiko Sanada\",\r\n \"Akihiko Sanada P3\",\r\n \"Akihiro Bakuhatsu\",\r\n \"Akira Satou\",\r\n \"Akyuu\",\r\n \"Alakazam\",\r\n \"Alba\",\r\n \"Albus\",\r\n \"Aldante\",\r\n \"Aleu\",\r\n \"Alex Louis Armstrong\",\r\n \"Alfendi\",\r\n \"Alfendi Layton\",\r\n \"Alice\",\r\n \"Alice Margatroid\",\r\n \"Alice Margatroid (Kid)\",\r\n \"Alice Sparkle\",\r\n \"Alice Yabusame_Hd\",\r\n \"Aliceyttd\",\r\n \"Alice_Hd\",\r\n \"Alicorn Twilight\",\r\n \"Alisa\",\r\n \"Alisa Illinichina Amiella (Sb)\",\r\n \"Alisha Diphda\",\r\n \"Alita\",\r\n \"Alita Tiala\",\r\n \"Almaz\",\r\n \"Alphonse Elric\",\r\n \"Alphys\",\r\n \"Altamont\",\r\n \"Alterego_Hd\",\r\n \"Amadeus\",\r\n \"Amakusa\",\r\n \"Amalthus\",\r\n \"Amalthus (Praetor)\",\r\n \"Amane\",\r\n \"Amane Suzuha\",\r\n \"Amara\",\r\n \"Amisia Erdehn\",\r\n \"Amitie\",\r\n \"Amy Rose\",\r\n \"Ananta\",\r\n \"Andistandhin\",\r\n \"Andrew Hussie\",\r\n \"Android 17\",\r\n \"Angel\",\r\n \"Angel Starr\",\r\n \"Angela (P)\",\r\n \"Angelalc\",\r\n \"Angie\",\r\n \"Angie Yonaga\",\r\n \"Angie Yonaga_Hd\",\r\n \"Angie Yonaga_Rs\",\r\n \"Angramainyufgo\",\r\n \"Aniu\",\r\n \"Ann Takamaki\",\r\n \"Anna\",\r\n \"Anna (Fe)\",\r\n \"Anna (Fewarriors)\",\r\n \"Anna Mittlemont\",\r\n \"Annette\",\r\n \"Annie\",\r\n \"Anonymous\",\r\n \"Anton\",\r\n \"Anzuyttd\",\r\n \"Anzu_Hd\",\r\n \"Aoi Asahina\",\r\n \"Aoi Asahina Png\",\r\n \"Aoto\",\r\n \"Apollo\",\r\n \"Apollo 3D B\",\r\n \"Apollo Dd\",\r\n \"Apollo Dd Wounded Wit\",\r\n \"Apollo Justice\",\r\n \"Apollo Leg\",\r\n \"Apollocodlc\",\r\n \"Apollodd\",\r\n \"Apollodd Dlc\",\r\n \"Apollodd Injured\",\r\n \"Apollodd Wit\",\r\n \"Apollodd Wit2\",\r\n \"Apolloddwit\",\r\n \"Apollodef\",\r\n \"Apollopro\",\r\n \"Apollosoj\",\r\n \"Apollosojwit\",\r\n \"Apollostylinstreet\",\r\n \"Apollowit\",\r\n \"Apolly Def\",\r\n \"Apple\",\r\n \"Applebloom\",\r\n \"Applejack\",\r\n \"Applejackd\",\r\n \"April\",\r\n \"April May\",\r\n \"Aprilcc\",\r\n \"Ar Ru\",\r\n \"Aradia Megido (Pq)\",\r\n \"Arakawa\",\r\n \"Arbiter V1\",\r\n \"Archer\",\r\n \"Archibald\",\r\n \"Archibald Doctor\",\r\n \"Arenea Sarket\",\r\n \"Aria\",\r\n \"Ariaco\",\r\n \"Arisa\",\r\n \"Arle\",\r\n \"Arle Nadja\",\r\n \"Arle20th\",\r\n \"Armandoh\",\r\n \"Armie\",\r\n \"Armor\",\r\n \"Armstrong\",\r\n \"Armstrongcc\",\r\n \"Artemis Injustice\",\r\n \"Arthur And Percy\",\r\n \"Arthur_Rs\",\r\n \"Artoria Pendragon (Alter)\",\r\n \"Artorialilyfgo\",\r\n \"Artoriapendragonfgo\",\r\n \"Asahina\",\r\n \"Asahina (Mm)_Hd\",\r\n \"Asahina_Hd\",\r\n \"Asayoru_Hd\",\r\n \"Asbellhant\",\r\n \"Asch\",\r\n \"Ashe Bradley\",\r\n \"Asistente\",\r\n \"Askari\",\r\n \"Asougi\",\r\n \"Asougipro\",\r\n \"Assasin\",\r\n \"Astolfo\",\r\n \"Asuka Hidori\",\r\n \"Asukasei Hino_Hd\",\r\n \"Asumi Jou\",\r\n \"Athena\",\r\n \"Athena Cykes\",\r\n \"Athena Dd Wit\",\r\n \"Athena Dd Wit School\",\r\n \"Athena Maid W\",\r\n \"Athena Soj Def The Good Fucking Version\",\r\n \"Athena Soj W\",\r\n \"Athena Wc\",\r\n \"Athena Wh\",\r\n \"Athenaco\",\r\n \"Athenaco-H\",\r\n \"Athenacodlc\",\r\n \"Athenacykessoj\",\r\n \"Athenada\",\r\n \"Athenadefaa\",\r\n \"Athenah\",\r\n \"Athenah School\",\r\n \"Athenasoj\",\r\n \"Athenaw\",\r\n \"Athenawit\",\r\n \"Atmey\",\r\n \"Atmeycc\",\r\n \"Atmeyhd\",\r\n \"Auchi\",\r\n \"Auchi Dgs2\",\r\n \"Auchi Wit\",\r\n \"Aura\",\r\n \"Aurora(Sb)\",\r\n \"Aya (Fs)\",\r\n \"Aya Hiromi\",\r\n \"Aya Shameimaru\",\r\n \"Aya Shameimaru (Swr)\",\r\n \"Ayame Hanato_Hd\",\r\n \"Ayasaki Kurosuke\",\r\n \"Ayinlc\",\r\n \"Azdaja Knelax\",\r\n \"Azrael\",\r\n \"Azura\",\r\n \"Azura (Fe)\",\r\n \"Azura (Fewarriors)\",\r\n \"Badd\",\r\n \"Baikenes\",\r\n \"Bailiff\",\r\n \"Bailiff Gb\",\r\n \"Bailiff Jp\",\r\n \"Bailiffdgs\",\r\n \"Bailiffs\",\r\n \"Balto\",\r\n \"Bandagedapollo\",\r\n \"Barbara Kamiya\",\r\n \"Barnham\",\r\n \"Barok\",\r\n \"Barok Van Zieks\",\r\n \"Barok Wit\",\r\n \"Barok Z\",\r\n \"Barrows\",\r\n \"Barton\",\r\n \"Basilio\",\r\n \"Battler\",\r\n \"Battler Ushiromiya\",\r\n \"Battler Ushiromiya_Hd\",\r\n \"Bb\",\r\n \"Beat\",\r\n \"Beat Frx\",\r\n \"Beatrice\",\r\n \"Beerus\",\r\n \"Bellboy\",\r\n \"Ben\",\r\n \"Ben And Trilo\",\r\n \"Beowulf\",\r\n \"Beppo\",\r\n \"Bernkastel\",\r\n \"Berry Judge\",\r\n \"Berry Punch\",\r\n \"Beruka\",\r\n \"Beta Monaca\",\r\n \"Betty De Famme\",\r\n \"Big Band\",\r\n \"Big Macintosh\",\r\n \"Big Saionji_Hd\",\r\n \"Bigband_Rs\",\r\n \"Bigby Wolf\",\r\n \"Bikini\",\r\n \"Bikini And Elise\",\r\n \"Bill Cipher\",\r\n \"Binahlc\",\r\n \"Birdman\",\r\n \"Birdman Leg\",\r\n \"Bisharp\",\r\n \"Black Mage\",\r\n \"Black Twi\",\r\n \"Blackquill\",\r\n \"Blackquill Dd Wit\",\r\n \"Blackquillddwit\",\r\n \"Blackquillsoj\",\r\n \"Blackquillsojco\",\r\n \"Blackquillsojwit\",\r\n \"Blackquillwit\",\r\n \"Blackstar\",\r\n \"Blaise\",\r\n \"Blaise Debeste\",\r\n \"Blake Belladonna\",\r\n \"Blanc\",\r\n \"Blanco\",\r\n \"Blind Prince\",\r\n \"Bobby\",\r\n \"Bobby Fullbright\",\r\n \"Bobbyfulbright\",\r\n \"Bonbon\",\r\n \"Bongo\",\r\n \"Bonnie And Karin\",\r\n \"Bonnie_Karin\",\r\n \"Bonny De Famme\",\r\n \"Bonzi\",\r\n \"Bosco\",\r\n \"Bowl\",\r\n \"Bowser\",\r\n \"Brando\",\r\n \"Brett\",\r\n \"Brigada S.O.S\",\r\n \"Brisbane\",\r\n \"Brisbane W\",\r\n \"Bruno Bucciarati\",\r\n \"Bucky\",\r\n \"Buddy\",\r\n \"Bulleta\",\r\n \"Bulletbbcf\",\r\n \"Burley\",\r\n \"Butch Browning\",\r\n \"Butz\",\r\n \"Butz Aai\",\r\n \"Butzcc\",\r\n \"Butzedgeworth\",\r\n \"Butzsoj\",\r\n \"Byakuren\",\r\n \"Byakuren Hijiri\",\r\n \"Byakuya\",\r\n \"Byakuya Togami\",\r\n \"Byakuya Twogami\",\r\n \"Byakuya2\",\r\n \"Byakuya2_Hd\",\r\n \"Byakuyaae\",\r\n \"Byakuyadr2\",\r\n \"Byakuyahd\",\r\n \"Byakuyatogami\",\r\n \"Byakuya_Hd\",\r\n \"Byakuya_Rs\",\r\n \"Byakuya_Togami\",\r\n \"Byleth (M)\",\r\n \"Byrne\",\r\n \"Cabanela\",\r\n \"Cadance\",\r\n \"Caeda (Fewarriors)\",\r\n \"Caeser Villan\",\r\n \"Calisto\",\r\n \"Calisto (Rev)\",\r\n \"Calisto Yew\",\r\n \"Camilla (Fe)\",\r\n \"Camilla (Fewarriors)\",\r\n \"Cammy\",\r\n \"Cammy Meele\",\r\n \"Candy Worthy\",\r\n \"Canon\",\r\n \"Captain Commando\",\r\n \"Carbuncle\",\r\n \"Carbuncle20th\",\r\n \"Carl\",\r\n \"Carl Clover\",\r\n \"Carmenlc\",\r\n \"Carmine\",\r\n \"Cave\",\r\n \"Cc\",\r\n \"Celeste\",\r\n \"Celestia\",\r\n \"Celestia Ludenberg\",\r\n \"Celestia Ludenberg Png\",\r\n \"Celestia Ludenburg\",\r\n \"Celestia Ludenburg (Fancy)\",\r\n \"Celestiaw\",\r\n \"Celestia_Hd\",\r\n \"Celestia_Rs\",\r\n \"Celica (Fewarriors)\",\r\n \"Celica A Mercury\",\r\n \"Celty\",\r\n \"Chacha\",\r\n \"Chandelure\",\r\n \"Changeling\",\r\n \"Chaos\",\r\n \"Chaos (Mha)\",\r\n \"Charles\",\r\n \"Charmeleon\",\r\n \"Charmeleon Oc Vn Casual (Pokemon)\",\r\n \"Charun Krojib\",\r\n \"Chelmey\",\r\n \"Cherche\",\r\n \"Cheria\",\r\n \"Chesed\",\r\n \"Chesedlc\",\r\n \"Chiaki\",\r\n \"Chiaki Nanami\",\r\n \"Chiaki Nanami Dr3_Hd\",\r\n \"Chiakinanami\",\r\n \"Chiakinanamihd\",\r\n \"Chiaki_Hd\",\r\n \"Chiaki_Rs\",\r\n \"Chidouin\",\r\n \"Chie\",\r\n \"Chie S\",\r\n \"Chie Satonaka\",\r\n \"Chihiro\",\r\n \"Chihiro Fujisaki\",\r\n \"Chihiro Fujisaki Png\",\r\n \"Chihirofujisaki\",\r\n \"Chihiro_Hd\",\r\n \"Chihiro_Rs\",\r\n \"Chinami_Hd\",\r\n \"Chip\",\r\n \"Chisa Yukizome (Future)\",\r\n \"Chisa Yukizome (Future)_Hd\",\r\n \"Chisa Yukizome (Young)\",\r\n \"Chisa Yukizome_Hd\",\r\n \"Chixie Roixmr\",\r\n \"Chocobo\",\r\n \"Chris Mclean (Td)\",\r\n \"Chris Redfield\",\r\n \"Christo\",\r\n \"Christophercolumbusfgo\",\r\n \"Chrom\",\r\n \"Chrom (Fates)\",\r\n \"Chrom (Fewarriors)\",\r\n \"Chrysalis\",\r\n \"Chun-Li_Rs\",\r\n \"Chunlipxz\",\r\n \"Cicatrice\",\r\n \"Cindy\",\r\n \"Cindy Law\",\r\n \"Cindy Smith\",\r\n \"Cirno\",\r\n \"Cirno Swr\",\r\n \"Claire\",\r\n \"Claude\",\r\n \"Clive\",\r\n \"Clive Dove\",\r\n \"Clonco\",\r\n \"Clover\",\r\n \"Clover (999)\",\r\n \"Clover Vlr\",\r\n \"Clownpiece\",\r\n \"Cm 1\",\r\n \"Cm 2\",\r\n \"Cm 3\",\r\n \"Co-Hobo\",\r\n \"Coco Atarashi\",\r\n \"Codeweaver (D)\",\r\n \"Cody\",\r\n \"Cody Hackins\",\r\n \"Cody T\",\r\n \"Colettebrunel\",\r\n \"Colgate Minuette\",\r\n \"Colias\",\r\n \"Colias Palaeno\",\r\n \"Color Splash Mario\",\r\n \"Colress (Sm)\",\r\n \"Compa\",\r\n \"Conan\",\r\n \"Conan Edo\",\r\n \"Conan Edogawa\",\r\n \"Connor\",\r\n \"Conway Stern\",\r\n \"Cordelia (Fewarriors)\",\r\n \"Corrin (F)\",\r\n \"Corrin F (Fewarriors)\",\r\n \"Corrin M (Fewarriors)\",\r\n \"Corrinmale\",\r\n \"Corvin\",\r\n \"Cosmos\",\r\n \"Cosmos2\",\r\n \"Courtney\",\r\n \"Courtney Sithe\",\r\n \"Cowboy\",\r\n \"Cowman\",\r\n \"Crab\",\r\n \"Credidus\",\r\n \"Crogrey\",\r\n \"Cronus Ampora\",\r\n \"Cruise Control\",\r\n \"Crusader Boi\",\r\n \"Custom1\",\r\n \"Custom10\",\r\n \"Custom11\",\r\n \"Custom12\",\r\n \"Custom13\",\r\n \"Custom14\",\r\n \"Custom15\",\r\n \"Custom16\",\r\n \"Custom17\",\r\n \"Custom18\",\r\n \"Custom19\",\r\n \"Custom2\",\r\n \"Custom20\",\r\n \"Custom3\",\r\n \"Custom4\",\r\n \"Custom5\",\r\n \"Custom6\",\r\n \"Custom7\",\r\n \"Custom8\",\r\n \"Custom9\",\r\n \"Dagas\",\r\n \"Dahlia\",\r\n \"Dahlia Hawthorne\",\r\n \"Daisaku Bandai_Hd\",\r\n \"Daiya_Hd\",\r\n \"Damon Gant\",\r\n \"Dan Kuso\",\r\n \"Dana\",\r\n \"Danazanevh\",\r\n \"Dane Gustavia\",\r\n \"Dante\",\r\n \"Dante Dmc\",\r\n \"Dante Pxz\",\r\n \"Daraya Jonjet\",\r\n \"Daring Dash\",\r\n \"Daring Do\",\r\n \"Darios (Fewarriors)\",\r\n \"Dark Pit\",\r\n \"Dark Prince\",\r\n \"Darkgodot\",\r\n \"Darkklavier\",\r\n \"Darklaw\",\r\n \"Darkthena\",\r\n \"Darkthena W\",\r\n \"Daru\",\r\n \"Daryan\",\r\n \"Daryan Crescend\",\r\n \"Datz\",\r\n \"Dave Strider\",\r\n \"Dave Strider (Candy Ending) (Pq)\",\r\n \"Dave Strider (Pq)\",\r\n \"Dd Apollo Justice\",\r\n \"De Killer\",\r\n \"De Killer Aai\",\r\n \"Deadpool\",\r\n \"Death The Kid\",\r\n \"Deaththekid\",\r\n \"Decargo\",\r\n \"Decargo Dgs2\",\r\n \"Dee Vasquez\",\r\n \"Dekiller\",\r\n \"Dekilleraai\",\r\n \"Delia\",\r\n \"Delicia\",\r\n \"Demitripxz\",\r\n \"Deplume\",\r\n \"Derpy\",\r\n \"Derpyw\",\r\n \"Descole\",\r\n \"Desiree\",\r\n \"Desirée Delite\",\r\n \"Dewott\",\r\n \"Dezel\",\r\n \"Dhurke\",\r\n \"Dhurke D\",\r\n \"Dhurke Def\",\r\n \"Di-Jun Huang\",\r\n \"Diana\",\r\n \"Diane\",\r\n \"Diane Makepeace\",\r\n \"Dick Gumshoe\",\r\n \"Diego\",\r\n \"Diego Armando\",\r\n \"Diego Leg\",\r\n \"Diegoa\",\r\n \"Diegoarmando\",\r\n \"Diegocc\",\r\n \"Diegodef\",\r\n \"Diemen Xicali\",\r\n \"Dimentio\",\r\n \"Dimitri\",\r\n \"Dio\",\r\n \"Dio Brando\",\r\n \"Dirk\",\r\n \"Dirk Strider (Pq)\",\r\n \"Disciple\",\r\n \"Discord\",\r\n \"Discord Whooves\",\r\n \"Discorded Frost Lightfall\",\r\n \"Discordrevamp\",\r\n \"Dist\",\r\n \"Dizzyes\",\r\n \"Dmitri\",\r\n \"Dobinbough\",\r\n \"Dogen\",\r\n \"Dolan\",\r\n \"Dolmes\",\r\n \"Dolphi\",\r\n \"Don Paolo\",\r\n \"Donnabella\",\r\n \"Donpaolo\",\r\n \"Doof Boof\",\r\n \"Doremi\",\r\n \"Dorothy Elford\",\r\n \"Dr.Hotti\",\r\n \"Drebber\",\r\n \"Drew\",\r\n \"Drhotti\",\r\n \"Duet\",\r\n \"Duet (Lamiroir & Machi)\",\r\n \"Duet Lym\",\r\n \"Dusk\",\r\n \"Echo\",\r\n \"Eddy Swop\",\r\n \"Edgeworth\",\r\n \"Edgeworthaai\",\r\n \"Edgeworthdd\",\r\n \"Edgeworthhd\",\r\n \"Edgeworthsoj\",\r\n \"Edgeworthw\",\r\n \"Edgeworthwdd\",\r\n \"Edmonddantes\",\r\n \"Edmonddantesfgo\",\r\n \"Edna\",\r\n \"Edward Elric\",\r\n \"Eevee\",\r\n \"Effie (Fe)\",\r\n \"Eiki Shiki\",\r\n \"Eilie\",\r\n \"Eirin\",\r\n \"Eizen\",\r\n \"El Gato\",\r\n \"Eldoon\",\r\n \"Eli Ayase\",\r\n \"Elise\",\r\n \"Elise (Fe)\",\r\n \"Elise (Fewarriors)\",\r\n \"Elise Deauxnim\",\r\n \"Elizabeth\",\r\n \"Eliza_Rs\",\r\n \"Ellen\",\r\n \"Ellen(Twh)\",\r\n \"Elma\",\r\n \"Eltnum\",\r\n \"Ema\",\r\n \"Ema H Hd\",\r\n \"Ema Skye\",\r\n \"Emaaai\",\r\n \"Emaaj\",\r\n \"Emacc\",\r\n \"Emah\",\r\n \"Emaskye\",\r\n \"Emasoj\",\r\n \"Emi Ibarazaki\",\r\n \"Emiri Kimidori\",\r\n \"Emma_Hd\",\r\n \"Emmy\",\r\n \"Enemies\",\r\n \"Enhanced Courtney\",\r\n \"Enkidu\",\r\n \"Equius Zahhak (Pq)\",\r\n \"Equius_Rs\",\r\n \"Eridan Ampora (Pq)\",\r\n \"Erik Wrench\",\r\n \"Erika\",\r\n \"Erio (Mha)\",\r\n \"Ernest\",\r\n \"Ernest Amano\",\r\n \"Es\",\r\n \"Espella\",\r\n \"Espella H\",\r\n \"Espeon\",\r\n \"Espeon Oc Vn (Pokemon)\",\r\n \"Espurr Vn (Pokemon)\",\r\n \"Ess\",\r\n \"Etna\",\r\n \"Eva\",\r\n \"Eve Belduke\",\r\n \"Everyday\",\r\n \"Evilmanfred Proc\",\r\n \"Ex\",\r\n \"Fanta\",\r\n \"Faris\",\r\n \"Faris Nyannyan\",\r\n \"Faris Wartime\",\r\n \"Fausticorn\",\r\n \"Fawles\",\r\n \"Feenie\",\r\n \"Feferi Peixes (Pq)\",\r\n \"Felicia\",\r\n \"Fem Kcalb\",\r\n \"Femalerobin\",\r\n \"Fennekin Vn (Pokemon)\",\r\n \"Filch\",\r\n \"Filly Applejack\",\r\n \"Filly Fluttershy\",\r\n \"Filly Pinkie Pie\",\r\n \"Filly Rainbow Dash\",\r\n \"Filly Rarity\",\r\n \"Filly Trixie\",\r\n \"Filly Twilight\",\r\n \"Finch\",\r\n \"Fiona Elford\",\r\n \"Fiora\",\r\n \"Fiscal\",\r\n \"Flandre\",\r\n \"Flareon\",\r\n \"Flavia (Fe)\",\r\n \"Flonne\",\r\n \"Flora\",\r\n \"Flora (Fe)\",\r\n \"Floren\",\r\n \"Florent\",\r\n \"Fluffle Puff\",\r\n \"Fluttershy\",\r\n \"Flynch\",\r\n \"Forrest (Fe)\",\r\n \"Fox Mccloud\",\r\n \"Frank Sahwit\",\r\n \"Franken Stein\",\r\n \"Franny\",\r\n \"Franziska\",\r\n \"Franziska Aai\",\r\n \"Franziska Aai Young\",\r\n \"Franziska V K\",\r\n \"Franziska Von Karma\",\r\n \"Franziskaaai\",\r\n \"Franziskacc\",\r\n \"Franziskagk\",\r\n \"Franziskayoung\",\r\n \"Fraxure\",\r\n \"Frederick\",\r\n \"Frederick (Fewarriors)\",\r\n \"Frost Lightfall Witness\",\r\n \"Fuhrer\",\r\n \"Fujita_Hd\",\r\n \"Fujiwara No Mokou\",\r\n \"Fukawa\",\r\n \"Fukawa2udg\",\r\n \"Fukawa_Drae\",\r\n \"Fulbright\",\r\n \"Fullbright\",\r\n \"Furio\",\r\n \"Furio Tigre\",\r\n \"Futaba Sakura\",\r\n \"Futo No Mononobe\",\r\n \"Future Twilight\",\r\n \"Fuuka Yamagishi\",\r\n \"Fuyuhiko\",\r\n \"Fuyuhiko Kuzuryuu\",\r\n \"Fuyuhiko Kuzuryuu Png\",\r\n \"Fuyuhikokuzuryuu\",\r\n \"Fuyuhiko_Hd\",\r\n \"Ga'ran\",\r\n \"Gabe Newell\",\r\n \"Gaius\",\r\n \"Gamzee Makara (Pq)\",\r\n \"Gamzee Makara Pq\",\r\n \"Gangrel\",\r\n \"Gant\",\r\n \"Gantcc\",\r\n \"Garan\",\r\n \"Garan Queen\",\r\n \"Gardevoir\",\r\n \"Gashu\",\r\n \"Gashu Satou\",\r\n \"Gashu_Hd\",\r\n \"Gaspen\",\r\n \"Gaspensoj\",\r\n \"Gavin\",\r\n \"Gavin K\",\r\n \"Ga_Ran\",\r\n \"Geburalc\",\r\n \"Geiru\",\r\n \"Gengar\",\r\n \"Genny\",\r\n \"Genocider Sho_Udg_Hd\",\r\n \"Gensho\",\r\n \"Gerome\",\r\n \"Gerry Scotti\",\r\n \"Gharnef (Fewarriors)\",\r\n \"Giffany\",\r\n \"Gilda\",\r\n \"Gilgamesh\",\r\n \"Gill\",\r\n \"Gillianvh\",\r\n \"Gin\",\r\n \"Gin Ibushi\",\r\n \"Gin Ibushi_Hd\",\r\n \"Gin Ibushi_Rs\",\r\n \"Gina\",\r\n \"Gina Dgs2\",\r\n \"Gina Lestrade\",\r\n \"Gina Lestrade Coat\",\r\n \"Gina Lestrade Dgs2\",\r\n \"Gin_Hd\",\r\n \"Giorno Giovanna\",\r\n \"Glaceon\",\r\n \"Godaircg\",\r\n \"Godfrey\",\r\n \"Godot\",\r\n \"Godot Hld\",\r\n \"Godot Leg\",\r\n \"Godot Prison\",\r\n \"Godotcc\",\r\n \"Godott\",\r\n \"Godotw\",\r\n \"Goku\",\r\n \"Golbat\",\r\n \"Goldie\",\r\n \"Gonta\",\r\n \"Gonta Alterego_Hd\",\r\n \"Gonta Gokuhara\",\r\n \"Gonta Gokuhara_Hd\",\r\n \"Gordeau\",\r\n \"Goro Majimav04\",\r\n \"Goro Majimav05\",\r\n \"Gossip\",\r\n \"Gothitelle\",\r\n \"Gothorita\",\r\n \"Gotts\",\r\n \"Goulloyne\",\r\n \"Granta Von Karma\",\r\n \"Great Gozu (Future)\",\r\n \"Great Gozu_Hd\",\r\n \"Greed\",\r\n \"Gregory\",\r\n \"Gregory Aa Style\",\r\n \"Gregory Aai\",\r\n \"Gregory Edgeworth\",\r\n \"Gregoryaai\",\r\n \"Gregorycc\",\r\n \"Gregson\",\r\n \"Greisen\",\r\n \"Grey\",\r\n \"Grosky\",\r\n \"Grossberg\",\r\n \"Grossberg Old\",\r\n \"Grossbergcc\",\r\n \"Grossbergw\",\r\n \"Gru\",\r\n \"Gruntz\",\r\n \"Gtcat\",\r\n \"Gumshoe\",\r\n \"Gumshoe Aai\",\r\n \"Gumshoe Proc\",\r\n \"Gumshoeaai\",\r\n \"Gumshoecc\",\r\n \"Gumshoey\",\r\n \"Gunbailiff\",\r\n \"Gundam\",\r\n \"Gundham\",\r\n \"Gundham Tanaka\",\r\n \"Gundhamtanaka\",\r\n \"Gundham_Hd\",\r\n \"Gundham_Rs\",\r\n \"Gurdurr\",\r\n \"Gustavia\",\r\n \"Guy\",\r\n \"Guy Eldoon\",\r\n \"Guycecil\",\r\n \"Hades Izanami\",\r\n \"Hadesizanamibbcf\",\r\n \"Hagakure\",\r\n \"Haiji\",\r\n \"Haiji Towa Png\",\r\n \"Haiji Towa_Hd\",\r\n \"Haijitowa\",\r\n \"Hajime\",\r\n \"Hajime Hinata\",\r\n \"Hajime Makuouchii_Hd\",\r\n \"Hajimehinata\",\r\n \"Hajimehinatahd\",\r\n \"Hajime_El\",\r\n \"Hajime_Hd\",\r\n \"Hakari\",\r\n \"Hakumen\",\r\n \"Halloweenphoenix\",\r\n \"Hanako\",\r\n \"Hanako Ikezawa\",\r\n \"Hanamura\",\r\n \"Hanbei\",\r\n \"Hanbei Solo\",\r\n \"Hanekoma\",\r\n \"Hanekoma Frx\",\r\n \"Haori\",\r\n \"Harriet Sinclair\",\r\n \"Haru Mitsuki\",\r\n \"Haruhi Def\",\r\n \"Haruhi Miyazaki\",\r\n \"Haruhi Suzumiya\",\r\n \"Haruhiko Kobashikawa_Hd\",\r\n \"Haruno Guujou\",\r\n \"Hasebercg\",\r\n \"Hashida Itaru\",\r\n \"Hashimoto_Hd\",\r\n \"Hata No Kokoro\",\r\n \"Hatsune Miku\",\r\n \"Hatsune_Miku\",\r\n \"Hawk\",\r\n \"Haxorus\",\r\n \"Hayasakayttd\",\r\n \"Hayasaka_Hd\",\r\n \"Hayden Shea\",\r\n \"Hazama\",\r\n \"Hazama Honaka\",\r\n \"Hazama Honoka\",\r\n \"Haze\",\r\n \"Heavy Weapons\",\r\n \"Heidern\",\r\n \"Helper Snow\",\r\n \"Hemlock\",\r\n \"Henry (Awakening)\",\r\n \"Henry (Fe)\",\r\n \"Herman\",\r\n \"Herman Crab\",\r\n \"Hershel Von Raiser\",\r\n \"Hershellayton\",\r\n \"Hexagon\",\r\n \"Hibarircg\",\r\n \"Hibiki\",\r\n \"Hibiki Kohaku\",\r\n \"Hibikikosuke\",\r\n \"Hibiki_Hd\",\r\n \"Hideaki Hakamichi\",\r\n \"Hideki Takahashi\",\r\n \"Hifumi\",\r\n \"Hifumi Yamada\",\r\n \"Hifumi Yamada Png\",\r\n \"Hifumi_Hd\",\r\n \"Hijirihara _Takumi_Hd\",\r\n \"Hilda\",\r\n \"Himiko\",\r\n \"Himiko Yumeno\",\r\n \"Himiko Yumeno_Hd\",\r\n \"Hinakoyttd\",\r\n \"Hinako_Hd\",\r\n \"Hinoka\",\r\n \"Hinoka (Fewarriors)\",\r\n \"Hiroko\",\r\n \"Hiroko Hagakure\",\r\n \"Hiroko Hagakure Png\",\r\n \"Hiroko Hagakure_Hd\",\r\n \"Histoire\",\r\n \"Hiyajo Maho\",\r\n \"Hiyoko\",\r\n \"Hiyoko Saionji Png\",\r\n \"Hiyokosaionji\",\r\n \"Hm2 Biker\",\r\n \"Hmm\",\r\n \"Hobbes\",\r\n \"Hobbes Def\",\r\n \"Hoboapollo\",\r\n \"Hobodef\",\r\n \"Hobodefense\",\r\n \"Hobohodo\",\r\n \"Hobophoenix\",\r\n \"Hobophoenixcc\",\r\n \"Hobo_Phoenix\",\r\n \"Hodlc\",\r\n \"Hokmalc\",\r\n \"Hollande\",\r\n \"Holmes\",\r\n \"Holo\",\r\n \"Hong Meiling\",\r\n \"Hong Meiling (Gt)\",\r\n \"Horace\",\r\n \"Hosonaga\",\r\n \"Hotti\",\r\n \"Hsien-Ko_Rs\",\r\n \"Huang\",\r\n \"Hubertoswell\",\r\n \"Hugh\",\r\n \"Hugh Def\",\r\n \"Hun\",\r\n \"Hutch\",\r\n \"Hutch Windibank\",\r\n \"Hyde\",\r\n \"I-Noes\",\r\n \"Iago\",\r\n \"Iago (Fewarriors)\",\r\n \"Ibis\",\r\n \"Ibuki\",\r\n \"Ibuki (Gray)_Hd\",\r\n \"Ibuki (Turbo)\",\r\n \"Ibuki Mioda\",\r\n \"Ibuki Suika\",\r\n \"Ibukihd\",\r\n \"Ibuki_Hd\",\r\n \"Ibuki_Rs\",\r\n \"Ichirin\",\r\n \"Ichirin Kumoi\",\r\n \"Idate\",\r\n \"If\",\r\n \"Ike\",\r\n \"Iku Nagae\",\r\n \"Ikusaba\",\r\n \"Illya\",\r\n \"Illyasviel Von Einzbern\",\r\n \"Ilyana\",\r\n \"Infernape\",\r\n \"Inferno Cop\",\r\n \"Inga\",\r\n \"Ini\",\r\n \"Ini Miney\",\r\n \"Inicc\",\r\n \"Inihd\",\r\n \"Iniswap1\",\r\n \"Iniswap10\",\r\n \"Iniswap2\",\r\n \"Iniswap3\",\r\n \"Iniswap4\",\r\n \"Iniswap5\",\r\n \"Iniswap6\",\r\n \"Iniswap7\",\r\n \"Iniswap8\",\r\n \"Iniswap9\",\r\n \"Inspector\",\r\n \"Inuyasha (Mha)\",\r\n \"Invective\",\r\n \"Invisible\",\r\n \"Iris\",\r\n \"Iris H\",\r\n \"Iris Watson\",\r\n \"Iris Watson Assistant\",\r\n \"Irisholmes\",\r\n \"Iriswatson\",\r\n \"Iriswatsonassistant\",\r\n \"Iroha_Hd\",\r\n \"Ishimaru\",\r\n \"Ishimaru Kiyotaka\",\r\n \"Ishimaru_Hd\",\r\n \"Issei Ryuudou\",\r\n \"Isshikikotone\",\r\n \"Itsuka Echizen\",\r\n \"Itsuki Koizumi\",\r\n \"Izaya Orihara\",\r\n \"Izayaorihara\",\r\n \"Izayoi\",\r\n \"Izumi Curtis\",\r\n \"Izuru\",\r\n \"Izuru Kamukura\",\r\n \"Izuru Kamukura Png\",\r\n \"Izuru Kamukura_Hd\",\r\n \"Izuru_Hd\",\r\n \"J\",\r\n \"Jacques Portsman\",\r\n \"Jade Harley (Pq)\",\r\n \"Jadecurtiss\",\r\n \"Jake English (Pq)\",\r\n \"Jake Marshall\",\r\n \"Jakob\",\r\n \"James Moriarty\",\r\n \"Jane Crocker (Pq)\",\r\n \"Jataro\",\r\n \"Jataro Kemuri\",\r\n \"Jataro Kemuri Png\",\r\n \"Jataro Kemuri_Hd\",\r\n \"Jay Elbird\",\r\n \"Jean Armstrong\",\r\n \"Jeanne Alter\",\r\n \"Jeannealterfgo\",\r\n \"Jeffrey Master\",\r\n \"Jenna\",\r\n \"Jevil\",\r\n \"Jezail\",\r\n \"Jigglypuff\",\r\n \"Jigoku\",\r\n \"Jill\",\r\n \"Jillstingraydr\",\r\n \"Jillstingrayvh\",\r\n \"Jin\",\r\n \"Jin Kirigiri_Hd\",\r\n \"Jin Kisaragi\",\r\n \"Jin Mitaka\",\r\n \"Jinkazamapxz\",\r\n \"Jinn\",\r\n \"Jinxie\",\r\n \"Joan Garrideb\",\r\n \"Joan Garrideb Juror\",\r\n \"Joe\",\r\n \"Joe Tazuna\",\r\n \"Joe Tazuna_Hd\",\r\n \"Joe_Hd\",\r\n \"John\",\r\n \"John Egbert\",\r\n \"John Egbert (Pq)\",\r\n \"John Garrideb\",\r\n \"John Marsh\",\r\n \"Johnegbertpq\",\r\n \"Joka\",\r\n \"Joker\",\r\n \"Jokerp5\",\r\n \"Jolteon\",\r\n \"Josephine\",\r\n \"Joshua\",\r\n \"Joshua Frx\",\r\n \"Joshua Kiryu\",\r\n \"Jotaro Kujo\",\r\n \"Jubei\",\r\n \"Jude\",\r\n \"Judge\",\r\n \"Judge 3D\",\r\n \"Judge C\",\r\n \"Judge Celestia Et\",\r\n \"Judge Eevee\",\r\n \"Judge Et\",\r\n \"Judge Gb\",\r\n \"Judge Gk\",\r\n \"Judge Gk2\",\r\n \"Judge Hakari\",\r\n \"Judge Jp\",\r\n \"Judge Labyrinthia\",\r\n \"Judge Labyrinthia Edit\",\r\n \"Judge Misdreavus\",\r\n \"Judge Mismagius\",\r\n \"Judge Palutena\",\r\n \"Judge Pawnarid\",\r\n \"Judge Sho\",\r\n \"Judge Sneasal\",\r\n \"Judge's Bro\",\r\n \"Judge's Bro Et\",\r\n \"Judgeaai\",\r\n \"Judgebro\",\r\n \"Judgebrocc\",\r\n \"Judgecalifornia\",\r\n \"Judgecc\",\r\n \"Judgedd\",\r\n \"Judgedgs\",\r\n \"Judgedgs-Eng\",\r\n \"Judgedgs-Jap\",\r\n \"Judgeedgeworth\",\r\n \"Judgegb\",\r\n \"Judgegk\",\r\n \"Judgekhura'in\",\r\n \"Judgekhura_In\",\r\n \"Judgeklavier\",\r\n \"Judgekuma\",\r\n \"Judges Bro\",\r\n \"Judgesoj\",\r\n \"Judge_S Bro\",\r\n \"Judge_S Bro Et\",\r\n \"Juez\",\r\n \"Julianne\",\r\n \"Juliuswillkresnik\",\r\n \"Jumin Han (Mha)\",\r\n \"June\",\r\n \"June (999)\",\r\n \"June Et\",\r\n \"Juniper\",\r\n \"Juniper Casual\",\r\n \"Juniper School\",\r\n \"Junko\",\r\n \"Junko (Speen)\",\r\n \"Junko Enoshima\",\r\n \"Junko Enoshima (Fake)\",\r\n \"Junko Enoshima Png\",\r\n \"Junkodespair\",\r\n \"Junkoenoshima\",\r\n \"Junkoenoshima(Mi)\",\r\n \"Junkoenoshima(Mm)\",\r\n \"Junkomm_Hd\",\r\n \"Junkomm_Rs\",\r\n \"Junko_Hd\",\r\n \"Junpei\",\r\n \"Junpei (Persona)\",\r\n \"Junpei Iori\",\r\n \"Junpei Iori P3\",\r\n \"Juripxz\",\r\n \"Justice\",\r\n \"Justin\",\r\n \"Justine Courtney\",\r\n \"Justine Courtneypro\",\r\n \"Juzo Sakakura (Future)\",\r\n \"Juzo Sakakura_Hd\",\r\n \"K\",\r\n \"K Twilight\",\r\n \"K1-B0\",\r\n \"Kadabra\",\r\n \"Kaede\",\r\n \"Kaede Akamatsu\",\r\n \"Kaede Akamatsu_Hd\",\r\n \"Kaedeakamatsu\",\r\n \"Kaedeakamatsu Hd (Uds)\",\r\n \"Kage Maru\",\r\n \"Kagero\",\r\n \"Kagerou\",\r\n \"Kaguya Houraisan\",\r\n \"Kai\",\r\n \"Kai Satou\",\r\n \"Kaito\",\r\n \"Kaito Momota\",\r\n \"Kaito_Hd\",\r\n \"Kai_Hd\",\r\n \"Kakeru Yamaguchi_Hd\",\r\n \"Kana (Female)\",\r\n \"Kana (Male)\",\r\n \"Kana Ise_Hd\",\r\n \"Kanade_Hd\",\r\n \"Kanata Inori_Hd\",\r\n \"Kanaya Maryam (Pq)\",\r\n \"Kanji\",\r\n \"Kanji Tatsumi\",\r\n \"Kanjiro_Hd\",\r\n \"Kanna\",\r\n \"Kanna Kizuchi\",\r\n \"Kanna_Hd\",\r\n \"Kanon Nakajima_Hd\",\r\n \"Kaorircg\",\r\n \"Karako Pierot\",\r\n \"Kariya\",\r\n \"Kariya Frx\",\r\n \"Karkat Vantas\",\r\n \"Karkat Vantas (Pq)\",\r\n \"Kasen\",\r\n \"Kasen Ibaraki\",\r\n \"Katherine\",\r\n \"Katherine Hall\",\r\n \"Katrielle Layton\",\r\n \"Katya\",\r\n \"Kay\",\r\n \"Kay Faraday\",\r\n \"Kay Injured\",\r\n \"Kay Masked\",\r\n \"Kazue\",\r\n \"Kazuichi\",\r\n \"Kazuichi Souda Png\",\r\n \"Kazuma\",\r\n \"Kazuma Assistant\",\r\n \"Kazuma Dgs2\",\r\n \"Kazuma Dgs2 Wit\",\r\n \"Kazuma W\",\r\n \"Kazumakiryu\",\r\n \"Kazumi Mishima_Hd\",\r\n \"Kazuo Tengan_Hd\",\r\n \"Kazuya Mishima\",\r\n \"Kcalb\",\r\n \"Kei Kousaka\",\r\n \"Keiji\",\r\n \"Keiji Shinogi\",\r\n \"Keiji_Hd\",\r\n \"Ken\",\r\n \"Ken Amada\",\r\n \"Kenjircg\",\r\n \"Kensfpxz\",\r\n \"Kidsworth Hld\",\r\n \"Kidworth Aai\",\r\n \"Kiibo\",\r\n \"Kiibo_El\",\r\n \"Kiibo_Hd\",\r\n \"Kiibo_Rs\",\r\n \"Kike Morande\",\r\n \"Killia\",\r\n \"King Sombra\",\r\n \"Kinji Uehara_Hd\",\r\n \"Kira\",\r\n \"Kiragi\",\r\n \"Kiraj\",\r\n \"Kirby\",\r\n \"Kirigiri\",\r\n \"Kirigiri Kid_Hd\",\r\n \"Kirigiri-English2\",\r\n \"Kirigiri_Hd\",\r\n \"Kirigiri_Hd2\",\r\n \"Kirigiri_Sd9\",\r\n \"Kiriko Nishizawa_Hd\",\r\n \"Kirisame Marisa\",\r\n \"Kirito\",\r\n \"Kirumi\",\r\n \"Kirumi Tojo\",\r\n \"Kirumi Tojo_Hd\",\r\n \"Kiryu Moeka\",\r\n \"Kisaragi Yamatoae_Hd\",\r\n \"Kisaragi Yamato_Hd\",\r\n \"Kismetcat\",\r\n \"Kite\",\r\n \"Kiyoka Maki_Hd\",\r\n \"Kiyotaka Ishimaru\",\r\n \"Kiyotaka Ishimaru Png\",\r\n \"Kizuna Tomori_Hd\",\r\n \"Klav\",\r\n \"Klavier\",\r\n \"Klavier Dd Pro\",\r\n \"Klavier Dd Wit\",\r\n \"Klavier Gavin\",\r\n \"Klavier Wit\",\r\n \"Klavier Young\",\r\n \"Klaviercc\",\r\n \"Klavierdd\",\r\n \"Klaviersoj\",\r\n \"Klonoa\",\r\n \"Klonoa_Rs\",\r\n \"Klug\",\r\n \"Km\",\r\n \"Knightley\",\r\n \"Knuckles\",\r\n \"Koakuma Kid\",\r\n \"Koga Mitsunari\",\r\n \"Koichi Kizakura\",\r\n \"Koichi Kizakura_Hd\",\r\n \"Koishi\",\r\n \"Koishi Komeiji\",\r\n \"Koizumi\",\r\n \"Koizumi (Hat)\",\r\n \"Koki Kariya\",\r\n \"Kokichi\",\r\n \"Kokichi Oma\",\r\n \"Kokichi Oma Hd\",\r\n \"Kokichi Oma_Hd\",\r\n \"Kokichi Ouma\",\r\n \"Kokichioma\",\r\n \"Kokichiomahd\",\r\n \"Kokichi_El\",\r\n \"Kokonoe\",\r\n \"Kokonoe (Mha)\",\r\n \"Kokoro Kurokawa_Hd\",\r\n \"Kokoro_Hd\",\r\n \"Komachi Onozuka\",\r\n \"Komaeda\",\r\n \"Komaeda_Servant_Hd\",\r\n \"Komaru\",\r\n \"Komaru Naegi\",\r\n \"Komaru Naegi_Hd\",\r\n \"Komarunaegi\",\r\n \"Kongou\",\r\n \"Koopatrol\",\r\n \"Korekiyo\",\r\n \"Korekiyo Shinguji\",\r\n \"Korekiyo Shinguji_Hd\",\r\n \"Korekiyoshinguji\",\r\n \"Koromaru\",\r\n \"Kotoko\",\r\n \"Kotoko Utsugi\",\r\n \"Kotoko Utsugi Png\",\r\n \"Kotoko Utsugi_Hd\",\r\n \"Kotokoutsugi\",\r\n \"Kotomine Kirei\",\r\n \"Kristoph\",\r\n \"Kristoph G\",\r\n \"Kristoph Gavin\",\r\n \"Kristoph H Et\",\r\n \"Kristophcc\",\r\n \"Kristophd\",\r\n \"Kudo\",\r\n \"Kurisu\",\r\n \"Kurogane\",\r\n \"Kurokuma\",\r\n \"Kurokuma Png\",\r\n \"Kurokuma_Hd\",\r\n \"Kurumadayttd\",\r\n \"Kurumada_Hd\",\r\n \"Kusuko\",\r\n \"Kutaka Niwatari\",\r\n \"Ky Kiske\",\r\n \"Kyoko Kirigiri\",\r\n \"Kyoko Midou\",\r\n \"Kyokokirigiri\",\r\n \"Kyokokirigirihd\",\r\n \"Kyokorcg\",\r\n \"Kyon\",\r\n \"Kyosuke Munakata (Future)\",\r\n \"Kyosuke Munakata_Hd\",\r\n \"Kyou Matsuoka\",\r\n \"Kyouhei Kadota\",\r\n \"L\",\r\n \"Lablanc\",\r\n \"Labras Oc Vn Casual (Pokemon)\",\r\n \"Labrys\",\r\n \"Laby\",\r\n \"Ladyfirst\",\r\n \"Laetitialc\",\r\n \"Laharl\",\r\n \"Lailah\",\r\n \"Lambda-11\",\r\n \"Lamiroir\",\r\n \"Lana\",\r\n \"Lana Skye\",\r\n \"Lanap\",\r\n \"Lance\",\r\n \"Lance Amano\",\r\n \"Lance Amano Wit\",\r\n \"Lancelotberserkerfgo\",\r\n \"Lang\",\r\n \"Langw\",\r\n \"Laphicet\",\r\n \"Larry Butz\",\r\n \"Larryaai\",\r\n \"Laruen Paups\",\r\n \"Laslow\",\r\n \"Latula Pyrope\",\r\n \"Lauren\",\r\n \"Lauren Paups\",\r\n \"Laurice\",\r\n \"Layton\",\r\n \"Layton Evil\",\r\n \"Layton Inquisitor\",\r\n \"Layton Pro\",\r\n \"Layton W\",\r\n \"Layton Winter\",\r\n \"Layton Young\",\r\n \"Laytoninquisidor\",\r\n \"Laytoninquisitor\",\r\n \"Laytonp\",\r\n \"Lbelle\",\r\n \"Leafeon\",\r\n \"Leifa\",\r\n \"Lelouch\",\r\n \"Lelouch Vi Britannia_Hd\",\r\n \"Lemres\",\r\n \"Leo\",\r\n \"Leo (Fewarriors)\",\r\n \"Leon\",\r\n \"Leon Kuwata\",\r\n \"Leon Kuwata Png\",\r\n \"Leon_Hd\",\r\n \"Letouse\",\r\n \"Lewdton\",\r\n \"Lianna (Fewarriors)\",\r\n \"Libra\",\r\n \"Lilia Bradley\",\r\n \"Lilith_Rs\",\r\n \"Lilly Satou\",\r\n \"Lillysatou\",\r\n \"Linda\",\r\n \"Linde (Fewarriors)\",\r\n \"Ling Yao\",\r\n \"Linne\",\r\n \"Lional Taylor\",\r\n \"Lisa\",\r\n \"Lisa Basil\",\r\n \"Lissa\",\r\n \"Lissa (Fewarriors)\",\r\n \"Lista\",\r\n \"Litchi Faye Ling\",\r\n \"Liz (Sb)\",\r\n \"Liza\",\r\n \"Lloydirving\",\r\n \"Lobco\",\r\n \"Lon'qu\",\r\n \"Lonekat\",\r\n \"Lonekat Takumi\",\r\n \"Long Lang\",\r\n \"Lopunny\",\r\n \"Lora\",\r\n \"Lorne\",\r\n \"Lornedef\",\r\n \"Lotta\",\r\n \"Lotta Aai\",\r\n \"Lotta Hart\",\r\n \"Lottaaai\",\r\n \"Lottacc\",\r\n \"Lotus\",\r\n \"Lotus (999)\",\r\n \"Lucario\",\r\n \"Lucario Riolu\",\r\n \"Lucina\",\r\n \"Lucina (Fates)\",\r\n \"Lucina (Fewarriors)\",\r\n \"Lucina(Sf)\",\r\n \"Lucy\",\r\n \"Lucy Baker\",\r\n \"Ludgerwillkresnik\",\r\n \"Luigi\",\r\n \"Luis\",\r\n \"Luka\",\r\n \"Luka Megurine\",\r\n \"Luke\",\r\n \"Luke Adult\",\r\n \"Luke Atmey\",\r\n \"Luke Fon Fabre\",\r\n \"Luke Triton\",\r\n \"Luna\",\r\n \"Lunas1\",\r\n \"Lupin\",\r\n \"Lyn\",\r\n \"Lyndis (Fewarriors)\",\r\n \"Lynne\",\r\n \"Lyra\",\r\n \"Lyria\",\r\n \"Macarona\",\r\n \"Machi\",\r\n \"Machi Tobaye\",\r\n \"Mackarel\",\r\n \"Mae\",\r\n \"Maeda_Hd\",\r\n \"Maggey\",\r\n \"Maggey Aai\",\r\n \"Maggey Bryde\",\r\n \"Maggey-Not\",\r\n \"Maggeyaai\",\r\n \"Maggeycc\",\r\n \"Magilou\",\r\n \"Maguro\",\r\n \"Mahiru\",\r\n \"Mahiru Koizumi Png\",\r\n \"Mahiru_Hd\",\r\n \"Mai Hanamichi\",\r\n \"Mai Natsume\",\r\n \"Maiday\",\r\n \"Maiyttd\",\r\n \"Maizono\",\r\n \"Mai_Hd\",\r\n \"Majima\",\r\n \"Maka\",\r\n \"Makepeace\",\r\n \"Maki\",\r\n \"Maki Harukawa\",\r\n \"Maki Harukawa_Hd\",\r\n \"Makoto\",\r\n \"Makoto Naegi\",\r\n \"Makoto Naegi (Future Foundation)\",\r\n \"Makoto Nanaya\",\r\n \"Makotoae\",\r\n \"Makotonaegi\",\r\n \"Makotonaegihd\",\r\n \"Makoto_Hd\",\r\n \"Male Etihw\",\r\n \"Malik\",\r\n \"Malkuthlc\",\r\n \"Malos\",\r\n \"Mamemomi\",\r\n \"Mamircg\",\r\n \"Mamizou\",\r\n \"Mamizou Futatsuiwa\",\r\n \"Manfred\",\r\n \"Manfred Aai\",\r\n \"Manfred Evil\",\r\n \"Manfred Von Karma\",\r\n \"Manfredaai\",\r\n \"Manfredcc\",\r\n \"Manfredw\",\r\n \"Manny Pardo\",\r\n \"Margaret\",\r\n \"Maria\",\r\n \"Marie\",\r\n \"Marie_Rs\",\r\n \"Marin Mizuta\",\r\n \"Marion Bergman\",\r\n \"Marisa\",\r\n \"Marisa Iamp\",\r\n \"Marisa Kirisame\",\r\n \"Marisa Kirisame (Touhou Hs)\",\r\n \"Marlon Rimes\",\r\n \"Marryanne\",\r\n \"Marryanneex\",\r\n \"Marryannemme\",\r\n \"Marsh\",\r\n \"Marshall\",\r\n \"Marshallcc\",\r\n \"Marshallhd\",\r\n \"Marth\",\r\n \"Marth (Fates)\",\r\n \"Marth (Fewarriors)\",\r\n \"Marvin Grossberg\",\r\n \"Marvus Xoloto\",\r\n \"Mary Shikashi Png\",\r\n \"Masaru\",\r\n \"Masaru Daimon\",\r\n \"Masaru Daimon Png\",\r\n \"Masaru Daimon_Hd\",\r\n \"Mashu\",\r\n \"Mashukyrielightfgo\",\r\n \"Matilda\",\r\n \"Matilda Headset\",\r\n \"Matt\",\r\n \"Matt Engarde\",\r\n \"Mattcc\",\r\n \"Maurice\",\r\n \"Max\",\r\n \"Maximillion Galactica\",\r\n \"Maya\",\r\n \"Maya Fey\",\r\n \"Maya Fey (Mushin)\",\r\n \"Maya Mushin\",\r\n \"Maya Pxz\",\r\n \"Mayaaai\",\r\n \"Mayacc\",\r\n \"Mayada\",\r\n \"Mayakid\",\r\n \"Mayaplvsaa\",\r\n \"Mayaplvsaa Co\",\r\n \"Mayaplvsaa Co Knight\",\r\n \"Mayasoj\",\r\n \"Mayuri\",\r\n \"Mayushii Zero\",\r\n \"Mbisonpxz\",\r\n \"Mdsky_Blank\",\r\n \"Mdsky_Bulbasaurf\",\r\n \"Mdsky_Bulbasaurm\",\r\n \"Mdsky_Charmanderf\",\r\n \"Mdsky_Charmanderm\",\r\n \"Mdsky_Chikorita\",\r\n \"Mdsky_Chikoritam\",\r\n \"Mdsky_Chimcharf\",\r\n \"Mdsky_Chimcharm\",\r\n \"Mdsky_Cyndaquilf\",\r\n \"Mdsky_Cyndaquilm\",\r\n \"Mdsky_Eevee\",\r\n \"Mdsky_Eeveef\",\r\n \"Mdsky_Mudkipf\",\r\n \"Mdsky_Mudkipm\",\r\n \"Mdsky_Pikachu\",\r\n \"Mdsky_Pikachuf\",\r\n \"Mdsky_Piplupf\",\r\n \"Mdsky_Piplupm\",\r\n \"Mdsky_Riolu\",\r\n \"Mdsky_Rioluf\",\r\n \"Mdsky_Shinx\",\r\n \"Mdsky_Shinxf\",\r\n \"Mdsky_Squirtlef\",\r\n \"Mdsky_Squirtlem\",\r\n \"Mdsky_Torchicf\",\r\n \"Mdsky_Torchicm\",\r\n \"Mdsky_Totodilef\",\r\n \"Mdsky_Totodilem\",\r\n \"Mdsky_Treeckof\",\r\n \"Mdsky_Treeckom\",\r\n \"Mdsky_Turtwigf\",\r\n \"Mdsky_Turtwigm\",\r\n \"Mdsky_Vulpix\",\r\n \"Mdsky_Vulpixm\",\r\n \"Means\",\r\n \"Medusa (Soul Eater)\",\r\n \"Meekins\",\r\n \"Meekinsaai\",\r\n \"Meenah Peixes\",\r\n \"Megaman\",\r\n \"Megaman X\",\r\n \"Megamanxpxz\",\r\n \"Megaman_Rs\",\r\n \"Megumi\",\r\n \"Megumi Frx\",\r\n \"Megumiyttd\",\r\n \"Megumi_Hd\",\r\n \"Megundal\",\r\n \"Meiling\",\r\n \"Meira\",\r\n \"Melody\",\r\n \"Meowth\",\r\n \"Merkava\",\r\n \"Meta Knight\",\r\n \"Metal Sonic\",\r\n \"Metis\",\r\n \"Mettaton\",\r\n \"Meulin Leijon\",\r\n \"Mia\",\r\n \"Mia Fey\",\r\n \"Mia Fey (Mushin)\",\r\n \"Mia Leg\",\r\n \"Mia Young\",\r\n \"Miacc\",\r\n \"Miaya_Gekkogahara_Hd\",\r\n \"Micaiah\",\r\n \"Michael Eaglesworth\",\r\n \"Michibatakashi\",\r\n \"Midoriyttd\",\r\n \"Midori_Hd\",\r\n \"Mika Aiuchi\",\r\n \"Mika Returna\",\r\n \"Mikado Sannoji\",\r\n \"Mikado Sannoji_Hd\",\r\n \"Mikako Kurokawa_Hd\",\r\n \"Mikan\",\r\n \"Mikantsumiki\",\r\n \"Mikan_Hd\",\r\n \"Mikan_Rs\",\r\n \"Mike\",\r\n \"Mike Meekins\",\r\n \"Mikhael\",\r\n \"Mikihiko_Hd\",\r\n \"Mikleo\",\r\n \"Mikotoba\",\r\n \"Mikuru Asahina\",\r\n \"Milamaxwell\",\r\n \"Miles\",\r\n \"Miles Aai\",\r\n \"Miles D\",\r\n \"Miles Dd Wit Et\",\r\n \"Miles Def\",\r\n \"Miles Edgeworth\",\r\n \"Miles Et\",\r\n \"Miles Pxz\",\r\n \"Miles Wit\",\r\n \"Miles Y Hd\",\r\n \"Miles Young\",\r\n \"Miles Young Wit\",\r\n \"Milesaai\",\r\n \"Milesaai Young Pro\",\r\n \"Milescc\",\r\n \"Milesdd\",\r\n \"Milesdd Aai\",\r\n \"Mileskid\",\r\n \"Milessoj\",\r\n \"Miley\",\r\n \"Miley_Hd\",\r\n \"Mima\",\r\n \"Minato P3\",\r\n \"Minecraft Steve\",\r\n \"Minerva (Fe)\",\r\n \"Minerva (Fewarriors)\",\r\n \"Mion Sonozaki (Higurashi)\",\r\n \"Misaki Asano_Hd\",\r\n \"Misaki Nakano_Hd\",\r\n \"Misakorcg\",\r\n \"Misako_Hd\",\r\n \"Mishima\",\r\n \"Mishima_Ex\",\r\n \"Mishima_Hd\",\r\n \"Missile\",\r\n \"Misuzurcg\",\r\n \"Mitsuhiro Higa_Hd\",\r\n \"Mitsuki Frx\",\r\n \"Mitsuru\",\r\n \"Mitsuru Kirijo\",\r\n \"Mitsurukirijo\",\r\n \"Mittlemont\",\r\n \"Miu\",\r\n \"Miu Iruma\",\r\n \"Miu Iruma_Hd\",\r\n \"Miyuki Shiba\",\r\n \"Mli Fluttershy\",\r\n \"Mli Pinkie\",\r\n \"Mli Rainbow\",\r\n \"Mli Trixie\",\r\n \"Mli Twilight\",\r\n \"Mmnaegi\",\r\n \"Moe\",\r\n \"Moeka\",\r\n \"Moge-Ko\",\r\n \"Mokou No Fujiwara\",\r\n \"Mom Lalonde (Rose) (Pq)\",\r\n \"Momoka Amari\",\r\n \"Monaca\",\r\n \"Monaca Towa\",\r\n \"Monaca Towa Png\",\r\n \"Monaca Towa_Hd\",\r\n \"Monakatowa\",\r\n \"Mondo\",\r\n \"Mondo Owada Png\",\r\n \"Mondooowada\",\r\n \"Mondo_Hd\",\r\n \"Moneko\",\r\n \"Monferno\",\r\n \"Monica Minami\",\r\n \"Monika\",\r\n \"Monocrow_Hd\",\r\n \"Monodam\",\r\n \"Monodam_Hd\",\r\n \"Monokid\",\r\n \"Monokid_Hd\",\r\n \"Monokubs\",\r\n \"Monokuma\",\r\n \"Monokuma Ball\",\r\n \"Monokuma V3\",\r\n \"Monokumav3\",\r\n \"Monokumav3 1.8\",\r\n \"Monokumav3_Hd\",\r\n \"Monokuma_Hd\",\r\n \"Monomi\",\r\n \"Monomi Png\",\r\n \"Monomi_Hd\",\r\n \"Monophanie\",\r\n \"Monophanie_Hd\",\r\n \"Monopoly-Guy\",\r\n \"Monosuke\",\r\n \"Monosuke_Hd\",\r\n \"Monotaro\",\r\n \"Monotaro_Hd\",\r\n \"Morgan\",\r\n \"Morgan (Female)\",\r\n \"Morgan (Male)\",\r\n \"Morgan Fey\",\r\n \"Morgana\",\r\n \"Morganap5\",\r\n \"Morrigan\",\r\n \"Morriganpxz\",\r\n \"Morrigan_Rs\",\r\n \"Motoko Shinanogi\",\r\n \"Mouri Kogorou\",\r\n \"Mr. H\",\r\n \"Mrhat\",\r\n \"Msfortune\",\r\n \"Mspa Reader\",\r\n \"Mudkipvn (Pokemon)\",\r\n \"Mukuro Ikusaba\",\r\n \"Mukuro Ikusaba Png\",\r\n \"Mukuro Ikusaba_Hd\",\r\n \"Mukuro_Hd\",\r\n \"Munehisa Iwai\",\r\n \"Musey Kellins-Trumend\",\r\n \"Myolc\",\r\n \"Myrina\",\r\n \"Mystery Iris\",\r\n \"Mòrag Ladair\",\r\n \"M븈ag Ladair\",\r\n \"Naegi\",\r\n \"Nagisa\",\r\n \"Nagisa Shingetsu\",\r\n \"Nagisa Shingetsu Png\",\r\n \"Nagisa Shingetsu_Hd\",\r\n \"Nagito\",\r\n \"Nagito Hackerman_Hd\",\r\n \"Nagito Komaeda\",\r\n \"Nagitobeta\",\r\n \"Nagitokomaeda\",\r\n \"Nagitokomaedahd\",\r\n \"Nagito_Hd\",\r\n \"Nagito_Rs\",\r\n \"Nahyuta\",\r\n \"Namine\",\r\n \"Nanami\",\r\n \"Nanami Chiaki (Neko)\",\r\n \"Nanamichiaki\",\r\n \"Nanase\",\r\n \"Nao\",\r\n \"Nao Egokoro_Hd\",\r\n \"Naoto\",\r\n \"Naoto Kurogane\",\r\n \"Naoto Kurogane(Mha)\",\r\n \"Naoto Shirogane\",\r\n \"Nao_Ex\",\r\n \"Nao_Hd\",\r\n \"Narcissus\",\r\n \"Naritakarcg\",\r\n \"Narrator\",\r\n \"Narratora\",\r\n \"Narrorator\",\r\n \"Naruwit\",\r\n \"Natsuki\",\r\n \"Natsuki_Hd\",\r\n \"Natsume\",\r\n \"Natsumi_Hd\",\r\n \"Navarre (Fewarriors)\",\r\n \"Near\",\r\n \"Neil\",\r\n \"Neil Marshall\",\r\n \"Neildef\",\r\n \"Neilw\",\r\n \"Nekomaru\",\r\n \"Nekomaru Nidai Png\",\r\n \"Nekomaru_Hd\",\r\n \"Neku\",\r\n \"Neku Frx\",\r\n \"Neku Sakuraba\",\r\n \"Neku Sakuraba_Hd\",\r\n \"Nemmy\",\r\n \"Nemmy Tinpillar\",\r\n \"Neo\",\r\n \"Neopolitan\",\r\n \"Neopolitanv2\",\r\n \"Nepeta Leijon\",\r\n \"Nepeta Leijon (Pq)\",\r\n \"Nepeta Leijon_Rs\",\r\n \"Nepgear\",\r\n \"Neptune\",\r\n \"Nero (Padoru)\",\r\n \"Nero Claudius\",\r\n \"Netzach\",\r\n \"Netzachlc\",\r\n \"New Folder\",\r\n \"Newman\",\r\n \"Newman Pro\",\r\n \"Newmanpro\",\r\n \"Nia\",\r\n \"Nicholas\",\r\n \"Nico Yazawa\",\r\n \"Nicole\",\r\n \"Nicole Swift\",\r\n \"Nidai\",\r\n \"Nightmare Moon\",\r\n \"Nikei Yomiuri\",\r\n \"Nikei_Hd\",\r\n \"Nikomina\",\r\n \"Nikomina Hatless\",\r\n \"Niles\",\r\n \"Niles (Fewarriors)\",\r\n \"Nina (Fe)\",\r\n \"Nine\",\r\n \"Nine The Phantom\",\r\n \"Ninja (Ff)\",\r\n \"Ninth Man\",\r\n \"Ninthman\",\r\n \"Nitori Kawashiro\",\r\n \"Noedig\",\r\n \"Noedig W\",\r\n \"Noel\",\r\n \"Noel Vermillion\",\r\n \"Noire\",\r\n \"Noise\",\r\n \"Noizercg\",\r\n \"Nu-13\",\r\n \"Nyanami_Hd\",\r\n \"Nyx\",\r\n \"O'malley\",\r\n \"O'reil\",\r\n \"Obama\",\r\n \"Oboro\",\r\n \"Oboro (Fewarriors)\",\r\n \"Obrona\",\r\n \"Octavia\",\r\n \"Octavia Richmond\",\r\n \"Odin Dark\",\r\n \"Ogiwarasaori\",\r\n \"Okabe\",\r\n \"Okada Izou\",\r\n \"Okayasu\",\r\n \"Old Phoenix\",\r\n \"Oldbag\",\r\n \"Oldbag Aai\",\r\n \"Oldbagaai\",\r\n \"Oldbagcc\",\r\n \"Olga\",\r\n \"Olga Orly\",\r\n \"Olivia\",\r\n \"Olivia (Fe)\",\r\n \"Olivia (Fewarriors)\",\r\n \"Omega God Zealous Tome\",\r\n \"Onesie_Gundham_Hd\",\r\n \"Ophelia Dusk\",\r\n \"Ophilia\",\r\n \"Orie\",\r\n \"Orie Ballardiae\",\r\n \"Orla\",\r\n \"Oscar\",\r\n \"Oscar Fairplay\",\r\n \"Oscar Fairplay Juror\",\r\n \"Oshawott Vn (Pokemon)\",\r\n \"Owain (Fewarriors)\",\r\n \"P.Layton\",\r\n \"Palaeno\",\r\n \"Palpatine\",\r\n \"Palutena\",\r\n \"Pandore\",\r\n \"Paolo\",\r\n \"Paper Luigi\",\r\n \"Paper Mario (Modern)\",\r\n \"Paper Peach\",\r\n \"Papyrus\",\r\n \"Parker\",\r\n \"Pascal\",\r\n \"Past Ashe\",\r\n \"Pastel Sketch\",\r\n \"Patchouli\",\r\n \"Patricia\",\r\n \"Patricia (Wh)\",\r\n \"Patrick\",\r\n \"Patroka\",\r\n \"Patty\",\r\n \"Paul Atishon\",\r\n \"Payne\",\r\n \"Payne Aa\",\r\n \"Payne Aj\",\r\n \"Payne Dd\",\r\n \"Payne Dgs\",\r\n \"Payne Dgs Wit\",\r\n \"Payne Max\",\r\n \"Payne Soj\",\r\n \"Payne Train\",\r\n \"Payne Train V2\",\r\n \"Payne Tt\",\r\n \"Paynecc\",\r\n \"Paynes\",\r\n \"Peacock\",\r\n \"Pearl\",\r\n \"Pearl Dd\",\r\n \"Pearl Fey\",\r\n \"Pearl Teen\",\r\n \"Pearl Teen Comfy\",\r\n \"Pearl Teen V2\",\r\n \"Pearlcc\",\r\n \"Pearlsoj\",\r\n \"Pearlsoj Def\",\r\n \"Pearlsoj2d\",\r\n \"Pees'lubin\",\r\n \"Peko\",\r\n \"Peko (Ultimate Despair)_Hd\",\r\n \"Peko Pekoyama Dr3_Hd\",\r\n \"Peko Pekoyama Png\",\r\n \"Peko_Hd\",\r\n \"Peko_Mm\",\r\n \"Penny\",\r\n \"Penny Aai\",\r\n \"Penny Nichols\",\r\n \"Peony\",\r\n \"Peppa Pig\",\r\n \"Peppers\",\r\n \"Perdido\",\r\n \"Peri\",\r\n \"Persona Animorphous\",\r\n \"Persona The Fifth\",\r\n \"Persona The Fourth\",\r\n \"Persona The Second\",\r\n \"Persona The Third\",\r\n \"Persona1\",\r\n \"Persona10\",\r\n \"Persona11\",\r\n \"Persona12\",\r\n \"Persona13\",\r\n \"Persona14\",\r\n \"Persona15\",\r\n \"Persona16\",\r\n \"Persona17\",\r\n \"Persona18\",\r\n \"Persona19\",\r\n \"Persona2\",\r\n \"Persona20\",\r\n \"Persona21\",\r\n \"Persona22\",\r\n \"Persona23\",\r\n \"Persona24\",\r\n \"Persona25\",\r\n \"Persona3\",\r\n \"Persona4\",\r\n \"Persona5\",\r\n \"Persona6\",\r\n \"Persona7\",\r\n \"Persona8\",\r\n \"Persona9\",\r\n \"Perun\",\r\n \"Peter Griffin\",\r\n \"Phantom R\",\r\n \"Phi\",\r\n \"Philo Reed\",\r\n \"Phoenix\",\r\n \"Phoenix Aai\",\r\n \"Phoenix Counsel\",\r\n \"Phoenix Dd\",\r\n \"Phoenix Et\",\r\n \"Phoenix Et Leg\",\r\n \"Phoenix Five\",\r\n \"Phoenix Five Et\",\r\n \"Phoenix Furio\",\r\n \"Phoenix Hobo\",\r\n \"Phoenix Hobo Def\",\r\n \"Phoenix Leg\",\r\n \"Phoenix Old\",\r\n \"Phoenix Pxz\",\r\n \"Phoenix Pxz2\",\r\n \"Phoenix The Wright\",\r\n \"Phoenix W\",\r\n \"Phoenix Wit\",\r\n \"Phoenix Witness\",\r\n \"Phoenix Wright\",\r\n \"Phoenix Young\",\r\n \"Phoenixaai\",\r\n \"Phoenixcc\",\r\n \"Phoenixcodlc\",\r\n \"Phoenixdd\",\r\n \"Phoenixddwit\",\r\n \"Phoenixhd\",\r\n \"Phoenixsoj\",\r\n \"Phoenixsojpro\",\r\n \"Phoenixsojwitness\",\r\n \"Phonon(Mha)\",\r\n \"Pidgeot Oc Vn (Pokemon)\",\r\n \"Pierce\",\r\n \"Pikachu\",\r\n \"Pikachu Vn (Pokemon)\",\r\n \"Pingu\",\r\n \"Pinkamena\",\r\n \"Pinkie\",\r\n \"Pirate Diego\",\r\n \"Pirate Dolan\",\r\n \"Pirate Gummy\",\r\n \"Pirate Hawk\",\r\n \"Piratezetta\",\r\n \"Pit\",\r\n \"Pitoo\",\r\n \"Platinum\",\r\n \"Platinum The Trinity\",\r\n \"Plum\",\r\n \"Plum Kitaki\",\r\n \"Plushset Shimmer\",\r\n \"Plutia\",\r\n \"Polly\",\r\n \"Polypa Goezee\",\r\n \"Ponco\",\r\n \"Pony Franziska\",\r\n \"Pony Judge\",\r\n \"Pony Phoenix\",\r\n \"Poppi\",\r\n \"Popplio3d\",\r\n \"Portsman\",\r\n \"Priam\",\r\n \"Prinplup\",\r\n \"Professor Layton\",\r\n \"Prosecutor Justice\",\r\n \"Prosecutorjustice\",\r\n \"Prosecutorjusticew\",\r\n \"Psychelocks\",\r\n \"Pyro\",\r\n \"Q\",\r\n \"Q Sfiii\",\r\n \"Q-Taro\",\r\n \"Q-Taro Burgerberg_Hd\",\r\n \"Q-Taro_Hd\",\r\n \"Quagmire Toilet\",\r\n \"Quark\",\r\n \"Querceus Alba\",\r\n \"Quercus Alba\",\r\n \"Rachel\",\r\n \"Rachel Alucard\",\r\n \"Rachelalucard\",\r\n \"Radio\",\r\n \"Ragna\",\r\n \"Raichu\",\r\n \"Rainbow\",\r\n \"Rainbow Dash\",\r\n \"Ralsei Pts\",\r\n \"Ramirezfn\",\r\n \"Ramona Flowers\",\r\n \"Ranger\",\r\n \"Ranger Justice\",\r\n \"Ranger_Hd\",\r\n \"Ranmaruyttd\",\r\n \"Ranmaru_Hd\",\r\n \"Rantaro\",\r\n \"Rantaro Amami\",\r\n \"Rantaroamami\",\r\n \"Rantaro_Hd\",\r\n \"Rarity\",\r\n \"Raven\",\r\n \"Raven (Tov)\",\r\n \"Rayfa\",\r\n \"Rayfa Padma\",\r\n \"Raymond\",\r\n \"Raymond Shields\",\r\n \"Raymond Shields Young\",\r\n \"Reaper\",\r\n \"Rebecca Ward\",\r\n \"Red\",\r\n \"Redd\",\r\n \"Redd White\",\r\n \"Regina\",\r\n \"Regina Aai\",\r\n \"Regina Berry\",\r\n \"Reginaaai\",\r\n \"Rei Mekaru_Y_Hd\",\r\n \"Reimu Hakurei\",\r\n \"Reisen\",\r\n \"Reisen Udongein Inaba\",\r\n \"Rei_Hd\",\r\n \"Reko\",\r\n \"Reko Yabusame_Hd\",\r\n \"Reko_Hd\",\r\n \"Relius\",\r\n \"Relius Clover\",\r\n \"Relius-Clover\",\r\n \"Remele Namaqq\",\r\n \"Remilia Scarlet\",\r\n \"Rena Ryuugu (Higurashi)\",\r\n \"Rentaro Satomi\",\r\n \"Renwick\",\r\n \"Retinz\",\r\n \"Rex\",\r\n \"Rhoda\",\r\n \"Rhoda Teneiro\",\r\n \"Rhyme\",\r\n \"Rhyme Frx\",\r\n \"Richard\",\r\n \"Richard Wellington\",\r\n \"Ridelle\",\r\n \"Rika\",\r\n \"Riku\",\r\n \"Rimes\",\r\n \"Rin\",\r\n \"Rin Howato\",\r\n \"Rin Tezuka\",\r\n \"Rin Tohsaka\",\r\n \"Ringoando\",\r\n \"Rinnatsume\",\r\n \"Rio Ranger\",\r\n \"Rio Ranger_Rs\",\r\n \"Riolu\",\r\n \"Riolu And Lucario\",\r\n \"Rise\",\r\n \"Rise Kujiawa\",\r\n \"Rise Kujikawa\",\r\n \"Riskyboots\",\r\n \"Robin\",\r\n \"Robin (Fates)\",\r\n \"Robin F (Fewarriors)\",\r\n \"Robin M (Fewarriors)\",\r\n \"Roboky\",\r\n \"Roc\",\r\n \"Roger Retinz\",\r\n \"Rokurou\",\r\n \"Rola\",\r\n \"Roll\",\r\n \"Romance Detective\",\r\n \"Ron\",\r\n \"Ron Delite\",\r\n \"Roscoe\",\r\n \"Rose\",\r\n \"Rose Lalonde\",\r\n \"Rose Lalonde (Pq)\",\r\n \"Rouge (Wh)\",\r\n \"Rowan (Fewarriors)\",\r\n \"Roxy Lalonde (Pq)\",\r\n \"Roy\",\r\n \"Roy Mustang\",\r\n \"Royal Guard Pony\",\r\n \"Roylett\",\r\n \"Roylott\",\r\n \"Rozaic\",\r\n \"Ruby\",\r\n \"Ruby Rose\",\r\n \"Rukako\",\r\n \"Rumba\",\r\n \"Rumia\",\r\n \"Ruruka Ando (Future)\",\r\n \"Ruruka Ando_Hd\",\r\n \"Rydia\",\r\n \"Ryoko\",\r\n \"Ryoko Otonashi Png\",\r\n \"Ryoko Otonashi_Hd\",\r\n \"Ryoma\",\r\n \"Ryoma (Fe)\",\r\n \"Ryoma (Fewarriors)\",\r\n \"Ryoma Hoshi\",\r\n \"Ryoma Hoshi_Hd\",\r\n \"Ryota Mitarai\",\r\n \"Ryota Mitarai (Future)\",\r\n \"Ryota Mitarai_Hd\",\r\n \"Ryougi Shiki\",\r\n \"Ryouken Hoinbo Wit\",\r\n \"Ryouko Asakura\",\r\n \"Ryo_Hd\",\r\n \"Ryu\",\r\n \"Ryu Arm\",\r\n \"Ryu Dlc W\",\r\n \"Ryu Hoshi\",\r\n \"Ryu Leg\",\r\n \"Ryunosuke\",\r\n \"Ryunosuke Witness\",\r\n \"Ryusfpxz\",\r\n \"Ryutaro\",\r\n \"Ryutaro Leg\",\r\n \"Ryuunosuke\",\r\n \"Ryuutarou\",\r\n \"Ryu_Rs\",\r\n \"Saber Alter\",\r\n \"Sabukorcg\",\r\n \"Saeran\",\r\n \"Safalin\",\r\n \"Safalin_Hd\",\r\n \"Sagisureiko\",\r\n \"Sahwit\",\r\n \"Sahwit Aai\",\r\n \"Sailor\",\r\n \"Saionji\",\r\n \"Saionji (Cute)\",\r\n \"Saionji_Hd\",\r\n \"Saitama\",\r\n \"Sakura\",\r\n \"Sakura (Fe)\",\r\n \"Sakura (Fewarriors)\",\r\n \"Sakura Futaba\",\r\n \"Sakura Ogami Png\",\r\n \"Sakura Oogami\",\r\n \"Sakura Ryoko\",\r\n \"Sakura_Hd\",\r\n \"Sakura_Rs\",\r\n \"Sakuya Iamp\",\r\n \"Sakuya Izayoi\",\r\n \"Sal\",\r\n \"Sal Manella\",\r\n \"Sanae Hanekoma\",\r\n \"Sanae Kochiya\",\r\n \"Sandy (Mlp Helper)\",\r\n \"Saness\",\r\n \"Sanic\",\r\n \"Sanmon\",\r\n \"Sans\",\r\n \"Santa\",\r\n \"Santa (999)\",\r\n \"Santa Shikiba_Hd\",\r\n \"Sara\",\r\n \"Sara Chidouin\",\r\n \"Sara Croft\",\r\n \"Sara_Ex\",\r\n \"Sara_Hd\",\r\n \"Sarge\",\r\n \"Sasha\",\r\n \"Sasha Buckler\",\r\n \"Satan\",\r\n \"Satan (Puyopuyo)\",\r\n \"Satanpp\",\r\n \"Satori Komeiji\",\r\n \"Sato_Hd\",\r\n \"Satsuki Iranami Grown_Hd\",\r\n \"Satsuki Iranami_Hd\",\r\n \"Sayaka\",\r\n \"Sayaka Maizono\",\r\n \"Sayaka_Hd\",\r\n \"Sayori\",\r\n \"Sayori_Hd\",\r\n \"Scar\",\r\n \"Schezo\",\r\n \"Schezo Wegey\",\r\n \"Scootaloo\",\r\n \"Scootalooa\",\r\n \"Scott Pilgrim\",\r\n \"Scuttlebutt\",\r\n \"Sebastian\",\r\n \"Seiko\",\r\n \"Seiko Kimura (Future)\",\r\n \"Seiko Kimura_Hd\",\r\n \"Seina_Hd\",\r\n \"Seishi Yodogawa\",\r\n \"Seishirou\",\r\n \"Seitokaichou\",\r\n \"Sekibanki (Swr)\",\r\n \"Selena\",\r\n \"Sellsword\",\r\n \"Serperior\",\r\n \"Servant\",\r\n \"Servant Saber\",\r\n \"Servine\",\r\n \"Seteth\",\r\n \"Seth\",\r\n \"Setsuka Chiebukuro_Hd\",\r\n \"Seven\",\r\n \"Seven (999)\",\r\n \"Shadow\",\r\n \"Shadowpxz\",\r\n \"Shakey\",\r\n \"Shamisenkyonsis\",\r\n \"Shantae\",\r\n \"Sheila\",\r\n \"Shelly De Killer\",\r\n \"Sherlock\",\r\n \"Sherlock Casual\",\r\n \"Sherlock Goggled\",\r\n \"Sherlock Holmes\",\r\n \"Sherlock Undercover\",\r\n \"Sherlockwatson\",\r\n \"Shi Long Lang\",\r\n \"Shi-Long\",\r\n \"Shiginohana\",\r\n \"Shigure\",\r\n \"Shih-Na\",\r\n \"Shiina Mikado\",\r\n \"Shiki\",\r\n \"Shiki Frx\",\r\n \"Shiki Misaki\",\r\n \"Shimon\",\r\n \"Shinichi Kudo\",\r\n \"Shinjiro Aragaki\",\r\n \"Shinji_Hd\",\r\n \"Shinmyoumaru Sukuna\",\r\n \"Shion\",\r\n \"Shiro (Fe)\",\r\n \"Shirokuma\",\r\n \"Shirokuma Png\",\r\n \"Shirokuma_Hd\",\r\n \"Shirou Emiya\",\r\n \"Shiv\",\r\n \"Shizune\",\r\n \"Shizune Hakamichi\",\r\n \"Shizuo Heiwajima\",\r\n \"Shizuoheiwajima\",\r\n \"Sho\",\r\n \"Sho Minazuki\",\r\n \"Shominamimoto Frx\",\r\n \"Shrek\",\r\n \"Shuichi\",\r\n \"Shuichi Saihara\",\r\n \"Shuichi Saihara (Hatless)\",\r\n \"Shuichi Saihara_Hd\",\r\n \"Shuichi Saihara_Rs\",\r\n \"Shuichisaihara\",\r\n \"Shuichisaiharaex\",\r\n \"Shuichisaiharahd\",\r\n \"Shuji Ikutsuki\",\r\n \"Shulk\",\r\n \"Shuuichi Saihara\",\r\n \"Siegbert\",\r\n \"Sig\",\r\n \"Sig25th\",\r\n \"Silas\",\r\n \"Silque\",\r\n \"Silver Shield\",\r\n \"Simeon\",\r\n \"Simon\",\r\n \"Simon Blackquill\",\r\n \"Simon Brezhnev\",\r\n \"Simon Clown\",\r\n \"Sirhan Dogen\",\r\n \"Sirius\",\r\n \"Sissel\",\r\n \"Sithe\",\r\n \"Small Trucy\",\r\n \"Small Vera\",\r\n \"Smiles\",\r\n \"Snake\",\r\n \"Snake (999)\",\r\n \"Snake 999\",\r\n \"Snow\",\r\n \"Sol Badguy\",\r\n \"Solbadguyes\",\r\n \"Soleil\",\r\n \"Solf J. Kimblee\",\r\n \"Sollux Captor (Pq)\",\r\n \"Sonata\",\r\n \"Sonex\",\r\n \"Sonia\",\r\n \"Sonia Nevermind\",\r\n \"Sonia Nevermind Png\",\r\n \"Sonianevermind\",\r\n \"Sonia_Hd\",\r\n \"Sonic\",\r\n \"Sonohigurashi\",\r\n \"Sonosuke Izayoi (Future)\",\r\n \"Sonosuke Izayoi_Hd\",\r\n \"Sophie (Fe)\",\r\n \"Sora\",\r\n \"Sora_Hd\",\r\n \"Sorey\",\r\n \"Sorin\",\r\n \"Sou\",\r\n \"Sou Hiyori_Hd\",\r\n \"Sou Hiyori_Rs\",\r\n \"Souda\",\r\n \"Souda_Hd\",\r\n \"Souda_Rs\",\r\n \"Soul\",\r\n \"Souseki\",\r\n \"Sou_Hd\",\r\n \"Spark\",\r\n \"Spark Brushel\",\r\n \"Sparkling Justice_Hd\",\r\n \"Speedwagon\",\r\n \"Spiderman\",\r\n \"Spiderman Hws\",\r\n \"Spike\",\r\n \"Spy\",\r\n \"Squigly\",\r\n \"Squigly_Rs\",\r\n \"Starbuck\",\r\n \"Starlight Glimmer\",\r\n \"Stella P\",\r\n \"Stickler\",\r\n \"Stitch\",\r\n \"Stock Image\",\r\n \"Strider Hiryu\",\r\n \"Striderhiryupxz\",\r\n \"Strix\",\r\n \"Stroganov\",\r\n \"Suciela Karinsha\",\r\n \"Sumireko\",\r\n \"Sumireko Usami\",\r\n \"Sunset Shimmer\",\r\n \"Susano'o\",\r\n \"Susato\",\r\n \"Susato Def\",\r\n \"Susato Dlc\",\r\n \"Susato Hld\",\r\n \"Susatoco\",\r\n \"Susatodef\",\r\n \"Suwako Moriya\",\r\n \"Suzaku\",\r\n \"Suzuha\",\r\n \"Suzumiya Haruhi\",\r\n \"Suzzanne\",\r\n \"Suzzanneex\",\r\n \"Suzzannemme\",\r\n \"Sweetie\",\r\n \"Sylvain\",\r\n \"Sylveon\",\r\n \"Syrup\",\r\n \"Syrupco\",\r\n \"Tae Takemi\",\r\n \"Tagora Gorjek\",\r\n \"Tahrust\",\r\n \"Taichi\",\r\n \"Taichi Fujisaki Png\",\r\n \"Taichi Fujisaki_Hd\",\r\n \"Taiga\",\r\n \"Tails\",\r\n \"Taizou\",\r\n \"Takahawk\",\r\n \"Takumi\",\r\n \"Takumi (Fewarriors)\",\r\n \"Tamamogz\",\r\n \"Taokaka V2\",\r\n \"Tateyuki\",\r\n \"Tato_Hd\",\r\n \"Tatsuya Suou\",\r\n \"Tavros Nitram (Pq)\",\r\n \"Ted\",\r\n \"Teddie\",\r\n \"Tee\",\r\n \"Teen Pearl\",\r\n \"Teikan Dragons\",\r\n \"Tekken\",\r\n \"Tenko\",\r\n \"Tenko Chabashira\",\r\n \"Tenko_Hd\",\r\n \"Tenma\",\r\n \"Tenmyouji\",\r\n \"Tennouji Nae\",\r\n \"Tennouji Yuugo\",\r\n \"Tenshi Hinanawi\",\r\n \"Tenshi Swr\",\r\n \"Teppo\",\r\n \"Terezi Pyrope\",\r\n \"Terezi Pyrope (Pq)\",\r\n \"Terezi Pyrope_Rs\",\r\n \"Terezi_Pyrope (Pq)\",\r\n \"Terry Bogard\",\r\n \"Terry Fawles\",\r\n \"Teruaki Kubota (999)\",\r\n \"Terumi\",\r\n \"Terumi Hooded\",\r\n \"Teruteru\",\r\n \"Teruteru Hanamura Png\",\r\n \"Teruteru_Hd\",\r\n \"Teruya Ootoria1_Hd\",\r\n \"Teruya_Hd\",\r\n \"Tewi Inaba\",\r\n \"Tezuka Rin\",\r\n \"Tf2_Spy_Hd\",\r\n \"Tharja (Fewarriors)\",\r\n \"The Doctor\",\r\n \"The King\",\r\n \"The King V2\",\r\n \"The Noid\",\r\n \"The Observer\",\r\n \"The Servant\",\r\n \"The Servant Injured\",\r\n \"Theking\",\r\n \"Thomas\",\r\n \"Tigre\",\r\n \"Tigredef\",\r\n \"Tiki\",\r\n \"Tiki (Fewarriors)\",\r\n \"Tina\",\r\n \"Tipherethalc\",\r\n \"Tipherethblc\",\r\n \"Titus Kruuump\",\r\n \"Tobias\",\r\n \"Tobias Gregson\",\r\n \"Toby\",\r\n \"Tod\",\r\n \"Togami\",\r\n \"Toko\",\r\n \"Toko Fukawa Png\",\r\n \"Toko Fukawa_Rs\",\r\n \"Tokoae\",\r\n \"Tokofukawaudg\",\r\n \"Toko_Hd\",\r\n \"Tomoka Minato\",\r\n \"Tonate\",\r\n \"Toon Link\",\r\n \"Torae Akatsubaki\",\r\n \"Torchic Vn (Pokemon)\",\r\n \"Toriel\",\r\n \"Toshiro_Hd\",\r\n \"Touko Fukawa_Udg_Hd\",\r\n \"Toyosatomimi No Miko\",\r\n \"Trilogia\",\r\n \"Trixie\",\r\n \"Trixiea\",\r\n \"Tron Bonne_Rs\",\r\n \"Trucy\",\r\n \"Trucy (Red)\",\r\n \"Trucy Def\",\r\n \"Trucy Pro\",\r\n \"Trucy Soj\",\r\n \"Trucy Wright\",\r\n \"Trucy Wright (Dd)\",\r\n \"Trucy Young\",\r\n \"Trucy Young (Blue)\",\r\n \"Trucydd\",\r\n \"Trucyh\",\r\n \"Trucysoj\",\r\n \"Trump\",\r\n \"Tsubaki\",\r\n \"Tsubaki Yayoi\",\r\n \"Tsukushi\",\r\n \"Tsumugi\",\r\n \"Tsumugi Shirogane\",\r\n \"Tsumugi Shirogane (Mm)\",\r\n \"Tsumugi Shirogane_Hd\",\r\n \"Tsurugi Kinjou_Hd\",\r\n \"Tsuruya\",\r\n \"Tully\",\r\n \"Tully Tinpillar\",\r\n \"Turner Grey\",\r\n \"Twilight\",\r\n \"Twilight Sparkle\",\r\n \"Tyrell Badd\",\r\n \"Tyrell Badd Wit\",\r\n \"Tyzias Entykk\",\r\n \"Uendo\",\r\n \"Ulalapxz\",\r\n \"Ultimate Dirk (Pq)\",\r\n \"Umbreon\",\r\n \"Umi Sonoda\",\r\n \"Undyne\",\r\n \"Uni\",\r\n \"Ursula\",\r\n \"Urumi Ushizaki\",\r\n \"Usami\",\r\n \"Usami_Hd\",\r\n \"Utsuho Reiuji\",\r\n \"Uzukamaru Taizo\",\r\n \"Uzuki\",\r\n \"Uzuki Frx\",\r\n \"Uzuki Yashiro\",\r\n \"Uzukumaru\",\r\n \"V\",\r\n \"Vaike\",\r\n \"Valant\",\r\n \"Valant Gramarye\",\r\n \"Valantcc\",\r\n \"Valkenhayn R. Hellsing\",\r\n \"Valvatorez\",\r\n \"Vangrants\",\r\n \"Vaporeon\",\r\n \"Vasquez\",\r\n \"Vasquezcc\",\r\n \"Vatista\",\r\n \"Vegeta\",\r\n \"Velvet\",\r\n \"Velvet Crowe\",\r\n \"Venus\",\r\n \"Vera\",\r\n \"Vera Misham\",\r\n \"Vergil\",\r\n \"Vert\",\r\n \"Vex\",\r\n \"Vex Tots\",\r\n \"Victor Kudo\",\r\n \"Vikare Ratite\",\r\n \"Vincent Brooks\",\r\n \"Vinyl\",\r\n \"Viola\",\r\n \"Viola Cadaverini\",\r\n \"Violet\",\r\n \"Viridi\",\r\n \"Viridian\",\r\n \"Virion\",\r\n \"Vittorio Sgarbi\",\r\n \"Vivian Bergman\",\r\n \"Vixey\",\r\n \"Vortex\",\r\n \"Vriska Serket (Pq)\",\r\n \"Vulper\",\r\n \"Wadanohara\",\r\n \"Wagner\",\r\n \"Waluigi\",\r\n \"Warden\",\r\n \"Watanabe_Hd\",\r\n \"Watson\",\r\n \"Waver Velvet\",\r\n \"Weavile\",\r\n \"Weiss\",\r\n \"Weiss Schnee\",\r\n \"Weiss(Mha)\",\r\n \"Wellington\",\r\n \"Wellingtoncc\",\r\n \"Wendy Oldbag\",\r\n \"Wesley Stickler\",\r\n \"Whis\",\r\n \"White\",\r\n \"White Mage\",\r\n \"Wigglytuff\",\r\n \"Will\",\r\n \"Will Powers\",\r\n \"William\",\r\n \"Willp\",\r\n \"Winchester\",\r\n \"Winfred\",\r\n \"Winfred Kitaki\",\r\n \"Winston\",\r\n \"Winston Payne\",\r\n \"Winstonpayne\",\r\n \"Wocky\",\r\n \"Wocky Kitaki\",\r\n \"Woman\",\r\n \"Woona\",\r\n \"Wright\",\r\n \"Wrightpolly\",\r\n \"Wulfric\",\r\n \"Xander\",\r\n \"Xander (Fewarriors)\",\r\n \"Xemnas\",\r\n \"Y Kristoph\",\r\n \"Yamadarcg\",\r\n \"Yamato\",\r\n \"Yangbbtag\",\r\n \"Yanni\",\r\n \"Yanni Yogi\",\r\n \"Yasuhiro\",\r\n \"Yasuhiro Hagakure\",\r\n \"Yasuhiro Hagakure Png\",\r\n \"Yasuhirohagakure\",\r\n \"Yasuhiro_Hd\",\r\n \"Yasuke Matsuda_Hd\",\r\n \"Yesodlc\",\r\n \"Yew\",\r\n \"Yoda\",\r\n \"Yodai Frx\",\r\n \"Yokorcg\",\r\n \"Yonaka\",\r\n \"Yonedajun\",\r\n \"Yorha 2B (Sinoalice)\",\r\n \"Yoruko_Hd\",\r\n \"Yosafire\",\r\n \"Yoshikage Kira\",\r\n \"Yoshua\",\r\n \"Yosuke\",\r\n \"Yosuke Hanamura\",\r\n \"Youmu Konpaku\",\r\n \"Youmu Konpaku (Swr)\",\r\n \"Young Kay\",\r\n \"Young Klavier\",\r\n \"Young Link\",\r\n \"Young Mia\",\r\n \"Young Trucy\",\r\n \"Youngaaiedgeworth\",\r\n \"Youngedgeworth\",\r\n \"Youngraymond\",\r\n \"Yu\",\r\n \"Yu Narukami\",\r\n \"Yui Samidare Png\",\r\n \"Yui Samidare_Hd\",\r\n \"Yuka\",\r\n \"Yukari\",\r\n \"Yukari Takeba\",\r\n \"Yukari Yakumo\",\r\n \"Yukari Yakumo (Swr)\",\r\n \"Yukari_Hd\",\r\n \"Yuki Maedaa1_Hd\",\r\n \"Yuki Nagato\",\r\n \"Yukiko\",\r\n \"Yukiko A\",\r\n \"Yukiko Amagi\",\r\n \"Yumeno_Rs\",\r\n \"Yunarukami\",\r\n \"Yunav\",\r\n \"Yuri\",\r\n \"Yuri (Ddlc)\",\r\n \"Yuri Kagarin_Hd\",\r\n \"Yuri Lowell\",\r\n \"Yurilibrarian_Ex\",\r\n \"Yurino_Hd\",\r\n \"Yuta\",\r\n \"Yuta Asahina\",\r\n \"Yuta Asahina Png\",\r\n \"Yuta Asahina_Hd\",\r\n \"Yutaka\",\r\n \"Yuujin\",\r\n \"Yuujin Mikotoba\",\r\n \"Yuujin Mikotoba Suit\",\r\n \"Yuuka Kazami\",\r\n \"Yuuki Terumi\",\r\n \"Yuuko Shirakawa\",\r\n \"Yuyuko Saigyouji\",\r\n \"Yuzuhara (Mha)\",\r\n \"Yuzuriha\",\r\n \"Zach\",\r\n \"Zacharias\",\r\n \"Zacharias Barnham\",\r\n \"Zaid\",\r\n \"Zak\",\r\n \"Zak Gramarye\",\r\n \"Zaveid\",\r\n \"Zealoustome\",\r\n \"Zecora\",\r\n \"Zeke\",\r\n \"Zeloswilder\",\r\n \"Zen\",\r\n \"Zero\",\r\n \"Zero (Cg)\",\r\n \"Zero Iii\",\r\n \"Zeropxz\",\r\n \"Zettaslow\",\r\n \"Zhuge Liang\",\r\n \"Zinc\",\r\n \"Zinc Lablanc\",\r\n \"Zizel\",\r\n \"Zonetan\",\r\n];\r\n","export default [\r\n\t\"Anime\",\r\n\t\"birthday\",\r\n\t\"Christmas\",\r\n\t\"CountyCourt\",\r\n\t\"CruiseCourt\",\r\n\t\"default\",\r\n\t\"DGSEnglishCourt\",\r\n\t\"DGSJapanCourt\",\r\n\t\"DualDestinies\",\r\n\t\"EnglishCourt\",\r\n\t\"gs4\",\r\n\t\"GS4Night\",\r\n\t\"HD\",\r\n\t\"Khura'in\",\r\n\t\"mlp\",\r\n\t\"NewCourt\",\r\n\t\"RuinedCourt\",\r\n\t\"Sky\",\r\n\t\"SpaceCourt\",\r\n\t\"Themis\",\r\n\t\"TouhouCourt\",\r\n\t\"WitchTrialCourt\",\r\n\t\"Zetta\"\r\n];","export default [\r\n\t\"1.png\",\r\n\t\"2.png\",\r\n\t\"3.png\",\r\n\t\"4.png\",\r\n\t\"5.png\",\r\n\t\"6.png\",\r\n\t\"empty.png\",\r\n\t\"lawyerbadge.png\"\r\n];","export default [\r\n\t\"aa\",\r\n\t\"chatdd\",\r\n\t\"dgs\",\r\n\t\"chatplvsaa\",\r\n\t\"trilogy\",\r\n\t\"chatfuture\",\r\n\t\"legacy\",\r\n\t\"dr1\",\r\n\t\"chatdr2\",\r\n\t\"drv3\",\r\n\t\"drae\",\r\n\t\"chatp3\",\r\n\t\"p4\",\r\n\t\"chat999\",\r\n\t\"halla\",\r\n\t\"homestuck\",\r\n\t\"yakuza\",\r\n\t\"yttd\",\r\n\t\"n64zelda\",\r\n\t\"papermario\"\r\n];"],"sourceRoot":""}
\ No newline at end of file |
