{"version":3,"sources":["webpack:///./node_modules/lamejs/src/js/common.js","webpack:///./node_modules/lamejs/src/js/CalcNoiseData.js","webpack:///./node_modules/lamejs/src/js/VBRSeekInfo.js","webpack:///./node_modules/lamejs/src/js/PsyModel.js","webpack:///./src/components/chat.vue?e83e","webpack:///./node_modules/lamejs/src/js/IIISideInfo.js","webpack:///./node_modules/lamejs/src/js/GainAnalysis.js","webpack:///./node_modules/lamejs/src/js/Presets.js","webpack:///./src/components/chat.vue?7799","webpack:///src/components/chat.vue","webpack:///./src/components/chat.vue?1929","webpack:///./src/components/chat.vue","webpack:///./node_modules/lamejs/src/js/CBRNewIterationLoop.js","webpack:///./node_modules/lamejs/src/js/Encoder.js","webpack:///./node_modules/lamejs/src/js/Reservoir.js","webpack:///./node_modules/lamejs/src/js/Tables.js","webpack:///./node_modules/lamejs/src/js/MPEGMode.js","webpack:///./node_modules/lamejs/src/js/BitStream.js","webpack:///./node_modules/lamejs/src/js/ReplayGain.js","webpack:///./node_modules/lamejs/src/js/CalcNoiseResult.js","webpack:///./node_modules/lamejs/src/js/FFT.js","webpack:///./node_modules/lamejs/src/js/Version.js","webpack:///./node_modules/vue-advanced-chat/dist/vue-advanced-chat.common.js","webpack:///./node_modules/lamejs/src/js/LameGlobalFlags.js","webpack:///./node_modules/lamejs/src/js/L3Side.js","webpack:///./node_modules/lamejs/src/js/III_psy_xmin.js","webpack:///./node_modules/lamejs/src/js/VBRQuantize.js","webpack:///./node_modules/lamejs/src/js/ATH.js","webpack:///./node_modules/lamejs/src/js/QuantizePVT.js","webpack:///./node_modules/lamejs/src/js/LameInternalFlags.js","webpack:///./node_modules/lamejs/src/js/NsPsy.js","webpack:///./node_modules/lamejs/src/js/Takehiro.js","webpack:///./node_modules/lamejs/src/js/index.js","webpack:///./node_modules/lamejs/src/js/Quantize.js","webpack:///./node_modules/lamejs/src/js/Lame.js","webpack:///./node_modules/lamejs/src/js/VBRTag.js","webpack:///./node_modules/lamejs/src/js/MeanBits.js","webpack:///./node_modules/lamejs/src/js/III_psy_ratio.js","webpack:///./node_modules/lamejs/src/js/GrInfo.js","webpack:///./node_modules/lamejs/src/js/NewMDCT.js","webpack:///./node_modules/lamejs/src/js/ScaleFac.js"],"names":["new_byte","count","Int8Array","new_short","Int16Array","new_int","Int32Array","new_float","Float32Array","new_double","Float64Array","new_float_n","args","length","sz","slice","A","i","push","new_int_n","new_short_n","new_array_n","Array","Arrays","a","fromIndex","toIndex","val","arguments","System","src","srcPos","dest","destPos","srcEnd","Util","ShortBlock","ordinal","this","SQRT2","FAST_LOG10","x","Math","log10","FAST_LOG10_X","y","short_block_allowed","short_block_coupled","short_block_dispensed","short_block_forced","Float","VbrMode","MAX_VALUE","vbr_off","vbr_mt","vbr_rh","vbr_abr","vbr_mtrh","vbr_default","assert","module","exports","common","CalcNoiseData","global_gain","sfb_count1","step","noise","noise_log","VBRSeekInfo","sum","seen","want","pos","size","bag","nVbrNumFrames","nBytesWritten","TotalFrameSize","FFT","Encoder","PsyModel","fft","LOG10","rpelev","rpelev2","rpelev_s","rpelev2_s","DELBARK","VO_SCALE","BLKSIZE","temporalmask_sustain_sec","NS_PREECHO_ATT0","NS_PREECHO_ATT1","NS_PREECHO_ATT2","NS_MSFIX","NSFIRLEN","LN_TO_LOG10","NON_LINEAR_SCALE_ENERGY","psycho_loudness_approx","energy","gfc","loudness_power","ATH","eql_w","compute_ffts","gfp","fftenergy","fftenergy_s","wsamp_l","wsamp_lPos","wsamp_s","wsamp_sPos","gr_out","chn","buffer","bufPos","internal_flags","fft_long","fft_short","j","l","r","b","BLKSIZE_s","re","im","totalenergy","HBLKSIZE","tot_ener","analysis","pinfo","energy_save","pe","athaa_loudapprox","loudness_sq","loudness_sq_save","ma_max_i1","ma_max_i2","ma_max_m","I1LIMIT","I2LIMIT","MLIMIT","tab","init_mask_add_max_values","pow","table1","table2","table3","mask_add","m1","m2","kk","shortblock","ratio","f","cb_s","adjust","cb_l","table2_","vbrpsy_mask_add","calc_interchannel_masking","channels_out","sb","SBMAX_l","thm","SBMAX_s","sblock","s","msfix1","mld","mld_l","en","rmid","max","min","rside","mld_s","ns_msfix","msfix","athadjust","msfix2","athlower","ath","bm_l","thmLR","thmM","thmS","bm_s","convert_partition2scalefac_s","eb","thr","enn","thmm","bo_s_sb","bo_s","npart_s","b_lim","w_curr","PSY","bo_s_weight","w_next","convert_partition2scalefac_l","bo_l_sb","bo_l","npart_l","bo_l_weight","compute_masking_s","ebb","m","n","numlines_s","el","s3ind_s","ecb","s3_ss","nb_s1","blocktype_old","SHORT_TYPE","nb_s2","CBANDS","block_type_set","uselongblock","blocktype_d","blocktype","short_blocks","NORM_TYPE","START_TYPE","STOP_TYPE","NS_INTERP","regcoef_s","pecalc_s","mr","masking_lower","pe_s","regcoef_l","pecalc_l","pe_l","calc_energy","avg","numlines_l","rnumlines_l","calc_mask_index_l","mask_idx","last_tab_entry","k","fircoef","vbrpsy_compute_fft_l","vbrpsy_compute_fft_s","vbrpsy_compute_loudness_approximation_l","L3psycho_anal_ns","masking_ratio","masking_MS_ratio","percep_entropy","percep_MS_entropy","numchn","pcfact","wsamp_L","wsamp_S","eb_l","eb_s","ns_hpfsmpl","mask_idx_l","mask_idx_s","fill","mode","MPEGMode","JOINT_STEREO","VBR","ResvMax","firbuf","firbufPos","sum1","sum2","assign","attackThreshold","en_subshort","en_short","attack_intensity","ns_uselongblock","ns_attacks","HBLKSIZE_s","nsPsy","last_en_subshort","pf","pfPos","pfe","p","abs","ers","ers_save","attackthre_s","attackthre","lastAttacks","idx","s3ind","eb2","s3_ll","nb_1","nb_2","STEREO","interChRatio","ATHlower","ppe","type","ppePos","fircoef_","vbrpsy_attack_detection","sub_short_factor","n_chn_out","n_chn_psy","factor","u","v","vbrpsy_skip_masking_s","vbrpsy_skip_masking_l","psyvbr_calc_mask_index_s","vbrpsy_compute_masking_s","float","int","dd","dd_n","avg_mask","last","minval_s","vbrpsy_compute_masking_l","t","ecb_limit","ecb_limit_2","ecb_limit_1","minval_l","vbrpsy_compute_block_type","vbrpsy_apply_block_type","vbrpsy_compute_MS_thresholds","cb_mld","ath_cb","ebM","ebS","thmL","thmR","mld_m","thmMS","s3_func_x","bark","hf_slope","tempy","tempx","exp","norm_s3_func_x","lim_a","lim_b","h","norm","s3_func","temp","sqrt","freq2bark","freq","atan","init_numline","numlines","bo","bm","bval","bval_width","bo_w","sfreq","blksize","scalepos","deltafreq","sbmax","b_frq","sample_freq_frac","partition","ni","j2","bark1","sfb","i1","i2","start","end","arg","floor","f_tmp","cos","PI","bark2","w","init_s3_values","npart","use_old_s3","s3","numberOfNoneZero","s3_x_norm","stereo_demask","ATHformula_GB","value","L3psycho_anal_vbr","ch01","mld_cb_l","mld_cb_s","new_thmm","psymodel_init","useOldS3","bvl_a","bvl_b","snr_l_a","snr_l_b","snr_s_a","snr_s_b","out_samplerate","experimentalZ","ms_ener_ratio_old","scalefac_band","snr","level","ATHformula","log","init_fft","decay","exp_nspsytune","frame_duration","mode_gr","adjustLimit","ATHtype","freq_inc","eql_balance","ATHcurve","GrInfo","IIISideInfo","tt","main_data_begin","private_bits","resvDrain_pre","resvDrain_post","scfsi","gr","ch","GainAnalysis","PINK_REF","RMS_PERCENTILE","YULE_ORDER","RMS_WINDOW_TIME_NUMERATOR","MAX_SAMP_FREQ","RMS_WINDOW_TIME_DENOMINATOR","ABYule","MAX_SAMPLES_PER_WINDOW","ABButter","filterYule","input","inputPos","output","outputPos","nSamples","kernel","filterButter","ResetSampleFrequency","rgData","samplefreq","MAX_ORDER","linprebuf","lstepbuf","loutbuf","rinprebuf","rstepbuf","routbuf","reqindex","INIT_GAIN_ANALYSIS_ERROR","sampleWindow","lsum","rsum","totsamp","ill","INIT_GAIN_ANALYSIS_OK","fsqr","d","analyzeResult","len","elems","GAIN_NOT_ENOUGH_SAMPLES","upper","ceil","STEPS_per_dB","InitGainAnalysis","linpre","rinpre","lstep","rstep","lout","rout","B","AnalyzeSamples","left_samples","left_samplesPos","right_samples","right_samplesPos","num_samples","num_channels","curleft","curleftBase","curright","currightBase","batchsamples","cursamples","cursamplepos","GAIN_ANALYSIS_OK","GAIN_ANALYSIS_ERROR","arraycopy","ival","GetTitleGain","retval","MAX_dB","Presets","VBRPresets","qual","comp","compS","shThreshold","shThresholdS","adj","adjShort","lower","curve","sens","inter","joint","mod","fix","vbr_q","quant_comp","quant_comp_s","expY","st_lrm","st_s","masking_adj","masking_adj_short","ath_lower","ath_curve","ath_sensitivity","interch","safejoint","sfb21mod","ABRPresets","kbps","bass","sc","mask","interCh","sfScale","nsmsfix","nsbass","scale","sfscale","lame","setModules","_lame","vbr_old_switch_map","vbr_psy_switch_map","apply_vbr_preset","enforce","vbr_preset","VBR_q_frac","q","set","lame_set_VBR_q","quant_comp_short","experimentalY","maskingadjust","maskingadjust_short","athaa_sensitivity","VBR_q","abr_switch_map","apply_abr_preset","preset","actual_bitrate","nearestBitrateFullIndex","VBR_mean_bitrate_kbps","brate","disable_reservoir","noise_shaping","ret","apply_preset","Lame","R3MIX","V3","MEDIUM","V4","MEDIUM_FAST","STANDARD","V2","STANDARD_FAST","EXTREME","V0","EXTREME_FAST","INSANE","V9","V8","V7","V6","V5","V1","render","_vm","_h","$createElement","_c","_self","rooms","attrs","currentUserId","messagesLoaded","messages","on","sendMessage","changeRoom","openFile","scopedSlots","_u","key","fn","ref","message","staticClass","class","getUID","senderId","style","_v","_s","split","date","content","file","url","name","_e","staticRenderFns","props","components","ChatWindow","connection","methods","String","JSON","parse","localStorage","getItem","id","e","window","token","data","user","files","send","stringify","wid","setTimeout","$upskill","chat","then","res","map","o","hasFile","msgJson","_id","time","sender","username","avatar","timestamp","system","saved","distributed","disableActions","disableReactions","pop","audio","open","roomId","room","close","self","WebSocket","chatws","getChatMessages","onclose","event","canConnect","onerror","onmessage","template","msgTemplate","onopen","chatBox","ws","img","image","startsWith","component","MeanBits","L3Side","LameInternalFlags","CBRNewIterationLoop","_quantize","quantize","iteration_loop","ms_ener_ratio","max_bits","l3_xmin","SFBMAX","xrpow","targ_bits","mean_bits","l3_side","mb","rv","ResvFrameBegin","bits","qupvt","on_pe","mode_ext","MPG_MD_MS_LR","ms_convert","reduce_side","masking_lower_db","cod_info","block_type","mask_adjust","mask_adjust_short","init_outer_loop","init_xrpow","calc_xmin","outer_loop","iteration_finish_one","part2_3_length","MAX_BITS_PER_CHANNEL","ResvFrameEnd","NewMDCT","III_psy_ratio","FFTOFFSET","bs","psy","vbr","_bs","_psy","_qupvt","_vbr","newMDCT","adjust_ATH","gr2_max","max_pow","useAdjust","aaSensitivityP","adj_lim_new","updateStats","bitrate_index","bitrate_stereoMode_Hist","bt","mixed_block_flag","bitrate_blockType_Hist","lame_encode_frame_init","inbuf","primebuff0","primebuff1","mdct_sub48","mf_size","framesize","lame_encode_mp3_frame","inbuf_l","inbuf_r","mp3buf","mp3bufPos","mp3buf_size","mp3count","masking_LR","masking","masking_MS","pe_use","pe_MS","padding","slot_lag","frac_SpF","psymodel","bufp","bufpPos","MPG_MD_LR_LR","force_ms","sum_pe_MS","sum_pe_LR","gi0","gi1","ms_ratio","xr","pefirbuf","format_bitstream","copy_buffer","bWriteVbrTag","addVbrFrame","pcmdata","set_frame_pinfo","ENCDELAY","POSTDELAY","MDCTDELAY","DECDELAY","SBLIMIT","SBPSY_l","SBPSY_s","PSFB21","PSFB12","MPG_MD_LR_I","MPG_MD_MS_I","Reservoir","maxmp3buf","frameLength","getframebits","sideinfo_len","resvLimit","strict_ISO","fullFrameBits","ResvSize","resvsize","ResvMaxBits","cbr","add_bits","substep_shaping","extra_bits","ResvAdjust","gi","part2_length","over_bits","stuffingBits","mdb_bytes","HuffCodeTab","hl","xlen","linmax","table","hlen","Tables","ht","t1HB","t1l","t2HB","t2l","t3HB","t3l","t5HB","t5l","t6HB","t6l","t7HB","t7l","t8HB","t8l","t9HB","t9l","t10HB","t10l","t11HB","t11l","t12HB","t12l","t13HB","t13l","t16_5l","t15HB","t15l","t16HB","t16l","t24HB","t24l","t32HB","t32l","t33HB","t33l","largetbl","table23","table56","bitrate_table","samplerate_table","scfsi_band","_ordinal","DUAL_CHANNEL","MONO","NOT_SET","Takehiro","BitStream","CRC16_POLYNOMIAL","MAX_LENGTH","ga","mpg","ver","_ga","_mpg","_ver","buf","totbit","bufByteIdx","bufBitIdx","putheader_bits","header","w_ptr","MAX_HEADER_BUF","putbits2","LAME_MAXMP3BUFFER","write_timing","putbits_noheaders","drain_into_ancillary","remainingBits","version","getLameShortVersion","charAt","ancillary_flag","writeheader","ptr","h_ptr","CRC_update","crc","encodeSideInfo2","bitsPerFrame","error_protection","band","big_values","scalefac_compress","table_select","subblock_gain","region0_count","region1_count","preflag","scalefac_scale","count1table_select","CRC_writeheader","old","err","println","huffman_coder_count1","ix","count1","huffbits","l3_enc","Huffmancode","tableindex","cbits","xbits","linbits","ext","x1","x2","linbits_x1","linbits_x2","ShortHuffmancodebits","region1Start","LongHuffmancodebits","bigvalues","region2Start","writeMainData","data_bits","tot_bits","slen1","slen1_tab","slen2","slen2_tab","sfbdivide","scalefac","sfbmax","sfb_partition","scale_bits","sfb_partition_table","sfbs","slen","TotalBytes","total","compute_flushbits","total_bytes_output","flushbits","remaining_headers","last_ptr","first_ptr","bit_rate","bytes","flush_bitstream","findReplayGain","RadioGain","rgdata","NEQ","findPeakSample","noclipGainChange","PeakSample","EQ","noclipScale","add_dummy_byte","printf","bufferPos","mp3data","minimum","nMusicCRC","updateMusicCRC","VBR_seek_table","decode_on_the_fly","pcm_buf","mp3_in","samples_out","hip_decode1_unclipped","hip","init_bit_stream_w","ReplayGain","freqindex","first","CalcNoiseResult","over_noise","tot_noise","max_noise","over_count","over_SSD","window_s","costab","fht","fz","fzPos","k4","fi","tri","s1","c1","k1","k2","k3","kx","f1","f0","f3","f2","c2","s2","g0","g1","g2","g3","rv_tbl","x_real","jj","Version","LAME_URL","LAME_MAJOR_VERSION","LAME_MINOR_VERSION","LAME_PATCH_VERSION","PSY_MAJOR_VERSION","PSY_MINOR_VERSION","getLameVersion","getLameVeryShortVersion","getPsyVersion","getLameUrl","getLameOsBitness","modules","installedModules","__webpack_require__","moduleId","call","c","getter","Object","defineProperty","enumerable","get","Symbol","toStringTag","__esModule","ns","create","bind","object","property","prototype","hasOwnProperty","wellKnownSymbol","TO_STRING_TAG","test","__webpack_exports__","aFunction","that","undefined","apply","isObject","factories","construct","C","argsLength","list","Function","join","partArgs","boundFunction","concat","toIndexedObject","nativeGetOwnPropertyNames","toString","windowNames","getOwnPropertyNames","getWindowNames","it","error","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","toInteger","toLength","number","RangeError","toObject","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","symbols","match","capture","repeat","requireObjectCoercible","createMethod","IS_END","$this","maxLength","fillString","fillLen","stringFiller","S","stringLength","fillStr","intMaxLength","fails","createElement","redefine","DatePrototype","Date","INVALID_DATE","TO_STRING","nativeDateToString","getTime","NaN","IS_PURE","ITERATOR","URL","searchParams","result","pathname","forEach","toJSON","sort","href","URLSearchParams","host","hash","Infinity","is","$","$reduce","left","arrayMethodIsStrict","arrayMethodUsesToLength","CHROME_VERSION","IS_NODE","STRICT_METHOD","USES_TO_LENGTH","1","CHROME_BUG","target","proto","forced","reduce","callbackfn","toAbsoluteIndex","copyWithin","to","from","inc","classof","regexpExec","R","exec","TypeError","global","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","stateify","TokenState","CharacterState","_class","createStateClass","tClass","T","BaseState","defaultTransition","symbol","state","next","item","jump","accepts","emit","inherits","character","charOrRegExp","RegExp","constructor","tokenClass","endToken","defaultToken","newStates","nextState","ArrayBufferViewCore","speciesConstructor","aTypedArray","exportTypedArrayMethod","begin","beginIndex","byteOffset","BYTES_PER_ELEMENT","$forEach","toPositiveInteger","BYTES","offset","Constructor","detectMobile","iOSDevice","userAgent","getUserAgent","userAgentPart","substr","navigator","vendor","opera","Error","includes","platform","document","getBuiltIn","SAFE_CLOSING","called","iteratorWithReturn","done","SKIP_CLOSING","ITERATION_SUPPORT","defineProperties","stat","sham","V8_VERSION","SPECIES","METHOD_NAME","array","foo","Boolean","$sort","comparefn","anObject","isArrayIteratorMethod","getIteratorMethod","iteratorClose","Result","stopped","iterable","unboundFunction","options","iterator","iterFn","index","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","createHTML","forcedStringHTMLMethod","strike","integer","setGlobal","copyConstructorProperties","isForced","source","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","noTargetGet","internalObjectKeys","enumBugKeys","hiddenKeys","notARegExp","correctIsRegExpLogic","searchString","indexOf","parent","child","extended","$reduceRight","right","flags","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","definePropertyModule","CONSTRUCTOR_NAME","configurable","isArray","aTypedArrayConstructor","$slice","returnMethod","EOF","USE_NATIVE_URL","anInstance","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","getState","setInternalState","getInternalURLState","getterFor","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","ipv4","parts","parseInt","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","findLongestZeroSequence","ipv6","maxIndex","currStart","currLength","serializeHost","ignore0","unshift","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","encodeURIComponent","specialSchemes","ftp","http","https","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","string","normalized","second","startsWithWindowsDriveLetter","third","shortenURLsPath","path","pathSize","isSingleDot","segment","toLowerCase","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","port","query","fragment","codePoint","encodedCodePoints","shift","URLConstructor","baseState","urlString","searchParamsState","updateSearchParams","updateURL","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","setter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","writable","defer","channel","html","IS_IOS","location","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","run","runner","listener","post","postMessage","nextTick","now","port2","port1","addEventListener","importScripts","appendChild","removeChild","versions","v8","tokenize","scanner","parser","find","_options","_interopRequireWildcard","_scanner","_parser","obj","newObj","default","tokens","filtered","isLink","_typeof","defaults","defaultProtocol","events","format","noop","formatHref","nl2br","tagName","typeToTarget","validate","ignoreTags","attributes","className","Options","opts","linkAttributes","linkClass","ignoredTags","toUpperCase","contains","arr","resolve","toHref","formatted","formattedHref","getObject","check","operator","optionValue","option","$lastIndexOf","searchElement","Iterators","objectKeys","Properties","keys","$findIndex","findIndex","predicate","toOffset","arrayLike","defineIterator","STRING_ITERATOR","getInternalState","iterated","point","$map","mapfn","TOKENS","State","_state","_multi","MULTI_TOKENS","_text","makeState","S_START","S_PROTOCOL","S_MAILTO","S_PROTOCOL_SLASH","S_PROTOCOL_SLASH_SLASH","S_DOMAIN","S_DOMAIN_DOT","S_TLD","S_TLD_COLON","S_TLD_PORT","S_URL","S_URL_NON_ACCEPTING","S_URL_OPENBRACE","S_URL_OPENBRACKET","S_URL_OPENANGLEBRACKET","S_URL_OPENPAREN","S_URL_OPENBRACE_Q","S_URL_OPENBRACKET_Q","S_URL_OPENANGLEBRACKET_Q","S_URL_OPENPAREN_Q","S_URL_OPENBRACE_SYMS","S_URL_OPENBRACKET_SYMS","S_URL_OPENANGLEBRACKET_SYMS","S_URL_OPENPAREN_SYMS","S_EMAIL_DOMAIN","S_EMAIL_DOMAIN_DOT","S_EMAIL","EMAIL","S_EMAIL_COLON","S_EMAIL_PORT","S_MAILTO_EMAIL","MAILTOEMAIL","S_MAILTO_EMAIL_NON_ACCEPTING","S_LOCALPART","S_LOCALPART_AT","S_LOCALPART_DOT","S_NL","NL","PROTOCOL","MAILTO","SLASH","TLD","DOMAIN","LOCALHOST","NUM","DOT","COLON","qsAccepting","AT","PLUS","POUND","UNDERSCORE","SYM","AMPERSAND","qsNonAccepting","PUNCTUATION","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","localpartAccepting","cursor","multis","textTokens","secondState","multiLength","latestAccepting","sinceAccepts","TEXT","MULTI","propertyIsEnumerable","UNSCOPABLES","ArrayPrototype","console","MATCH","isRegExp","$some","some","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","regexp","matcher","rx","fullUnicode","unicode","lastIndex","matchStr","createTokenClass","MSIE","wrap","scheduler","handler","timeout","boundArgs","setInterval","defaultConstructor","getOwnPropertySymbols","$trim","trim","forcedStringTrimMethod","roomsValidation","partcipantsValidation","messagesValidation","roomsValidate","every","prop","validType","checkObjectValid","participantsValidate","messagesValidate","inheritIfRequired","getFlags","stickyHelpers","setSpecies","NativeRegExp","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","sticky","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","IS_INCLUDES","$filter","filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callWithSafeIterationClosing","createProperty","argumentsLength","mapping","iteratorMethod","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","$entries","entries","argument","getSubstitution","maybeToString","REPLACE","nativeReplace","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","groups","replacerArgs","store","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","whitespaces","whitespace","ltrim","rtrim","TYPE","bitmap","$join","separator","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","charCodeAt","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","label","encoded","labels","ArrayIterators","Uint8Array","arrayValues","values","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","IndexedObject","nativeAssign","alphabet","chr","NATIVE_ARRAY_BUFFER","redefineAll","IEEE754","getPrototypeOf","setPrototypeOf","arrayFill","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","ObjectPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","isLittleEndian","intIndex","byteLength","reverse","conversion","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","ArrayBuffer","DataView","padStart","nativeDateToISOString","toISOString","isFinite","year","getUTCFullYear","milliseconds","getUTCMilliseconds","sign","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CONVERT_TO_STRING","originalArray","required","emojiTable","display","visible","computed","emojis","insert","$emit","toggle","clientX","clientY","hide","escape","keyCode","directives","modifiers","bubble","__vueClickOutside__","unbind","removeEventListener","mounted","destroyed","thumbs_up","sob","confused","neutral_face","blush","heart_eyes","People","smile","smiley","grinning","wink","kissing_heart","kissing_closed_eyes","kissing","kissing_smiling_eyes","stuck_out_tongue_winking_eye","stuck_out_tongue_closed_eyes","stuck_out_tongue","flushed","grin","pensive","relieved","unamused","disappointed","persevere","cry","joy","sleepy","disappointed_relieved","cold_sweat","sweat_smile","sweat","weary","tired_face","fearful","scream","angry","rage","triumph","confounded","laughing","yum","sunglasses","sleeping","dizzy_face","astonished","worried","frowning","anguished","imp","open_mouth","grimacing","hushed","smirk","expressionless","man_with_gua_pi_mao","man_with_turban","cop","construction_worker","guardsman","baby","boy","girl","man","woman","older_man","older_woman","person_with_blond_hair","angel","princess","smiley_cat","smile_cat","heart_eyes_cat","kissing_cat","smirk_cat","scream_cat","crying_cat_face","joy_cat","pouting_cat","japanese_ogre","japanese_goblin","see_no_evil","hear_no_evil","speak_no_evil","skull","alien","hankey","fire","sparkles","star2","dizzy","boom","anger","sweat_drops","droplet","zzz","dash","ear","eyes","nose","tongue","lips","ok_hand","facepunch","fist","wave","hand","open_hands","point_up_2","point_down","point_right","point_left","raised_hands","pray","clap","muscle","walking","dancer","couple","family","couplekiss","couple_with_heart","dancers","ok_woman","no_good","information_desk_person","raising_hand","massage","haircut","nail_care","bride_with_veil","person_with_pouting_face","person_frowning","bow","tophat","crown","womans_hat","athletic_shoe","mans_shoe","sandal","high_heel","boot","shirt","necktie","womans_clothes","dress","running_shirt_with_sash","jeans","kimono","bikini","briefcase","handbag","pouch","purse","eyeglasses","ribbon","closed_umbrella","lipstick","yellow_heart","blue_heart","purple_heart","green_heart","broken_heart","heartpulse","heartbeat","two_hearts","sparkling_heart","revolving_hearts","cupid","love_letter","kiss","ring","gem","bust_in_silhouette","speech_balloon","footprints","Nature","dog","wolf","cat","mouse","hamster","rabbit","frog","tiger","koala","bear","pig","pig_nose","cow","boar","monkey_face","monkey","horse","sheep","elephant","panda_face","penguin","bird","baby_chick","hatched_chick","hatching_chick","chicken","snake","turtle","bug","bee","ant","beetle","snail","octopus","shell","tropical_fish","fish","dolphin","whale","racehorse","dragon_face","blowfish","camel","poodle","feet","bouquet","cherry_blossom","tulip","four_leaf_clover","rose","sunflower","hibiscus","maple_leaf","leaves","fallen_leaf","herb","ear_of_rice","mushroom","cactus","palm_tree","chestnut","seedling","blossom","new_moon","first_quarter_moon","moon","full_moon","first_quarter_moon_with_face","crescent_moon","earth_asia","volcano","milky_way","stars","partly_sunny","snowman","cyclone","foggy","rainbow","ocean","Objects","bamboo","gift_heart","dolls","school_satchel","mortar_board","fireworks","sparkler","wind_chime","rice_scene","jack_o_lantern","ghost","santa","christmas_tree","gift","tanabata_tree","tada","confetti_ball","balloon","crossed_flags","crystal_ball","movie_camera","camera","video_camera","vhs","cd","dvd","minidisc","floppy_disk","computer","iphone","telephone_receiver","pager","fax","satellite","tv","radio","loud_sound","bell","loudspeaker","mega","hourglass_flowing_sand","hourglass","alarm_clock","watch","unlock","lock","lock_with_ink_pen","closed_lock_with_key","mag_right","bulb","flashlight","electric_plug","battery","mag","bath","toilet","wrench","nut_and_bolt","hammer","door","smoking","bomb","gun","hocho","pill","syringe","moneybag","yen","dollar","credit_card","money_with_wings","calling","inbox_tray","outbox_tray","envelope_with_arrow","incoming_envelope","mailbox","mailbox_closed","postbox","package","memo","page_facing_up","page_with_curl","bookmark_tabs","bar_chart","chart_with_upwards_trend","chart_with_downwards_trend","scroll","clipboard","calendar","card_index","file_folder","open_file_folder","pushpin","paperclip","straight_ruler","triangular_ruler","closed_book","green_book","blue_book","orange_book","notebook","notebook_with_decorative_cover","ledger","books","book","bookmark","name_badge","newspaper","art","clapper","microphone","headphones","musical_score","musical_note","notes","musical_keyboard","violin","trumpet","saxophone","guitar","space_invader","video_game","black_joker","flower_playing_cards","mahjong","game_die","dart","football","basketball","soccer","baseball","tennis","bowling","golf","checkered_flag","trophy","ski","snowboarder","swimmer","surfer","fishing_pole_and_fish","tea","sake","beer","beers","cocktail","tropical_drink","wine_glass","fork_and_knife","pizza","hamburger","fries","poultry_leg","meat_on_bone","spaghetti","curry","fried_shrimp","bento","sushi","fish_cake","rice_ball","rice_cracker","rice","ramen","stew","oden","dango","egg","bread","doughnut","custard","icecream","ice_cream","shaved_ice","birthday","cake","cookie","chocolate_bar","candy","lollipop","honey_pot","apple","green_apple","tangerine","cherries","grapes","watermelon","strawberry","peach","melon","banana","pineapple","sweet_potato","eggplant","tomato","corn","Places","house","house_with_garden","school","office","post_office","hospital","bank","convenience_store","love_hotel","hotel","wedding","church","department_store","city_sunrise","city_sunset","japanese_castle","european_castle","tent","factory","tokyo_tower","japan","mount_fuji","sunrise_over_mountains","sunrise","night_with_stars","statue_of_liberty","bridge_at_night","carousel_horse","ferris_wheel","fountain","roller_coaster","ship","boat","speedboat","rocket","seat","station","bullettrain_side","bullettrain_front","metro","railway_car","bus","blue_car","car","taxi","truck","rotating_light","police_car","fire_engine","ambulance","bike","barber","busstop","ticket","traffic_light","construction","beginner","fuelpump","izakaya_lantern","slot_machine","moyai","circus_tent","performing_arts","round_pushpin","triangular_flag_on_post","Symbols","keycap_ten","1234","capital_abcd","abcd","abc","arrow_up_small","arrow_down_small","rewind","fast_forward","arrow_double_up","arrow_double_down","ok","new","up","cool","free","ng","signal_strength","cinema","koko","u6307","u7a7a","u6e80","u5408","u7981","ideograph_advantage","u5272","u55b6","u6709","u7121","restroom","mens","womens","baby_symbol","wc","no_smoking","u7533","accept","cl","sos","no_entry_sign","underage","no_entry","negative_squared_cross_mark","white_check_mark","heart_decoration","vs","vibration_mode","mobile_phone_off","ab","diamond_shape_with_a_dot_inside","ophiuchus","six_pointed_star","atm","chart","heavy_dollar_sign","currency_exchange","exclamation","question","grey_exclamation","grey_question","top","back","soon","arrows_clockwise","clock12","clock1","clock2","clock3","clock4","clock5","clock6","clock7","clock8","clock9","clock10","clock11","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","white_flower","100","radio_button","link","curly_loop","trident","small_red_triangle","black_square_button","white_square_button","red_circle","large_blue_circle","small_red_triangle_down","white_large_square","black_large_square","large_orange_diamond","large_blue_diamond","small_orange_diamond","small_blue_diamond","EmojiPickerPlugin","EmojiPicker","install","_","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","functional","beforeCreate","esModule","_t","click","rawName","expression","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","inspectSource","enforceInternalState","TEMPLATE","simple","TO_ENTRIES","dummy","Wrapper","NewTarget","NewTargetPrototype","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","$fill","wrappedWellKnownSymbolModule","NAME","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferModule","typedArrayFrom","getOwnPropertyDescriptorModule","nativeDefineProperty","round","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG","TypedArray","TypedArrayPrototype","isTypedArray","fromList","isArrayBuffer","klass","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","typedArrayOffset","$length","$len","WS","Base","_createTokenClass","TextToken","inheritsToken","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","nBits","objectDefinePropertyModile","activeXDocument","documentCreateElement","GT","LT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","F","NullProtoObject","domain","ActiveXObject","$find","addToUnscopables","FIND","SKIPS_HOLES","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","$parseFloat","parseFloat","trimmedString","endPos","$includes","propertyKey","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","quot","tag","attribute","p1","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","root","getCurrentScript","currentScript","pageSource","inlineScriptSourceRegExp","inlineScriptSource","ieStackRegExp","ffStackRegExp","stackDetails","stack","scriptLocation","line","currentLocation","scripts","getElementsByTagName","documentElement","outerHTML","readyState","innerHTML","functionToString","checkCorrectnessOfIteration","createTypedArrayConstructor","init","postfix","random","regexpFlags","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","multiline","feature","detection","normalize","POLYFILL","NATIVE","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","reject","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","__proto__","awrap","async","Promise","iter","skipTempReset","prev","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","percentDecode","sequence","decodeURIComponent","deserialize","serialize","parseSearchParams","validateArgumentsLength","passed","URLSearchParamsIterator","params","kind","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","append","splice","getAll","found","entriesIndex","sliceIndex","callback","fetch","body","headers","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","$copyWithin","Attributes","RE","nativeJoin","ES3_STRINGS","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","uid","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","space","$replacer","valueOf","$every","INCORRECT_ITERATION","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","maxCode","digits","NumberWrapper","error1","error2","parseFloatImplementation","nativeArrayBufferSlice","INCORRECT_SLICE","fin","viewSource","viewTarget","ignoreCase","dotAll","cache","thrower","ACCESSORS","argument0","argument1","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TO_STRING_TAG_SUPPORT","FunctionPrototype","FunctionPrototypeToString","nameRE","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","flush","head","notify","node","promise","macrotask","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","enter","createTextNode","observe","characterData","task","createWellKnownSymbol","withoutSetter","nativeKeys","FAILS_ON_PRIMITIVES","thisNumberValue","nativeToFixed","toFixed","acc","fractionDigits","z","fractDigits","multiply","divide","dataToString","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","specificCreate","filterOut","tlds","NUMBERS","ALPHANUM","WHITESPACE","domainStates","S_NUM","S_DOMAIN_HYPHEN","S_WS","partialProtocolFileStates","partialProtocolFtpStates","partialProtocolHttpStates","partialProtocolMailtoStates","S_PROTOCOL_FILE","S_PROTOCOL_FTP","S_PROTOCOL_HTTP","S_PROTOCOL_SECURE","S_FULL_PROTOCOL","S_FULL_MAILTO","partialLocalhostStates","_i","lowerStr","tokenLength","TOKEN","lastIndexOf","isImageFile","isVideoFile","isAudioFile","_constants__WEBPACK_IMPORTED_MODULE_3__","checkMediaType","types","isDomainToken","MultiToken","hasProtocol","hasSlashSlash","PREFERRED_STRING","msMaxTouchPoints","middleware","isActive","detectIframe","srcTarget","composedPath","activeElement","update","oldValue","directive","SHARED","g","non","$indexOf","nativeIndexOf","NEGATIVE_ZERO","IMAGE_TYPES","VIDEO_TYPES","AUDIO_TYPES","EXISTS","bold","middle","newPromiseCapability","promiseCapability","variable","namespace","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","TAG","IS_RIGHT","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","globalThis","ownKeys","getOwnPropertyDescriptors","ArrayIteratorMethods","ArrayValues","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","CORRECT_PROTOTYPE_GETTER","locals","btoa","unescape","sources","sourceRoot","css","media","sourceMap","DEBUG","refs","querySelector","parentNode","styleSheet","cssText","childNodes","insertBefore","setAttribute","ssrId","firstChild","throttleLimit","loopCheckTimeout","loopCheckMaxCalls","passive","remove","STATE_CHANGER","INFINITE_EVENT","IDENTIFIER","INFINITE_LOOP","READY","LOADING","COMPLETE","ERROR","color","fontSize","spinner","distance","forceUseInfiniteWrapper","slots","noResults","noMore","errorBtnText","WARNINGS","ERRORS","STATUS","BUBBLES","CIRCLES","SPIRAL","WAVEDOTS","_compiled","$root","$options","shadowRoot","_injectStyles","spinnerView","$attrs","spinnerInConfig","__inject__","warn","timers","caches","throttle","clearTimeout","isChecked","timer","times","track","getScrollElm","save","scrollHeight","restore","scrollTop","offsetWidth","offsetHeight","scrollParent","scrollHandler","isFirstLoad","status","Spinner","isShowSpinner","isShowError","isShowNoResults","isShowNoMore","slotStyles","$slots","Number","direction","identifier","onInfinite","stateChanger","$watch","getScrollParent","immediate","Event","$el","attemptLoad","$on","$nextTick","$forceUpdate","loaded","deactivated","activated","getCurrentDistance","pageYOffset","getBoundingClientRect","innerHeight","bottom","getComputedStyle","overflowY","hasAttribute","trigger","domProps","textContent","config","productionTip","Vue","ARRAY_ITERATOR","Arguments","nativeLastIndexOf","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","iterate","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","FakePromise","all","isThenable","isReject","notified","chain","reactions","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","initEvent","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","isPrototypeOf","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint16Array","Uint32Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","ARRAY","exportTypedArrayStaticMethod","PromiseCapability","$$resolve","$$reject","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","height","cssVars","singleRoom","orderedRooms","loadingRooms","roomsLoaded","roomActions","showAddRoom","showRoomsList","textFormatting","linkOptions","isMobile","fetchRoom","fetchMoreRooms","$event","loadingMoreRooms","addRoom","roomActionHandler","_l","loadFirstRoom","roomMessage","menuActions","messageActions","showSendIcon","showFiles","showAudio","showEmojis","showReactionEmojis","showNewMessagesDivider","showFooter","$listeners","acceptedFiles","toggleRoomsList","roomInfo","fetchMessages","editMessage","deleteMessage","openUserTag","menuActionHandler","messageActionHandler","sendMessageReaction","typingMessage","textareaActionHandler","_defineProperty","enumerableOnly","_objectSpread2","RoomsListvue_type_template_id_a7e0f8e4_scoped_true_render","textMessages","searchRoom","ROOMS_EMPTY","fRoom","selectedRoomId","openRoom","loadMoreRooms","slot","RoomsListvue_type_template_id_a7e0f8e4_scoped_true_staticRenderFns","vue_infinite_loading","vue_infinite_loading_default","Loadervue_type_template_id_fd7c39d0_scoped_true_render","infinite","Loadervue_type_template_id_fd7c39d0_scoped_true_staticRenderFns","Loadervue_type_script_lang_js_","show","components_Loadervue_type_script_lang_js_","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","originalRender","existing","_pseudoMarkdown","Loader","RoomsSearchvue_type_template_id_75dd31cd_scoped_true_render","RoomsSearchvue_type_template_id_75dd31cd_scoped_true_staticRenderFns","SvgIconvue_type_template_id_3e37b0e6_scoped_true_render","svgId","svgItem","path2","SvgIconvue_type_template_id_3e37b0e6_scoped_true_staticRenderFns","SvgIconvue_type_script_lang_js_","param","menu","emoji","pencil","checkmark","eye","dropdown","deleted","components_SvgIconvue_type_script_lang_js_","SvgIcon_component","SvgIcon","RoomsSearchvue_type_script_lang_js_","RoomsList_RoomsSearchvue_type_script_lang_js_","RoomsSearch_component","RoomsSearch","RoomContentvue_type_template_id_1826b94a_scoped_true_render","userStatus","roomName","lastMessage","typingUsers","isAudio","formattedDuration","getLastMessage","users","unreadCount","stopPropagation","roomMenuOpened","action","title","RoomContentvue_type_template_id_1826b94a_scoped_true_staticRenderFns","v_click_outside_umd","v_click_outside_umd_default","FormatMessagevue_type_template_id_f74f96d6_render","singleLine","italic","underline","inline","reply","openTag","formattedContent","FormatMessagevue_type_template_id_f74f96d6_staticRenderFns","linkify","format_string","text","doLinkify","json","compileToJSON","compileToHTML","linkifyResult","typeMarkdown","pseudoMarkdown","allowed_chars","minIndexOf","minIndexOfKey","links","minIndexFromLink","startingValue","io","strLeft","strLink","strRight","_strLeft","_char","_strRight","parseContent","spaces","constants","FormatMessagevue_type_script_lang_js_","linkifiedMessage","_this","formatTags","disabled","checkType","checkImageType","slashIndex","substring","isMedia","setImageSize","Image","onLoad","width","isTag","components_FormatMessagevue_type_script_lang_js_","FormatMessage_component","FormatMessage","typing_text","IS_TYPING","_require","RoomContentvue_type_script_lang_js_","clickOutside","isTyping","MESSAGE_DELETED","_this2","isMessageCheckmarkVisible","duration","extension","closeRoomMenu","RoomsList_RoomContentvue_type_script_lang_js_","RoomContent_component","RoomContent","filter_items","items","formatString","RoomsListvue_type_script_lang_js_","InfiniteLoading","filteredRooms","infiniteState","newVal","oldVal","ev","RoomsList_RoomsListvue_type_script_lang_js_","RoomsList_component","RoomsList","Roomvue_type_template_id_a0099b0e_scoped_true_render","ROOM_EMPTY","onContainerScroll","loadingMessages","MESSAGES_EMPTY","CONVERSATION_STARTED","loadMoreMessages","editedMessage","$refs","roomFooter","newMessages","emojisList","hideOptions","onMessageAdded","scrollToBottom","scrollMessagesCount","messageReply","resetMessage","filteredEmojis","selectEmoji","filteredUsersTag","selectUserTag","imageFile","videoFile","stopRecorder","recordedTime","toggleRecorder","resetMediaFile","onMediaLoad","mediaDimensions","TYPE_MESSAGE","composing","onChangeInput","_k","escapeTextarea","ctrlKey","shiftKey","altKey","metaKey","preventDefault","emojiOpened","addEmoji","launchFilePicker","staticStyle","onFileChange","isMessageEmpty","Roomvue_type_template_id_a0099b0e_scoped_true_staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_arrayLikeToArray","arr2","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","minLen","_nonIterableSpread","_toConsumableArray","EmojiPickervue_type_template_id_7840a3ed_scoped_true_render","clickEvent","emojiReaction","openEmoji","emojiPickerHeight","positionTop","emojiPickerTop","emojiPickerRight","emojiGroup","category","emojiName","EmojiPickervue_type_template_id_7840a3ed_scoped_true_staticRenderFns","main","main_default","EmojiPickervue_type_script_lang_js_","roomFooterRef","HTMLDivElement","positionRight","_ref","icon","setEmojiPickerPosition","innerWidth","mobileSize","roomFooterTop","pickerTopPosition","components_EmojiPickervue_type_script_lang_js_","EmojiPicker_component","RoomHeadervue_type_template_id_516a26e9_scoped_true_render","menuOpened","RoomHeadervue_type_template_id_516a26e9_scoped_true_staticRenderFns","RoomHeadervue_type_script_lang_js_","IS_ONLINE","lastChanged","LAST_SEEN","closeMenu","Room_RoomHeadervue_type_script_lang_js_","RoomHeader_component","RoomHeader","RoomMessageReplyvue_type_template_id_ba6c1600_scoped_true_render","$parent","RoomMessageReplyvue_type_template_id_ba6c1600_scoped_true_staticRenderFns","RoomMessageReplyvue_type_script_lang_js_require","_isImageFile","RoomMessageReplyvue_type_script_lang_js_","Room_RoomMessageReplyvue_type_script_lang_js_","RoomMessageReply_component","RoomMessageReply","RoomUsersTagvue_type_template_id_4e36c504_scoped_true_render","RoomUsersTagvue_type_template_id_4e36c504_scoped_true_staticRenderFns","RoomUsersTagvue_type_script_lang_js_","Room_RoomUsersTagvue_type_script_lang_js_","RoomUsersTag_component","RoomUsersTag","RoomEmojisvue_type_template_id_cb489922_scoped_true_render","RoomEmojisvue_type_template_id_cb489922_scoped_true_staticRenderFns","RoomEmojisvue_type_script_lang_js_","Room_RoomEmojisvue_type_script_lang_js_","RoomEmojis_component","RoomEmojis","Messagevue_type_template_id_38621a2e_scoped_true_render","newMessage","NEW_MESSAGES","messageOffset","isMessageHover","onHoverMessage","onLeaveMessage","roomUsers","replyMessage","imageHover","progressTime","hoverAudioProgress","edited","messageHover","hoverMessageId","optionsOpened","Messagevue_type_template_id_38621a2e_scoped_true_staticRenderFns","MessageReplyvue_type_template_id_0a737ce0_scoped_true_render","replyUsername","MessageReplyvue_type_template_id_0a737ce0_scoped_true_staticRenderFns","MessageReplyvue_type_script_lang_js_require","MessageReplyvue_type_script_lang_js_","replyUser","isImage","Message_MessageReplyvue_type_script_lang_js_","MessageReply_component","MessageReply","MessageImagevue_type_template_id_1ef3d9d6_scoped_true_render","imageResponsive","isImageLoading","imageBackground","MessageImagevue_type_template_id_1ef3d9d6_scoped_true_staticRenderFns","MessageImagevue_type_script_lang_js_require","MessageImagevue_type_script_lang_js_isImageFile","MessageImagevue_type_script_lang_js_","imageLoading","preview","checkImgLoad","maxHeight","imageRef","clientWidth","loaderTop","Message_MessageImagevue_type_script_lang_js_","MessageImage_component","MessageImage","MessageActionsvue_type_template_id_452af8e1_scoped_true_render","filteredMessageActions","isMessageActions","isMessageReactions","openOptions","menuOptionsTop","MessageActionsvue_type_template_id_452af8e1_scoped_true_staticRenderFns","MessageActionsvue_type_script_lang_js_require","MessageActionsvue_type_script_lang_js_isImageFile","MessageActionsvue_type_script_lang_js_","optionsClosing","onlyMe","closeEmoji","closeOptions","menuOptions","actionIcon","actionIconTop","optionsTopPosition","updateMessageHover","Message_MessageActionsvue_type_script_lang_js_","MessageActions_component","MessageActions","MessageReactionsvue_type_template_id_f0352b14_scoped_true_render","getEmojiByName","MessageReactionsvue_type_template_id_f0352b14_scoped_true_staticRenderFns","MessageReactionsvue_type_script_lang_js_","Message_MessageReactionsvue_type_script_lang_js_","MessageReactions_component","MessageReactions","AudioPlayervue_type_template_id_1d88d5fa_scoped_true_render","playback","progress","onUpdateProgress","playerUniqId","audioSource","AudioPlayervue_type_template_id_1d88d5fa_scoped_true_staticRenderFns","AudioControlvue_type_template_id_a99b7ce8_scoped_true_render","onMouseDown","percentage","isMouseDown","AudioControlvue_type_template_id_a99b7ce8_scoped_true_staticRenderFns","AudioControlvue_type_script_lang_js_","seekPos","calculateLineHeadPosition","onMouseMove","onMouseUp","element","progressWidth","leftPosition","Message_AudioControlvue_type_script_lang_js_","AudioControl_component","AudioControl","AudioPlayervue_type_script_lang_js_","isPlaying","convertTimeMMSS","playedTime","_uid","resetProgress","player","getElementById","updateProgressTime","onTimeUpdate","seconds","pause","play","currentTime","Message_AudioPlayervue_type_script_lang_js_","AudioPlayer_component","AudioPlayer","Messagevue_type_script_lang_js_require","_require2","Messagevue_type_script_lang_js_isImageFile","Messagevue_type_script_lang_js_isAudioFile","Messagevue_type_script_lang_js_","showDate","isVideo","isCheckmarkVisible","canEditMessage","messageId","Message_Messagevue_type_script_lang_js_","Message_component","Message","_classCallCheck","instance","_defineProperties","_createClass","protoProps","staticProps","lamejs","missing","_lamejs","Mp3Encoder","mp3_encoder_default","_default","bitRate","sampleRate","dataBuffer","encoder","arrayBuffer","maxSamples","samples","_convertBuffer","subarray","encodeBuffer","Blob","out","_floatTo16BitPCM","recorder_default","beforeRecording","pauseRecording","afterRecording","micFailed","encoderOptions","bufferSize","records","isPause","isRecording","volume","_duration","constraints","video","channelCount","echoCancellation","mediaDevices","getUserMedia","_micCaptured","_micError","lameEncoder","stream","getTracks","disconnect","processor","AudioContext","webkitAudioContext","createMediaStreamSource","createScriptProcessor","onaudioprocess","sample","inputBuffer","getChannelData","connect","destination","Roomvue_type_script_lang_js_require","Roomvue_type_script_lang_js_require2","Roomvue_type_script_lang_js_isImageFile","Roomvue_type_script_lang_js_isVideoFile","Roomvue_type_script_lang_js_","textareaAction","loadingMoreMessages","fileDialog","scrollIcon","keepKeyboardOpen","selectedUsersTag","textareaCursorPosition","cursorRangePosition","recorder","initRecorder","emojisTable","showNoMessages","showNoRoom","noRoomSelected","showMessagesStarted","focusTextarea","onRoomChanged","_this3","updateFooterList","resetFooterList","beforeDestroy","_this4","unwatch","scrollContainer","scrollTo","_this5","autoScrollOffset","getBottomScroll","bottomScroll","tagChar","selectionStart","beforeTag","notLetterNumber","updateEmojis","updateShowUsersTag","getCharPosition","cursorPosition","endPosition","_this6","emojisListKeys","matchingKeys","_this$getCharPosition","_this7","_this$getCharPosition2","mediaFile","clientHeight","_this8","disableMobileFocus","editFile","initRoom","preventKeyboardFromClosing","resetTextareaSize","_this9","focus","setSelectionRange","newContent","usersTag","_this10","_ref2","messageReaction","_this11","_this12","classList","behavior","resizeTextarea","getPropertyValue","_this13","_callee","fileURL","blobFile","typeIndex","_context","localUrl","recording","_this14","_unused","_this15","_unused2","_ref3","Room_Roomvue_type_script_lang_js_","Room_component","Room","locales","defaultThemeStyles","light","general","backgroundInput","colorPlaceholder","colorCaret","colorSpinner","borderStyle","backgroundScrollIcon","container","border","borderRadius","boxShadow","background","colorRoomName","colorRoomInfo","footer","borderStyleInput","borderInputSelected","backgroundReply","backgroundTagActive","sidemenu","backgroundHover","backgroundActive","colorActive","borderColorSearch","backgroundMe","colorStarted","backgroundDeleted","colorDeleted","colorUsername","colorTimestamp","backgroundDate","colorDate","backgroundSystem","colorSystem","backgroundMedia","colorReplyUsername","colorReply","colorTag","backgroundImage","colorNewMessages","backgroundScrollCounter","colorScrollCounter","backgroundReaction","borderStyleReaction","backgroundReactionHover","borderStyleReactionHover","colorReactionCounter","backgroundReactionMe","borderStyleReactionMe","backgroundReactionHoverMe","borderStyleReactionHoverMe","colorReactionCounterMe","backgroundAudioRecord","backgroundAudioLine","backgroundAudioProgress","backgroundAudioProgressSelector","markdown","colorMulti","colorMessage","colorStateOnline","colorStateOffline","backgroundCounterBadge","colorCounterBadge","icons","closeImage","closeOutline","sendDisabled","checkmarkSeen","dropdownMessage","dropdownMessageBackground","dropdownRoom","dropdownScroll","audioPlay","audioPause","audioCancel","audioConfirm","dark","cssThemeVars","ChatWindowvue_type_script_lang_js_require","ChatWindowvue_type_script_lang_js_","theme","styles","responsiveBreakpoint","defaultStyles","customStyles","aVal","bVal","$set","created","updateResponsive","isTrusted","opened","_ref4","ChatWindow_ChatWindowvue_type_script_lang_js_","ChatWindow_component","src_ChatWindow","0","nativeSlice","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","LameGlobalFlags","class_id","in_samplerate","scale_left","scale_right","decode_only","quality","free_format","write_id3tag_automatic","compression_ratio","original","emphasis","VBR_min_bitrate_kbps","VBR_max_bitrate_kbps","VBR_hard_min","lowpassfreq","highpassfreq","lowpasswidth","highpasswidth","ATHonly","ATHshort","noATH","athaa_type","useTemporal","tune","tune_value_a","encoder_delay","encoder_padding","frameNum","lame_allocated_gfp","III_psy_xmin","iii_psy_xmin","VBRQuantize","_tk","psfb21","psfb12","ScaleFac","QuantizePVT","tak","POW20","Q_MAX2","Q_MAX","pow20","_rv","IPOW20","ipow20","DBL_EPSILON","IXMAX_VAL","PRECALC_SIZE","NSATHSCALE","LARGE_BITS","nr_of_sfb_block","pretab","sfBandIndex","pow43","adj43","ATHmdct","compute_ath","ATH_l","ATH_psfb21","ATH_s","ATH_psfb12","samp_freq","ATH_f","StartLine","iteration_init","iteration_init_init","alto","treble","sfb21","huffman_init","longfact","shortfact","tbits","MAX_BITS_PER_GRANULE","fac","move_bits","athAdjust","athFloor","pxmin","gsfb","pxminPos","ath_over","enable_athaa_fix","psy_lmax","xmin","rh1","rh2","en0","xa","xb","max_nonzero","max_nonzero_coeff","sfb_smin","psymax","tmpATH","calc_noise_core","startline","ix01","calc_noise","distort","prev_noise","distortPos","l3_xminPos","over","over_noise_db","tot_noise_db","scalefacPos","tmp","usefullsize","sl","set_pinfo","sfb2","en1","ifqstep","xfsf","sfb_lmax","bw","LAMEsfb","en_s","xfsf_s","thr_s","LAMEsfb_s","LAMEqss","LAMEmainbits","LAMEsfbits","NsPsy","MAX_HEADER_LEN","Header","Class_ID","fill_buffer_resample_init","mfbuf","MFSIZE","channels_in","resample_ratio","mf_samples_to_encode","VBR_min_bitrate","VBR_max_bitrate","samplerate_index","lowpass1","lowpass2","highpass1","highpass2","noise_shaping_amp","noise_shaping_stop","use_best_huffman","full_outer_loop","tag_spec","OldValue","CurrentStep","bv_scf","pseudohalf","sfb21_extra","inbuf_old","blackfilt","BPC","itime","sb_sample","amp_filter","numlines_s_num1","numlines_l_num1","ms_ratio_s_old","ms_ratio_l_old","nogap_total","nogap_current","AudiophileGain","in_buffer_nsamples","in_buffer_0","in_buffer_1","Bits","subdv_table","quantize_lines_xrpow_01","istep","xrPos","ixPos","compareval0","quantize_lines_xrpow","x0","x3","rx0","rx1","rx2","rx3","quantize_xrpow","xp","pi","codInfo","prevNoise","prev_data_use","accumulate","accumulate01","xpPos","iData","iDataPos","acc_iData","acc_iDataPos","acc_xp","acc_xpPos","ix_max","max1","max2","count_bit_ESC","t1","t2","count_bit_noESC","hlen1","count_bit_noESC_from2","count_bit_noESC_from3","sum3","hlen2","hlen3","huf_tbl_noESC","choose_table","choice2","choice","recalc_divide_init","r01_bits","r01_div","r0_tbl","r1_tbl","bigv","r0","a1","r0bits","bi","r0t","r1","a2","r1t","recalc_divide_sub","cod_info2","r2","count1bits","r2t","noquant_count_bits","best_huffman_divide","count_bits","xrpow_max","gain","roundfac","slen1_n","slen2_n","scfsi_calc","all_scalefactors_not_negative","best_scalefac_store","recalc","scale_bitcount","scale_bitcount_lsf","scale_short","scale_mixed","scale_long","max_slen1","max_slen2","max_range_sfac_tab","table_number","row_in_table","nr_sfb","max_sfac","partition_table","slen3","slen4","log2tab","bv_index","scfb_anz","Quantize","VBRTag","GetAudio","parse2","mpg2","Parse","ver2","id32","pre2","MPGLib","ID3Tag","_bits","channels","samplerate","gaud","qu","id3","enc","lame_init","retcode","lame_init_params","_sz","lame_encode_buffer","lame_encode_flush","WavHeader","dataOffset","dataLen","fourccToInt","fourcc","RIFF","WAVE","fmt_","readHeader","dataView","fmtLen","tk","init_xrpow_core","psfb21_analogsilence","ath21","block","ath12","BinSearchDirection","bin_search_StepSize","desired_rate","flagGoneOver","Direction","BINSEARCH_NONE","BINSEARCH_DOWN","BINSEARCH_UP","loop_break","penalties","get_klemm_noise","klemm_noise","quant_compare","best","calc","better","amp_scalefac_bands","bRefine","ifqstep34","inc_scalefac_scale","inc_subblock_gain","amp","balance_noise","ixwork","trancate_smallspectrums","work","allowedNoise","trancateThreshold","nsame","cod_info_w","save_xrpow","best_noise_info","best_part2_3_length","bEndOfSearch","best_ggain_pass1","age","search_limit","noise_info","maxggain","huff_bits","VBR_encode_granule","min_bits","dbits","bst_cod_info","bst_xrpow","Max_bits","real_bits","this_bits","get_framebits","frameBits","VBR_old_prepare","bands","analog_silence","mxb","bitpressure_strategy","VBR_new_prepare","maximum_framebits","calc_target_bits","analog_silence_bits","max_frame_bits","res_factor","totbits","LAME_MAXALBUMART","mpglib","LowPassHighPass","lowerlimit","BandPass","bitrate","lPass","lowpass","_p","_qu","_id3","_mpglib","LAME_ID","lame_init_old","filter_coef","optimum_samplefreq","input_samplefreq","suggested_samplefreq","SmpFrqIndex","sample_freq","gpf","FindNearestBitrate","bRate","BitrateIndex","optimum_bandwidth","lh","freq_map","table_index","lame_init_params_ppflt","lowpass_band","highpass_band","minband","maxband","fc1","fc2","lame_init_qval","lame_init_bitstream","id3tag_write_v2","InitVbrTag","update_inbuffer_size","nsamples","calcNeeded","mf_needed","lame_encode_buffer_sample","buffer_l","buffer_r","mp3out","mp3size","in_buffer","in_bufferPos","in_buffer_ptr","n_in","n_out","inOut","InOut","fill_buffer","buf_size","lame_encode_frame","NumUsed","num_used","gcd","blackman","fcn","wcn","bkwn","sin","fill_buffer_resample","outbuf","outbufPos","desired_len","bpc","intratio","filter_l","BLACKSIZE","time0","joff","xvalue","n_shift","numUsed","full_bitrate_table","lower_range","lower_range_kbps","upper_range","upper_range_kbps","map2MP3Frequency","linear_int","hip_decode_exit","hip_decode_init","cmp","LAME_DEFAULT_QUALITY","VBRNewIterationLoop","VBROldIterationLoop","vbrmode","ABRIterationLoop","NSATTACKTHRE","NSATTACKTHRE_S","mp3buffer","mp3bufferPos","mp3buffer_size","mp3buffer_size_remaining","end_padding","frames_left","imp3","samples_to_encode","bunch","frame_num","id3tag_write_v1","FRAMES_FLAG","BYTES_FLAG","TOC_FLAG","VBR_SCALE_FLAG","NUMTOCENTRIES","MAXFRAMESIZE","VBRHEADERSIZE","LAMEHEADERSIZE","XING_BITRATE1","XING_BITRATE2","XING_BITRATE25","ISO_8859_1","VBRTag0","VBRTag1","crc16Lookup","addVbr","xingSeekTable","act","indx","seek_point","extractInteger","createInteger","createShort","isVbrTag","equals","shiftInBitsValue","setLameTagFrameHeader","bbyte","abyte","crcUpdateLookup","putLameVBR","musicLength","streamBuffer","streamBufferPos","revMethod","abrBitrate","bytesWritten","encDelay","encPadding","revision","vbrTypeTranslator","peakSignalAmplitude","radioReplayGain","audiophileReplayGain","noiseShaping","stereoMode","nonOptimal","sourceFreq","misc","musicCRC","expNPsyTune","safeJoint","noGapMore","noGapPrevious","noGapCount","noGapCurr","athType","skipId3v2","fpStream","seek","id3v2TagSize","id3v2Header","readFully","getVbrTag","pTagData","VBRTagData","hId","hSrIndex","hMode","hBitrate","samprate","head_flags","frames","toc","vbrScale","headersize","kbps_header","totalFrameSize","headerSize","getLameTagFrame","streamIndex","streamSize","putVbrTag","meanBits","clone_int","clone_float","other","enwindow","NS","win","tantab_l","cx","ca","cs","order","window_subband","x1Pos","wp","mdct_short","inout","inoutPos","tc0","tc1","tc2","ts0","ts1","ts2","mdct_long","outPos","_in","ct","st","tc3","tc4","ts5","ts6","ts7","ts8","ts3","ts4","tc5","tc6","tc7","tc8","w0","w1","wk","wkPos","mdct_enc","mdct_encPos","samp","sampPos","band0","band1","bu","bd","arrL","arrS","arr21","arr12"],"mappings":"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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhE,OAAgB,CACZ,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhE,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI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GALclB,EAAOnD,YACXmD,EAAOzD,QACLyD,EAAO3C,UACV2C,EAAOH,OAEN,EAAQ,SAGtB,SAASyqB,IAER,IAAI+tH,EAAW,EACb,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBAAuB,mBAEvB,mBACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,iBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBAAuB,mBAEvB,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,kBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBAAuB,mBAEvB,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBAAuB,mBAEvB,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBAAuB,mBAEvB,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBAAuB,mBAEvB,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,iBACA,kBAAuB,mBAEvB,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,oBACA,mBACA,oBACA,oBACA,mBACA,mBACA,mBAEA,mBACA,mBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,kBAAuB,mBAEvB,kBACA,iBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,mBACA,oBACA,oBACA,oBACA,iBACA,mBACA,kBAAuB,kBAEvB,kBACA,kBACA,oBACA,kBACA,kBACA,mBACA,kBACA,mBACA,oBACA,iBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBAAuB,kBAEvB,kBACA,kBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACA,kBACA,iBAAuB,mBAEvB,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,kBAAuB,mBAEvB,kBACA,iBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,kBACA,mBAAuB,mBAEvB,iBACA,kBACA,oBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,kBACA,mBAAuB,kBAEvB,WAAgBh6I,EAAKI,MAAQ,GAAM,QACnC,WAAgBJ,EAAKI,MAAQ,GAAM,QACnC,WAAeJ,EAAKI,MAAQ,GAAM,QAClC,WAAeJ,EAAKI,MAAQ,GAAM,QAClC,UAAcJ,EAAKI,MAAQ,GAAM,QACjC,UAAcJ,EAAKI,MAAQ,GAAM,QACjC,UAAcJ,EAAKI,MAAQ,GAAM,QACjC,SAAaJ,EAAKI,MAAQ,GAAM,QAEhC,mBAA2B,mBAC3B,kBAAyB,SAAa,QACtC,mBAA0B,SAAa,SACtC,SAAa,SAGZ65I,EAAK,GACL12F,EAAK,GAEL22F,EAAM,CACN,CACC,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBAEA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,sBAEF,CACC,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,q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","file":"js/chunk-591a36e5.19aee495.js","sourcesContent":["function new_byte(count) {\n return new Int8Array(count);\n}\n\nfunction new_short(count) {\n return new Int16Array(count);\n}\n\nfunction new_int(count) {\n return new Int32Array(count);\n}\n\nfunction new_float(count) {\n return new Float32Array(count);\n}\n\nfunction new_double(count) {\n return new Float64Array(count);\n}\n\nfunction new_float_n(args) {\n if (args.length == 1) {\n return new_float(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_float_n(args));\n }\n return A;\n}\nfunction new_int_n(args) {\n if (args.length == 1) {\n return new_int(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_int_n(args));\n }\n return A;\n}\n\nfunction new_short_n(args) {\n if (args.length == 1) {\n return new_short(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_short_n(args));\n }\n return A;\n}\n\nfunction new_array_n(args) {\n if (args.length == 1) {\n return new Array(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_array_n(args));\n }\n return A;\n}\n\n\nvar Arrays = {};\n\nArrays.fill = function (a, fromIndex, toIndex, val) {\n if (arguments.length == 2) {\n for (var i = 0; i < a.length; i++) {\n a[i] = arguments[1];\n }\n } else {\n for (var i = fromIndex; i < toIndex; i++) {\n a[i] = val;\n }\n }\n};\n\nvar System = {};\n\nSystem.arraycopy = function (src, srcPos, dest, destPos, length) {\n var srcEnd = srcPos + length;\n while (srcPos < srcEnd)\n dest[destPos++] = src[srcPos++];\n};\n\n\nvar Util = {};\nUtil.SQRT2 = 1.41421356237309504880;\nUtil.FAST_LOG10 = function (x) {\n return Math.log10(x);\n};\n\nUtil.FAST_LOG10_X = function (x, y) {\n return Math.log10(x) * y;\n};\n\nfunction ShortBlock(ordinal) {\n this.ordinal = ordinal;\n}\n/**\n * LAME may use them, even different block types for L/R.\n */\nShortBlock.short_block_allowed = new ShortBlock(0);\n/**\n * LAME may use them, but always same block types in L/R.\n */\nShortBlock.short_block_coupled = new ShortBlock(1);\n/**\n * LAME will not use short blocks, long blocks only.\n */\nShortBlock.short_block_dispensed = new ShortBlock(2);\n/**\n * LAME will not use long blocks, short blocks only.\n */\nShortBlock.short_block_forced = new ShortBlock(3);\n\nvar Float = {};\nFloat.MAX_VALUE = 3.4028235e+38;\n\nfunction VbrMode(ordinal) {\n this.ordinal = ordinal;\n}\nVbrMode.vbr_off = new VbrMode(0);\nVbrMode.vbr_mt = new VbrMode(1);\nVbrMode.vbr_rh = new VbrMode(2);\nVbrMode.vbr_abr = new VbrMode(3);\nVbrMode.vbr_mtrh = new VbrMode(4);\nVbrMode.vbr_default = VbrMode.vbr_mtrh;\n\nvar assert = function (x) {\n //console.assert(x);\n};\n\nmodule.exports = {\n \"System\": System,\n \"VbrMode\": VbrMode,\n \"Float\": Float,\n \"ShortBlock\": ShortBlock,\n \"Util\": Util,\n \"Arrays\": Arrays,\n \"new_array_n\": new_array_n,\n \"new_byte\": new_byte,\n \"new_double\": new_double,\n \"new_float\": new_float,\n \"new_float_n\": new_float_n,\n \"new_int\": new_int,\n \"new_int_n\": new_int_n,\n \"new_short\": new_short,\n \"new_short_n\": new_short_n,\n \"assert\": assert\n};\n","var common = require('./common.js');\nvar new_float = common.new_float;\nvar new_int = common.new_int;\nvar assert = common.assert;\n\nfunction CalcNoiseData() {\n this.global_gain = 0;\n this.sfb_count1 = 0;\n this.step = new_int(39);\n this.noise = new_float(39);\n this.noise_log = new_float(39);\n}\n\nmodule.exports = CalcNoiseData;\n","//package mp3;\n\nfunction VBRSeekInfo() {\n /**\n * What we have seen so far.\n */\n this.sum = 0;\n /**\n * How many frames we have seen in this chunk.\n */\n this.seen = 0;\n /**\n * How many frames we want to collect into one chunk.\n */\n this.want = 0;\n /**\n * Actual position in our bag.\n */\n this.pos = 0;\n /**\n * Size of our bag.\n */\n this.size = 0;\n /**\n * Pointer to our bag.\n */\n this.bag = null;\n this.nVbrNumFrames = 0;\n this.nBytesWritten = 0;\n /* VBR tag data */\n this.TotalFrameSize = 0;\n}\n\nmodule.exports = VBRSeekInfo;\n","/*\n * psymodel.c\n *\n * Copyright (c) 1999-2000 Mark Taylor\n * Copyright (c) 2001-2002 Naoki Shibata\n * Copyright (c) 2000-2003 Takehiro Tominaga\n * Copyright (c) 2000-2008 Robert Hegemann\n * Copyright (c) 2000-2005 Gabriel Bouvigne\n * Copyright (c) 2000-2005 Alexander Leidinger\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: PsyModel.java,v 1.27 2011/05/24 20:48:06 kenchis Exp $ */\n\n\n/*\n PSYCHO ACOUSTICS\n\n\n This routine computes the psycho acoustics, delayed by one granule.\n\n Input: buffer of PCM data (1024 samples).\n\n This window should be centered over the 576 sample granule window.\n The routine will compute the psycho acoustics for\n this granule, but return the psycho acoustics computed\n for the *previous* granule. This is because the block\n type of the previous granule can only be determined\n after we have computed the psycho acoustics for the following\n granule.\n\n Output: maskings and energies for each scalefactor band.\n block type, PE, and some correlation measures.\n The PE is used by CBR modes to determine if extra bits\n from the bit reservoir should be used. The correlation\n measures are used to determine mid/side or regular stereo.\n */\n/*\n Notation:\n\n barks: a non-linear frequency scale. Mapping from frequency to\n barks is given by freq2bark()\n\n scalefactor bands: The spectrum (frequencies) are broken into\n SBMAX \"scalefactor bands\". Thes bands\n are determined by the MPEG ISO spec. In\n the noise shaping/quantization code, we allocate\n bits among the partition bands to achieve the\n best possible quality\n\n partition bands: The spectrum is also broken into about\n 64 \"partition bands\". Each partition\n band is about .34 barks wide. There are about 2-5\n partition bands for each scalefactor band.\n\n LAME computes all psycho acoustic information for each partition\n band. Then at the end of the computations, this information\n is mapped to scalefactor bands. The energy in each scalefactor\n band is taken as the sum of the energy in all partition bands\n which overlap the scalefactor band. The maskings can be computed\n in the same way (and thus represent the average masking in that band)\n or by taking the minmum value multiplied by the number of\n partition bands used (which represents a minimum masking in that band).\n */\n/*\n The general outline is as follows:\n\n 1. compute the energy in each partition band\n 2. compute the tonality in each partition band\n 3. compute the strength of each partion band \"masker\"\n 4. compute the masking (via the spreading function applied to each masker)\n 5. Modifications for mid/side masking.\n\n Each partition band is considiered a \"masker\". The strength\n of the i'th masker in band j is given by:\n\n s3(bark(i)-bark(j))*strength(i)\n\n The strength of the masker is a function of the energy and tonality.\n The more tonal, the less masking. LAME uses a simple linear formula\n (controlled by NMT and TMN) which says the strength is given by the\n energy divided by a linear function of the tonality.\n */\n/*\n s3() is the \"spreading function\". It is given by a formula\n determined via listening tests.\n\n The total masking in the j'th partition band is the sum over\n all maskings i. It is thus given by the convolution of\n the strength with s3(), the \"spreading function.\"\n\n masking(j) = sum_over_i s3(i-j)*strength(i) = s3 o strength\n\n where \"o\" = convolution operator. s3 is given by a formula determined\n via listening tests. It is normalized so that s3 o 1 = 1.\n\n Note: instead of a simple convolution, LAME also has the\n option of using \"additive masking\"\n\n The most critical part is step 2, computing the tonality of each\n partition band. LAME has two tonality estimators. The first\n is based on the ISO spec, and measures how predictiable the\n signal is over time. The more predictable, the more tonal.\n The second measure is based on looking at the spectrum of\n a single granule. The more peaky the spectrum, the more\n tonal. By most indications, the latter approach is better.\n\n Finally, in step 5, the maskings for the mid and side\n channel are possibly increased. Under certain circumstances,\n noise in the mid & side channels is assumed to also\n be masked by strong maskers in the L or R channels.\n\n\n Other data computed by the psy-model:\n\n ms_ratio side-channel / mid-channel masking ratio (for previous granule)\n ms_ratio_next side-channel / mid-channel masking ratio for this granule\n\n percep_entropy[2] L and R values (prev granule) of PE - A measure of how\n much pre-echo is in the previous granule\n percep_entropy_MS[2] mid and side channel values (prev granule) of percep_entropy\n energy[4] L,R,M,S energy in each channel, prev granule\n blocktype_d[2] block type to use for previous granule\n */\n//package mp3;\n\n//import java.util.Arrays;\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar FFT = require(\"./FFT.js\");\nvar Encoder = require(\"./Encoder.js\");\n\nfunction PsyModel() {\n\n var fft = new FFT();\n\n var LOG10 = 2.30258509299404568402;\n\n var rpelev = 2;\n var rpelev2 = 16;\n var rpelev_s = 2;\n var rpelev2_s = 16;\n\n /* size of each partition band, in barks: */\n var DELBARK = .34;\n\n /* tuned for output level (sensitive to energy scale) */\n var VO_SCALE = (1. / (14752 * 14752) / (Encoder.BLKSIZE / 2));\n\n var temporalmask_sustain_sec = 0.01;\n\n var NS_PREECHO_ATT0 = 0.8;\n var NS_PREECHO_ATT1 = 0.6;\n var NS_PREECHO_ATT2 = 0.3;\n\n var NS_MSFIX = 3.5;\n\n var NSATTACKTHRE = 4.4;\n var NSATTACKTHRE_S = 25;\n\n var NSFIRLEN = 21;\n\n /* size of each partition band, in barks: */\n var LN_TO_LOG10 = 0.2302585093;\n\n function NON_LINEAR_SCALE_ENERGY(x) {\n return x;\n }\n\n /**\n *
\n     *       L3psycho_anal.  Compute psycho acoustics.\n     *\n     *       Data returned to the calling program must be delayed by one\n     *       granule.\n     *\n     *       This is done in two places.\n     *       If we do not need to know the blocktype, the copying\n     *       can be done here at the top of the program: we copy the data for\n     *       the last granule (computed during the last call) before it is\n     *       overwritten with the new data.  It looks like this:\n     *\n     *       0. static psymodel_data\n     *       1. calling_program_data = psymodel_data\n     *       2. compute psymodel_data\n     *\n     *       For data which needs to know the blocktype, the copying must be\n     *       done at the end of this loop, and the old values must be saved:\n     *\n     *       0. static psymodel_data_old\n     *       1. compute psymodel_data\n     *       2. compute possible block type of this granule\n     *       3. compute final block type of previous granule based on #2.\n     *       4. calling_program_data = psymodel_data_old\n     *       5. psymodel_data_old = psymodel_data\n     *     psycho_loudness_approx\n     *       jd - 2001 mar 12\n     *    in:  energy   - BLKSIZE/2 elements of frequency magnitudes ^ 2\n     *         gfp      - uses out_samplerate, ATHtype (also needed for ATHformula)\n     *    returns: loudness^2 approximation, a positive value roughly tuned for a value\n     *             of 1.0 for signals near clipping.\n     *    notes:   When calibrated, feeding this function binary white noise at sample\n     *             values +32767 or -32768 should return values that approach 3.\n     *             ATHformula is used to approximate an equal loudness curve.\n     *    future:  Data indicates that the shape of the equal loudness curve varies\n     *             with intensity.  This function might be improved by using an equal\n     *             loudness curve shaped for typical playback levels (instead of the\n     *             ATH, that is shaped for the threshold).  A flexible realization might\n     *             simply bend the existing ATH curve to achieve the desired shape.\n     *             However, the potential gain may not be enough to justify an effort.\n     * 
\n */\n function psycho_loudness_approx(energy, gfc) {\n var loudness_power = 0.0;\n /* apply weights to power in freq. bands */\n for (var i = 0; i < Encoder.BLKSIZE / 2; ++i)\n loudness_power += energy[i] * gfc.ATH.eql_w[i];\n loudness_power *= VO_SCALE;\n\n return loudness_power;\n }\n\n function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n }\n /* FFT data for mid and side channel is derived from L & R */\n else if (chn == 2) {\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n for (var b = 2; b >= 0; --b) {\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][b][j];\n var r = wsamp_s[wsamp_sPos + 1][b][j];\n wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n }\n }\n\n /*********************************************************************\n * compute energies\n *********************************************************************/\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 - j];\n var im = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n for (var b = 2; b >= 0; --b) {\n fftenergy_s[b][0] = (wsamp_s[wsamp_sPos + 0])[b][0];\n fftenergy_s[b][0] *= fftenergy_s[b][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s\n / 2 - j];\n var im = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s\n / 2 + j];\n fftenergy_s[b][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n }\n /* total energy */\n {\n var totalenergy = 0.0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n\n gfc.tot_ener[chn] = totalenergy;\n }\n\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n\n /*********************************************************************\n * compute loudness approximation (used for ATH auto-level adjustment)\n *********************************************************************/\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n // no loudness for mid/side ch\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n\n /* mask_add optimization */\n /* init the limit values used to avoid computing log in mask_add when it is not necessary */\n\n /**\n *
\n     *  For example, with i = 10*log10(m2/m1)/10*16         (= log10(m2/m1)*16)\n     *\n     * abs(i)>8 is equivalent (as i is an integer) to\n     * abs(i)>=9\n     * i>=9 || i<=-9\n     * equivalent to (as i is the biggest integer smaller than log10(m2/m1)*16\n     * or the smallest integer bigger than log10(m2/m1)*16 depending on the sign of log10(m2/m1)*16)\n     * log10(m2/m1)>=9/16 || log10(m2/m1)<=-9/16\n     * exp10 is strictly increasing thus this is equivalent to\n     * m2/m1 >= 10^(9/16) || m2/m1<=10^(-9/16) which are comparisons to constants\n     * 
\n */\n\n /**\n * as in if(i>8)\n */\n var I1LIMIT = 8;\n /**\n * as in if(i>24) . changed 23\n */\n var I2LIMIT = 23;\n /**\n * as in if(m<15)\n */\n var MLIMIT = 15;\n\n var ma_max_i1;\n var ma_max_i2;\n var ma_max_m;\n\n /**\n * This is the masking table:
\n * According to tonality, values are going from 0dB (TMN) to 9.3dB (NMT).
\n * After additive masking computation, 8dB are added, so final values are\n * going from 8dB to 17.3dB\n *\n * pow(10, -0.0..-0.6)\n */\n var tab = [1.0, 0.79433, 0.63096, 0.63096,\n 0.63096, 0.63096, 0.63096, 0.25119, 0.11749];\n\n function init_mask_add_max_values() {\n ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16.0);\n ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16.0);\n ma_max_m = Math.pow(10, (MLIMIT) / 10.0);\n }\n\n var table1 = [3.3246 * 3.3246,\n 3.23837 * 3.23837, 3.15437 * 3.15437, 3.00412 * 3.00412,\n 2.86103 * 2.86103, 2.65407 * 2.65407, 2.46209 * 2.46209,\n 2.284 * 2.284, 2.11879 * 2.11879, 1.96552 * 1.96552,\n 1.82335 * 1.82335, 1.69146 * 1.69146, 1.56911 * 1.56911,\n 1.46658 * 1.46658, 1.37074 * 1.37074, 1.31036 * 1.31036,\n 1.25264 * 1.25264, 1.20648 * 1.20648, 1.16203 * 1.16203,\n 1.12765 * 1.12765, 1.09428 * 1.09428, 1.0659 * 1.0659,\n 1.03826 * 1.03826, 1.01895 * 1.01895, 1];\n\n var table2 = [1.33352 * 1.33352,\n 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,\n 1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,\n 1.22321 * 1.22321, 1.14758 * 1.14758, 1];\n\n var table3 = [2.35364 * 2.35364,\n 2.29259 * 2.29259, 2.23313 * 2.23313, 2.12675 * 2.12675,\n 2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303,\n 1.61695 * 1.61695, 1.49999 * 1.49999, 1.39148 * 1.39148,\n 1.29083 * 1.29083, 1.19746 * 1.19746, 1.11084 * 1.11084,\n 1.03826 * 1.03826];\n\n /**\n * addition of simultaneous masking Naoki Shibata 2000/7\n */\n function mask_add(m1, m2, kk, b, gfc, shortblock) {\n var ratio;\n\n if (m2 > m1) {\n if (m2 < (m1 * ma_max_i2))\n ratio = m2 / m1;\n else\n return (m1 + m2);\n } else {\n if (m1 >= (m2 * ma_max_i2))\n return (m1 + m2);\n ratio = m1 / m2;\n }\n\n /* Should always be true, just checking */\n assert(m1 >= 0);\n assert(m2 >= 0);\n\n m1 += m2;\n //if (((long)(b + 3) & 0xffffffff) <= 3 + 3) {\n if ((b + 3) <= 3 + 3) {\n /* approximately, 1 bark = 3 partitions */\n /* 65% of the cases */\n /* originally 'if(i > 8)' */\n if (ratio >= ma_max_i1) {\n /* 43% of the total */\n return m1;\n }\n\n /* 22% of the total */\n var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));\n return m1 * table2[i];\n }\n\n /**\n *
\n         * m<15 equ log10((m1+m2)/gfc.ATH.cb[k])<1.5\n         * equ (m1+m2)/gfc.ATH.cb[k]<10^1.5\n         * equ (m1+m2)<10^1.5 * gfc.ATH.cb[k]\n         * 
\n */\n var i = 0 | Util.FAST_LOG10_X(ratio, 16.0);\n if (shortblock != 0) {\n m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;\n } else {\n m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;\n }\n assert(m2 >= 0);\n if (m1 < ma_max_m * m2) {\n /* 3% of the total */\n /* Originally if (m > 0) { */\n if (m1 > m2) {\n var f, r;\n\n f = 1.0;\n if (i <= 13)\n f = table3[i];\n\n r = Util.FAST_LOG10_X(m1 / m2, 10.0 / 15.0);\n return m1 * ((table1[i] - f) * r + f);\n }\n\n if (i > 13)\n return m1;\n\n return m1 * table3[i];\n }\n\n /* 10% of total */\n return m1 * table1[i];\n }\n\n var table2_ = [1.33352 * 1.33352,\n 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,\n 1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,\n 1.22321 * 1.22321, 1.14758 * 1.14758, 1];\n\n /**\n * addition of simultaneous masking Naoki Shibata 2000/7\n */\n function vbrpsy_mask_add(m1, m2, b) {\n var ratio;\n\n if (m1 < 0) {\n m1 = 0;\n }\n if (m2 < 0) {\n m2 = 0;\n }\n if (m1 <= 0) {\n return m2;\n }\n if (m2 <= 0) {\n return m1;\n }\n if (m2 > m1) {\n ratio = m2 / m1;\n } else {\n ratio = m1 / m2;\n }\n if (-2 <= b && b <= 2) {\n /* approximately, 1 bark = 3 partitions */\n /* originally 'if(i > 8)' */\n if (ratio >= ma_max_i1) {\n return m1 + m2;\n } else {\n var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));\n return (m1 + m2) * table2_[i];\n }\n }\n if (ratio < ma_max_i2) {\n return m1 + m2;\n }\n if (m1 < m2) {\n m1 = m2;\n }\n return m1;\n }\n\n /**\n * compute interchannel masking effects\n */\n function calc_interchannel_masking(gfp, ratio) {\n var gfc = gfp.internal_flags;\n if (gfc.channels_out > 1) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var l = gfc.thm[0].l[sb];\n var r = gfc.thm[1].l[sb];\n gfc.thm[0].l[sb] += r * ratio;\n gfc.thm[1].l[sb] += l * ratio;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var l = gfc.thm[0].s[sb][sblock];\n var r = gfc.thm[1].s[sb][sblock];\n gfc.thm[0].s[sb][sblock] += r * ratio;\n gfc.thm[1].s[sb][sblock] += l * ratio;\n }\n }\n }\n }\n\n /**\n * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n */\n function msfix1(gfc) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n /* use this fix if L & R masking differs by 2db or less */\n /* if db = 10*log10(x2/x1) < 2 */\n /* if (x2 < 1.58*x1) { */\n if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb]\n || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb])\n continue;\n var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];\n var rmid = Math.max(gfc.thm[2].l[sb],\n Math.min(gfc.thm[3].l[sb], mld));\n\n mld = gfc.mld_l[sb] * gfc.en[2].l[sb];\n var rside = Math.max(gfc.thm[3].l[sb],\n Math.min(gfc.thm[2].l[sb], mld));\n gfc.thm[2].l[sb] = rmid;\n gfc.thm[3].l[sb] = rside;\n }\n\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock]\n || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock])\n continue;\n var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];\n var rmid = Math.max(gfc.thm[2].s[sb][sblock],\n Math.min(gfc.thm[3].s[sb][sblock], mld));\n\n mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];\n var rside = Math.max(gfc.thm[3].s[sb][sblock],\n Math.min(gfc.thm[2].s[sb][sblock], mld));\n\n gfc.thm[2].s[sb][sblock] = rmid;\n gfc.thm[3].s[sb][sblock] = rside;\n }\n }\n }\n\n /**\n * Adjust M/S maskings if user set \"msfix\"\n *\n * Naoki Shibata 2000\n */\n function ns_msfix(gfc, msfix, athadjust) {\n var msfix2 = msfix;\n var athlower = Math.pow(10, athadjust);\n\n msfix *= 2.0;\n msfix2 *= 2.0;\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var thmLR, thmM, thmS, ath;\n ath = (gfc.ATH.cb_l[gfc.bm_l[sb]]) * athlower;\n thmLR = Math.min(Math.max(gfc.thm[0].l[sb], ath),\n Math.max(gfc.thm[1].l[sb], ath));\n thmM = Math.max(gfc.thm[2].l[sb], ath);\n thmS = Math.max(gfc.thm[3].l[sb], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix2 / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n assert(thmM + thmS > 0);\n }\n gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);\n gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);\n }\n\n athlower *= ( Encoder.BLKSIZE_s / Encoder.BLKSIZE);\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmLR, thmM, thmS, ath;\n ath = (gfc.ATH.cb_s[gfc.bm_s[sb]]) * athlower;\n thmLR = Math.min(Math.max(gfc.thm[0].s[sb][sblock], ath),\n Math.max(gfc.thm[1].s[sb][sblock], ath));\n thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);\n thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);\n\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n assert(thmM + thmS > 0);\n }\n gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock],\n thmM);\n gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock],\n thmS);\n }\n }\n }\n\n /**\n * short block threshold calculation (part 2)\n *\n * partition band bo_s[sfb] is at the transition from scalefactor band sfb\n * to the next one sfb+1; enn and thmm have to be split between them\n */\n function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {\n var sb, b;\n var enn = 0.0;\n var thmm = 0.0;\n for (sb = b = 0; sb < Encoder.SBMAX_s; ++b, ++sb) {\n var bo_s_sb = gfc.bo_s[sb];\n var npart_s = gfc.npart_s;\n var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;\n while (b < b_lim) {\n assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n assert(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].s[sb][sblock] = enn;\n gfc.thm[chn].s[sb][sblock] = thmm;\n\n if (b >= npart_s) {\n ++sb;\n break;\n }\n assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n assert(thr[b] >= 0);\n {\n /* at transition sfb . sfb+1 */\n var w_curr = gfc.PSY.bo_s_weight[sb];\n var w_next = 1.0 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].s[sb][sblock] += enn;\n gfc.thm[chn].s[sb][sblock] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n /* zero initialize the rest */\n for (; sb < Encoder.SBMAX_s; ++sb) {\n gfc.en[chn].s[sb][sblock] = 0;\n gfc.thm[chn].s[sb][sblock] = 0;\n }\n }\n\n /**\n * longblock threshold calculation (part 2)\n */\n function convert_partition2scalefac_l(gfc, eb, thr, chn) {\n var sb, b;\n var enn = 0.0;\n var thmm = 0.0;\n for (sb = b = 0; sb < Encoder.SBMAX_l; ++b, ++sb) {\n var bo_l_sb = gfc.bo_l[sb];\n var npart_l = gfc.npart_l;\n var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;\n while (b < b_lim) {\n assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n assert(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].l[sb] = enn;\n gfc.thm[chn].l[sb] = thmm;\n\n if (b >= npart_l) {\n ++sb;\n break;\n }\n assert(eb[b] >= 0);\n assert(thr[b] >= 0);\n {\n /* at transition sfb . sfb+1 */\n var w_curr = gfc.PSY.bo_l_weight[sb];\n var w_next = 1.0 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].l[sb] += enn;\n gfc.thm[chn].l[sb] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n /* zero initialize the rest */\n for (; sb < Encoder.SBMAX_l; ++sb) {\n gfc.en[chn].l[sb] = 0;\n gfc.thm[chn].l[sb] = 0;\n }\n }\n\n function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var j, b;\n\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0, m = 0;\n var n = gfc.numlines_s[b];\n for (var i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n }\n assert(b == gfc.npart_s);\n assert(j == 129);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var ecb = gfc.s3_ss[j++] * eb[kk];\n ++kk;\n while (kk <= gfc.s3ind_s[b][1]) {\n ecb += gfc.s3_ss[j] * eb[kk];\n ++j;\n ++kk;\n }\n\n { /* limit calculated threshold by previous granule */\n var x = rpelev_s * gfc.nb_s1[chn][b];\n thr[b] = Math.min(ecb, x);\n }\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n /* limit calculated threshold by even older granule */\n var x = rpelev2_s * gfc.nb_s2[chn][b];\n var y = thr[b];\n thr[b] = Math.min(x, y);\n }\n\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n assert(thr[b] >= 0);\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n\n function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {\n var gfc = gfp.internal_flags;\n\n if (gfp.short_blocks == ShortBlock.short_block_coupled\n /* force both channels to use the same block type */\n /* this is necessary if the frame is to be encoded in ms_stereo. */\n /* But even without ms_stereo, FhG does this */\n && !(uselongblock[0] != 0 && uselongblock[1] != 0))\n uselongblock[0] = uselongblock[1] = 0;\n\n /*\n * update the blocktype of the previous granule, since it depends on\n * what happend in this granule\n */\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n blocktype[chn] = Encoder.NORM_TYPE;\n /* disable short blocks */\n if (gfp.short_blocks == ShortBlock.short_block_dispensed)\n uselongblock[chn] = 1;\n if (gfp.short_blocks == ShortBlock.short_block_forced)\n uselongblock[chn] = 0;\n\n if (uselongblock[chn] != 0) {\n /* no attack : use long blocks */\n assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)\n blocktype[chn] = Encoder.STOP_TYPE;\n } else {\n /* attack : use short blocks */\n blocktype[chn] = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n\n blocktype_d[chn] = gfc.blocktype_old[chn];\n // value returned to calling program\n gfc.blocktype_old[chn] = blocktype[chn];\n // save for next call to l3psy_anal\n }\n }\n\n function NS_INTERP(x, y, r) {\n /* was pow((x),(r))*pow((y),1-(r)) */\n if (r >= 1.0) {\n /* 99.7% of the time */\n return x;\n }\n if (r <= 0.0)\n return y;\n if (y > 0.0) {\n /* rest of the time */\n return (Math.pow(x / y, r) * y);\n }\n /* never happens */\n return 0.0;\n }\n\n /**\n * these values are tuned only for 44.1kHz...\n */\n var regcoef_s = [11.8, 13.6, 17.2, 32, 46.5,\n 51.3, 57.5, 67.1, 71.5, 84.6, 97.6, 130,\n /* 255.8 */\n ];\n\n function pecalc_s(mr, masking_lower) {\n var pe_s = 1236.28 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_s - 1; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thm = mr.thm.s[sb][sblock];\n assert(sb < regcoef_s.length);\n if (thm > 0.0) {\n var x = thm * masking_lower;\n var en = mr.en.s[sb][sblock];\n if (en > x) {\n if (en > x * 1e10) {\n pe_s += regcoef_s[sb] * (10.0 * LOG10);\n } else {\n assert(x > 0);\n pe_s += regcoef_s[sb] * Util.FAST_LOG10(en / x);\n }\n }\n }\n }\n }\n\n return pe_s;\n }\n\n /**\n * these values are tuned only for 44.1kHz...\n */\n var regcoef_l = [6.8, 5.8, 5.8, 6.4, 6.5, 9.9,\n 12.1, 14.4, 15, 18.9, 21.6, 26.9, 34.2, 40.2, 46.8, 56.5,\n 60.7, 73.9, 85.7, 93.4, 126.1,\n /* 241.3 */\n ];\n\n function pecalc_l(mr, masking_lower) {\n var pe_l = 1124.23 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_l - 1; sb++) {\n var thm = mr.thm.l[sb];\n assert(sb < regcoef_l.length);\n if (thm > 0.0) {\n var x = thm * masking_lower;\n var en = mr.en.l[sb];\n if (en > x) {\n if (en > x * 1e10) {\n pe_l += regcoef_l[sb] * (10.0 * LOG10);\n } else {\n assert(x > 0);\n pe_l += regcoef_l[sb] * Util.FAST_LOG10(en / x);\n }\n }\n }\n }\n return pe_l;\n }\n\n function calc_energy(gfc, fftenergy, eb, max, avg) {\n var b, j;\n\n for (b = j = 0; b < gfc.npart_l; ++b) {\n var ebb = 0, m = 0;\n var i;\n for (i = 0; i < gfc.numlines_l[b]; ++i, ++j) {\n var el = fftenergy[j];\n assert(el >= 0);\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb * gfc.rnumlines_l[b];\n assert(gfc.rnumlines_l[b] >= 0);\n assert(ebb >= 0);\n assert(eb[b] >= 0);\n assert(max[b] >= 0);\n assert(avg[b] >= 0);\n }\n }\n\n function calc_mask_index_l(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n\n for (b = 1; b < gfc.npart_l - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);\n a = 20.0\n * (m * 3.0 - a)\n / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b]\n + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert(b > 0);\n assert(b == gfc.npart_l - 1);\n\n a = avg[b - 1] + avg[b];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert(b == (gfc.npart_l - 1));\n }\n\n var fircoef = [\n -8.65163e-18 * 2, -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,\n -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2, 0.0931738 * 2,\n -5.52212e-17 * 2, -0.313819 * 2\n ];\n\n this.L3psycho_anal_ns = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n /*\n * to get a good cache performance, one has to think about the sequence,\n * in which the variables are used.\n */\n var gfc = gfp.internal_flags;\n\n /* fft and energy calculation */\n var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);\n\n /* convolution */\n var eb_l = new_float(Encoder.CBANDS + 1);\n var eb_s = new_float(Encoder.CBANDS + 1);\n var thr = new_float(Encoder.CBANDS + 2);\n\n /* block type */\n var blocktype = new_int(2), uselongblock = new_int(2);\n\n /* usual variables like loop indices, etc.. */\n var numchn, chn;\n var b, i, j, k;\n var sb, sblock;\n\n /* variables used for --nspsytune */\n var ns_hpfsmpl = new_float_n([2, 576]);\n var pcfact;\n var mask_idx_l = new_int(Encoder.CBANDS + 2), mask_idx_s = new_int(Encoder.CBANDS + 2);\n\n Arrays.fill(mask_idx_s, 0);\n\n numchn = gfc.channels_out;\n /* chn=2 and 3 = Mid and Side channels */\n if (gfp.mode == MPEGMode.JOINT_STEREO)\n numchn = 4;\n\n if (gfp.VBR == VbrMode.vbr_off)\n pcfact = gfc.ResvMax == 0 ? 0 : ( gfc.ResvSize)\n / gfc.ResvMax * 0.5;\n else if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh\n || gfp.VBR == VbrMode.vbr_mt) {\n pcfact = 0.6;\n } else\n pcfact = 1.0;\n\n /**********************************************************************\n * Apply HPF of fs/4 to the input signal. This is used for attack\n * detection / handling.\n **********************************************************************/\n /* Don't copy the input buffer into a temporary buffer */\n /* unroll the loop 2 times */\n for (chn = 0; chn < gfc.channels_out; chn++) {\n /* apply high pass filter of fs/4 */\n var firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n assert(fircoef.length == ((NSFIRLEN - 1) / 2));\n for (i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0.0;\n for (j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {\n sum1 += fircoef[j]\n * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i\n + NSFIRLEN - j]);\n sum2 += fircoef[j + 1]\n * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos\n + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (numchn > 2) {\n /* MS maskings */\n /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n\n for (chn = 0; chn < numchn; chn++) {\n var wsamp_l;\n var wsamp_s;\n var en_subshort = new_float(12);\n var en_short = [0, 0, 0, 0];\n var attack_intensity = new_float(12);\n var ns_uselongblock = 1;\n var attackThreshold;\n var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);\n var ns_attacks = [0, 0, 0, 0];\n var fftenergy = new_float(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);\n\n /*\n * rh 20040301: the following loops do access one off the limits so\n * I increase the array dimensions by one and initialize the\n * accessed values to zero\n */\n assert(gfc.npart_s <= Encoder.CBANDS);\n assert(gfc.npart_l <= Encoder.CBANDS);\n\n /***************************************************************\n * determine the block type (window type)\n ***************************************************************/\n /* calculate energies of each sub-shortblocks */\n for (i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i]\n / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n\n if (chn == 2) {\n for (i = 0; i < 576; i++) {\n var l, r;\n l = ns_hpfsmpl[0][i];\n r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n {\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n for (i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p = 1.;\n for (; pfPos < pfe; pfPos++)\n if (p < Math.abs(pf[pfPos]))\n p = Math.abs(pf[pfPos]);\n\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n en_short[1 + i / 3] += p;\n if (p > en_subshort[i + 3 - 2]) {\n assert(en_subshort[i + 3 - 2] > 0);\n p = p / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n assert(p > 0);\n p = en_subshort[i + 3 - 2] / (p * 10.0);\n } else\n p = 0.0;\n attack_intensity[i + 3] = p;\n }\n }\n\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (i = 1; i < 12; i++)\n if (x < attack_intensity[i])\n x = attack_intensity[i];\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n\n /* compare energies between sub-shortblocks */\n attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s\n : gfc.nsPsy.attackthre;\n for (i = 0; i < 12; i++)\n if (0 == ns_attacks[i / 3]\n && attack_intensity[i] > attackThreshold)\n ns_attacks[i / 3] = (i % 3) + 1;\n\n /*\n * should have energy change between short blocks, in order to avoid\n * periodic signals\n */\n for (i = 1; i < 4; i++) {\n var ratio;\n if (en_short[i - 1] > en_short[i]) {\n assert(en_short[i] > 0);\n ratio = en_short[i - 1] / en_short[i];\n } else {\n assert(en_short[i - 1] > 0);\n ratio = en_short[i] / en_short[i - 1];\n }\n if (ratio < 1.7) {\n ns_attacks[i] = 0;\n if (i == 1)\n ns_attacks[0] = 0;\n }\n }\n\n if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0)\n ns_attacks[0] = 0;\n\n if (gfc.nsPsy.lastAttacks[chn] == 3\n || (ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3]) != 0) {\n ns_uselongblock = 0;\n\n if (ns_attacks[1] != 0 && ns_attacks[0] != 0)\n ns_attacks[1] = 0;\n if (ns_attacks[2] != 0 && ns_attacks[1] != 0)\n ns_attacks[2] = 0;\n if (ns_attacks[3] != 0 && ns_attacks[2] != 0)\n ns_attacks[3] = 0;\n }\n\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n\n /*\n * there is a one granule delay. Copy maskings computed last call\n * into masking_ratio to return to calling program.\n */\n energy[chn] = gfc.tot_ener[chn];\n\n /*********************************************************************\n * compute FFTs\n *********************************************************************/\n wsamp_s = wsamp_S;\n wsamp_l = wsamp_L;\n compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, (chn & 1),\n wsamp_s, (chn & 1), gr_out, chn, buffer, bufPos);\n\n /*********************************************************************\n * Calculate the energy and the tonality of each partition.\n *********************************************************************/\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n /* compute masking thresholds for short blocks */\n for (sblock = 0; sblock < 3; sblock++) {\n var enn, thmm;\n compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);\n convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);\n /**** short block pre-echo control ****/\n for (sb = 0; sb < Encoder.SBMAX_s; sb++) {\n thmm = gfc.thm[chn].s[sb][sblock];\n\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT1 * pcfact);\n thmm = Math.min(thmm, p);\n }\n\n if (ns_attacks[sblock] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n } else if ((sblock != 0 && ns_attacks[sblock - 1] == 3)\n || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {\n var idx = (sblock != 2) ? sblock + 1 : 0;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n }\n\n /* pulse like signal detection for fatboy.wav and so on */\n enn = en_subshort[sblock * 3 + 3]\n + en_subshort[sblock * 3 + 4]\n + en_subshort[sblock * 3 + 5];\n if (en_subshort[sblock * 3 + 5] * 6 < enn) {\n thmm *= 0.5;\n if (en_subshort[sblock * 3 + 4] * 6 < enn)\n thmm *= 0.5;\n }\n\n gfc.thm[chn].s[sb][sblock] = thmm;\n }\n }\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];\n\n /*********************************************************************\n * convolve the partitioned energy and unpredictability with the\n * spreading function, s3_l[b][k]\n ********************************************************************/\n k = 0;\n {\n for (b = 0; b < gfc.npart_l; b++) {\n /*\n * convolve the partitioned energy with the spreading\n * function\n */\n var kk = gfc.s3ind[b][0];\n var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n var ecb = gfc.s3_ll[k++] * eb2;\n while (++kk <= gfc.s3ind[b][1]) {\n eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b,\n gfc, 0);\n }\n ecb *= 0.158489319246111;\n /* pow(10,-0.8) */\n\n /**** long block pre-echo control ****/\n /**\n *
\n                     * dont use long block pre-echo control if previous granule was\n                     * a short block.  This is to avoid the situation:\n                     * frame0:  quiet (very low masking)\n                     * frame1:  surge  (triggers short blocks)\n                     * frame2:  regular frame.  looks like pre-echo when compared to\n                     *          frame0, but all pre-echo was in frame1.\n                     * 
\n */\n /*\n * chn=0,1 L and R channels\n *\n * chn=2,3 S and M channels.\n */\n\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE)\n thr[b] = ecb;\n else\n thr[b] = NS_INTERP(\n Math.min(ecb, Math.min(rpelev\n * gfc.nb_1[chn][b], rpelev2\n * gfc.nb_2[chn][b])), ecb, pcfact);\n\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n }\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n /* compute masking thresholds for long blocks */\n convert_partition2scalefac_l(gfc, eb_l, thr, chn);\n }\n /* end loop over chn */\n\n if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {\n if (gfp.interChRatio > 0.0) {\n calc_interchannel_masking(gfp, gfp.interChRatio);\n }\n }\n\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var msfix;\n msfix1(gfc);\n msfix = gfp.msfix;\n if (Math.abs(msfix) > 0.0)\n ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);\n }\n\n /***************************************************************\n * determine final block type\n ***************************************************************/\n block_type_set(gfp, uselongblock, blocktype_d, blocktype);\n\n /*********************************************************************\n * compute the value of PE to return ... no delay and advance\n *********************************************************************/\n for (chn = 0; chn < numchn; chn++) {\n var ppe;\n var ppePos = 0;\n var type;\n var mr;\n\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE\n || blocktype_d[1] == Encoder.SHORT_TYPE)\n type = Encoder.SHORT_TYPE;\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n\n if (type == Encoder.SHORT_TYPE)\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n else\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n\n if (gfp.analysis)\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n\n }\n return 0;\n }\n\n function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n /* FFT data for mid and side channel is derived from L & R */\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n }\n\n /*********************************************************************\n * compute energies\n *********************************************************************/\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n /* total energy */\n {\n var totalenergy = 0.0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n\n gfc.tot_ener[chn] = totalenergy;\n }\n\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n }\n\n function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {\n var gfc = gfp.internal_flags;\n\n if (sblock == 0 && chn < 2) {\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n }\n if (chn == 2) {\n /* FFT data for mid and side channel is derived from L & R */\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][sblock][j];\n var r = wsamp_s[wsamp_sPos + 1][sblock][j];\n wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n }\n\n /*********************************************************************\n * compute energies\n *********************************************************************/\n fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];\n fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 + j];\n fftenergy_s[sblock][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n }\n\n /**\n * compute loudness approximation (used for ATH auto-level adjustment)\n */\n function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {\n var gfc = gfp.internal_flags;\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n // no loudness for mid/side ch\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n\n var fircoef_ = [-8.65163e-18 * 2,\n -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,\n -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2,\n 0.0931738 * 2, -5.52212e-17 * 2, -0.313819 * 2];\n\n /**\n * Apply HPF of fs/4 to the input signal. This is used for attack detection\n * / handling.\n */\n function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {\n var ns_hpfsmpl = new_float_n([2, 576]);\n var gfc = gfp.internal_flags;\n var n_chn_out = gfc.channels_out;\n /* chn=2 and 3 = Mid and Side channels */\n var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4 : n_chn_out;\n /* Don't copy the input buffer into a temporary buffer */\n /* unroll the loop 2 times */\n for (var chn = 0; chn < n_chn_out; chn++) {\n /* apply high pass filter of fs/4 */\n firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n assert(fircoef_.length == ((NSFIRLEN - 1) / 2));\n for (var i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0.0;\n for (var j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {\n sum1 += fircoef_[j]\n * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i\n + NSFIRLEN - j]);\n sum2 += fircoef_[j + 1]\n * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos\n + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (n_chn_psy > 2) {\n /* MS maskings */\n /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var attack_intensity = new_float(12);\n var en_subshort = new_float(12);\n var en_short = [0, 0, 0, 0];\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n var attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s\n : gfc.nsPsy.attackthre;\n var ns_uselongblock = 1;\n\n if (chn == 2) {\n for (var i = 0, j = 576; j > 0; ++i, --j) {\n var l = ns_hpfsmpl[0][i];\n var r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n /***************************************************************\n * determine the block type (window type)\n ***************************************************************/\n /* calculate energies of each sub-shortblocks */\n for (var i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i]\n / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n\n for (var i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p = 1.;\n for (; pfPos < pfe; pfPos++)\n if (p < Math.abs(pf[pfPos]))\n p = Math.abs(pf[pfPos]);\n\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n en_short[1 + i / 3] += p;\n if (p > en_subshort[i + 3 - 2]) {\n assert(en_subshort[i + 3 - 2] > 0);\n p = p / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n assert(p > 0);\n p = en_subshort[i + 3 - 2] / (p * 10.0);\n } else {\n p = 0.0;\n }\n attack_intensity[i + 3] = p;\n }\n /* pulse like signal detection for fatboy.wav and so on */\n for (var i = 0; i < 3; ++i) {\n var enn = en_subshort[i * 3 + 3]\n + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];\n var factor = 1.;\n if (en_subshort[i * 3 + 5] * 6 < enn) {\n factor *= 0.5;\n if (en_subshort[i * 3 + 4] * 6 < enn) {\n factor *= 0.5;\n }\n }\n sub_short_factor[chn][i] = factor;\n }\n\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (var i = 1; i < 12; i++) {\n if (x < attack_intensity[i]) {\n x = attack_intensity[i];\n }\n }\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n\n /* compare energies between sub-shortblocks */\n for (var i = 0; i < 12; i++) {\n if (0 == ns_attacks[chn][i / 3]\n && attack_intensity[i] > attackThreshold) {\n ns_attacks[chn][i / 3] = (i % 3) + 1;\n }\n }\n\n /*\n * should have energy change between short blocks, in order to avoid\n * periodic signals\n */\n /* Good samples to show the effect are Trumpet test songs */\n /*\n * GB: tuned (1) to avoid too many short blocks for test sample\n * TRUMPET\n */\n /*\n * RH: tuned (2) to let enough short blocks through for test sample\n * FSOL and SNAPS\n */\n for (var i = 1; i < 4; i++) {\n var u = en_short[i - 1];\n var v = en_short[i];\n var m = Math.max(u, v);\n if (m < 40000) { /* (2) */\n if (u < 1.7 * v && v < 1.7 * u) { /* (1) */\n if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) {\n ns_attacks[chn][0] = 0;\n }\n ns_attacks[chn][i] = 0;\n }\n }\n }\n\n if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) {\n ns_attacks[chn][0] = 0;\n }\n\n if (gfc.nsPsy.lastAttacks[chn] == 3\n || (ns_attacks[chn][0] + ns_attacks[chn][1]\n + ns_attacks[chn][2] + ns_attacks[chn][3]) != 0) {\n ns_uselongblock = 0;\n\n if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) {\n ns_attacks[chn][1] = 0;\n }\n if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) {\n ns_attacks[chn][2] = 0;\n }\n if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) {\n ns_attacks[chn][3] = 0;\n }\n }\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n\n /*\n * there is a one granule delay. Copy maskings computed last call\n * into masking_ratio to return to calling program.\n */\n energy[chn] = gfc.tot_ener[chn];\n }\n }\n\n function vbrpsy_skip_masking_s(gfc, chn, sblock) {\n if (sblock == 0) {\n for (var b = 0; b < gfc.npart_s; b++) {\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = 0;\n }\n }\n }\n\n function vbrpsy_skip_masking_l(gfc, chn) {\n for (var b = 0; b < gfc.npart_l; b++) {\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = 0;\n }\n }\n\n function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n\n for (b = 1; b < gfc.npart_s - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n assert(b + 1 < gfc.npart_s);\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);\n a = 20.0\n * (m * 3.0 - a)\n / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b]\n + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert(b > 0);\n assert(b == gfc.npart_s - 1);\n\n a = avg[b - 1] + avg[b];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert(b == (gfc.npart_s - 1));\n }\n\n function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var max = new float[Encoder.CBANDS], avg = new_float(Encoder.CBANDS);\n var i, j, b;\n var mask_idx_s = new int[Encoder.CBANDS];\n\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0, m = 0;\n var n = gfc.numlines_s[b];\n for (i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n assert(ebb >= 0);\n max[b] = m;\n assert(n > 0);\n avg[b] = ebb / n;\n assert(avg[b] >= 0);\n }\n assert(b == gfc.npart_s);\n assert(j == 129);\n for (; b < Encoder.CBANDS; ++b) {\n max[b] = 0;\n avg[b] = 0;\n }\n psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var last = gfc.s3ind_s[b][1];\n var dd, dd_n;\n var x, ecb, avg_mask;\n dd = mask_idx_s[kk];\n dd_n = 1;\n ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ++j;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_s[kk];\n dd_n += 1;\n x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ecb = vbrpsy_mask_add(ecb, x, kk - b);\n ++j;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n thr[b] = ecb;\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n {\n /*\n * if THR exceeds EB, the quantization routines will take the\n * difference from other bands. in case of strong tonal samples\n * (tonaltest.wav) this leads to heavy distortions. that's why\n * we limit THR here.\n */\n x = max[b];\n x *= gfc.minval_s[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb[b]) {\n thr[b] = eb[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n\n assert(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n\n function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {\n var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);\n var mask_idx_l = new_int(Encoder.CBANDS + 2);\n var b;\n\n /*********************************************************************\n * Calculate the energy and the tonality of each partition.\n *********************************************************************/\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n\n /*********************************************************************\n * convolve the partitioned energy and unpredictability with the\n * spreading function, s3_l[b][k]\n ********************************************************************/\n var k = 0;\n for (b = 0; b < gfc.npart_l; b++) {\n var x, ecb, avg_mask, t;\n /* convolve the partitioned energy with the spreading function */\n var kk = gfc.s3ind[b][0];\n var last = gfc.s3ind[b][1];\n var dd = 0, dd_n = 0;\n dd = mask_idx_l[kk];\n dd_n += 1;\n ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n ++k;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_l[kk];\n dd_n += 1;\n x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n t = vbrpsy_mask_add(ecb, x, kk - b);\n ecb = t;\n ++k;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n\n /**** long block pre-echo control ****/\n /**\n *
\n             * dont use long block pre-echo control if previous granule was\n             * a short block.  This is to avoid the situation:\n             * frame0:  quiet (very low masking)\n             * frame1:  surge  (triggers short blocks)\n             * frame2:  regular frame.  looks like pre-echo when compared to\n             *          frame0, but all pre-echo was in frame1.\n             * 
\n */\n /*\n * chn=0,1 L and R channels chn=2,3 S and M channels.\n */\n if (gfc.blocktype_old[chn & 0x01] == Encoder.SHORT_TYPE) {\n var ecb_limit = rpelev * gfc.nb_1[chn][b];\n if (ecb_limit > 0) {\n thr[b] = Math.min(ecb, ecb_limit);\n } else {\n /**\n *
\n                     * Robert 071209:\n                     * Because we don't calculate long block psy when we know a granule\n                     * should be of short blocks, we don't have any clue how the granule\n                     * before would have looked like as a long block. So we have to guess\n                     * a little bit for this END_TYPE block.\n                     * Most of the time we get away with this sloppyness. (fingers crossed :)\n                     * The speed increase is worth it.\n                     * 
\n */\n thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);\n }\n } else {\n var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];\n var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];\n var ecb_limit;\n if (ecb_limit_2 <= 0) {\n ecb_limit_2 = ecb;\n }\n if (ecb_limit_1 <= 0) {\n ecb_limit_1 = ecb;\n }\n if (gfc.blocktype_old[chn & 0x01] == Encoder.NORM_TYPE) {\n ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);\n } else {\n ecb_limit = ecb_limit_1;\n }\n thr[b] = Math.min(ecb, ecb_limit);\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n {\n /*\n * if THR exceeds EB, the quantization routines will take the\n * difference from other bands. in case of strong tonal samples\n * (tonaltest.wav) this leads to heavy distortions. that's why\n * we limit THR here.\n */\n x = max[b];\n x *= gfc.minval_l[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb_l[b]) {\n thr[b] = eb_l[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n assert(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n }\n\n function vbrpsy_compute_block_type(gfp, uselongblock) {\n var gfc = gfp.internal_flags;\n\n if (gfp.short_blocks == ShortBlock.short_block_coupled\n /* force both channels to use the same block type */\n /* this is necessary if the frame is to be encoded in ms_stereo. */\n /* But even without ms_stereo, FhG does this */\n && !(uselongblock[0] != 0 && uselongblock[1] != 0))\n uselongblock[0] = uselongblock[1] = 0;\n\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n /* disable short blocks */\n if (gfp.short_blocks == ShortBlock.short_block_dispensed) {\n uselongblock[chn] = 1;\n }\n if (gfp.short_blocks == ShortBlock.short_block_forced) {\n uselongblock[chn] = 0;\n }\n }\n }\n\n function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {\n var gfc = gfp.internal_flags;\n\n /*\n * update the blocktype of the previous granule, since it depends on\n * what happend in this granule\n */\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n var blocktype = Encoder.NORM_TYPE;\n /* disable short blocks */\n\n if (uselongblock[chn] != 0) {\n /* no attack : use long blocks */\n assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)\n blocktype = Encoder.STOP_TYPE;\n } else {\n /* attack : use short blocks */\n blocktype = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n\n blocktype_d[chn] = gfc.blocktype_old[chn];\n // value returned to calling program\n gfc.blocktype_old[chn] = blocktype;\n // save for next call to l3psy_anal\n }\n }\n\n /**\n * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n */\n function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {\n var msfix2 = msfix * 2;\n var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;\n var rside, rmid;\n for (var b = 0; b < n; ++b) {\n var ebM = eb[2][b];\n var ebS = eb[3][b];\n var thmL = thr[0][b];\n var thmR = thr[1][b];\n var thmM = thr[2][b];\n var thmS = thr[3][b];\n\n /* use this fix if L & R masking differs by 2db or less */\n if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {\n var mld_m = cb_mld[b] * ebS;\n var mld_s = cb_mld[b] * ebM;\n rmid = Math.max(thmM, Math.min(thmS, mld_m));\n rside = Math.max(thmS, Math.min(thmM, mld_s));\n } else {\n rmid = thmM;\n rside = thmS;\n }\n if (msfix > 0) {\n /***************************************************************/\n /* Adjust M/S maskings if user set \"msfix\" */\n /***************************************************************/\n /* Naoki Shibata 2000 */\n var thmLR, thmMS;\n var ath = ath_cb[b] * athlower;\n thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));\n thmM = Math.max(rmid, ath);\n thmS = Math.max(rside, ath);\n thmMS = thmM + thmS;\n if (thmMS > 0 && (thmLR * msfix2) < thmMS) {\n var f = thmLR * msfix2 / thmMS;\n thmM *= f;\n thmS *= f;\n assert(thmMS > 0);\n }\n rmid = Math.min(thmM, rmid);\n rside = Math.min(thmS, rside);\n }\n if (rmid > ebM) {\n rmid = ebM;\n }\n if (rside > ebS) {\n rside = ebS;\n }\n thr[2][b] = rmid;\n thr[3][b] = rside;\n }\n }\n\n this.L3psycho_anal_vbr = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n\n /* fft and energy calculation */\n var wsamp_l;\n var wsamp_s;\n var fftenergy = new_float(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);\n var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);\n var eb = new_float_n([4, Encoder.CBANDS]), thr = new_float_n([4, Encoder.CBANDS]);\n var sub_short_factor = new_float_n([4, 3]);\n var pcfact = 0.6;\n\n /* block type */\n var ns_attacks = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],\n [0, 0, 0, 0]];\n var uselongblock = new_int(2);\n\n /* usual variables like loop indices, etc.. */\n\n /* chn=2 and 3 = Mid and Side channels */\n var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4\n : gfc.channels_out;\n\n vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio,\n masking_MS_ratio, energy, sub_short_factor, ns_attacks,\n uselongblock);\n\n vbrpsy_compute_block_type(gfp, uselongblock);\n\n /* LONG BLOCK CASE */\n {\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 0x01;\n wsamp_l = wsamp_L;\n vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out,\n fftenergy, wsamp_l, ch01);\n\n vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn,\n fftenergy);\n\n if (uselongblock[ch01] != 0) {\n vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn],\n chn);\n } else {\n vbrpsy_skip_masking_l(gfc, chn);\n }\n }\n if ((uselongblock[0] + uselongblock[1]) == 2) {\n /* M/S channel */\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_l,\n gfc.ATH.cb_l, gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix, gfc.npart_l);\n }\n }\n /* TODO: apply adaptive ATH masking here ?? */\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 0x01;\n if (uselongblock[ch01] != 0) {\n convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);\n }\n }\n }\n\n /* SHORT BLOCKS CASE */\n {\n for (var sblock = 0; sblock < 3; sblock++) {\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 0x01;\n\n if (uselongblock[ch01] != 0) {\n vbrpsy_skip_masking_s(gfc, chn, sblock);\n } else {\n /* compute masking thresholds for short blocks */\n wsamp_s = wsamp_S;\n vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock,\n fftenergy_s, wsamp_s, ch01);\n vbrpsy_compute_masking_s(gfp, fftenergy_s, eb[chn],\n thr[chn], chn, sblock);\n }\n }\n if ((uselongblock[0] + uselongblock[1]) == 0) {\n /* M/S channel */\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_s,\n gfc.ATH.cb_s, gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix, gfc.npart_s);\n }\n /* L/R channel */\n }\n /* TODO: apply adaptive ATH masking here ?? */\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 0x01;\n if (0 == uselongblock[ch01]) {\n convert_partition2scalefac_s(gfc, eb[chn], thr[chn],\n chn, sblock);\n }\n }\n }\n\n /**** short block pre-echo control ****/\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 0x01;\n\n if (uselongblock[ch01] != 0) {\n continue;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n var new_thmm = new_float(3);\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n\n if (ns_attacks[chn][sblock] >= 2\n || ns_attacks[chn][sblock + 1] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT1 * pcfact);\n thmm = Math.min(thmm, p);\n } else if (ns_attacks[chn][sblock] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n } else if ((sblock != 0 && ns_attacks[chn][sblock - 1] == 3)\n || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {\n var idx = (sblock != 2) ? sblock + 1 : 0;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n }\n\n /* pulse like signal detection for fatboy.wav and so on */\n thmm *= sub_short_factor[chn][sblock];\n\n new_thmm[sblock] = thmm;\n }\n for (var sblock = 0; sblock < 3; sblock++) {\n gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];\n }\n }\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];\n }\n\n /***************************************************************\n * determine final block type\n ***************************************************************/\n vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);\n\n /*********************************************************************\n * compute the value of PE to return ... no delay and advance\n *********************************************************************/\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ppe;\n var ppePos;\n var type;\n var mr;\n\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE\n || blocktype_d[1] == Encoder.SHORT_TYPE)\n type = Encoder.SHORT_TYPE;\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n\n if (type == Encoder.SHORT_TYPE) {\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n } else {\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n }\n\n if (gfp.analysis) {\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n }\n return 0;\n }\n\n function s3_func_x(bark, hf_slope) {\n var tempx = bark, tempy;\n\n if (tempx >= 0) {\n tempy = -tempx * 27;\n } else {\n tempy = tempx * hf_slope;\n }\n if (tempy <= -72.0) {\n return 0;\n }\n return Math.exp(tempy * LN_TO_LOG10);\n }\n\n function norm_s3_func_x(hf_slope) {\n var lim_a = 0, lim_b = 0;\n {\n var x = 0, l, h;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1)\n ;\n l = x;\n h = 0;\n while (Math.abs(h - l) > 1e-12) {\n x = (h + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n h = x;\n } else {\n l = x;\n }\n }\n lim_a = l;\n }\n {\n var x = 0, l, h;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1)\n ;\n l = 0;\n h = x;\n while (Math.abs(h - l) > 1e-12) {\n x = (h + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n l = x;\n } else {\n h = x;\n }\n }\n lim_b = h;\n }\n {\n var sum = 0;\n var m = 1000;\n var i;\n for (i = 0; i <= m; ++i) {\n var x = lim_a + i * (lim_b - lim_a) / m;\n var y = s3_func_x(x, hf_slope);\n sum += y;\n }\n {\n var norm = (m + 1) / (sum * (lim_b - lim_a));\n /* printf( \"norm = %lf\\n\",norm); */\n return norm;\n }\n }\n }\n\n /**\n * The spreading function. Values returned in units of energy\n */\n function s3_func(bark) {\n var tempx, x, tempy, temp;\n tempx = bark;\n if (tempx >= 0)\n tempx *= 3;\n else\n tempx *= 1.5;\n\n if (tempx >= 0.5 && tempx <= 2.5) {\n temp = tempx - 0.5;\n x = 8.0 * (temp * temp - 2.0 * temp);\n } else\n x = 0.0;\n tempx += 0.474;\n tempy = 15.811389 + 7.5 * tempx - 17.5\n * Math.sqrt(1.0 + tempx * tempx);\n\n if (tempy <= -60.0)\n return 0.0;\n\n tempx = Math.exp((x + tempy) * LN_TO_LOG10);\n\n /**\n *
\n         * Normalization.  The spreading function should be normalized so that:\n         * +inf\n         * /\n         * |  s3 [ bark ]  d(bark)   =  1\n         * /\n         * -inf\n         * 
\n */\n tempx /= .6609193;\n return tempx;\n }\n\n /**\n * see for example \"Zwicker: Psychoakustik, 1982; ISBN 3-540-11401-7\n */\n function freq2bark(freq) {\n /* input: freq in hz output: barks */\n if (freq < 0)\n freq = 0;\n freq = freq * 0.001;\n return 13.0 * Math.atan(.76 * freq) + 3.5\n * Math.atan(freq * freq / (7.5 * 7.5));\n }\n\n function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {\n var b_frq = new_float(Encoder.CBANDS + 1);\n var sample_freq_frac = sfreq / (sbmax > 15 ? 2 * 576 : 2 * 192);\n var partition = new_int(Encoder.HBLKSIZE);\n var i;\n sfreq /= blksize;\n var j = 0;\n var ni = 0;\n /* compute numlines, the number of spectral lines in each partition band */\n /* each partition band should be about DELBARK wide. */\n for (i = 0; i < Encoder.CBANDS; i++) {\n var bark1;\n var j2;\n bark1 = freq2bark(sfreq * j);\n\n b_frq[i] = sfreq * j;\n\n for (j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK\n && j2 <= blksize / 2; j2++)\n ;\n\n numlines[i] = j2 - j;\n ni = i + 1;\n\n while (j < j2) {\n assert(j < Encoder.HBLKSIZE);\n partition[j++] = i;\n }\n if (j > blksize / 2) {\n j = blksize / 2;\n ++i;\n break;\n }\n }\n assert(i < Encoder.CBANDS);\n b_frq[i] = sfreq * j;\n\n for (var sfb = 0; sfb < sbmax; sfb++) {\n var i1, i2, start, end;\n var arg;\n start = scalepos[sfb];\n end = scalepos[sfb + 1];\n\n i1 = 0 | Math.floor(.5 + deltafreq * (start - .5));\n if (i1 < 0)\n i1 = 0;\n i2 = 0 | Math.floor(.5 + deltafreq * (end - .5));\n\n if (i2 > blksize / 2)\n i2 = blksize / 2;\n\n bm[sfb] = (partition[i1] + partition[i2]) / 2;\n bo[sfb] = partition[i2];\n var f_tmp = sample_freq_frac * end;\n /*\n * calculate how much of this band belongs to current scalefactor\n * band\n */\n bo_w[sfb] = (f_tmp - b_frq[bo[sfb]])\n / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);\n if (bo_w[sfb] < 0) {\n bo_w[sfb] = 0;\n } else {\n if (bo_w[sfb] > 1) {\n bo_w[sfb] = 1;\n }\n }\n /* setup stereo demasking thresholds */\n /* formula reverse enginerred from plot in paper */\n arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);\n arg = ( Math.min(arg, 15.5) / 15.5);\n\n mld[sfb] = Math.pow(10.0,\n 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n\n /* compute bark values of each critical band */\n j = 0;\n for (var k = 0; k < ni; k++) {\n var w = numlines[k];\n var bark1, bark2;\n\n bark1 = freq2bark(sfreq * (j));\n bark2 = freq2bark(sfreq * (j + w - 1));\n bval[k] = .5 * (bark1 + bark2);\n\n bark1 = freq2bark(sfreq * (j - .5));\n bark2 = freq2bark(sfreq * (j + w - .5));\n bval_width[k] = bark2 - bark1;\n j += w;\n }\n\n return ni;\n }\n\n function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {\n var s3 = new_float_n([Encoder.CBANDS, Encoder.CBANDS]);\n /*\n * The s3 array is not linear in the bark scale.\n *\n * bval[x] should be used to get the bark value.\n */\n var j;\n var numberOfNoneZero = 0;\n\n /**\n *
\n         * s[i][j], the value of the spreading function,\n         * centered at band j (masker), for band i (maskee)\n         *\n         * i.e.: sum over j to spread into signal barkval=i\n         * NOTE: i and j are used opposite as in the ISO docs\n         * 
\n */\n if (use_old_s3) {\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n var v = s3_func(bval[i] - bval[j]) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n } else {\n for (j = 0; j < npart; j++) {\n var hf_slope = 15 + Math.min(21 / bval[j], 12);\n var s3_x_norm = norm_s3_func_x(hf_slope);\n for (var i = 0; i < npart; i++) {\n var v = s3_x_norm\n * s3_func_x(bval[i] - bval[j], hf_slope)\n * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n }\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n if (s3[i][j] > 0.0)\n break;\n }\n s3ind[i][0] = j;\n\n for (j = npart - 1; j > 0; j--) {\n if (s3[i][j] > 0.0)\n break;\n }\n s3ind[i][1] = j;\n numberOfNoneZero += (s3ind[i][1] - s3ind[i][0] + 1);\n }\n\n var p = new_float(numberOfNoneZero);\n var k = 0;\n for (var i = 0; i < npart; i++)\n for (j = s3ind[i][0]; j <= s3ind[i][1]; j++)\n p[k++] = s3[i][j];\n\n return p;\n }\n\n function stereo_demask(f) {\n /* setup stereo demasking thresholds */\n /* formula reverse enginerred from plot in paper */\n var arg = freq2bark(f);\n arg = (Math.min(arg, 15.5) / 15.5);\n\n return Math.pow(10.0,\n 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n\n /**\n * NOTE: the bitrate reduction from the inter-channel masking effect is low\n * compared to the chance of getting annyoing artefacts. L3psycho_anal_vbr\n * does not use this feature. (Robert 071216)\n */\n this.psymodel_init = function (gfp) {\n var gfc = gfp.internal_flags;\n var i;\n var useOldS3 = true;\n var bvl_a = 13, bvl_b = 24;\n var snr_l_a = 0, snr_l_b = 0;\n var snr_s_a = -8.25, snr_s_b = -4.5;\n var bval = new_float(Encoder.CBANDS);\n var bval_width = new_float(Encoder.CBANDS);\n var norm = new_float(Encoder.CBANDS);\n var sfreq = gfp.out_samplerate;\n\n switch (gfp.experimentalZ) {\n default:\n case 0:\n useOldS3 = true;\n break;\n case 1:\n useOldS3 = (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) ? false\n : true;\n break;\n case 2:\n useOldS3 = false;\n break;\n case 3:\n bvl_a = 8;\n snr_l_a = -1.75;\n snr_l_b = -0.0125;\n snr_s_a = -8.25;\n snr_s_b = -2.25;\n break;\n }\n gfc.ms_ener_ratio_old = .25;\n gfc.blocktype_old[0] = gfc.blocktype_old[1] = Encoder.NORM_TYPE;\n // the vbr header is long blocks\n\n for (i = 0; i < 4; ++i) {\n for (var j = 0; j < Encoder.CBANDS; ++j) {\n gfc.nb_1[i][j] = 1e20;\n gfc.nb_2[i][j] = 1e20;\n gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1.0;\n }\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n gfc.en[i].l[sb] = 1e20;\n gfc.thm[i].l[sb] = 1e20;\n }\n for (var j = 0; j < 3; ++j) {\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n gfc.en[i].s[sb][j] = 1e20;\n gfc.thm[i].s[sb][j] = 1e20;\n }\n gfc.nsPsy.lastAttacks[i] = 0;\n }\n for (var j = 0; j < 9; j++)\n gfc.nsPsy.last_en_subshort[i][j] = 10.;\n }\n\n /* init. for loudness approx. -jd 2001 mar 27 */\n gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0.0;\n\n /*************************************************************************\n * now compute the psychoacoustic model specific constants\n ************************************************************************/\n /* compute numlines, bo, bm, bval, bval_width, mld */\n\n gfc.npart_l = init_numline(gfc.numlines_l, gfc.bo_l, gfc.bm_l, bval,\n bval_width, gfc.mld_l, gfc.PSY.bo_l_weight, sfreq,\n Encoder.BLKSIZE, gfc.scalefac_band.l, Encoder.BLKSIZE\n / (2.0 * 576), Encoder.SBMAX_l);\n assert(gfc.npart_l < Encoder.CBANDS);\n /* compute the spreading function */\n for (i = 0; i < gfc.npart_l; i++) {\n var snr = snr_l_a;\n if (bval[i] >= bvl_a) {\n snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a\n * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10.0, snr / 10.0);\n if (gfc.numlines_l[i] > 0) {\n gfc.rnumlines_l[i] = 1.0 / gfc.numlines_l[i];\n } else {\n gfc.rnumlines_l[i] = 0;\n }\n }\n gfc.s3_ll = init_s3_values(gfc.s3ind, gfc.npart_l, bval, bval_width,\n norm, useOldS3);\n\n /* compute long block specific values, ATH and MINVAL */\n var j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var x;\n\n /* ATH */\n x = Float.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_l[i]; k++, j++) {\n var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE);\n var level;\n /*\n * ATH below 100 Hz constant, not further climbing\n */\n level = this.ATHformula(freq * 1000, gfp) - 20;\n // scale to FFT units; returned value is in dB\n level = Math.pow(10., 0.1 * level);\n // convert from dB . energy\n level *= gfc.numlines_l[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_l[i] = x;\n\n /*\n * MINVAL. For low freq, the strength of the masking is limited by\n * minval this is an ISO MPEG1 thing, dont know if it is really\n * needed\n */\n /*\n * FIXME: it does work to reduce low-freq problems in S53-Wind-Sax\n * and lead-voice samples, but introduces some 3 kbps bit bloat too.\n * TODO: Further refinement of the shape of this hack.\n */\n x = -20 + bval[i] * 20 / 10;\n if (x > 6) {\n x = 100;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8.;\n gfc.minval_l[i] = (Math.pow(10.0, x / 10.) * gfc.numlines_l[i]);\n }\n\n /************************************************************************\n * do the same things for short blocks\n ************************************************************************/\n gfc.npart_s = init_numline(gfc.numlines_s, gfc.bo_s, gfc.bm_s, bval,\n bval_width, gfc.mld_s, gfc.PSY.bo_s_weight, sfreq,\n Encoder.BLKSIZE_s, gfc.scalefac_band.s, Encoder.BLKSIZE_s\n / (2.0 * 192), Encoder.SBMAX_s);\n assert(gfc.npart_s < Encoder.CBANDS);\n\n /* SNR formula. short block is normalized by SNR. is it still right ? */\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var x;\n var snr = snr_s_a;\n if (bval[i] >= bvl_a) {\n snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a\n * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10.0, snr / 10.0);\n\n /* ATH */\n x = Float.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_s[i]; k++, j++) {\n var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE_s);\n var level;\n /* freq = Min(.1,freq); */\n /*\n * ATH below 100 Hz constant, not\n * further climbing\n */\n level = this.ATHformula(freq * 1000, gfp) - 20;\n // scale to FFT units; returned value is in dB\n level = Math.pow(10., 0.1 * level);\n // convert from dB . energy\n level *= gfc.numlines_s[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_s[i] = x;\n\n /*\n * MINVAL. For low freq, the strength of the masking is limited by\n * minval this is an ISO MPEG1 thing, dont know if it is really\n * needed\n */\n x = (-7.0 + bval[i] * 7.0 / 12.0);\n if (bval[i] > 12) {\n x *= 1 + Math.log(1 + x) * 3.1;\n }\n if (bval[i] < 12) {\n x *= 1 + Math.log(1 - x) * 2.3;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8;\n gfc.minval_s[i] = Math.pow(10.0, x / 10)\n * gfc.numlines_s[i];\n }\n\n gfc.s3_ss = init_s3_values(gfc.s3ind_s, gfc.npart_s, bval, bval_width,\n norm, useOldS3);\n\n init_mask_add_max_values();\n fft.init_fft(gfc);\n\n /* setup temporal masking */\n gfc.decay = Math.exp(-1.0 * LOG10\n / (temporalmask_sustain_sec * sfreq / 192.0));\n\n {\n var msfix;\n msfix = NS_MSFIX;\n if ((gfp.exp_nspsytune & 2) != 0)\n msfix = 1.0;\n if (Math.abs(gfp.msfix) > 0.0)\n msfix = gfp.msfix;\n gfp.msfix = msfix;\n\n /*\n * spread only from npart_l bands. Normally, we use the spreading\n * function to convolve from npart_l down to npart_l bands\n */\n for (var b = 0; b < gfc.npart_l; b++)\n if (gfc.s3ind[b][1] > gfc.npart_l - 1)\n gfc.s3ind[b][1] = gfc.npart_l - 1;\n }\n\n /*\n * prepare for ATH auto adjustment: we want to decrease the ATH by 12 dB\n * per second\n */\n var frame_duration = (576. * gfc.mode_gr / sfreq);\n gfc.ATH.decay = Math.pow(10., -12. / 10. * frame_duration);\n gfc.ATH.adjust = 0.01;\n /* minimum, for leading low loudness */\n gfc.ATH.adjustLimit = 1.0;\n /* on lead, allow adjust up to maximum */\n\n assert(gfc.bo_l[Encoder.SBMAX_l - 1] <= gfc.npart_l);\n assert(gfc.bo_s[Encoder.SBMAX_s - 1] <= gfc.npart_s);\n\n if (gfp.ATHtype != -1) {\n /* compute equal loudness weights (eql_w) */\n var freq;\n var freq_inc = gfp.out_samplerate\n / (Encoder.BLKSIZE);\n var eql_balance = 0.0;\n freq = 0.0;\n for (i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n /* convert ATH dB to relative power (not dB) */\n /* to determine eql_w */\n freq += freq_inc;\n gfc.ATH.eql_w[i] = 1. / Math.pow(10, this.ATHformula(freq, gfp) / 10);\n eql_balance += gfc.ATH.eql_w[i];\n }\n eql_balance = 1.0 / eql_balance;\n for (i = Encoder.BLKSIZE / 2; --i >= 0;) { /* scale weights */\n gfc.ATH.eql_w[i] *= eql_balance;\n }\n }\n {\n for (var b = j = 0; b < gfc.npart_s; ++b) {\n for (i = 0; i < gfc.numlines_s[b]; ++i) {\n ++j;\n }\n }\n assert(j == 129);\n for (var b = j = 0; b < gfc.npart_l; ++b) {\n for (i = 0; i < gfc.numlines_l[b]; ++i) {\n ++j;\n }\n }\n assert(j == 513);\n }\n j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1.0 * Encoder.BLKSIZE);\n gfc.mld_cb_l[i] = stereo_demask(freq);\n j += gfc.numlines_l[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_l[i] = 1;\n }\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1.0 * Encoder.BLKSIZE_s);\n gfc.mld_cb_s[i] = stereo_demask(freq);\n j += gfc.numlines_s[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_s[i] = 1;\n }\n return 0;\n }\n\n /**\n * Those ATH formulas are returning their minimum value for input = -1\n */\n function ATHformula_GB(f, value) {\n /**\n *
\n         *  from Painter & Spanias\n         *           modified by Gabriel Bouvigne to better fit the reality\n         *           ath =    3.640 * pow(f,-0.8)\n         *           - 6.800 * exp(-0.6*pow(f-3.4,2.0))\n         *           + 6.000 * exp(-0.15*pow(f-8.7,2.0))\n         *           + 0.6* 0.001 * pow(f,4.0);\n         *\n         *\n         *           In the past LAME was using the Painter &Spanias formula.\n         *           But we had some recurrent problems with HF content.\n         *           We measured real ATH values, and found the older formula\n         *           to be inaccurate in the higher part. So we made this new\n         *           formula and this solved most of HF problematic test cases.\n         *           The tradeoff is that in VBR mode it increases a lot the\n         *           bitrate.\n         * 
\n */\n\n /*\n * This curve can be adjusted according to the VBR scale: it adjusts\n * from something close to Painter & Spanias on V9 up to Bouvigne's\n * formula for V0. This way the VBR bitrate is more balanced according\n * to the -V value.\n */\n\n // the following Hack allows to ask for the lowest value\n if (f < -.3)\n f = 3410;\n\n // convert to khz\n f /= 1000;\n f = Math.max(0.1, f);\n var ath = 3.640 * Math.pow(f, -0.8) - 6.800\n * Math.exp(-0.6 * Math.pow(f - 3.4, 2.0)) + 6.000\n * Math.exp(-0.15 * Math.pow(f - 8.7, 2.0))\n + (0.6 + 0.04 * value) * 0.001 * Math.pow(f, 4.0);\n return ath;\n }\n\n this.ATHformula = function (f, gfp) {\n var ath;\n switch (gfp.ATHtype) {\n case 0:\n ath = ATHformula_GB(f, 9);\n break;\n case 1:\n // over sensitive, should probably be removed\n ath = ATHformula_GB(f, -1);\n break;\n case 2:\n ath = ATHformula_GB(f, 0);\n break;\n case 3:\n // modification of GB formula by Roel\n ath = ATHformula_GB(f, 1) + 6;\n break;\n case 4:\n ath = ATHformula_GB(f, gfp.ATHcurve);\n break;\n default:\n ath = ATHformula_GB(f, 0);\n break;\n }\n return ath;\n }\n\n}\n\nmodule.exports = PsyModel;\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chat.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chat.vue?vue&type=style&index=0&lang=css&\"","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar GrInfo = require('./GrInfo.js');\n\nfunction IIISideInfo() {\n this.tt = [[null, null], [null, null]];\n this.main_data_begin = 0;\n this.private_bits = 0;\n this.resvDrain_pre = 0;\n this.resvDrain_post = 0;\n this.scfsi = [new_int(4), new_int(4)];\n\n for (var gr = 0; gr < 2; gr++) {\n for (var ch = 0; ch < 2; ch++) {\n this.tt[gr][ch] = new GrInfo();\n }\n }\n}\n\nmodule.exports = IIISideInfo;\n","/*\n * ReplayGainAnalysis - analyzes input samples and give the recommended dB change\n * Copyright (C) 2001 David Robinson and Glen Sawyer\n * Improvements and optimizations added by Frank Klemm, and by Marcel Muller \n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2.1 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the Free Software\n * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n *\n * concept and filter values by David Robinson (David@Robinson.org)\n * -- blame him if you think the idea is flawed\n * original coding by Glen Sawyer (mp3gain@hotmail.com)\n * -- blame him if you think this runs too slowly, or the coding is otherwise flawed\n *\n * lots of code improvements by Frank Klemm ( http://www.uni-jena.de/~pfk/mpp/ )\n * -- credit him for all the _good_ programming ;)\n *\n *\n * For an explanation of the concepts and the basic algorithms involved, go to:\n * http://www.replaygain.org/\n */\n\n/*\n * Here's the deal. Call\n *\n * InitGainAnalysis ( long samplefreq );\n *\n * to initialize everything. Call\n *\n * AnalyzeSamples ( var Float_t* left_samples,\n * var Float_t* right_samples,\n * size_t num_samples,\n * int num_channels );\n *\n * as many times as you want, with as many or as few samples as you want.\n * If mono, pass the sample buffer in through left_samples, leave\n * right_samples NULL, and make sure num_channels = 1.\n *\n * GetTitleGain()\n *\n * will return the recommended dB level change for all samples analyzed\n * SINCE THE LAST TIME you called GetTitleGain() OR InitGainAnalysis().\n *\n * GetAlbumGain()\n *\n * will return the recommended dB level change for all samples analyzed\n * since InitGainAnalysis() was called and finalized with GetTitleGain().\n *\n * Pseudo-code to process an album:\n *\n * Float_t l_samples [4096];\n * Float_t r_samples [4096];\n * size_t num_samples;\n * unsigned int num_songs;\n * unsigned int i;\n *\n * InitGainAnalysis ( 44100 );\n * for ( i = 1; i <= num_songs; i++ ) {\n * while ( ( num_samples = getSongSamples ( song[i], left_samples, right_samples ) ) > 0 )\n * AnalyzeSamples ( left_samples, right_samples, num_samples, 2 );\n * fprintf (\"Recommended dB change for song %2d: %+6.2 dB\\n\", i, GetTitleGain() );\n * }\n * fprintf (\"Recommended dB change for whole album: %+6.2 dB\\n\", GetAlbumGain() );\n */\n\n/*\n * So here's the main source of potential code confusion:\n *\n * The filters applied to the incoming samples are IIR filters,\n * meaning they rely on up to number of previous samples\n * AND up to number of previous filtered samples.\n *\n * I set up the AnalyzeSamples routine to minimize memory usage and interface\n * complexity. The speed isn't compromised too much (I don't think), but the\n * internal complexity is higher than it should be for such a relatively\n * simple routine.\n *\n * Optimization/clarity suggestions are welcome.\n */\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\n/**\n * Table entries per dB\n */\nGainAnalysis.STEPS_per_dB = 100.;\n/**\n * Table entries for 0...MAX_dB (normal max. values are 70...80 dB)\n */\nGainAnalysis.MAX_dB = 120.;\nGainAnalysis.GAIN_NOT_ENOUGH_SAMPLES = -24601;\nGainAnalysis.GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis.GAIN_ANALYSIS_OK = 1;\nGainAnalysis.INIT_GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis.INIT_GAIN_ANALYSIS_OK = 1;\n\nGainAnalysis.YULE_ORDER = 10;\nGainAnalysis.MAX_ORDER = GainAnalysis.YULE_ORDER;\n\nGainAnalysis.MAX_SAMP_FREQ = 48000;\nGainAnalysis.RMS_WINDOW_TIME_NUMERATOR = 1;\nGainAnalysis.RMS_WINDOW_TIME_DENOMINATOR = 20;\nGainAnalysis.MAX_SAMPLES_PER_WINDOW = ((GainAnalysis.MAX_SAMP_FREQ * GainAnalysis.RMS_WINDOW_TIME_NUMERATOR) / GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR + 1);\n\nfunction GainAnalysis() {\n /**\n * calibration value for 89dB\n */\n var PINK_REF = 64.82;\n\n var YULE_ORDER = GainAnalysis.YULE_ORDER;\n /**\n * percentile which is louder than the proposed level\n */\n var RMS_PERCENTILE = 0.95;\n /**\n * maximum allowed sample frequency [Hz]\n */\n var MAX_SAMP_FREQ = GainAnalysis.MAX_SAMP_FREQ;\n var RMS_WINDOW_TIME_NUMERATOR = GainAnalysis.RMS_WINDOW_TIME_NUMERATOR;\n /**\n * numerator / denominator = time slice size [s]\n */\n var RMS_WINDOW_TIME_DENOMINATOR = GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR;\n /**\n * max. Samples per Time slice\n */\n var MAX_SAMPLES_PER_WINDOW = GainAnalysis.MAX_SAMPLES_PER_WINDOW;\n\n\n var ABYule = [\n [0.03857599435200, -3.84664617118067, -0.02160367184185,\n 7.81501653005538, -0.00123395316851, -11.34170355132042,\n -0.00009291677959, 13.05504219327545, -0.01655260341619,\n -12.28759895145294, 0.02161526843274, 9.48293806319790,\n -0.02074045215285, -5.87257861775999, 0.00594298065125,\n 2.75465861874613, 0.00306428023191, -0.86984376593551,\n 0.00012025322027, 0.13919314567432, 0.00288463683916],\n [0.05418656406430, -3.47845948550071, -0.02911007808948,\n 6.36317777566148, -0.00848709379851, -8.54751527471874,\n -0.00851165645469, 9.47693607801280, -0.00834990904936,\n -8.81498681370155, 0.02245293253339, 6.85401540936998,\n -0.02596338512915, -4.39470996079559, 0.01624864962975,\n 2.19611684890774, -0.00240879051584, -0.75104302451432,\n 0.00674613682247, 0.13149317958808, -0.00187763777362],\n [0.15457299681924, -2.37898834973084, -0.09331049056315,\n 2.84868151156327, -0.06247880153653, -2.64577170229825,\n 0.02163541888798, 2.23697657451713, -0.05588393329856,\n -1.67148153367602, 0.04781476674921, 1.00595954808547,\n 0.00222312597743, -0.45953458054983, 0.03174092540049,\n 0.16378164858596, -0.01390589421898, -0.05032077717131,\n 0.00651420667831, 0.02347897407020, -0.00881362733839],\n [0.30296907319327, -1.61273165137247, -0.22613988682123,\n 1.07977492259970, -0.08587323730772, -0.25656257754070,\n 0.03282930172664, -0.16276719120440, -0.00915702933434,\n -0.22638893773906, -0.02364141202522, 0.39120800788284,\n -0.00584456039913, -0.22138138954925, 0.06276101321749,\n 0.04500235387352, -0.00000828086748, 0.02005851806501,\n 0.00205861885564, 0.00302439095741, -0.02950134983287],\n [0.33642304856132, -1.49858979367799, -0.25572241425570,\n 0.87350271418188, -0.11828570177555, 0.12205022308084,\n 0.11921148675203, -0.80774944671438, -0.07834489609479,\n 0.47854794562326, -0.00469977914380, -0.12453458140019,\n -0.00589500224440, -0.04067510197014, 0.05724228140351,\n 0.08333755284107, 0.00832043980773, -0.04237348025746,\n -0.01635381384540, 0.02977207319925, -0.01760176568150],\n [0.44915256608450, -0.62820619233671, -0.14351757464547,\n 0.29661783706366, -0.22784394429749, -0.37256372942400,\n -0.01419140100551, 0.00213767857124, 0.04078262797139,\n -0.42029820170918, -0.12398163381748, 0.22199650564824,\n 0.04097565135648, 0.00613424350682, 0.10478503600251,\n 0.06747620744683, -0.01863887810927, 0.05784820375801,\n -0.03193428438915, 0.03222754072173, 0.00541907748707],\n [0.56619470757641, -1.04800335126349, -0.75464456939302,\n 0.29156311971249, 0.16242137742230, -0.26806001042947,\n 0.16744243493672, 0.00819999645858, -0.18901604199609,\n 0.45054734505008, 0.30931782841830, -0.33032403314006,\n -0.27562961986224, 0.06739368333110, 0.00647310677246,\n -0.04784254229033, 0.08647503780351, 0.01639907836189,\n -0.03788984554840, 0.01807364323573, -0.00588215443421],\n [0.58100494960553, -0.51035327095184, -0.53174909058578,\n -0.31863563325245, -0.14289799034253, -0.20256413484477,\n 0.17520704835522, 0.14728154134330, 0.02377945217615,\n 0.38952639978999, 0.15558449135573, -0.23313271880868,\n -0.25344790059353, -0.05246019024463, 0.01628462406333,\n -0.02505961724053, 0.06920467763959, 0.02442357316099,\n -0.03721611395801, 0.01818801111503, -0.00749618797172],\n [0.53648789255105, -0.25049871956020, -0.42163034350696,\n -0.43193942311114, -0.00275953611929, -0.03424681017675,\n 0.04267842219415, -0.04678328784242, -0.10214864179676,\n 0.26408300200955, 0.14590772289388, 0.15113130533216,\n -0.02459864859345, -0.17556493366449, -0.11202315195388,\n -0.18823009262115, -0.04060034127000, 0.05477720428674,\n 0.04788665548180, 0.04704409688120, -0.02217936801134]];\n\n var ABButter = [\n [0.98621192462708, -1.97223372919527, -1.97242384925416,\n 0.97261396931306, 0.98621192462708],\n [0.98500175787242, -1.96977855582618, -1.97000351574484,\n 0.97022847566350, 0.98500175787242],\n [0.97938932735214, -1.95835380975398, -1.95877865470428,\n 0.95920349965459, 0.97938932735214],\n [0.97531843204928, -1.95002759149878, -1.95063686409857,\n 0.95124613669835, 0.97531843204928],\n [0.97316523498161, -1.94561023566527, -1.94633046996323,\n 0.94705070426118, 0.97316523498161],\n [0.96454515552826, -1.92783286977036, -1.92909031105652,\n 0.93034775234268, 0.96454515552826],\n [0.96009142950541, -1.91858953033784, -1.92018285901082,\n 0.92177618768381, 0.96009142950541],\n [0.95856916599601, -1.91542108074780, -1.91713833199203,\n 0.91885558323625, 0.95856916599601],\n [0.94597685600279, -1.88903307939452, -1.89195371200558,\n 0.89487434461664, 0.94597685600279]];\n\n\n /**\n * When calling this procedure, make sure that ip[-order] and op[-order]\n * point to real data\n */\n //private void filterYule(final float[] input, int inputPos, float[] output,\n //int outputPos, int nSamples, final float[] kernel) {\n function filterYule(input, inputPos, output, outputPos, nSamples, kernel) {\n\n while ((nSamples--) != 0) {\n /* 1e-10 is a hack to avoid slowdown because of denormals */\n output[outputPos] = 1e-10 + input[inputPos + 0] * kernel[0]\n - output[outputPos - 1] * kernel[1] + input[inputPos - 1]\n * kernel[2] - output[outputPos - 2] * kernel[3]\n + input[inputPos - 2] * kernel[4] - output[outputPos - 3]\n * kernel[5] + input[inputPos - 3] * kernel[6]\n - output[outputPos - 4] * kernel[7] + input[inputPos - 4]\n * kernel[8] - output[outputPos - 5] * kernel[9]\n + input[inputPos - 5] * kernel[10] - output[outputPos - 6]\n * kernel[11] + input[inputPos - 6] * kernel[12]\n - output[outputPos - 7] * kernel[13] + input[inputPos - 7]\n * kernel[14] - output[outputPos - 8] * kernel[15]\n + input[inputPos - 8] * kernel[16] - output[outputPos - 9]\n * kernel[17] + input[inputPos - 9] * kernel[18]\n - output[outputPos - 10] * kernel[19]\n + input[inputPos - 10] * kernel[20];\n ++outputPos;\n ++inputPos;\n }\n }\n\n//private void filterButter(final float[] input, int inputPos,\n// float[] output, int outputPos, int nSamples, final float[] kernel) {\n function filterButter(input, inputPos, output, outputPos, nSamples, kernel) {\n\n while ((nSamples--) != 0) {\n output[outputPos] = input[inputPos + 0] * kernel[0]\n - output[outputPos - 1] * kernel[1] + input[inputPos - 1]\n * kernel[2] - output[outputPos - 2] * kernel[3]\n + input[inputPos - 2] * kernel[4];\n ++outputPos;\n ++inputPos;\n }\n }\n\n /**\n * @return INIT_GAIN_ANALYSIS_OK if successful, INIT_GAIN_ANALYSIS_ERROR if\n * not\n */\n function ResetSampleFrequency(rgData, samplefreq) {\n /* zero out initial values */\n for (var i = 0; i < MAX_ORDER; i++)\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;\n\n switch (0 | (samplefreq)) {\n case 48000:\n rgData.reqindex = 0;\n break;\n case 44100:\n rgData.reqindex = 1;\n break;\n case 32000:\n rgData.reqindex = 2;\n break;\n case 24000:\n rgData.reqindex = 3;\n break;\n case 22050:\n rgData.reqindex = 4;\n break;\n case 16000:\n rgData.reqindex = 5;\n break;\n case 12000:\n rgData.reqindex = 6;\n break;\n case 11025:\n rgData.reqindex = 7;\n break;\n case 8000:\n rgData.reqindex = 8;\n break;\n default:\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n\n rgData.sampleWindow = 0 | ((samplefreq * RMS_WINDOW_TIME_NUMERATOR\n + RMS_WINDOW_TIME_DENOMINATOR - 1) / RMS_WINDOW_TIME_DENOMINATOR);\n\n rgData.lsum = 0.;\n rgData.rsum = 0.;\n rgData.totsamp = 0;\n\n Arrays.ill(rgData.A, 0);\n\n return INIT_GAIN_ANALYSIS_OK;\n }\n\n this.InitGainAnalysis = function (rgData, samplefreq) {\n if (ResetSampleFrequency(rgData, samplefreq) != INIT_GAIN_ANALYSIS_OK) {\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n\n rgData.linpre = MAX_ORDER;\n rgData.rinpre = MAX_ORDER;\n rgData.lstep = MAX_ORDER;\n rgData.rstep = MAX_ORDER;\n rgData.lout = MAX_ORDER;\n rgData.rout = MAX_ORDER;\n\n Arrays.fill(rgData.B, 0);\n\n return INIT_GAIN_ANALYSIS_OK;\n };\n\n /**\n * square\n */\n function fsqr(d) {\n return d * d;\n }\n\n this.AnalyzeSamples = function (rgData, left_samples, left_samplesPos, right_samples, right_samplesPos, num_samples,\n num_channels) {\n var curleft;\n var curleftBase;\n var curright;\n var currightBase;\n var batchsamples;\n var cursamples;\n var cursamplepos;\n\n if (num_samples == 0)\n return GAIN_ANALYSIS_OK;\n\n cursamplepos = 0;\n batchsamples = num_samples;\n\n switch (num_channels) {\n case 1:\n right_samples = left_samples;\n right_samplesPos = left_samplesPos;\n break;\n case 2:\n break;\n default:\n return GAIN_ANALYSIS_ERROR;\n }\n\n if (num_samples < MAX_ORDER) {\n System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,\n MAX_ORDER, num_samples);\n System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,\n MAX_ORDER, num_samples);\n } else {\n System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,\n MAX_ORDER, MAX_ORDER);\n System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,\n MAX_ORDER, MAX_ORDER);\n }\n\n while (batchsamples > 0) {\n cursamples = batchsamples > rgData.sampleWindow - rgData.totsamp ? rgData.sampleWindow\n - rgData.totsamp\n : batchsamples;\n if (cursamplepos < MAX_ORDER) {\n curleft = rgData.linpre + cursamplepos;\n curleftBase = rgData.linprebuf;\n curright = rgData.rinpre + cursamplepos;\n currightBase = rgData.rinprebuf;\n if (cursamples > MAX_ORDER - cursamplepos)\n cursamples = MAX_ORDER - cursamplepos;\n } else {\n curleft = left_samplesPos + cursamplepos;\n curleftBase = left_samples;\n curright = right_samplesPos + cursamplepos;\n currightBase = right_samples;\n }\n\n filterYule(curleftBase, curleft, rgData.lstepbuf, rgData.lstep\n + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);\n filterYule(currightBase, curright, rgData.rstepbuf, rgData.rstep\n + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);\n\n filterButter(rgData.lstepbuf, rgData.lstep + rgData.totsamp,\n rgData.loutbuf, rgData.lout + rgData.totsamp, cursamples,\n ABButter[rgData.reqindex]);\n filterButter(rgData.rstepbuf, rgData.rstep + rgData.totsamp,\n rgData.routbuf, rgData.rout + rgData.totsamp, cursamples,\n ABButter[rgData.reqindex]);\n\n curleft = rgData.lout + rgData.totsamp;\n /* Get the squared values */\n curleftBase = rgData.loutbuf;\n curright = rgData.rout + rgData.totsamp;\n currightBase = rgData.routbuf;\n\n var i = cursamples % 8;\n while ((i--) != 0) {\n rgData.lsum += fsqr(curleftBase[curleft++]);\n rgData.rsum += fsqr(currightBase[curright++]);\n }\n i = cursamples / 8;\n while ((i--) != 0) {\n rgData.lsum += fsqr(curleftBase[curleft + 0])\n + fsqr(curleftBase[curleft + 1])\n + fsqr(curleftBase[curleft + 2])\n + fsqr(curleftBase[curleft + 3])\n + fsqr(curleftBase[curleft + 4])\n + fsqr(curleftBase[curleft + 5])\n + fsqr(curleftBase[curleft + 6])\n + fsqr(curleftBase[curleft + 7]);\n curleft += 8;\n rgData.rsum += fsqr(currightBase[curright + 0])\n + fsqr(currightBase[curright + 1])\n + fsqr(currightBase[curright + 2])\n + fsqr(currightBase[curright + 3])\n + fsqr(currightBase[curright + 4])\n + fsqr(currightBase[curright + 5])\n + fsqr(currightBase[curright + 6])\n + fsqr(currightBase[curright + 7]);\n curright += 8;\n }\n\n batchsamples -= cursamples;\n cursamplepos += cursamples;\n rgData.totsamp += cursamples;\n if (rgData.totsamp == rgData.sampleWindow) {\n /* Get the Root Mean Square (RMS) for this set of samples */\n var val = GainAnalysis.STEPS_per_dB\n * 10.\n * Math.log10((rgData.lsum + rgData.rsum)\n / rgData.totsamp * 0.5 + 1.e-37);\n var ival = (val <= 0) ? 0 : 0 | val;\n if (ival >= rgData.A.length)\n ival = rgData.A.length - 1;\n rgData.A[ival]++;\n rgData.lsum = rgData.rsum = 0.;\n\n System.arraycopy(rgData.loutbuf, rgData.totsamp,\n rgData.loutbuf, 0, MAX_ORDER);\n System.arraycopy(rgData.routbuf, rgData.totsamp,\n rgData.routbuf, 0, MAX_ORDER);\n System.arraycopy(rgData.lstepbuf, rgData.totsamp,\n rgData.lstepbuf, 0, MAX_ORDER);\n System.arraycopy(rgData.rstepbuf, rgData.totsamp,\n rgData.rstepbuf, 0, MAX_ORDER);\n rgData.totsamp = 0;\n }\n if (rgData.totsamp > rgData.sampleWindow) {\n /*\n * somehow I really screwed up: Error in programming! Contact\n * author about totsamp > sampleWindow\n */\n return GAIN_ANALYSIS_ERROR;\n }\n }\n if (num_samples < MAX_ORDER) {\n System.arraycopy(rgData.linprebuf, num_samples, rgData.linprebuf,\n 0, MAX_ORDER - num_samples);\n System.arraycopy(rgData.rinprebuf, num_samples, rgData.rinprebuf,\n 0, MAX_ORDER - num_samples);\n System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,\n MAX_ORDER - num_samples, num_samples);\n System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,\n MAX_ORDER - num_samples, num_samples);\n } else {\n System.arraycopy(left_samples, left_samplesPos + num_samples\n - MAX_ORDER, rgData.linprebuf, 0, MAX_ORDER);\n System.arraycopy(right_samples, right_samplesPos + num_samples\n - MAX_ORDER, rgData.rinprebuf, 0, MAX_ORDER);\n }\n\n return GAIN_ANALYSIS_OK;\n };\n\n function analyzeResult(Array, len) {\n var i;\n\n var elems = 0;\n for (i = 0; i < len; i++)\n elems += Array[i];\n if (elems == 0)\n return GAIN_NOT_ENOUGH_SAMPLES;\n\n var upper = 0 | Math.ceil(elems * (1. - RMS_PERCENTILE));\n for (i = len; i-- > 0;) {\n if ((upper -= Array[i]) <= 0)\n break;\n }\n\n //return (float) ((float) PINK_REF - (float) i / (float) STEPS_per_dB);\n return (PINK_REF - i / GainAnalysis.STEPS_per_dB);\n }\n\n this.GetTitleGain = function (rgData) {\n var retval = analyzeResult(rgData.A, rgData.A.length);\n\n for (var i = 0; i < rgData.A.length; i++) {\n rgData.B[i] += rgData.A[i];\n rgData.A[i] = 0;\n }\n\n for (var i = 0; i < MAX_ORDER; i++)\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;\n\n rgData.totsamp = 0;\n rgData.lsum = rgData.rsum = 0.;\n return retval;\n }\n\n}\n\nmodule.exports = GainAnalysis;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nfunction Presets() {\n function VBRPresets(qual, comp, compS,\n y, shThreshold, shThresholdS,\n adj, adjShort, lower,\n curve, sens, inter,\n joint, mod, fix) {\n this.vbr_q = qual;\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.expY = y;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.masking_adj = adj;\n this.masking_adj_short = adjShort;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.ath_sensitivity = sens;\n this.interch = inter;\n this.safejoint = joint;\n this.sfb21mod = mod;\n this.msfix = fix;\n }\n\n function ABRPresets(kbps, comp, compS,\n joint, fix, shThreshold,\n shThresholdS, bass, sc,\n mask, lower, curve,\n interCh, sfScale) {\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.safejoint = joint;\n this.nsmsfix = fix;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.nsbass = bass;\n this.scale = sc;\n this.masking_adj = mask;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.interch = interCh;\n this.sfscale = sfScale;\n }\n\n var lame;\n\n this.setModules = function (_lame) {\n lame = _lame;\n };\n\n /**\n *
\n     * Switch mappings for VBR mode VBR_RH\n     *             vbr_q  qcomp_l  qcomp_s  expY  st_lrm   st_s  mask adj_l  adj_s  ath_lower  ath_curve  ath_sens  interChR  safejoint sfb21mod  msfix\n     * 
\n */\n var vbr_old_switch_map = [\n new VBRPresets(0, 9, 9, 0, 5.20, 125.0, -4.2, -6.3, 4.8, 1, 0, 0, 2, 21, 0.97),\n new VBRPresets(1, 9, 9, 0, 5.30, 125.0, -3.6, -5.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n new VBRPresets(2, 9, 9, 0, 5.60, 125.0, -2.2, -3.5, 2.8, 2, 0, 0, 2, 21, 1.49),\n new VBRPresets(3, 9, 9, 1, 5.80, 130.0, -1.8, -2.8, 2.6, 3, -4, 0, 2, 20, 1.64),\n new VBRPresets(4, 9, 9, 1, 6.00, 135.0, -0.7, -1.1, 1.1, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(5, 9, 9, 1, 6.40, 140.0, 0.5, 0.4, -7.5, 4, -12, 0.0002, 0, 0, 1.95),\n new VBRPresets(6, 9, 9, 1, 6.60, 145.0, 0.67, 0.65, -14.7, 6.5, -19, 0.0004, 0, 0, 2.30),\n new VBRPresets(7, 9, 9, 1, 6.60, 145.0, 0.8, 0.75, -19.7, 8, -22, 0.0006, 0, 0, 2.70),\n new VBRPresets(8, 9, 9, 1, 6.60, 145.0, 1.2, 1.15, -27.5, 10, -23, 0.0007, 0, 0, 0),\n new VBRPresets(9, 9, 9, 1, 6.60, 145.0, 1.6, 1.6, -36, 11, -25, 0.0008, 0, 0, 0),\n new VBRPresets(10, 9, 9, 1, 6.60, 145.0, 2.0, 2.0, -36, 12, -25, 0.0008, 0, 0, 0)\n ];\n\n /**\n *
\n     *                 vbr_q  qcomp_l  qcomp_s  expY  st_lrm   st_s  mask adj_l  adj_s  ath_lower  ath_curve  ath_sens  interChR  safejoint sfb21mod  msfix\n     * 
\n */\n var vbr_psy_switch_map = [\n new VBRPresets(0, 9, 9, 0, 4.20, 25.0, -7.0, -4.0, 7.5, 1, 0, 0, 2, 26, 0.97),\n new VBRPresets(1, 9, 9, 0, 4.20, 25.0, -5.6, -3.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n new VBRPresets(2, 9, 9, 0, 4.20, 25.0, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),\n new VBRPresets(3, 9, 9, 1, 4.20, 25.0, -3.4, -1.25, 1.1, 3, -4, 0, 2, 15, 1.64),\n new VBRPresets(4, 9, 9, 1, 4.20, 25.0, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(5, 9, 9, 1, 4.20, 25.0, -1.0, 1.65, -7.7, 4, -12, 0.0002, 0, 0, 1.95),\n new VBRPresets(6, 9, 9, 1, 4.20, 25.0, -0.0, 2.47, -7.7, 6.5, -19, 0.0004, 0, 0, 2),\n new VBRPresets(7, 9, 9, 1, 4.20, 25.0, 0.5, 2.0, -14.5, 8, -22, 0.0006, 0, 0, 2),\n new VBRPresets(8, 9, 9, 1, 4.20, 25.0, 1.0, 2.4, -22.0, 10, -23, 0.0007, 0, 0, 2),\n new VBRPresets(9, 9, 9, 1, 4.20, 25.0, 1.5, 2.95, -30.0, 11, -25, 0.0008, 0, 0, 2),\n new VBRPresets(10, 9, 9, 1, 4.20, 25.0, 2.0, 2.95, -36.0, 12, -30, 0.0008, 0, 0, 2)\n ];\n\n function apply_vbr_preset(gfp, a, enforce) {\n var vbr_preset = gfp.VBR == VbrMode.vbr_rh ? vbr_old_switch_map\n : vbr_psy_switch_map;\n\n var x = gfp.VBR_q_frac;\n var p = vbr_preset[a];\n var q = vbr_preset[a + 1];\n var set = p;\n\n // NOOP(vbr_q);\n // NOOP(quant_comp);\n // NOOP(quant_comp_s);\n // NOOP(expY);\n p.st_lrm = p.st_lrm + x * (q.st_lrm - p.st_lrm);\n // LERP(st_lrm);\n p.st_s = p.st_s + x * (q.st_s - p.st_s);\n // LERP(st_s);\n p.masking_adj = p.masking_adj + x * (q.masking_adj - p.masking_adj);\n // LERP(masking_adj);\n p.masking_adj_short = p.masking_adj_short + x\n * (q.masking_adj_short - p.masking_adj_short);\n // LERP(masking_adj_short);\n p.ath_lower = p.ath_lower + x * (q.ath_lower - p.ath_lower);\n // LERP(ath_lower);\n p.ath_curve = p.ath_curve + x * (q.ath_curve - p.ath_curve);\n // LERP(ath_curve);\n p.ath_sensitivity = p.ath_sensitivity + x\n * (q.ath_sensitivity - p.ath_sensitivity);\n // LERP(ath_sensitivity);\n p.interch = p.interch + x * (q.interch - p.interch);\n // LERP(interch);\n // NOOP(safejoint);\n // NOOP(sfb21mod);\n p.msfix = p.msfix + x * (q.msfix - p.msfix);\n // LERP(msfix);\n\n lame_set_VBR_q(gfp, set.vbr_q);\n\n if (enforce != 0)\n gfp.quant_comp = set.quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0))\n gfp.quant_comp = set.quant_comp;\n // SET_OPTION(quant_comp, set.quant_comp, -1);\n if (enforce != 0)\n gfp.quant_comp_short = set.quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))\n gfp.quant_comp_short = set.quant_comp_s;\n // SET_OPTION(quant_comp_short, set.quant_comp_s, -1);\n if (set.expY != 0) {\n gfp.experimentalY = set.expY != 0;\n }\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n // SET_OPTION(short_threshold_lrm, set.st_lrm, -1);\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n // SET_OPTION(short_threshold_s, set.st_s, -1);\n if (enforce != 0)\n gfp.maskingadjust = set.masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0))\n gfp.maskingadjust = set.masking_adj;\n // SET_OPTION(maskingadjust, set.masking_adj, 0);\n if (enforce != 0)\n gfp.maskingadjust_short = set.masking_adj_short;\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n gfp.maskingadjust_short = set.masking_adj_short;\n // SET_OPTION(maskingadjust_short, set.masking_adj_short, 0);\n if (enforce != 0)\n gfp.ATHlower = -set.ath_lower / 10.0;\n else if (!(Math.abs((-gfp.ATHlower * 10.0) - 0) > 0))\n gfp.ATHlower = -set.ath_lower / 10.0;\n // SET_OPTION(ATHlower, set.ath_lower, 0);\n if (enforce != 0)\n gfp.ATHcurve = set.ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n gfp.ATHcurve = set.ath_curve;\n // SET_OPTION(ATHcurve, set.ath_curve, -1);\n if (enforce != 0)\n gfp.athaa_sensitivity = set.ath_sensitivity;\n else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0))\n gfp.athaa_sensitivity = set.ath_sensitivity;\n // SET_OPTION(athaa_sensitivity, set.ath_sensitivity, 0);\n if (set.interch > 0) {\n if (enforce != 0)\n gfp.interChRatio = set.interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0))\n gfp.interChRatio = set.interch;\n // SET_OPTION(interChRatio, set.interch, -1);\n }\n\n /* parameters for which there is no proper set/get interface */\n if (set.safejoint > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | set.safejoint;\n }\n if (set.sfb21mod > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | (set.sfb21mod << 20);\n }\n if (enforce != 0)\n gfp.msfix = set.msfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0))\n gfp.msfix = set.msfix;\n // SET_OPTION(msfix, set.msfix, -1);\n\n if (enforce == 0) {\n gfp.VBR_q = a;\n gfp.VBR_q_frac = x;\n }\n }\n\n /**\n *
\n     *  Switch mappings for ABR mode\n     *\n     *              kbps  quant q_s safejoint nsmsfix st_lrm  st_s  ns-bass scale   msk ath_lwr ath_curve  interch , sfscale\n     * 
\n */\n var abr_switch_map = [\n new ABRPresets(8, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -30.0, 11, 0.0012, 1), /* 8, impossible to use in stereo */\n new ABRPresets(16, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -25.0, 11, 0.0010, 1), /* 16 */\n new ABRPresets(24, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -20.0, 11, 0.0010, 1), /* 24 */\n new ABRPresets(32, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -15.0, 11, 0.0010, 1), /* 32 */\n new ABRPresets(40, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /* 40 */\n new ABRPresets(48, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /* 48 */\n new ABRPresets(56, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -6.0, 11, 0.0008, 1), /* 56 */\n new ABRPresets(64, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -2.0, 11, 0.0008, 1), /* 64 */\n new ABRPresets(80, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, .0, 8, 0.0007, 1), /* 80 */\n new ABRPresets(96, 9, 9, 0, 2.50, 6.60, 145, 0, 0.95, 0, 1.0, 5.5, 0.0006, 1), /* 96 */\n new ABRPresets(112, 9, 9, 0, 2.25, 6.60, 145, 0, 0.95, 0, 2.0, 4.5, 0.0005, 1), /* 112 */\n new ABRPresets(128, 9, 9, 0, 1.95, 6.40, 140, 0, 0.95, 0, 3.0, 4, 0.0002, 1), /* 128 */\n new ABRPresets(160, 9, 9, 1, 1.79, 6.00, 135, 0, 0.95, -2, 5.0, 3.5, 0, 1), /* 160 */\n new ABRPresets(192, 9, 9, 1, 1.49, 5.60, 125, 0, 0.97, -4, 7.0, 3, 0, 0), /* 192 */\n new ABRPresets(224, 9, 9, 1, 1.25, 5.20, 125, 0, 0.98, -6, 9.0, 2, 0, 0), /* 224 */\n new ABRPresets(256, 9, 9, 1, 0.97, 5.20, 125, 0, 1.00, -8, 10.0, 1, 0, 0), /* 256 */\n new ABRPresets(320, 9, 9, 1, 0.90, 5.20, 125, 0, 1.00, -10, 12.0, 0, 0, 0) /* 320 */\n ];\n\n function apply_abr_preset(gfp, preset, enforce) {\n /* Variables for the ABR stuff */\n var actual_bitrate = preset;\n\n var r = lame.nearestBitrateFullIndex(preset);\n\n gfp.VBR = VbrMode.vbr_abr;\n gfp.VBR_mean_bitrate_kbps = actual_bitrate;\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n if (gfp.VBR_mean_bitrate_kbps > 320) {\n gfp.disable_reservoir = true;\n }\n\n /* parameters for which there is no proper set/get interface */\n if (abr_switch_map[r].safejoint > 0)\n gfp.exp_nspsytune = gfp.exp_nspsytune | 2;\n /* safejoint */\n\n if (abr_switch_map[r].sfscale > 0) {\n gfp.internal_flags.noise_shaping = 2;\n }\n /* ns-bass tweaks */\n if (Math.abs(abr_switch_map[r].nsbass) > 0) {\n var k = (int)(abr_switch_map[r].nsbass * 4);\n if (k < 0)\n k += 64;\n gfp.exp_nspsytune = gfp.exp_nspsytune | (k << 2);\n }\n\n if (enforce != 0)\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0))\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n // SET_OPTION(quant_comp, abr_switch_map[r].quant_comp, -1);\n if (enforce != 0)\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n // SET_OPTION(quant_comp_short, abr_switch_map[r].quant_comp_s, -1);\n\n if (enforce != 0)\n gfp.msfix = abr_switch_map[r].nsmsfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0))\n gfp.msfix = abr_switch_map[r].nsmsfix;\n // SET_OPTION(msfix, abr_switch_map[r].nsmsfix, -1);\n\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n // SET_OPTION(short_threshold_lrm, abr_switch_map[r].st_lrm, -1);\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n // SET_OPTION(short_threshold_s, abr_switch_map[r].st_s, -1);\n\n /*\n * ABR seems to have big problems with clipping, especially at low\n * bitrates\n */\n /*\n * so we compensate for that here by using a scale value depending on\n * bitrate\n */\n if (enforce != 0)\n gfp.scale = abr_switch_map[r].scale;\n else if (!(Math.abs(gfp.scale - -1) > 0))\n gfp.scale = abr_switch_map[r].scale;\n // SET_OPTION(scale, abr_switch_map[r].scale, -1);\n\n if (enforce != 0)\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0))\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n // SET_OPTION(maskingadjust, abr_switch_map[r].masking_adj, 0);\n if (abr_switch_map[r].masking_adj > 0) {\n if (enforce != 0)\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);\n // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n // .9, 0);\n } else {\n if (enforce != 0)\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);\n // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n // 1.1, 0);\n }\n\n if (enforce != 0)\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n else if (!(Math.abs((-gfp.ATHlower * 10.) - 0) > 0))\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n // SET_OPTION(ATHlower, abr_switch_map[r].ath_lower, 0);\n if (enforce != 0)\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n // SET_OPTION(ATHcurve, abr_switch_map[r].ath_curve, -1);\n\n if (enforce != 0)\n gfp.interChRatio = abr_switch_map[r].interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0))\n gfp.interChRatio = abr_switch_map[r].interch;\n // SET_OPTION(interChRatio, abr_switch_map[r].interch, -1);\n\n return preset;\n }\n\n this.apply_preset = function(gfp, preset, enforce) {\n /* translate legacy presets */\n switch (preset) {\n case Lame.R3MIX:\n {\n preset = Lame.V3;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.MEDIUM:\n {\n preset = Lame.V4;\n gfp.VBR = VbrMode.vbr_rh;\n break;\n }\n case Lame.MEDIUM_FAST:\n {\n preset = Lame.V4;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.STANDARD:\n {\n preset = Lame.V2;\n gfp.VBR = VbrMode.vbr_rh;\n break;\n }\n case Lame.STANDARD_FAST:\n {\n preset = Lame.V2;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.EXTREME:\n {\n preset = Lame.V0;\n gfp.VBR = VbrMode.vbr_rh;\n break;\n }\n case Lame.EXTREME_FAST:\n {\n preset = Lame.V0;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.INSANE:\n {\n preset = 320;\n gfp.preset = preset;\n apply_abr_preset(gfp, preset, enforce);\n gfp.VBR = VbrMode.vbr_off;\n return preset;\n }\n }\n\n gfp.preset = preset;\n {\n switch (preset) {\n case Lame.V9:\n apply_vbr_preset(gfp, 9, enforce);\n return preset;\n case Lame.V8:\n apply_vbr_preset(gfp, 8, enforce);\n return preset;\n case Lame.V7:\n apply_vbr_preset(gfp, 7, enforce);\n return preset;\n case Lame.V6:\n apply_vbr_preset(gfp, 6, enforce);\n return preset;\n case Lame.V5:\n apply_vbr_preset(gfp, 5, enforce);\n return preset;\n case Lame.V4:\n apply_vbr_preset(gfp, 4, enforce);\n return preset;\n case Lame.V3:\n apply_vbr_preset(gfp, 3, enforce);\n return preset;\n case Lame.V2:\n apply_vbr_preset(gfp, 2, enforce);\n return preset;\n case Lame.V1:\n apply_vbr_preset(gfp, 1, enforce);\n return preset;\n case Lame.V0:\n apply_vbr_preset(gfp, 0, enforce);\n return preset;\n default:\n break;\n }\n }\n if (8 <= preset && preset <= 320) {\n return apply_abr_preset(gfp, preset, enforce);\n }\n\n /* no corresponding preset found */\n gfp.preset = 0;\n return preset;\n }\n\n // Rest from getset.c:\n\n /**\n * VBR quality level.
\n * 0 = highest
\n * 9 = lowest\n */\n function lame_set_VBR_q(gfp, VBR_q) {\n var ret = 0;\n\n if (0 > VBR_q) {\n /* Unknown VBR quality level! */\n ret = -1;\n VBR_q = 0;\n }\n if (9 < VBR_q) {\n ret = -1;\n VBR_q = 9;\n }\n\n gfp.VBR_q = VBR_q;\n gfp.VBR_q_frac = 0;\n return ret;\n }\n\n}\n\nmodule.exports = Presets;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.rooms.length > 0)?_c('chat-window',{attrs:{\"current-user-id\":_vm.currentUserId,\"rooms\":_vm.rooms,\"messagesLoaded\":_vm.messagesLoaded,\"loading-rooms\":false,\"rooms-loaded\":true,\"messages\":_vm.messages,\"show-audio\":false,\"show-reaction-emojis\":false,\"show-add-room\":false,\"show-files\":false,\"text-formatting\":false},on:{\"send-message\":_vm.sendMessage,\"fetch-messages\":_vm.changeRoom,\"open-file\":_vm.openFile},scopedSlots:_vm._u([{key:\"message\",fn:function(ref){\nvar message = ref.message;\nreturn [_c('div',{staticClass:\"msg\",class:{'left-msg': _vm.getUID() != message.senderId, 'right-msg': _vm.getUID() == message.senderId}},[_c('div',{staticClass:\"msg-img\",style:((\"background-image: url(\" + (message.avatar) + \")\"))}),_c('div',{staticClass:\"msg-bubble\"},[_c('div',{staticClass:\"msg-info\"},[_c('div',{staticClass:\"msg-info-name\"},[_vm._v(_vm._s(message.senderId.split(\"#\")[1]))]),_c('div',{staticClass:\"msg-info-time\"},[_vm._v(_vm._s(message.date))])]),_c('div',{staticClass:\"msg-text\"},[_vm._v(\" \"+_vm._s(message.content)+\" \")]),(message.file)?_c('div',[_vm._v(\" Attached file: \"),_c('a',{attrs:{\"href\":message.file.url,\"download\":message.file.name}},[_vm._v(_vm._s(message.file.name))])]):_vm._e()])])]}}],null,false,18375039)}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chat.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chat.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./chat.vue?vue&type=template&id=78a525f0&\"\nimport script from \"./chat.vue?vue&type=script&lang=js&\"\nexport * from \"./chat.vue?vue&type=script&lang=js&\"\nimport style0 from \"./chat.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar MeanBits = require('./MeanBits.js');\nvar Encoder = require('./Encoder.js');\nvar L3Side = require('./L3Side.js');\nvar LameInternalFlags = require('./LameInternalFlags.js');\n\nfunction CBRNewIterationLoop(_quantize) {\n var quantize = _quantize;\n this.quantize = quantize;\n\tthis.iteration_loop = function(gfp, pe, ms_ener_ratio, ratio) {\n\t\tvar gfc = gfp.internal_flags;\n var l3_xmin = new_float(L3Side.SFBMAX);\n\t\tvar xrpow = new_float(576);\n\t\tvar targ_bits = new_int(2);\n\t\tvar mean_bits = 0, max_bits;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tvar mb = new MeanBits(mean_bits);\n\t\tthis.quantize.rv.ResvFrameBegin(gfp, mb);\n\t\tmean_bits = mb.bits;\n\n\t\t/* quantize! */\n\t\tfor (var gr = 0; gr < gfc.mode_gr; gr++) {\n\n\t\t\t/*\n\t\t\t * calculate needed bits\n\t\t\t */\n\t\t\tmax_bits = this.quantize.qupvt.on_pe(gfp, pe, targ_bits, mean_bits,\n\t\t\t\t\tgr, gr);\n\n\t\t\tif (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n\t\t\t\tthis.quantize.ms_convert(gfc.l3_side, gr);\n\t\t\t\tthis.quantize.qupvt.reduce_side(targ_bits, ms_ener_ratio[gr],\n\t\t\t\t\t\tmean_bits, max_bits);\n\t\t\t}\n\n\t\t\tfor (var ch = 0; ch < gfc.channels_out; ch++) {\n\t\t\t\tvar adjust, masking_lower_db;\n\t\t\t\tvar cod_info = l3_side.tt[gr][ch];\n\n\t\t\t\tif (cod_info.block_type != Encoder.SHORT_TYPE) {\n\t\t\t\t\t// NORM, START or STOP type\n\t\t\t\t\tadjust = 0;\n\t\t\t\t\tmasking_lower_db = gfc.PSY.mask_adjust - adjust;\n\t\t\t\t} else {\n\t\t\t\t\tadjust = 0;\n\t\t\t\t\tmasking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n\t\t\t\t}\n\t\t\t\tgfc.masking_lower = Math.pow(10.0,\n\t\t\t\t\t\tmasking_lower_db * 0.1);\n\n\t\t\t\t/*\n\t\t\t\t * init_outer_loop sets up cod_info, scalefac and xrpow\n\t\t\t\t */\n\t\t\t\tthis.quantize.init_outer_loop(gfc, cod_info);\n\t\t\t\tif (this.quantize.init_xrpow(gfc, cod_info, xrpow)) {\n\t\t\t\t\t/*\n\t\t\t\t\t * xr contains energy we will have to encode calculate the\n\t\t\t\t\t * masking abilities find some good quantization in\n\t\t\t\t\t * outer_loop\n\t\t\t\t\t */\n\t\t\t\t\tthis.quantize.qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,\n\t\t\t\t\t\t\tl3_xmin);\n\t\t\t\t\tthis.quantize.outer_loop(gfp, cod_info, l3_xmin, xrpow, ch,\n\t\t\t\t\t\t\ttarg_bits[ch]);\n\t\t\t\t}\n\n\t\t\t\tthis.quantize.iteration_finish_one(gfc, gr, ch);\n\t\t\t\tassert (cod_info.part2_3_length <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n\t\t\t\tassert (cod_info.part2_3_length <= targ_bits[ch]);\n\t\t\t} /* for ch */\n\t\t} /* for gr */\n\n\t\tthis.quantize.rv.ResvFrameEnd(gfc, mean_bits);\n\t}\n}\nmodule.exports = CBRNewIterationLoop;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\n/**\n * ENCDELAY The encoder delay.\n *\n * Minimum allowed is MDCTDELAY (see below)\n *\n * The first 96 samples will be attenuated, so using a value less than 96\n * will result in corrupt data for the first 96-ENCDELAY samples.\n *\n * suggested: 576 set to 1160 to sync with FhG.\n */\nEncoder.ENCDELAY = 576;\n/**\n * make sure there is at least one complete frame after the last frame\n * containing real data\n *\n * Using a value of 288 would be sufficient for a a very sophisticated\n * decoder that can decode granule-by-granule instead of frame by frame. But\n * lets not assume this, and assume the decoder will not decode frame N\n * unless it also has data for frame N+1\n */\nEncoder.POSTDELAY = 1152;\n\n/**\n * delay of the MDCT used in mdct.c original ISO routines had a delay of\n * 528! Takehiro's routines:\n */\nEncoder.MDCTDELAY = 48;\nEncoder.FFTOFFSET = (224 + Encoder.MDCTDELAY);\n\n/**\n * Most decoders, including the one we use, have a delay of 528 samples.\n */\nEncoder.DECDELAY = 528;\n\n/**\n * number of subbands\n */\nEncoder.SBLIMIT = 32;\n\n/**\n * parition bands bands\n */\nEncoder.CBANDS = 64;\n\n/**\n * number of critical bands/scale factor bands where masking is computed\n */\nEncoder.SBPSY_l = 21;\nEncoder.SBPSY_s = 12;\n\n/**\n * total number of scalefactor bands encoded\n */\nEncoder.SBMAX_l = 22;\nEncoder.SBMAX_s = 13;\nEncoder.PSFB21 = 6;\nEncoder.PSFB12 = 6;\n\n/**\n * FFT sizes\n */\nEncoder.BLKSIZE = 1024;\nEncoder.HBLKSIZE = (Encoder.BLKSIZE / 2 + 1);\nEncoder.BLKSIZE_s = 256;\nEncoder.HBLKSIZE_s = (Encoder.BLKSIZE_s / 2 + 1);\n\nEncoder.NORM_TYPE = 0;\nEncoder.START_TYPE = 1;\nEncoder.SHORT_TYPE = 2;\nEncoder.STOP_TYPE = 3;\n\n/**\n *
\n * Mode Extention:\n * When we are in stereo mode, there are 4 possible methods to store these\n * two channels. The stereo modes -m? are using a subset of them.\n *\n *  -ms: MPG_MD_LR_LR\n *  -mj: MPG_MD_LR_LR and MPG_MD_MS_LR\n *  -mf: MPG_MD_MS_LR\n *  -mi: all\n * 
\n */\nEncoder.MPG_MD_LR_LR = 0;\nEncoder.MPG_MD_LR_I = 1;\nEncoder.MPG_MD_MS_LR = 2;\nEncoder.MPG_MD_MS_I = 3;\n\nEncoder.fircoef = [-0.0207887 * 5, -0.0378413 * 5,\n -0.0432472 * 5, -0.031183 * 5, 7.79609e-18 * 5, 0.0467745 * 5,\n 0.10091 * 5, 0.151365 * 5, 0.187098 * 5];\n\nfunction Encoder() {\n var NewMDCT = require('./NewMDCT.js');\n var III_psy_ratio = require('./III_psy_ratio.js');\n\n var FFTOFFSET = Encoder.FFTOFFSET;\n var MPG_MD_MS_LR = Encoder.MPG_MD_MS_LR;\n //BitStream bs;\n //PsyModel psy;\n //VBRTag vbr;\n //QuantizePVT qupvt;\n var bs = null;\n this.psy = null;\n var psy = null;\n var vbr = null;\n var qupvt = null;\n\n //public final void setModules(BitStream bs, PsyModel psy, QuantizePVT qupvt,\n // VBRTag vbr) {\n this.setModules = function (_bs, _psy, _qupvt, _vbr) {\n bs = _bs;\n this.psy = _psy;\n psy = _psy;\n vbr = _vbr;\n qupvt = _qupvt;\n };\n\n var newMDCT = new NewMDCT();\n\n /***********************************************************************\n *\n * encoder and decoder delays\n *\n ***********************************************************************/\n\n /**\n *
\n     * layer III enc->dec delay:  1056 (1057?)   (observed)\n     * layer  II enc->dec delay:   480  (481?)   (observed)\n     *\n     * polyphase 256-16             (dec or enc)        = 240\n     * mdct      256+32  (9*32)     (dec or enc)        = 288\n     * total:    512+16\n     *\n     * My guess is that delay of polyphase filterbank is actualy 240.5\n     * (there are technical reasons for this, see postings in mp3encoder).\n     * So total Encode+Decode delay = ENCDELAY + 528 + 1\n     * 
\n */\n\n\n /**\n * auto-adjust of ATH, useful for low volume Gabriel Bouvigne 3 feb 2001\n *\n * modifies some values in gfp.internal_flags.ATH (gfc.ATH)\n */\n//private void adjust_ATH(final LameInternalFlags gfc) {\n function adjust_ATH(gfc) {\n var gr2_max, max_pow;\n\n if (gfc.ATH.useAdjust == 0) {\n gfc.ATH.adjust = 1.0;\n /* no adjustment */\n return;\n }\n\n /* jd - 2001 mar 12, 27, jun 30 */\n /* loudness based on equal loudness curve; */\n /* use granule with maximum combined loudness */\n max_pow = gfc.loudness_sq[0][0];\n gr2_max = gfc.loudness_sq[1][0];\n if (gfc.channels_out == 2) {\n max_pow += gfc.loudness_sq[0][1];\n gr2_max += gfc.loudness_sq[1][1];\n } else {\n max_pow += max_pow;\n gr2_max += gr2_max;\n }\n if (gfc.mode_gr == 2) {\n max_pow = Math.max(max_pow, gr2_max);\n }\n max_pow *= 0.5;\n /* max_pow approaches 1.0 for full band noise */\n\n /* jd - 2001 mar 31, jun 30 */\n /* user tuning of ATH adjustment region */\n max_pow *= gfc.ATH.aaSensitivityP;\n\n /*\n * adjust ATH depending on range of maximum value\n */\n\n /* jd - 2001 feb27, mar12,20, jun30, jul22 */\n /* continuous curves based on approximation */\n /* to GB's original values. */\n /* For an increase in approximate loudness, */\n /* set ATH adjust to adjust_limit immediately */\n /* after a delay of one frame. */\n /* For a loudness decrease, reduce ATH adjust */\n /* towards adjust_limit gradually. */\n /* max_pow is a loudness squared or a power. */\n if (max_pow > 0.03125) { /* ((1 - 0.000625)/ 31.98) from curve below */\n if (gfc.ATH.adjust >= 1.0) {\n gfc.ATH.adjust = 1.0;\n } else {\n /* preceding frame has lower ATH adjust; */\n /* ascend only to the preceding adjust_limit */\n /* in case there is leading low volume */\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n gfc.ATH.adjustLimit = 1.0;\n } else { /* adjustment curve */\n /* about 32 dB maximum adjust (0.000625) */\n var adj_lim_new = 31.98 * max_pow + 0.000625;\n if (gfc.ATH.adjust >= adj_lim_new) { /* descend gradually */\n gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;\n if (gfc.ATH.adjust < adj_lim_new) { /* stop descent */\n gfc.ATH.adjust = adj_lim_new;\n }\n } else { /* ascend */\n if (gfc.ATH.adjustLimit >= adj_lim_new) {\n gfc.ATH.adjust = adj_lim_new;\n } else {\n /* preceding frame has lower ATH adjust; */\n /* ascend only to the preceding adjust_limit */\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n }\n gfc.ATH.adjustLimit = adj_lim_new;\n }\n }\n\n /**\n *
\n     *  some simple statistics\n     *\n     *  bitrate index 0: free bitrate . not allowed in VBR mode\n     *  : bitrates, kbps depending on MPEG version\n     *  bitrate index 15: forbidden\n     *\n     *  mode_ext:\n     *  0:  LR\n     *  1:  LR-i\n     *  2:  MS\n     *  3:  MS-i\n     * 
\n */\n function updateStats(gfc) {\n var gr, ch;\n assert(0 <= gfc.bitrate_index && gfc.bitrate_index < 16);\n assert(0 <= gfc.mode_ext && gfc.mode_ext < 4);\n\n /* count bitrate indices */\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;\n gfc.bitrate_stereoMode_Hist[15][4]++;\n\n /* count 'em for every mode extension in case of 2 channel encoding */\n if (gfc.channels_out == 2) {\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;\n gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;\n }\n for (gr = 0; gr < gfc.mode_gr; ++gr) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n var bt = gfc.l3_side.tt[gr][ch].block_type | 0;\n if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0)\n bt = 4;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;\n gfc.bitrate_blockType_Hist[15][bt]++;\n gfc.bitrate_blockType_Hist[15][5]++;\n }\n }\n }\n\n function lame_encode_frame_init(gfp, inbuf) {\n var gfc = gfp.internal_flags;\n\n var ch, gr;\n\n if (gfc.lame_encode_frame_init == 0) {\n /* prime the MDCT/polyphase filterbank with a short block */\n var i, j;\n var primebuff0 = new_float(286 + 1152 + 576);\n var primebuff1 = new_float(286 + 1152 + 576);\n gfc.lame_encode_frame_init = 1;\n for (i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i) {\n if (i < 576 * gfc.mode_gr) {\n primebuff0[i] = 0;\n if (gfc.channels_out == 2)\n primebuff1[i] = 0;\n } else {\n primebuff0[i] = inbuf[0][j];\n if (gfc.channels_out == 2)\n primebuff1[i] = inbuf[1][j];\n ++j;\n }\n }\n /* polyphase filtering / mdct */\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.SHORT_TYPE;\n }\n }\n newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);\n\n /* check FFT will not use a negative starting offset */\n assert(576 >= Encoder.FFTOFFSET);\n /* check if we have enough data for FFT */\n assert(gfc.mf_size >= (Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET));\n /* check if we have enough data for polyphase filterbank */\n assert(gfc.mf_size >= (512 + gfp.framesize - 32));\n }\n\n }\n\n /**\n *
\n     * encodeframe()           Layer 3\n     *\n     * encode a single frame\n     *\n     *\n     *    lame_encode_frame()\n     *\n     *\n     *                           gr 0            gr 1\n     *    inbuf:           |--------------|--------------|--------------|\n     *\n     *\n     *    Polyphase (18 windows, each shifted 32)\n     *    gr 0:\n     *    window1          <----512---.\n     *    window18                 <----512---.\n     *\n     *    gr 1:\n     *    window1                         <----512---.\n     *    window18                                <----512---.\n     *\n     *\n     *\n     *    MDCT output:  |--------------|--------------|--------------|\n     *\n     *    FFT's                    <---------1024---------.\n     *                                             <---------1024-------.\n     *\n     *\n     *\n     *        inbuf = buffer of PCM data size=MP3 framesize\n     *        encoder acts on inbuf[ch][0], but output is delayed by MDCTDELAY\n     *        so the MDCT coefficints are from inbuf[ch][-MDCTDELAY]\n     *\n     *        psy-model FFT has a 1 granule delay, so we feed it data for the\n     *        next granule.\n     *        FFT is centered over granule:  224+576+224\n     *        So FFT starts at:   576-224-MDCTDELAY\n     *\n     *        MPEG2:  FFT ends at:  BLKSIZE+576-224-MDCTDELAY      (1328)\n     *        MPEG1:  FFT ends at:  BLKSIZE+2*576-224-MDCTDELAY    (1904)\n     *\n     *        MPEG2:  polyphase first window:  [0..511]\n     *                          18th window:   [544..1055]          (1056)\n     *        MPEG1:            36th window:   [1120..1631]         (1632)\n     *                data needed:  512+framesize-32\n     *\n     *        A close look newmdct.c shows that the polyphase filterbank\n     *        only uses data from [0..510] for each window.  Perhaps because the window\n     *        used by the filterbank is zero for the last point, so Takehiro's\n     *        code doesn't bother to compute with it.\n     *\n     *        FFT starts at 576-224-MDCTDELAY (304)  = 576-FFTOFFSET\n     *\n     * 
\n */\n\n\n this.lame_encode_mp3_frame = function (gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var mp3count;\n var masking_LR = new_array_n([2, 2]);\n /*\n * LR masking &\n * energy\n */\n masking_LR[0][0] = new III_psy_ratio();\n masking_LR[0][1] = new III_psy_ratio();\n masking_LR[1][0] = new III_psy_ratio();\n masking_LR[1][1] = new III_psy_ratio();\n var masking_MS = new_array_n([2, 2]);\n /* MS masking & energy */\n masking_MS[0][0] = new III_psy_ratio();\n masking_MS[0][1] = new III_psy_ratio();\n masking_MS[1][0] = new III_psy_ratio();\n masking_MS[1][1] = new III_psy_ratio();\n //III_psy_ratio masking[][];\n var masking;\n /* pointer to selected maskings */\n var inbuf = [null, null];\n var gfc = gfp.internal_flags;\n\n var tot_ener = new_float_n([2, 4]);\n var ms_ener_ratio = [.5, .5];\n var pe = [[0., 0.], [0., 0.]];\n var pe_MS = [[0., 0.], [0., 0.]];\n\n//float[][] pe_use;\n var pe_use;\n\n var ch, gr;\n\n inbuf[0] = inbuf_l;\n inbuf[1] = inbuf_r;\n\n if (gfc.lame_encode_frame_init == 0) {\n /* first run? */\n lame_encode_frame_init(gfp, inbuf);\n\n }\n\n /********************** padding *****************************/\n /**\n *
\n         * padding method as described in\n         * \"MPEG-Layer3 / Bitstream Syntax and Decoding\"\n         * by Martin Sieler, Ralph Sperschneider\n         *\n         * note: there is no padding for the very first frame\n         *\n         * Robert Hegemann 2000-06-22\n         * 
\n */\n gfc.padding = 0;\n if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {\n gfc.slot_lag += gfp.out_samplerate;\n gfc.padding = 1;\n }\n\n /****************************************\n * Stage 1: psychoacoustic model *\n ****************************************/\n\n if (gfc.psymodel != 0) {\n /*\n * psychoacoustic model psy model has a 1 granule (576) delay that\n * we must compensate for (mt 6/99).\n */\n var ret;\n var bufp = [null, null];\n /* address of beginning of left & right granule */\n var bufpPos = 0;\n /* address of beginning of left & right granule */\n var blocktype = new_int(2);\n\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n\n for (ch = 0; ch < gfc.channels_out; ch++) {\n bufp[ch] = inbuf[ch];\n bufpPos = 576 + gr * 576 - Encoder.FFTOFFSET;\n }\n if (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) {\n ret = psy.L3psycho_anal_vbr(gfp, bufp, bufpPos, gr,\n masking_LR, masking_MS, pe[gr], pe_MS[gr],\n tot_ener[gr], blocktype);\n } else {\n ret = psy.L3psycho_anal_ns(gfp, bufp, bufpPos, gr,\n masking_LR, masking_MS, pe[gr], pe_MS[gr],\n tot_ener[gr], blocktype);\n }\n if (ret != 0)\n return -4;\n\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];\n if (ms_ener_ratio[gr] > 0)\n ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];\n }\n\n /* block type flags */\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n cod_info.block_type = blocktype[ch];\n cod_info.mixed_block_flag = 0;\n }\n }\n } else {\n /* no psy model */\n for (gr = 0; gr < gfc.mode_gr; gr++)\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.NORM_TYPE;\n gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;\n pe_MS[gr][ch] = pe[gr][ch] = 700;\n }\n }\n\n /* auto-adjust of ATH, useful for low volume */\n adjust_ATH(gfc);\n\n /****************************************\n * Stage 2: MDCT *\n ****************************************/\n\n /* polyphase filtering / mdct */\n newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);\n\n /****************************************\n * Stage 3: MS/LR decision *\n ****************************************/\n\n /* Here will be selected MS or LR coding of the 2 stereo channels */\n gfc.mode_ext = Encoder.MPG_MD_LR_LR;\n\n if (gfp.force_ms) {\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n } else if (gfp.mode == MPEGMode.JOINT_STEREO) {\n /*\n * ms_ratio = is scaled, for historical reasons, to look like a\n * ratio of side_channel / total. 0 = signal is 100% mono .5 = L & R\n * uncorrelated\n */\n\n /**\n *
\n             * [0] and [1] are the results for the two granules in MPEG-1,\n             * in MPEG-2 it's only a faked averaging of the same value\n             * _prev is the value of the last granule of the previous frame\n             * _next is the value of the first granule of the next frame\n             * 
\n */\n\n var sum_pe_MS = 0.;\n var sum_pe_LR = 0.;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n sum_pe_MS += pe_MS[gr][ch];\n sum_pe_LR += pe[gr][ch];\n }\n }\n\n /* based on PE: M/S coding would not use much more bits than L/R */\n if (sum_pe_MS <= 1.00 * sum_pe_LR) {\n\n var gi0 = gfc.l3_side.tt[0];\n var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];\n\n if (gi0[0].block_type == gi0[1].block_type\n && gi1[0].block_type == gi1[1].block_type) {\n\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n }\n }\n }\n\n /* bit and noise allocation */\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n masking = masking_MS;\n /* use MS masking */\n pe_use = pe_MS;\n } else {\n masking = masking_LR;\n /* use LR masking */\n pe_use = pe;\n }\n\n /* copy data for MP3 frame analyzer */\n if (gfp.analysis && gfc.pinfo != null) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];\n gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];\n gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;\n gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];\n System.arraycopy(gfc.l3_side.tt[gr][ch].xr, 0,\n gfc.pinfo.xr[gr][ch], 0, 576);\n /*\n * in psymodel, LR and MS data was stored in pinfo. switch\n * to MS data:\n */\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];\n System.arraycopy(gfc.pinfo.energy[gr][ch + 2], 0,\n gfc.pinfo.energy[gr][ch], 0,\n gfc.pinfo.energy[gr][ch].length);\n }\n }\n }\n }\n\n /****************************************\n * Stage 4: quantization loop *\n ****************************************/\n\n if (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_abr) {\n\n var i;\n var f;\n\n for (i = 0; i < 18; i++)\n gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];\n\n f = 0.0;\n for (gr = 0; gr < gfc.mode_gr; gr++)\n for (ch = 0; ch < gfc.channels_out; ch++)\n f += pe_use[gr][ch];\n gfc.nsPsy.pefirbuf[18] = f;\n\n f = gfc.nsPsy.pefirbuf[9];\n for (i = 0; i < 9; i++)\n f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i])\n * Encoder.fircoef[i];\n\n f = (670 * 5 * gfc.mode_gr * gfc.channels_out) / f;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n pe_use[gr][ch] *= f;\n }\n }\n }\n gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);\n\n /****************************************\n * Stage 5: bitstream formatting *\n ****************************************/\n\n /* write the frame to the bitstream */\n bs.format_bitstream(gfp);\n\n /* copy mp3 bit buffer into array */\n mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);\n\n if (gfp.bWriteVbrTag)\n vbr.addVbrFrame(gfp);\n\n if (gfp.analysis && gfc.pinfo != null) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var j;\n for (j = 0; j < FFTOFFSET; j++)\n gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j\n + gfp.framesize];\n for (j = FFTOFFSET; j < 1600; j++) {\n gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];\n }\n }\n qupvt.set_frame_pinfo(gfp, masking);\n }\n\n updateStats(gfc);\n\n return mp3count;\n }\n}\n\n\nmodule.exports = Encoder;\n","/*\n * bit reservoir source file\n *\n * Copyright (c) 1999-2000 Mark Taylor\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: Reservoir.java,v 1.9 2011/05/24 20:48:06 kenchis Exp $ */\n\n//package mp3;\n\n/**\n * ResvFrameBegin:
\n * Called (repeatedly) at the beginning of a frame. Updates the maximum size of\n * the reservoir, and checks to make sure main_data_begin was set properly by\n * the formatter
\n * Background information:\n * \n * This is the original text from the ISO standard. Because of sooo many bugs\n * and irritations correcting comments are added in brackets []. A '^W' means\n * you should remove the last word.\n * \n *
\n *  1. The following rule can be used to calculate the maximum\n *     number of bits used for one granule [^W frame]:
\n * At the highest possible bitrate of Layer III (320 kbps\n * per stereo signal [^W^W^W], 48 kHz) the frames must be of\n * [^W^W^W are designed to have] constant length, i.e.\n * one buffer [^W^W the frame] length is:
\n * \n * 320 kbps * 1152/48 kHz = 7680 bit = 960 byte\n * \n * This value is used as the maximum buffer per channel [^W^W] at\n * lower bitrates [than 320 kbps]. At 64 kbps mono or 128 kbps\n * stereo the main granule length is 64 kbps * 576/48 kHz = 768 bit\n * [per granule and channel] at 48 kHz sampling frequency.\n * This means that there is a maximum deviation (short time buffer\n * [= reservoir]) of 7680 - 2*2*768 = 4608 bits is allowed at 64 kbps.\n * The actual deviation is equal to the number of bytes [with the\n * meaning of octets] denoted by the main_data_end offset pointer.\n * The actual maximum deviation is (2^9-1)*8 bit = 4088 bits\n * [for MPEG-1 and (2^8-1)*8 bit for MPEG-2, both are hard limits].\n * ... The xchange of buffer bits between the left and right channel\n * is allowed without restrictions [exception: dual channel].\n * Because of the [constructed] constraint on the buffer size\n * main_data_end is always set to 0 in the case of bit_rate_index==14,\n * i.e. data rate 320 kbps per stereo signal [^W^W^W]. In this case\n * all data are allocated between adjacent header [^W sync] words\n * [, i.e. there is no buffering at all].\n *
\n */\n\nvar common = require('./common.js');\nvar assert = common.assert;\n\nfunction Reservoir() {\n\tvar bs;\n\n\tthis.setModules = function(_bs) {\n\t\tbs = _bs;\n\t}\n\n\tthis.ResvFrameBegin = function(gfp, mean_bits) {\n\t\tvar gfc = gfp.internal_flags;\n\t\tvar maxmp3buf;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tvar frameLength = bs.getframebits(gfp);\n\t\tmean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;\n\n\t\t/**\n\t\t *
\n\t\t *  Meaning of the variables:\n\t\t *      resvLimit: (0, 8, ..., 8*255 (MPEG-2), 8*511 (MPEG-1))\n\t\t *          Number of bits can be stored in previous frame(s) due to\n\t\t *          counter size constaints\n\t\t *      maxmp3buf: ( ??? ... 8*1951 (MPEG-1 and 2), 8*2047 (MPEG-2.5))\n\t\t *          Number of bits allowed to encode one frame (you can take 8*511 bit\n\t\t *          from the bit reservoir and at most 8*1440 bit from the current\n\t\t *          frame (320 kbps, 32 kHz), so 8*1951 bit is the largest possible\n\t\t *          value for MPEG-1 and -2)\n\t\t * \n\t\t *          maximum allowed granule/channel size times 4 = 8*2047 bits.,\n\t\t *          so this is the absolute maximum supported by the format.\n\t\t * \n\t\t * \n\t\t *      fullFrameBits:  maximum number of bits available for encoding\n\t\t *                      the current frame.\n\t\t * \n\t\t *      mean_bits:      target number of bits per granule.\n\t\t * \n\t\t *      frameLength:\n\t\t * \n\t\t *      gfc.ResvMax:   maximum allowed reservoir\n\t\t * \n\t\t *      gfc.ResvSize:  current reservoir size\n\t\t * \n\t\t *      l3_side.resvDrain_pre:\n\t\t *         ancillary data to be added to previous frame:\n\t\t *         (only usefull in VBR modes if it is possible to have\n\t\t *         maxmp3buf < fullFrameBits)).  Currently disabled,\n\t\t *         see #define NEW_DRAIN\n\t\t *         2010-02-13: RH now enabled, it seems to be needed for CBR too,\n\t\t *                     as there exists one example, where the FhG decoder\n\t\t *                     can't decode a -b320 CBR file anymore.\n\t\t * \n\t\t *      l3_side.resvDrain_post:\n\t\t *         ancillary data to be added to this frame:\n\t\t * \n\t\t * 
\n\t\t */\n\n\t\t/* main_data_begin has 9 bits in MPEG-1, 8 bits MPEG-2 */\n\t\tvar resvLimit = (8 * 256) * gfc.mode_gr - 8;\n\n\t\t/*\n\t\t * maximum allowed frame size. dont use more than this number of bits,\n\t\t * even if the frame has the space for them:\n\t\t */\n\t\tif (gfp.brate > 320) {\n\t\t\t/* in freeformat the buffer is constant */\n\t\t\tmaxmp3buf = 8 * ((int) ((gfp.brate * 1000)\n\t\t\t\t\t/ (gfp.out_samplerate / 1152) / 8 + .5));\n\t\t} else {\n\t\t\t/*\n\t\t\t * all mp3 decoders should have enough buffer to handle this value:\n\t\t\t * size of a 320kbps 32kHz frame\n\t\t\t */\n\t\t\tmaxmp3buf = 8 * 1440;\n\n\t\t\t/*\n\t\t\t * Bouvigne suggests this more lax interpretation of the ISO doc\n\t\t\t * instead of using 8*960.\n\t\t\t */\n\n\t\t\tif (gfp.strict_ISO) {\n\t\t\t\tmaxmp3buf = 8 * ((int) (320000 / (gfp.out_samplerate / 1152) / 8 + .5));\n\t\t\t}\n\t\t}\n\n\t\tgfc.ResvMax = maxmp3buf - frameLength;\n\t\tif (gfc.ResvMax > resvLimit)\n\t\t\tgfc.ResvMax = resvLimit;\n\t\tif (gfc.ResvMax < 0 || gfp.disable_reservoir)\n\t\t\tgfc.ResvMax = 0;\n\n\t\tvar fullFrameBits = mean_bits.bits * gfc.mode_gr\n\t\t\t\t+ Math.min(gfc.ResvSize, gfc.ResvMax);\n\n\t\tif (fullFrameBits > maxmp3buf)\n\t\t\tfullFrameBits = maxmp3buf;\n\n\t\tassert (0 == gfc.ResvMax % 8);\n\t\tassert (gfc.ResvMax >= 0);\n\n\t\tl3_side.resvDrain_pre = 0;\n\n\t\t// frame analyzer code\n\t\tif (gfc.pinfo != null) {\n\t\t\t/*\n\t\t\t * expected bits per channel per granule [is this also right for\n\t\t\t * mono/stereo, MPEG-1/2 ?]\n\t\t\t */\n\t\t\tgfc.pinfo.mean_bits = mean_bits.bits / 2;\n\t\t\tgfc.pinfo.resvsize = gfc.ResvSize;\n\t\t}\n\n\t\treturn fullFrameBits;\n\t}\n\n\t/**\n\t * returns targ_bits: target number of bits to use for 1 granule
\n\t * extra_bits: amount extra available from reservoir
\n\t * Mark Taylor 4/99\n\t */\n\tthis.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {\n\t\tvar gfc = gfp.internal_flags;\n\t\tvar add_bits;\n var ResvSize = gfc.ResvSize, ResvMax = gfc.ResvMax;\n\n\t\t/* compensate the saved bits used in the 1st granule */\n\t\tif (cbr != 0)\n\t\t\tResvSize += mean_bits;\n\n\t\tif ((gfc.substep_shaping & 1) != 0)\n\t\t\tResvMax *= 0.9;\n\n\t\ttarg_bits.bits = mean_bits;\n\n\t\t/* extra bits if the reservoir is almost full */\n\t\tif (ResvSize * 10 > ResvMax * 9) {\n\t\t\tadd_bits = ResvSize - (ResvMax * 9) / 10;\n\t\t\ttarg_bits.bits += add_bits;\n\t\t\tgfc.substep_shaping |= 0x80;\n\t\t} else {\n\t\t\tadd_bits = 0;\n\t\t\tgfc.substep_shaping &= 0x7f;\n\t\t\t/*\n\t\t\t * build up reservoir. this builds the reservoir a little slower\n\t\t\t * than FhG. It could simple be mean_bits/15, but this was rigged to\n\t\t\t * always produce 100 (the old value) at 128kbs\n\t\t\t */\n\t\t\tif (!gfp.disable_reservoir && 0 == (gfc.substep_shaping & 1))\n\t\t\t\ttarg_bits.bits -= .1 * mean_bits;\n\t\t}\n\n\t\t/* amount from the reservoir we are allowed to use. ISO says 6/10 */\n\t\tvar extra_bits = (ResvSize < (gfc.ResvMax * 6) / 10 ? ResvSize\n\t\t\t\t: (gfc.ResvMax * 6) / 10);\n\t\textra_bits -= add_bits;\n\n\t\tif (extra_bits < 0)\n\t\t\textra_bits = 0;\n\t\treturn extra_bits;\n\t}\n\n\t/**\n\t * Called after a granule's bit allocation. Readjusts the size of the\n\t * reservoir to reflect the granule's usage.\n\t */\n\tthis.ResvAdjust = function(gfc, gi) {\n\t\tgfc.ResvSize -= gi.part2_3_length + gi.part2_length;\n\t}\n\n\t/**\n\t * Called after all granules in a frame have been allocated. Makes sure that\n\t * the reservoir size is within limits, possibly by adding stuffing bits.\n\t */\n\tthis.ResvFrameEnd = function(gfc, mean_bits) {\n\t\tvar over_bits;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tgfc.ResvSize += mean_bits * gfc.mode_gr;\n\t\tvar stuffingBits = 0;\n\t\tl3_side.resvDrain_post = 0;\n\t\tl3_side.resvDrain_pre = 0;\n\n\t\t/* we must be byte aligned */\n\t\tif ((over_bits = gfc.ResvSize % 8) != 0)\n\t\t\tstuffingBits += over_bits;\n\n\t\tover_bits = (gfc.ResvSize - stuffingBits) - gfc.ResvMax;\n\t\tif (over_bits > 0) {\n\t\t\tassert (0 == over_bits % 8);\n\t\t\tassert (over_bits >= 0);\n\t\t\tstuffingBits += over_bits;\n\t\t}\n\n\t\t/*\n\t\t * NOTE: enabling the NEW_DRAIN code fixes some problems with FhG\n\t\t * decoder shipped with MS Windows operating systems. Using this, it is\n\t\t * even possible to use Gabriel's lax buffer consideration again, which\n\t\t * assumes, any decoder should have a buffer large enough for a 320 kbps\n\t\t * frame at 32 kHz sample rate.\n\t\t * \n\t\t * old drain code: lame -b320 BlackBird.wav --. does not play with\n\t\t * GraphEdit.exe using FhG decoder V1.5 Build 50\n\t\t * \n\t\t * new drain code: lame -b320 BlackBird.wav --. plays fine with\n\t\t * GraphEdit.exe using FhG decoder V1.5 Build 50\n\t\t * \n\t\t * Robert Hegemann, 2010-02-13.\n\t\t */\n\t\t/*\n\t\t * drain as many bits as possible into previous frame ancillary data In\n\t\t * particular, in VBR mode ResvMax may have changed, and we have to make\n\t\t * sure main_data_begin does not create a reservoir bigger than ResvMax\n\t\t * mt 4/00\n\t\t */\n\t\t{\n\t\t\tvar mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;\n\t\t\tl3_side.resvDrain_pre += 8 * mdb_bytes;\n\t\t\tstuffingBits -= 8 * mdb_bytes;\n\t\t\tgfc.ResvSize -= 8 * mdb_bytes;\n\t\t\tl3_side.main_data_begin -= mdb_bytes;\n\t\t}\n\t\t/* drain the rest into this frames ancillary data */\n\t\tl3_side.resvDrain_post += stuffingBits;\n\t\tgfc.ResvSize -= stuffingBits;\n\t}\n}\n\nmodule.exports = Reservoir;\n","function HuffCodeTab(len, max, tab, hl) {\n this.xlen = len;\n this.linmax = max;\n this.table = tab;\n this.hlen = hl;\n}\n\nvar Tables = {};\n\n\nTables.t1HB = [\n 1, 1,\n 1, 0\n];\n\nTables.t2HB = [\n 1, 2, 1,\n 3, 1, 1,\n 3, 2, 0\n];\n\nTables.t3HB = [\n 3, 2, 1,\n 1, 1, 1,\n 3, 2, 0\n];\n\nTables.t5HB = [\n 1, 2, 6, 5,\n 3, 1, 4, 4,\n 7, 5, 7, 1,\n 6, 1, 1, 0\n];\n\nTables.t6HB = [\n 7, 3, 5, 1,\n 6, 2, 3, 2,\n 5, 4, 4, 1,\n 3, 3, 2, 0\n];\n\nTables.t7HB = [\n 1, 2, 10, 19, 16, 10,\n 3, 3, 7, 10, 5, 3,\n 11, 4, 13, 17, 8, 4,\n 12, 11, 18, 15, 11, 2,\n 7, 6, 9, 14, 3, 1,\n 6, 4, 5, 3, 2, 0\n];\n\nTables.t8HB = [\n 3, 4, 6, 18, 12, 5,\n 5, 1, 2, 16, 9, 3,\n 7, 3, 5, 14, 7, 3,\n 19, 17, 15, 13, 10, 4,\n 13, 5, 8, 11, 5, 1,\n 12, 4, 4, 1, 1, 0\n];\n\nTables.t9HB = [\n 7, 5, 9, 14, 15, 7,\n 6, 4, 5, 5, 6, 7,\n 7, 6, 8, 8, 8, 5,\n 15, 6, 9, 10, 5, 1,\n 11, 7, 9, 6, 4, 1,\n 14, 4, 6, 2, 6, 0\n];\n\nTables.t10HB = [\n 1, 2, 10, 23, 35, 30, 12, 17,\n 3, 3, 8, 12, 18, 21, 12, 7,\n 11, 9, 15, 21, 32, 40, 19, 6,\n 14, 13, 22, 34, 46, 23, 18, 7,\n 20, 19, 33, 47, 27, 22, 9, 3,\n 31, 22, 41, 26, 21, 20, 5, 3,\n 14, 13, 10, 11, 16, 6, 5, 1,\n 9, 8, 7, 8, 4, 4, 2, 0\n];\n\nTables.t11HB = [\n 3, 4, 10, 24, 34, 33, 21, 15,\n 5, 3, 4, 10, 32, 17, 11, 10,\n 11, 7, 13, 18, 30, 31, 20, 5,\n 25, 11, 19, 59, 27, 18, 12, 5,\n 35, 33, 31, 58, 30, 16, 7, 5,\n 28, 26, 32, 19, 17, 15, 8, 14,\n 14, 12, 9, 13, 14, 9, 4, 1,\n 11, 4, 6, 6, 6, 3, 2, 0\n];\n\nTables.t12HB = [\n 9, 6, 16, 33, 41, 39, 38, 26,\n 7, 5, 6, 9, 23, 16, 26, 11,\n 17, 7, 11, 14, 21, 30, 10, 7,\n 17, 10, 15, 12, 18, 28, 14, 5,\n 32, 13, 22, 19, 18, 16, 9, 5,\n 40, 17, 31, 29, 17, 13, 4, 2,\n 27, 12, 11, 15, 10, 7, 4, 1,\n 27, 12, 8, 12, 6, 3, 1, 0\n];\n\nTables.t13HB = [\n 1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19,\n 3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14,\n 15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16,\n 22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14,\n 35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24,\n 58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17,\n 47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15,\n 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42,\n 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16,\n 53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11,\n 35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22,\n 53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7,\n 34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5,\n 45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3,\n 48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2,\n 16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1\n];\n\nTables.t15HB = [\n 7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63,\n 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36,\n 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33,\n 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29,\n 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27,\n 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,\n 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30,\n 109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25,\n 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,\n 71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15,\n 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9,\n 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,\n 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7,\n 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3,\n 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1,\n 71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0\n];\n\nTables.t16HB = [\n 1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17,\n 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9,\n 15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16,\n 45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26,\n 75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9,\n 66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16,\n 111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10,\n 98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8,\n 85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7,\n 154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11,\n 139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4,\n 243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6,\n 202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4,\n 747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2,\n 377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0,\n 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3\n];\n\nTables.t24HB = [\n 15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88,\n 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42,\n 47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18,\n 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16,\n 147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14,\n 263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12,\n 249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10,\n 435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17,\n 427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16,\n 335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11,\n 668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10,\n 652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6,\n 648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4,\n 620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2,\n 1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0,\n 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3\n];\n\nTables.t32HB = [\n 1 << 0, 5 << 1, 4 << 1, 5 << 2, 6 << 1, 5 << 2, 4 << 2, 4 << 3,\n 7 << 1, 3 << 2, 6 << 2, 0 << 3, 7 << 2, 2 << 3, 3 << 3, 1 << 4\n];\n\nTables.t33HB = [\n 15 << 0, 14 << 1, 13 << 1, 12 << 2, 11 << 1, 10 << 2, 9 << 2, 8 << 3,\n 7 << 1, 6 << 2, 5 << 2, 4 << 3, 3 << 2, 2 << 3, 1 << 3, 0 << 4\n];\n\nTables.t1l = [\n 1, 4,\n 3, 5\n];\n\nTables.t2l = [\n 1, 4, 7,\n 4, 5, 7,\n 6, 7, 8\n];\n\nTables.t3l = [\n 2, 3, 7,\n 4, 4, 7,\n 6, 7, 8\n];\n\nTables.t5l = [\n 1, 4, 7, 8,\n 4, 5, 8, 9,\n 7, 8, 9, 10,\n 8, 8, 9, 10\n];\n\nTables.t6l = [\n 3, 4, 6, 8,\n 4, 4, 6, 7,\n 5, 6, 7, 8,\n 7, 7, 8, 9\n];\n\nTables.t7l = [\n 1, 4, 7, 9, 9, 10,\n 4, 6, 8, 9, 9, 10,\n 7, 7, 9, 10, 10, 11,\n 8, 9, 10, 11, 11, 11,\n 8, 9, 10, 11, 11, 12,\n 9, 10, 11, 12, 12, 12\n];\n\nTables.t8l = [\n 2, 4, 7, 9, 9, 10,\n 4, 4, 6, 10, 10, 10,\n 7, 6, 8, 10, 10, 11,\n 9, 10, 10, 11, 11, 12,\n 9, 9, 10, 11, 12, 12,\n 10, 10, 11, 11, 13, 13\n];\n\nTables.t9l = [\n 3, 4, 6, 7, 9, 10,\n 4, 5, 6, 7, 8, 10,\n 5, 6, 7, 8, 9, 10,\n 7, 7, 8, 9, 9, 10,\n 8, 8, 9, 9, 10, 11,\n 9, 9, 10, 10, 11, 11\n];\n\nTables.t10l = [\n 1, 4, 7, 9, 10, 10, 10, 11,\n 4, 6, 8, 9, 10, 11, 10, 10,\n 7, 8, 9, 10, 11, 12, 11, 11,\n 8, 9, 10, 11, 12, 12, 11, 12,\n 9, 10, 11, 12, 12, 12, 12, 12,\n 10, 11, 12, 12, 13, 13, 12, 13,\n 9, 10, 11, 12, 12, 12, 13, 13,\n 10, 10, 11, 12, 12, 13, 13, 13\n];\n\nTables.t11l = [\n 2, 4, 6, 8, 9, 10, 9, 10,\n 4, 5, 6, 8, 10, 10, 9, 10,\n 6, 7, 8, 9, 10, 11, 10, 10,\n 8, 8, 9, 11, 10, 12, 10, 11,\n 9, 10, 10, 11, 11, 12, 11, 12,\n 9, 10, 11, 12, 12, 13, 12, 13,\n 9, 9, 9, 10, 11, 12, 12, 12,\n 9, 9, 10, 11, 12, 12, 12, 12\n];\n\nTables.t12l = [\n 4, 4, 6, 8, 9, 10, 10, 10,\n 4, 5, 6, 7, 9, 9, 10, 10,\n 6, 6, 7, 8, 9, 10, 9, 10,\n 7, 7, 8, 8, 9, 10, 10, 10,\n 8, 8, 9, 9, 10, 10, 10, 11,\n 9, 9, 10, 10, 10, 11, 10, 11,\n 9, 9, 9, 10, 10, 11, 11, 12,\n 10, 10, 10, 11, 11, 11, 11, 12\n];\n\nTables.t13l = [\n 1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14,\n 4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14,\n 7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15,\n 8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15,\n 9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16,\n 10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16,\n 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16,\n 11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18,\n 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17,\n 11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17,\n 11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19,\n 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18,\n 12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18,\n 13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18,\n 14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18,\n 13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18\n];\n\nTables.t15l = [\n 3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14,\n 5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13,\n 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13,\n 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13,\n 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13,\n 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14,\n 10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14,\n 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14,\n 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14,\n 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,\n 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14,\n 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15,\n 12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15,\n 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15,\n 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15,\n 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15\n];\n\nTables.t16_5l = [\n 1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11,\n 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11,\n 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12,\n 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13,\n 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12,\n 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13,\n 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13,\n 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13,\n 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13,\n 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14,\n 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13,\n 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14,\n 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14,\n 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14,\n 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14,\n 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12\n];\n\nTables.t16l = [\n 1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10,\n 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10,\n 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11,\n 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12,\n 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11,\n 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12,\n 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12,\n 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12,\n 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12,\n 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13,\n 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12,\n 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13,\n 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13,\n 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13,\n 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13,\n 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10\n];\n\nTables.t24l = [\n 4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10,\n 5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10,\n 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9,\n 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9,\n 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9,\n 10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9,\n 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9,\n 11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10,\n 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10,\n 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10,\n 12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,\n 12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,\n 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10,\n 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10,\n 13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10,\n 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6\n];\n\nTables.t32l = [\n 1 + 0, 4 + 1, 4 + 1, 5 + 2, 4 + 1, 6 + 2, 5 + 2, 6 + 3,\n 4 + 1, 5 + 2, 5 + 2, 6 + 3, 5 + 2, 6 + 3, 6 + 3, 6 + 4\n];\n\nTables.t33l = [\n 4 + 0, 4 + 1, 4 + 1, 4 + 2, 4 + 1, 4 + 2, 4 + 2, 4 + 3,\n 4 + 1, 4 + 2, 4 + 2, 4 + 3, 4 + 2, 4 + 3, 4 + 3, 4 + 4\n];\n\nTables.ht = [\n /* xlen, linmax, table, hlen */\n new HuffCodeTab(0, 0, null, null),\n new HuffCodeTab(2, 0, Tables.t1HB, Tables.t1l),\n new HuffCodeTab(3, 0, Tables.t2HB, Tables.t2l),\n new HuffCodeTab(3, 0, Tables.t3HB, Tables.t3l),\n new HuffCodeTab(0, 0, null, null), /* Apparently not used */\n new HuffCodeTab(4, 0, Tables.t5HB, Tables.t5l),\n new HuffCodeTab(4, 0, Tables.t6HB, Tables.t6l),\n new HuffCodeTab(6, 0, Tables.t7HB, Tables.t7l),\n new HuffCodeTab(6, 0, Tables.t8HB, Tables.t8l),\n new HuffCodeTab(6, 0, Tables.t9HB, Tables.t9l),\n new HuffCodeTab(8, 0, Tables.t10HB, Tables.t10l),\n new HuffCodeTab(8, 0, Tables.t11HB, Tables.t11l),\n new HuffCodeTab(8, 0, Tables.t12HB, Tables.t12l),\n new HuffCodeTab(16, 0, Tables.t13HB, Tables.t13l),\n new HuffCodeTab(0, 0, null, Tables.t16_5l), /* Apparently not used */\n new HuffCodeTab(16, 0, Tables.t15HB, Tables.t15l),\n\n new HuffCodeTab(1, 1, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(2, 3, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(3, 7, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(4, 15, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(6, 63, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(8, 255, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(10, 1023, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(13, 8191, Tables.t16HB, Tables.t16l),\n\n new HuffCodeTab(4, 15, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(5, 31, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(6, 63, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(7, 127, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(8, 255, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(9, 511, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(11, 2047, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(13, 8191, Tables.t24HB, Tables.t24l),\n\n new HuffCodeTab(0, 0, Tables.t32HB, Tables.t32l),\n new HuffCodeTab(0, 0, Tables.t33HB, Tables.t33l),\n];\n\n/**\n * \n * for (i = 0; i < 16*16; i++) [\n * largetbl[i] = ((ht[16].hlen[i]) << 16) + ht[24].hlen[i];\n * ]\n * \n *\n */\nTables.largetbl = [\n 0x010004, 0x050005, 0x070007, 0x090008, 0x0a0009, 0x0a000a, 0x0b000a, 0x0b000b,\n 0x0c000b, 0x0c000c, 0x0c000c, 0x0d000c, 0x0d000c, 0x0d000c, 0x0e000d, 0x0a000a,\n 0x040005, 0x060006, 0x080007, 0x090008, 0x0a0009, 0x0b000a, 0x0b000a, 0x0b000b,\n 0x0c000b, 0x0c000b, 0x0c000c, 0x0d000c, 0x0e000c, 0x0d000c, 0x0e000c, 0x0a000a,\n 0x070007, 0x080007, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000b,\n 0x0d000b, 0x0c000b, 0x0d000b, 0x0d000c, 0x0d000c, 0x0e000c, 0x0e000d, 0x0b0009,\n 0x090008, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0c000b,\n 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0c0009,\n 0x0a0009, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000a, 0x0d000b,\n 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000d, 0x0b0009,\n 0x0a000a, 0x0a0009, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0e000b,\n 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0c0009,\n 0x0b000a, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0d000b, 0x0d000b,\n 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000d, 0x0c0009,\n 0x0b000b, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b,\n 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x11000d, 0x11000d, 0x0c000a,\n 0x0b000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b,\n 0x0f000b, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000d, 0x10000d, 0x0c000a,\n 0x0c000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b, 0x0f000c,\n 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0f000d, 0x10000d, 0x0f000d, 0x0d000a,\n 0x0c000c, 0x0d000b, 0x0c000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c,\n 0x0f000c, 0x10000c, 0x10000c, 0x10000d, 0x11000d, 0x11000d, 0x10000d, 0x0c000a,\n 0x0d000c, 0x0d000c, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x10000c,\n 0x10000c, 0x10000c, 0x10000c, 0x10000d, 0x10000d, 0x0f000d, 0x10000d, 0x0d000a,\n 0x0d000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c,\n 0x0f000c, 0x11000c, 0x10000d, 0x10000d, 0x10000d, 0x10000d, 0x12000d, 0x0d000a,\n 0x0f000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000c,\n 0x10000d, 0x12000d, 0x11000d, 0x11000d, 0x11000d, 0x13000d, 0x11000d, 0x0d000a,\n 0x0e000d, 0x0f000c, 0x0d000c, 0x0e000c, 0x10000c, 0x10000c, 0x0f000c, 0x10000d,\n 0x10000d, 0x11000d, 0x12000d, 0x11000d, 0x13000d, 0x11000d, 0x10000d, 0x0d000a,\n 0x0a0009, 0x0a0009, 0x0a0009, 0x0b0009, 0x0b0009, 0x0c0009, 0x0c0009, 0x0c0009,\n 0x0d0009, 0x0d0009, 0x0d0009, 0x0d000a, 0x0d000a, 0x0d000a, 0x0d000a, 0x0a0006\n];\n/**\n * \n * for (i = 0; i < 3*3; i++) [\n * table23[i] = ((ht[2].hlen[i]) << 16) + ht[3].hlen[i];\n * ]\n * \n *\n */\nTables.table23 = [\n 0x010002, 0x040003, 0x070007,\n 0x040004, 0x050004, 0x070007,\n 0x060006, 0x070007, 0x080008\n];\n\n/**\n * \n * for (i = 0; i < 4*4; i++) [\n * table56[i] = ((ht[5].hlen[i]) << 16) + ht[6].hlen[i];\n * ]\n * \n *\n */\nTables.table56 = [\n 0x010003, 0x040004, 0x070006, 0x080008, 0x040004, 0x050004, 0x080006, 0x090007,\n 0x070005, 0x080006, 0x090007, 0x0a0008, 0x080007, 0x080007, 0x090008, 0x0a0009\n];\n\nTables.bitrate_table = [\n [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1], /* MPEG 2 */\n [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], /* MPEG 1 */\n [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1], /* MPEG 2.5 */\n];\n\n/**\n * MPEG 2, MPEG 1, MPEG 2.5.\n */\nTables.samplerate_table = [\n [22050, 24000, 16000, -1],\n [44100, 48000, 32000, -1],\n [11025, 12000, 8000, -1],\n];\n\n/**\n * This is the scfsi_band table from 2.4.2.7 of the IS.\n */\nTables.scfsi_band = [0, 6, 11, 16, 21];\n\nmodule.exports = Tables;\n","//package mp3;\n\n/* MPEG modes */\nfunction MPEGMode(ordinal) {\n var _ordinal = ordinal;\n this.ordinal = function () {\n return _ordinal;\n }\n}\n\nMPEGMode.STEREO = new MPEGMode(0);\nMPEGMode.JOINT_STEREO = new MPEGMode(1);\nMPEGMode.DUAL_CHANNEL = new MPEGMode(2);\nMPEGMode.MONO = new MPEGMode(3);\nMPEGMode.NOT_SET = new MPEGMode(4);\n\nmodule.exports = MPEGMode;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Takehiro = require('./Takehiro.js');\nvar Tables = require('./Tables.js');\nvar Encoder = require('./Encoder.js');\nvar LameInternalFlags = require('./LameInternalFlags.js');\n\nBitStream.EQ = function (a, b) {\n return (Math.abs(a) > Math.abs(b)) ? (Math.abs((a) - (b)) <= (Math\n .abs(a) * 1e-6))\n : (Math.abs((a) - (b)) <= (Math.abs(b) * 1e-6));\n};\n\nBitStream.NEQ = function (a, b) {\n return !BitStream.EQ(a, b);\n};\n\nfunction BitStream() {\n var self = this;\n var CRC16_POLYNOMIAL = 0x8005;\n\n /*\n * we work with ints, so when doing bit manipulation, we limit ourselves to\n * MAX_LENGTH-2 just to be on the safe side\n */\n var MAX_LENGTH = 32;\n\n //GainAnalysis ga;\n //MPGLib mpg;\n //Version ver;\n //VBRTag vbr;\n var ga = null;\n var mpg = null;\n var ver = null;\n var vbr = null;\n\n //public final void setModules(GainAnalysis ga, MPGLib mpg, Version ver,\n //\tVBRTag vbr) {\n\n this.setModules = function (_ga, _mpg, _ver, _vbr) {\n ga = _ga;\n mpg = _mpg;\n ver = _ver;\n vbr = _vbr;\n };\n\n /**\n * Bit stream buffer.\n */\n //private byte[] buf;\n var buf = null;\n /**\n * Bit counter of bit stream.\n */\n var totbit = 0;\n /**\n * Pointer to top byte in buffer.\n */\n var bufByteIdx = 0;\n /**\n * Pointer to top bit of top byte in buffer.\n */\n var bufBitIdx = 0;\n\n /**\n * compute bitsperframe and mean_bits for a layer III frame\n */\n this.getframebits = function (gfp) {\n var gfc = gfp.internal_flags;\n var bit_rate;\n\n /* get bitrate in kbps [?] */\n if (gfc.bitrate_index != 0)\n bit_rate = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n else\n bit_rate = gfp.brate;\n assert(8 <= bit_rate && bit_rate <= 640);\n\n /* main encoding routine toggles padding on and off */\n /* one Layer3 Slot consists of 8 bits */\n var bytes = 0 | (gfp.version + 1) * 72000 * bit_rate / gfp.out_samplerate + gfc.padding;\n return 8 * bytes;\n };\n\n function putheader_bits(gfc) {\n System.arraycopy(gfc.header[gfc.w_ptr].buf, 0, buf, bufByteIdx, gfc.sideinfo_len);\n bufByteIdx += gfc.sideinfo_len;\n totbit += gfc.sideinfo_len * 8;\n gfc.w_ptr = (gfc.w_ptr + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);\n }\n\n /**\n * write j bits into the bit stream\n */\n function putbits2(gfc, val, j) {\n assert(j < MAX_LENGTH - 2);\n\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n assert(gfc.header[gfc.w_ptr].write_timing >= totbit);\n if (gfc.header[gfc.w_ptr].write_timing == totbit) {\n putheader_bits(gfc);\n }\n buf[bufByteIdx] = 0;\n }\n\n k = Math.min(j, bufBitIdx);\n j -= k;\n\n bufBitIdx -= k;\n\n assert(j < MAX_LENGTH);\n /* 32 too large on 32 bit machines */\n assert(bufBitIdx < MAX_LENGTH);\n\n buf[bufByteIdx] |= ((val >> j) << bufBitIdx);\n totbit += k;\n }\n }\n\n /**\n * write j bits into the bit stream, ignoring frame headers\n */\n function putbits_noheaders(gfc, val, j) {\n assert(j < MAX_LENGTH - 2);\n\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n buf[bufByteIdx] = 0;\n }\n\n k = Math.min(j, bufBitIdx);\n j -= k;\n\n bufBitIdx -= k;\n\n assert(j < MAX_LENGTH);\n /* 32 too large on 32 bit machines */\n assert(bufBitIdx < MAX_LENGTH);\n\n buf[bufByteIdx] |= ((val >> j) << bufBitIdx);\n totbit += k;\n }\n }\n\n /**\n * Some combinations of bitrate, Fs, and stereo make it impossible to stuff\n * out a frame using just main_data, due to the limited number of bits to\n * indicate main_data_length. In these situations, we put stuffing bits into\n * the ancillary data...\n */\n function drain_into_ancillary(gfp, remainingBits) {\n var gfc = gfp.internal_flags;\n var i;\n assert(remainingBits >= 0);\n\n if (remainingBits >= 8) {\n putbits2(gfc, 0x4c, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x41, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x4d, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x45, 8);\n remainingBits -= 8;\n }\n\n if (remainingBits >= 32) {\n var version = ver.getLameShortVersion();\n if (remainingBits >= 32)\n for (i = 0; i < version.length && remainingBits >= 8; ++i) {\n remainingBits -= 8;\n putbits2(gfc, version.charAt(i), 8);\n }\n }\n\n for (; remainingBits >= 1; remainingBits -= 1) {\n putbits2(gfc, gfc.ancillary_flag, 1);\n gfc.ancillary_flag ^= (!gfp.disable_reservoir ? 1 : 0);\n }\n\n assert(remainingBits == 0);\n\n }\n\n /**\n * write N bits into the header\n */\n function writeheader(gfc, val, j) {\n var ptr = gfc.header[gfc.h_ptr].ptr;\n\n while (j > 0) {\n var k = Math.min(j, 8 - (ptr & 7));\n j -= k;\n assert(j < MAX_LENGTH);\n /* >> 32 too large for 32 bit machines */\n\n gfc.header[gfc.h_ptr].buf[ptr >> 3] |= ((val >> j)) << (8 - (ptr & 7) - k);\n ptr += k;\n }\n gfc.header[gfc.h_ptr].ptr = ptr;\n }\n\n function CRC_update(value, crc) {\n value <<= 8;\n for (var i = 0; i < 8; i++) {\n value <<= 1;\n crc <<= 1;\n\n if ((((crc ^ value) & 0x10000) != 0))\n crc ^= CRC16_POLYNOMIAL;\n }\n return crc;\n }\n\n this.CRC_writeheader = function (gfc, header) {\n var crc = 0xffff;\n /* (jo) init crc16 for error_protection */\n\n crc = CRC_update(header[2] & 0xff, crc);\n crc = CRC_update(header[3] & 0xff, crc);\n for (var i = 6; i < gfc.sideinfo_len; i++) {\n crc = CRC_update(header[i] & 0xff, crc);\n }\n\n header[4] = (byte)(crc >> 8);\n header[5] = (byte)(crc & 255);\n };\n\n function encodeSideInfo2(gfp, bitsPerFrame) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var gr, ch;\n\n l3_side = gfc.l3_side;\n gfc.header[gfc.h_ptr].ptr = 0;\n Arrays.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);\n if (gfp.out_samplerate < 16000)\n writeheader(gfc, 0xffe, 12);\n else\n writeheader(gfc, 0xfff, 12);\n writeheader(gfc, (gfp.version), 1);\n writeheader(gfc, 4 - 3, 2);\n writeheader(gfc, (!gfp.error_protection ? 1 : 0), 1);\n writeheader(gfc, (gfc.bitrate_index), 4);\n writeheader(gfc, (gfc.samplerate_index), 2);\n writeheader(gfc, (gfc.padding), 1);\n writeheader(gfc, (gfp.extension), 1);\n writeheader(gfc, (gfp.mode.ordinal()), 2);\n writeheader(gfc, (gfc.mode_ext), 2);\n writeheader(gfc, (gfp.copyright), 1);\n writeheader(gfc, (gfp.original), 1);\n writeheader(gfc, (gfp.emphasis), 2);\n if (gfp.error_protection) {\n writeheader(gfc, 0, 16);\n /* dummy */\n }\n\n if (gfp.version == 1) {\n /* MPEG1 */\n assert(l3_side.main_data_begin >= 0);\n writeheader(gfc, (l3_side.main_data_begin), 9);\n\n if (gfc.channels_out == 2)\n writeheader(gfc, l3_side.private_bits, 3);\n else\n writeheader(gfc, l3_side.private_bits, 5);\n\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var band;\n for (band = 0; band < 4; band++) {\n writeheader(gfc, l3_side.scfsi[ch][band], 1);\n }\n }\n\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 4);\n\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n /* window_switching_flag */\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n /* window_switching_flag */\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n\n assert(0 <= gi.region0_count && gi.region0_count < 16);\n assert(0 <= gi.region1_count && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.preflag, 1);\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n } else {\n /* MPEG2 */\n assert(l3_side.main_data_begin >= 0);\n writeheader(gfc, (l3_side.main_data_begin), 8);\n writeheader(gfc, l3_side.private_bits, gfc.channels_out);\n\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 9);\n\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n /* window_switching_flag */\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n /* window_switching_flag */\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n\n assert(0 <= gi.region0_count && gi.region0_count < 16);\n assert(0 <= gi.region1_count && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n\n if (gfp.error_protection) {\n /* (jo) error_protection: add crc16 information to header */\n CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);\n }\n\n {\n var old = gfc.h_ptr;\n assert(gfc.header[old].ptr == gfc.sideinfo_len * 8);\n\n gfc.h_ptr = (old + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);\n gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing\n + bitsPerFrame;\n\n if (gfc.h_ptr == gfc.w_ptr) {\n /* yikes! we are out of header buffer space */\n System.err\n .println(\"Error: MAX_HEADER_BUF too small in bitstream.c \\n\");\n }\n\n }\n }\n\n function huffman_coder_count1(gfc, gi) {\n /* Write count1 area */\n var h = Tables.ht[gi.count1table_select + 32];\n var i, bits = 0;\n\n var ix = gi.big_values;\n var xr = gi.big_values;\n assert(gi.count1table_select < 2);\n\n for (i = (gi.count1 - gi.big_values) / 4; i > 0; --i) {\n var huffbits = 0;\n var p = 0, v;\n\n v = gi.l3_enc[ix + 0];\n if (v != 0) {\n p += 8;\n if (gi.xr[xr + 0] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n v = gi.l3_enc[ix + 1];\n if (v != 0) {\n p += 4;\n huffbits *= 2;\n if (gi.xr[xr + 1] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n v = gi.l3_enc[ix + 2];\n if (v != 0) {\n p += 2;\n huffbits *= 2;\n if (gi.xr[xr + 2] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n v = gi.l3_enc[ix + 3];\n if (v != 0) {\n p++;\n huffbits *= 2;\n if (gi.xr[xr + 3] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n ix += 4;\n xr += 4;\n putbits2(gfc, huffbits + h.table[p], h.hlen[p]);\n bits += h.hlen[p];\n }\n return bits;\n }\n\n /**\n * Implements the pseudocode of page 98 of the IS\n */\n function Huffmancode(gfc, tableindex, start, end, gi) {\n var h = Tables.ht[tableindex];\n var bits = 0;\n\n assert(tableindex < 32);\n if (0 == tableindex)\n return bits;\n\n for (var i = start; i < end; i += 2) {\n var cbits = 0;\n var xbits = 0;\n var linbits = h.xlen;\n var xlen = h.xlen;\n var ext = 0;\n var x1 = gi.l3_enc[i];\n var x2 = gi.l3_enc[i + 1];\n\n if (x1 != 0) {\n if (gi.xr[i] < 0)\n ext++;\n cbits--;\n }\n\n if (tableindex > 15) {\n /* use ESC-words */\n if (x1 > 14) {\n var linbits_x1 = x1 - 15;\n assert(linbits_x1 <= h.linmax);\n ext |= linbits_x1 << 1;\n xbits = linbits;\n x1 = 15;\n }\n\n if (x2 > 14) {\n var linbits_x2 = x2 - 15;\n assert(linbits_x2 <= h.linmax);\n ext <<= linbits;\n ext |= linbits_x2;\n xbits += linbits;\n x2 = 15;\n }\n xlen = 16;\n }\n\n if (x2 != 0) {\n ext <<= 1;\n if (gi.xr[i + 1] < 0)\n ext++;\n cbits--;\n }\n\n assert((x1 | x2) < 16);\n\n x1 = x1 * xlen + x2;\n xbits -= cbits;\n cbits += h.hlen[x1];\n\n assert(cbits <= MAX_LENGTH);\n assert(xbits <= MAX_LENGTH);\n\n putbits2(gfc, h.table[x1], cbits);\n putbits2(gfc, ext, xbits);\n bits += cbits + xbits;\n }\n return bits;\n }\n\n /**\n * Note the discussion of huffmancodebits() on pages 28 and 29 of the IS, as\n * well as the definitions of the side information on pages 26 and 27.\n */\n function ShortHuffmancodebits(gfc, gi) {\n var region1Start = 3 * gfc.scalefac_band.s[3];\n if (region1Start > gi.big_values)\n region1Start = gi.big_values;\n\n /* short blocks do not have a region2 */\n var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start,\n gi.big_values, gi);\n return bits;\n }\n\n function LongHuffmancodebits(gfc, gi) {\n var bigvalues, bits;\n var region1Start, region2Start;\n\n bigvalues = gi.big_values;\n assert(0 <= bigvalues && bigvalues <= 576);\n\n var i = gi.region0_count + 1;\n assert(0 <= i);\n assert(i < gfc.scalefac_band.l.length);\n region1Start = gfc.scalefac_band.l[i];\n i += gi.region1_count + 1;\n assert(0 <= i);\n assert(i < gfc.scalefac_band.l.length);\n region2Start = gfc.scalefac_band.l[i];\n\n if (region1Start > bigvalues)\n region1Start = bigvalues;\n\n if (region2Start > bigvalues)\n region2Start = bigvalues;\n\n bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start,\n region2Start, gi);\n bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues,\n gi);\n return bits;\n }\n\n function writeMainData(gfp) {\n var gr, ch, sfb, data_bits, tot_bits = 0;\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n\n if (gfp.version == 1) {\n /* MPEG 1 */\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var slen1 = Takehiro.slen1_tab[gi.scalefac_compress];\n var slen2 = Takehiro.slen2_tab[gi.scalefac_compress];\n data_bits = 0;\n for (sfb = 0; sfb < gi.sfbdivide; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n /* scfsi is used */\n putbits2(gfc, gi.scalefac[sfb], slen1);\n data_bits += slen1;\n }\n for (; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n /* scfsi is used */\n putbits2(gfc, gi.scalefac[sfb], slen2);\n data_bits += slen2;\n }\n assert(data_bits == gi.part2_length);\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n /* does bitcount in quantize.c agree with actual bit count? */\n assert(data_bits == gi.part2_3_length + gi.part2_length);\n tot_bits += data_bits;\n }\n /* for ch */\n }\n /* for gr */\n } else {\n /* MPEG 2 */\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var i, sfb_partition, scale_bits = 0;\n assert(gi.sfb_partition_table != null);\n data_bits = 0;\n sfb = 0;\n sfb_partition = 0;\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition] / 3;\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc,\n Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);\n putbits2(gfc,\n Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);\n putbits2(gfc,\n Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);\n scale_bits += 3 * slen;\n }\n }\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition];\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);\n scale_bits += slen;\n }\n }\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n /* does bitcount in quantize.c agree with actual bit count? */\n assert(data_bits == gi.part2_3_length);\n assert(scale_bits == gi.part2_length);\n tot_bits += scale_bits + data_bits;\n }\n /* for ch */\n }\n /* for gf */\n return tot_bits;\n }\n\n /* main_data */\n\n function TotalBytes() {\n this.total = 0;\n }\n\n /*\n * compute the number of bits required to flush all mp3 frames currently in\n * the buffer. This should be the same as the reservoir size. Only call this\n * routine between frames - i.e. only after all headers and data have been\n * added to the buffer by format_bitstream().\n *\n * Also compute total_bits_output = size of mp3 buffer (including frame\n * headers which may not have yet been send to the mp3 buffer) + number of\n * bits needed to flush all mp3 frames.\n *\n * total_bytes_output is the size of the mp3 output buffer if\n * lame_encode_flush_nogap() was called right now.\n */\n function compute_flushbits(gfp, total_bytes_output) {\n var gfc = gfp.internal_flags;\n var flushbits, remaining_headers;\n var bitsPerFrame;\n var last_ptr, first_ptr;\n first_ptr = gfc.w_ptr;\n /* first header to add to bitstream */\n last_ptr = gfc.h_ptr - 1;\n /* last header to add to bitstream */\n if (last_ptr == -1)\n last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;\n\n /* add this many bits to bitstream so we can flush all headers */\n flushbits = gfc.header[last_ptr].write_timing - totbit;\n total_bytes_output.total = flushbits;\n\n if (flushbits >= 0) {\n /* if flushbits >= 0, some headers have not yet been written */\n /* reduce flushbits by the size of the headers */\n remaining_headers = 1 + last_ptr - first_ptr;\n if (last_ptr < first_ptr)\n remaining_headers = 1 + last_ptr - first_ptr\n + LameInternalFlags.MAX_HEADER_BUF;\n flushbits -= remaining_headers * 8 * gfc.sideinfo_len;\n }\n\n /*\n * finally, add some bits so that the last frame is complete these bits\n * are not necessary to decode the last frame, but some decoders will\n * ignore last frame if these bits are missing\n */\n bitsPerFrame = self.getframebits(gfp);\n flushbits += bitsPerFrame;\n total_bytes_output.total += bitsPerFrame;\n /* round up: */\n if ((total_bytes_output.total % 8) != 0)\n total_bytes_output.total = 1 + (total_bytes_output.total / 8);\n else\n total_bytes_output.total = (total_bytes_output.total / 8);\n total_bytes_output.total += bufByteIdx + 1;\n\n if (flushbits < 0) {\n System.err.println(\"strange error flushing buffer ... \\n\");\n }\n return flushbits;\n }\n\n this.flush_bitstream = function (gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var flushbits;\n var last_ptr = gfc.h_ptr - 1;\n /* last header to add to bitstream */\n if (last_ptr == -1)\n last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;\n l3_side = gfc.l3_side;\n\n if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0)\n return;\n drain_into_ancillary(gfp, flushbits);\n\n /* check that the 100% of the last frame has been written to bitstream */\n assert(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);\n\n /*\n * we have padded out all frames with ancillary data, which is the same\n * as filling the bitreservoir with ancillary data, so :\n */\n gfc.ResvSize = 0;\n l3_side.main_data_begin = 0;\n\n /* save the ReplayGain value */\n if (gfc.findReplayGain) {\n var RadioGain = ga.GetTitleGain(gfc.rgdata);\n assert(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));\n gfc.RadioGain = Math.floor(RadioGain * 10.0 + 0.5) | 0;\n /* round to nearest */\n }\n\n /* find the gain and scale change required for no clipping */\n if (gfc.findPeakSample) {\n gfc.noclipGainChange = Math.ceil(Math\n .log10(gfc.PeakSample / 32767.0) * 20.0 * 10.0) | 0;\n /* round up */\n\n if (gfc.noclipGainChange > 0) {\n /* clipping occurs */\n if (EQ(gfp.scale, 1.0) || EQ(gfp.scale, 0.0))\n gfc.noclipScale = (Math\n .floor((32767.0 / gfc.PeakSample) * 100.0) / 100.0);\n /* round down */\n else {\n /*\n * the user specified his own scaling factor. We could\n * suggest the scaling factor of\n * (32767.0/gfp.PeakSample)*(gfp.scale) but it's usually\n * very inaccurate. So we'd rather not advice him on the\n * scaling factor.\n */\n gfc.noclipScale = -1;\n }\n } else\n /* no clipping */\n gfc.noclipScale = -1;\n }\n };\n\n this.add_dummy_byte = function (gfp, val, n) {\n var gfc = gfp.internal_flags;\n var i;\n\n while (n-- > 0) {\n putbits_noheaders(gfc, val, 8);\n\n for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)\n gfc.header[i].write_timing += 8;\n }\n };\n\n /**\n * This is called after a frame of audio has been quantized and coded. It\n * will write the encoded audio to the bitstream. Note that from a layer3\n * encoder's perspective the bit stream is primarily a series of main_data()\n * blocks, with header and side information inserted at the proper locations\n * to maintain framing. (See Figure A.7 in the IS).\n */\n this.format_bitstream = function (gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n l3_side = gfc.l3_side;\n\n var bitsPerFrame = this.getframebits(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_pre);\n\n encodeSideInfo2(gfp, bitsPerFrame);\n var bits = 8 * gfc.sideinfo_len;\n bits += writeMainData(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_post);\n bits += l3_side.resvDrain_post;\n\n l3_side.main_data_begin += (bitsPerFrame - bits) / 8;\n\n /*\n * compare number of bits needed to clear all buffered mp3 frames with\n * what we think the resvsize is:\n */\n if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) {\n System.err.println(\"Internal buffer inconsistency. flushbits <> ResvSize\");\n }\n\n /*\n * compare main_data_begin for the next frame with what we think the\n * resvsize is:\n */\n if ((l3_side.main_data_begin * 8) != gfc.ResvSize) {\n System.err.printf(\"bit reservoir error: \\n\"\n + \"l3_side.main_data_begin: %d \\n\"\n + \"Resvoir size: %d \\n\"\n + \"resv drain (post) %d \\n\"\n + \"resv drain (pre) %d \\n\"\n + \"header and sideinfo: %d \\n\"\n + \"data bits: %d \\n\"\n + \"total bits: %d (remainder: %d) \\n\"\n + \"bitsperframe: %d \\n\",\n 8 * l3_side.main_data_begin, gfc.ResvSize,\n l3_side.resvDrain_post, l3_side.resvDrain_pre,\n 8 * gfc.sideinfo_len, bits - l3_side.resvDrain_post - 8\n * gfc.sideinfo_len, bits, bits % 8, bitsPerFrame);\n\n System.err.println(\"This is a fatal error. It has several possible causes:\");\n System.err.println(\"90%% LAME compiled with buggy version of gcc using advanced optimizations\");\n System.err.println(\" 9%% Your system is overclocked\");\n System.err.println(\" 1%% bug in LAME encoding library\");\n\n gfc.ResvSize = l3_side.main_data_begin * 8;\n }\n //;\n assert(totbit % 8 == 0);\n\n if (totbit > 1000000000) {\n /*\n * to avoid totbit overflow, (at 8h encoding at 128kbs) lets reset\n * bit counter\n */\n var i;\n for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)\n gfc.header[i].write_timing -= totbit;\n totbit = 0;\n }\n\n return 0;\n };\n\n /**\n *
\n     * copy data out of the internal MP3 bit buffer into a user supplied\n     *       unsigned char buffer.\n     *\n     *       mp3data=0      indicates data in buffer is an id3tags and VBR tags\n     *       mp3data=1      data is real mp3 frame data.\n     * 
\n */\n this.copy_buffer = function (gfc, buffer, bufferPos, size, mp3data) {\n var minimum = bufByteIdx + 1;\n if (minimum <= 0)\n return 0;\n if (size != 0 && minimum > size) {\n /* buffer is too small */\n return -1;\n }\n System.arraycopy(buf, 0, buffer, bufferPos, minimum);\n bufByteIdx = -1;\n bufBitIdx = 0;\n\n if (mp3data != 0) {\n var crc = new_int(1);\n crc[0] = gfc.nMusicCRC;\n vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);\n gfc.nMusicCRC = crc[0];\n\n /**\n * sum number of bytes belonging to the mp3 stream this info will be\n * written into the Xing/LAME header for seeking\n */\n if (minimum > 0) {\n gfc.VBR_seek_table.nBytesWritten += minimum;\n }\n\n if (gfc.decode_on_the_fly) { /* decode the frame */\n var pcm_buf = new_float_n([2, 1152]);\n var mp3_in = minimum;\n var samples_out = -1;\n var i;\n\n /* re-synthesis to pcm. Repeat until we get a samples_out=0 */\n while (samples_out != 0) {\n\n samples_out = mpg.hip_decode1_unclipped(gfc.hip, buffer,\n bufferPos, mp3_in, pcm_buf[0], pcm_buf[1]);\n /*\n * samples_out = 0: need more data to decode samples_out =\n * -1: error. Lets assume 0 pcm output samples_out = number\n * of samples output\n */\n\n /*\n * set the lenght of the mp3 input buffer to zero, so that\n * in the next iteration of the loop we will be querying\n * mpglib about buffered data\n */\n mp3_in = 0;\n\n if (samples_out == -1) {\n /*\n * error decoding. Not fatal, but might screw up the\n * ReplayGain tag. What should we do? Ignore for now\n */\n samples_out = 0;\n }\n if (samples_out > 0) {\n /* process the PCM data */\n\n /*\n * this should not be possible, and indicates we have\n * overflown the pcm_buf buffer\n */\n assert(samples_out <= 1152);\n\n if (gfc.findPeakSample) {\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[0][i] > gfc.PeakSample)\n gfc.PeakSample = pcm_buf[0][i];\n else if (-pcm_buf[0][i] > gfc.PeakSample)\n gfc.PeakSample = -pcm_buf[0][i];\n }\n if (gfc.channels_out > 1)\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[1][i] > gfc.PeakSample)\n gfc.PeakSample = pcm_buf[1][i];\n else if (-pcm_buf[1][i] > gfc.PeakSample)\n gfc.PeakSample = -pcm_buf[1][i];\n }\n }\n\n if (gfc.findReplayGain)\n if (ga.AnalyzeSamples(gfc.rgdata, pcm_buf[0], 0,\n pcm_buf[1], 0, samples_out,\n gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR)\n return -6;\n\n }\n /* if (samples_out>0) */\n }\n /* while (samples_out!=0) */\n }\n /* if (gfc.decode_on_the_fly) */\n\n }\n /* if (mp3data) */\n return minimum;\n };\n\n this.init_bit_stream_w = function (gfc) {\n buf = new_byte(Lame.LAME_MAXMP3BUFFER);\n\n gfc.h_ptr = gfc.w_ptr = 0;\n gfc.header[gfc.h_ptr].write_timing = 0;\n bufByteIdx = -1;\n bufBitIdx = 0;\n totbit = 0;\n };\n\n // From machine.h\n\n\n}\n\nmodule.exports = BitStream;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar GainAnalysis = require('./GainAnalysis.js');\n\nfunction ReplayGain() {\n this.linprebuf = new_float(GainAnalysis.MAX_ORDER * 2);\n /**\n * left input samples, with pre-buffer\n */\n this.linpre = 0;\n this.lstepbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n /**\n * left \"first step\" (i.e. post first filter) samples\n */\n this.lstep = 0;\n this.loutbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n /**\n * left \"out\" (i.e. post second filter) samples\n */\n this.lout = 0;\n this.rinprebuf = new_float(GainAnalysis.MAX_ORDER * 2);\n /**\n * right input samples ...\n */\n this.rinpre = 0;\n this.rstepbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n this.rstep = 0;\n this.routbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n this.rout = 0;\n /**\n * number of samples required to reach number of milliseconds required\n * for RMS window\n */\n this.sampleWindow = 0;\n this.totsamp = 0;\n this.lsum = 0.;\n this.rsum = 0.;\n this.freqindex = 0;\n this.first = 0;\n this.A = new_int(0 | (GainAnalysis.STEPS_per_dB * GainAnalysis.MAX_dB));\n this.B = new_int(0 | (GainAnalysis.STEPS_per_dB * GainAnalysis.MAX_dB));\n\n}\n\nmodule.exports = ReplayGain;\n","//package mp3;\n\nfunction CalcNoiseResult() {\n /**\n * sum of quantization noise > masking\n */\n this.over_noise = 0.;\n /**\n * sum of all quantization noise\n */\n this.tot_noise = 0.;\n /**\n * max quantization noise\n */\n this.max_noise = 0.;\n /**\n * number of quantization noise > masking\n */\n this.over_count = 0;\n /**\n * SSD-like cost of distorted bands\n */\n this.over_SSD = 0;\n this.bits = 0;\n}\n\nmodule.exports = CalcNoiseResult;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\n\nfunction FFT() {\n\n var window = new_float(Encoder.BLKSIZE);\n var window_s = new_float(Encoder.BLKSIZE_s / 2);\n\n var costab = [\n 9.238795325112867e-01, 3.826834323650898e-01,\n 9.951847266721969e-01, 9.801714032956060e-02,\n 9.996988186962042e-01, 2.454122852291229e-02,\n 9.999811752826011e-01, 6.135884649154475e-03\n ];\n\n function fht(fz, fzPos, n) {\n var tri = 0;\n var k4;\n var fi;\n var gi;\n\n n <<= 1;\n /* to get BLKSIZE, because of 3DNow! ASM routine */\n var fn = fzPos + n;\n k4 = 4;\n do {\n var s1, c1;\n var i, k1, k2, k3, kx;\n kx = k4 >> 1;\n k1 = k4;\n k2 = k4 << 1;\n k3 = k2 + k1;\n k4 = k2 << 1;\n fi = fzPos;\n gi = fi + kx;\n do {\n var f0, f1, f2, f3;\n f1 = fz[fi + 0] - fz[fi + k1];\n f0 = fz[fi + 0] + fz[fi + k1];\n f3 = fz[fi + k2] - fz[fi + k3];\n f2 = fz[fi + k2] + fz[fi + k3];\n fz[fi + k2] = f0 - f2;\n fz[fi + 0] = f0 + f2;\n fz[fi + k3] = f1 - f3;\n fz[fi + k1] = f1 + f3;\n f1 = fz[gi + 0] - fz[gi + k1];\n f0 = fz[gi + 0] + fz[gi + k1];\n f3 = (Util.SQRT2 * fz[gi + k3]);\n f2 = (Util.SQRT2 * fz[gi + k2]);\n fz[gi + k2] = f0 - f2;\n fz[gi + 0] = f0 + f2;\n fz[gi + k3] = f1 - f3;\n fz[gi + k1] = f1 + f3;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c1 = costab[tri + 0];\n s1 = costab[tri + 1];\n for (i = 1; i < kx; i++) {\n var c2, s2;\n c2 = 1 - (2 * s1) * s1;\n s2 = (2 * s1) * c1;\n fi = fzPos + i;\n gi = fzPos + k1 - i;\n do {\n var a, b, g0, f0, f1, g1, f2, g2, f3, g3;\n b = s2 * fz[fi + k1] - c2 * fz[gi + k1];\n a = c2 * fz[fi + k1] + s2 * fz[gi + k1];\n f1 = fz[fi + 0] - a;\n f0 = fz[fi + 0] + a;\n g1 = fz[gi + 0] - b;\n g0 = fz[gi + 0] + b;\n b = s2 * fz[fi + k3] - c2 * fz[gi + k3];\n a = c2 * fz[fi + k3] + s2 * fz[gi + k3];\n f3 = fz[fi + k2] - a;\n f2 = fz[fi + k2] + a;\n g3 = fz[gi + k2] - b;\n g2 = fz[gi + k2] + b;\n b = s1 * f2 - c1 * g3;\n a = c1 * f2 + s1 * g3;\n fz[fi + k2] = f0 - a;\n fz[fi + 0] = f0 + a;\n fz[gi + k3] = g1 - b;\n fz[gi + k1] = g1 + b;\n b = c1 * g2 - s1 * f3;\n a = s1 * g2 + c1 * f3;\n fz[gi + k2] = g0 - a;\n fz[gi + 0] = g0 + a;\n fz[fi + k3] = f1 - b;\n fz[fi + k1] = f1 + b;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c2 = c1;\n c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];\n s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];\n }\n tri += 2;\n } while (k4 < n);\n }\n\n var rv_tbl = [0x00, 0x80, 0x40,\n 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10,\n 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70,\n 0xf0, 0x08, 0x88, 0x48, 0xc8, 0x28,\n 0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58,\n 0xd8, 0x38, 0xb8, 0x78, 0xf8, 0x04,\n 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64,\n 0xe4, 0x14, 0x94, 0x54, 0xd4, 0x34,\n 0xb4, 0x74, 0xf4, 0x0c, 0x8c, 0x4c,\n 0xcc, 0x2c, 0xac, 0x6c, 0xec, 0x1c,\n 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c,\n 0xfc, 0x02, 0x82, 0x42, 0xc2, 0x22,\n 0xa2, 0x62, 0xe2, 0x12, 0x92, 0x52,\n 0xd2, 0x32, 0xb2, 0x72, 0xf2, 0x0a,\n 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a,\n 0xea, 0x1a, 0x9a, 0x5a, 0xda, 0x3a,\n 0xba, 0x7a, 0xfa, 0x06, 0x86, 0x46,\n 0xc6, 0x26, 0xa6, 0x66, 0xe6, 0x16,\n 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76,\n 0xf6, 0x0e, 0x8e, 0x4e, 0xce, 0x2e,\n 0xae, 0x6e, 0xee, 0x1e, 0x9e, 0x5e,\n 0xde, 0x3e, 0xbe, 0x7e, 0xfe];\n\n this.fft_short = function (gfc, x_real, chn, buffer, bufPos) {\n for (var b = 0; b < 3; b++) {\n var x = Encoder.BLKSIZE_s / 2;\n var k = 0xffff & ((576 / 3) * (b + 1));\n var j = Encoder.BLKSIZE_s / 8 - 1;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[j << 2] & 0xff;\n\n f0 = window_s[i] * buffer[chn][bufPos + i + k];\n w = window_s[0x7f - i] * buffer[chn][bufPos + i + k + 0x80];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 0x40] * buffer[chn][bufPos + i + k + 0x40];\n w = window_s[0x3f - i] * buffer[chn][bufPos + i + k + 0xc0];\n f3 = f2 - w;\n f2 = f2 + w;\n\n x -= 4;\n x_real[b][x + 0] = f0 + f2;\n x_real[b][x + 2] = f0 - f2;\n x_real[b][x + 1] = f1 + f3;\n x_real[b][x + 3] = f1 - f3;\n\n f0 = window_s[i + 0x01] * buffer[chn][bufPos + i + k + 0x01];\n w = window_s[0x7e - i] * buffer[chn][bufPos + i + k + 0x81];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 0x41] * buffer[chn][bufPos + i + k + 0x41];\n w = window_s[0x3e - i] * buffer[chn][bufPos + i + k + 0xc1];\n f3 = f2 - w;\n f2 = f2 + w;\n\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 0] = f0 + f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 2] = f0 - f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 1] = f1 + f3;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 3] = f1 - f3;\n } while (--j >= 0);\n\n fht(x_real[b], x, Encoder.BLKSIZE_s / 2);\n /* BLKSIZE_s/2 because of 3DNow! ASM routine */\n /* BLKSIZE/2 because of 3DNow! ASM routine */\n }\n }\n\n this.fft_long = function (gfc, y, chn, buffer, bufPos) {\n var jj = Encoder.BLKSIZE / 8 - 1;\n var x = Encoder.BLKSIZE / 2;\n\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[jj] & 0xff;\n f0 = window[i] * buffer[chn][bufPos + i];\n w = window[i + 0x200] * buffer[chn][bufPos + i + 0x200];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window[i + 0x100] * buffer[chn][bufPos + i + 0x100];\n w = window[i + 0x300] * buffer[chn][bufPos + i + 0x300];\n f3 = f2 - w;\n f2 = f2 + w;\n\n x -= 4;\n y[x + 0] = f0 + f2;\n y[x + 2] = f0 - f2;\n y[x + 1] = f1 + f3;\n y[x + 3] = f1 - f3;\n\n f0 = window[i + 0x001] * buffer[chn][bufPos + i + 0x001];\n w = window[i + 0x201] * buffer[chn][bufPos + i + 0x201];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window[i + 0x101] * buffer[chn][bufPos + i + 0x101];\n w = window[i + 0x301] * buffer[chn][bufPos + i + 0x301];\n f3 = f2 - w;\n f2 = f2 + w;\n\n y[x + Encoder.BLKSIZE / 2 + 0] = f0 + f2;\n y[x + Encoder.BLKSIZE / 2 + 2] = f0 - f2;\n y[x + Encoder.BLKSIZE / 2 + 1] = f1 + f3;\n y[x + Encoder.BLKSIZE / 2 + 3] = f1 - f3;\n } while (--jj >= 0);\n\n fht(y, x, Encoder.BLKSIZE / 2);\n /* BLKSIZE/2 because of 3DNow! ASM routine */\n }\n\n this.init_fft = function (gfc) {\n /* The type of window used here will make no real difference, but */\n /*\n * in the interest of merging nspsytune stuff - switch to blackman\n * window\n */\n for (var i = 0; i < Encoder.BLKSIZE; i++)\n /* blackman window */\n window[i] = (0.42 - 0.5 * Math.cos(2 * Math.PI * (i + .5)\n / Encoder.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + .5)\n / Encoder.BLKSIZE));\n\n for (var i = 0; i < Encoder.BLKSIZE_s / 2; i++)\n window_s[i] = (0.5 * (1.0 - Math.cos(2.0 * Math.PI\n * (i + 0.5) / Encoder.BLKSIZE_s)));\n\n }\n\n}\n\nmodule.exports = FFT;\n","function Version() {\n\n /**\n * URL for the LAME website.\n */\n var LAME_URL = \"http://www.mp3dev.org/\";\n\n /**\n * Major version number.\n */\n var LAME_MAJOR_VERSION = 3;\n /**\n * Minor version number.\n */\n var LAME_MINOR_VERSION = 98;\n /**\n * Patch level.\n */\n var LAME_PATCH_VERSION = 4;\n\n /**\n * Major version number.\n */\n var PSY_MAJOR_VERSION = 0;\n /**\n * Minor version number.\n */\n var PSY_MINOR_VERSION = 93;\n\n /**\n * A string which describes the version of LAME.\n *\n * @return string which describes the version of LAME\n */\n this.getLameVersion = function () {\n // primary to write screen reports\n return (LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION);\n }\n\n /**\n * The short version of the LAME version string.\n *\n * @return short version of the LAME version string\n */\n this.getLameShortVersion = function () {\n // Adding date and time to version string makes it harder for output\n // validation\n return (LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION);\n }\n\n /**\n * The shortest version of the LAME version string.\n *\n * @return shortest version of the LAME version string\n */\n this.getLameVeryShortVersion = function () {\n // Adding date and time to version string makes it harder for output\n return (\"LAME\" + LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \"r\");\n }\n\n /**\n * String which describes the version of GPSYCHO\n *\n * @return string which describes the version of GPSYCHO\n */\n this.getPsyVersion = function () {\n return (PSY_MAJOR_VERSION + \".\" + PSY_MINOR_VERSION);\n }\n\n /**\n * String which is a URL for the LAME website.\n *\n * @return string which is a URL for the LAME website\n */\n this.getLameUrl = function () {\n return LAME_URL;\n }\n\n /**\n * Quite useless for a java version, however we are compatible ;-)\n *\n * @return \"32bits\"\n */\n this.getLameOsBitness = function () {\n return \"32bits\";\n }\n\n}\n\nmodule.exports = Version;\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \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 = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"00ee\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ \"022d\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsList_vue_vue_type_style_index_0_id_a7e0f8e4_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"cc69\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsList_vue_vue_type_style_index_0_id_a7e0f8e4_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsList_vue_vue_type_style_index_0_id_a7e0f8e4_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"0366\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(\"1c0b\");\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\n\n/***/ }),\n\n/***/ \"049b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"0538\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aFunction = __webpack_require__(\"1c0b\");\nvar isObject = __webpack_require__(\"861d\");\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.es/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\n\n/***/ }),\n\n/***/ \"057f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar nativeGetOwnPropertyNames = __webpack_require__(\"241c\").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\n\n/***/ }),\n\n/***/ \"06cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar has = __webpack_require__(\"5135\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"0b25\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\nvar toLength = __webpack_require__(\"50c4\");\n\n// `ToIndex` abstract operation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"0cb2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(\"7b0b\");\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n\n\n/***/ }),\n\n/***/ \"0ccb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = __webpack_require__(\"50c4\");\nvar repeat = __webpack_require__(\"1148\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"0cfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar fails = __webpack_require__(\"d039\");\nvar createElement = __webpack_require__(\"cc12\");\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\n\n/***/ }),\n\n/***/ \"0d03\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(\"6eeb\");\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = DatePrototype[TO_STRING];\nvar getTime = DatePrototype.getTime;\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (new Date(NaN) + '' != INVALID_DATE) {\n redefine(DatePrototype, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? nativeDateToString.call(this) : INVALID_DATE;\n });\n}\n\n\n/***/ }),\n\n/***/ \"0d3b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar IS_PURE = __webpack_require__(\"c430\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n\n\n/***/ }),\n\n/***/ \"0fb7\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomContent_vue_vue_type_style_index_0_id_1826b94a_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"f46c\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomContent_vue_vue_type_style_index_0_id_1826b94a_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomContent_vue_vue_type_style_index_0_id_1826b94a_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"1148\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"129f\":\n/***/ (function(module, exports) {\n\n// `SameValue` abstract operation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"13d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $reduce = __webpack_require__(\"d58f\").left;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\nvar CHROME_VERSION = __webpack_require__(\"2d00\");\nvar IS_NODE = __webpack_require__(\"605d\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"145e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(\"7b0b\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\nvar toLength = __webpack_require__(\"50c4\");\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"14c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"c6b6\");\nvar regexpExec = __webpack_require__(\"9263\");\n\n// `RegExpExec` abstract operation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"159b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar DOMIterables = __webpack_require__(\"fdbc\");\nvar forEach = __webpack_require__(\"17c2\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\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\n\n/***/ }),\n\n/***/ \"1606\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatWindow_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a818\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatWindow_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChatWindow_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"1648\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"1652\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.stateify = exports.TokenState = exports.CharacterState = undefined;\n\nvar _class = __webpack_require__(\"254c\");\n\nfunction createStateClass() {\n\treturn function (tClass) {\n\t\tthis.j = [];\n\t\tthis.T = tClass || null;\n\t};\n}\n\n/**\n\tA simple state machine that can emit token classes\n\n\tThe `j` property in this class refers to state jumps. It's a\n\tmultidimensional array where for each element:\n\n\t* index [0] is a symbol or class of symbols to transition to.\n\t* index [1] is a State instance which matches\n\n\tThe type of symbol will depend on the target implementation for this class.\n\tIn Linkify, we have a two-stage scanner. Each stage uses this state machine\n\tbut with a slighly different (polymorphic) implementation.\n\n\tThe `T` property refers to the token class.\n\n\tTODO: Can the `on` and `next` methods be combined?\n\n\t@class BaseState\n*/\nvar BaseState = createStateClass();\nBaseState.prototype = {\n\tdefaultTransition: false,\n\n\t/**\n \t@method constructor\n \t@param {Class} tClass Pass in the kind of token to emit if there are\n \t\tno jumps after this state and the state is accepting.\n */\n\n\t/**\n \tOn the given symbol(s), this machine should go to the given state\n \t\t@method on\n \t@param {Array|Mixed} symbol\n \t@param {BaseState} state Note that the type of this state should be the\n \t\tsame as the current instance (i.e., don't pass in a different\n \t\tsubclass)\n */\n\ton: function on(symbol, state) {\n\t\tif (symbol instanceof Array) {\n\t\t\tfor (var i = 0; i < symbol.length; i++) {\n\t\t\t\tthis.j.push([symbol[i], state]);\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tthis.j.push([symbol, state]);\n\t\treturn this;\n\t},\n\n\n\t/**\n \tGiven the next item, returns next state for that item\n \t@method next\n \t@param {Mixed} item Should be an instance of the symbols handled by\n \t\tthis particular machine.\n \t@return {State} state Returns false if no jumps are available\n */\n\tnext: function next(item) {\n\t\tfor (var i = 0; i < this.j.length; i++) {\n\t\t\tvar jump = this.j[i];\n\t\t\tvar symbol = jump[0]; // Next item to check for\n\t\t\tvar state = jump[1]; // State to jump to if items match\n\n\t\t\t// compare item with symbol\n\t\t\tif (this.test(item, symbol)) {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t}\n\n\t\t// Nowhere left to jump!\n\t\treturn this.defaultTransition;\n\t},\n\n\n\t/**\n \tDoes this state accept?\n \t`true` only of `this.T` exists\n \t\t@method accepts\n \t@return {Boolean}\n */\n\taccepts: function accepts() {\n\t\treturn !!this.T;\n\t},\n\n\n\t/**\n \tDetermine whether a given item \"symbolizes\" the symbol, where symbol is\n \ta class of items handled by this state machine.\n \t\tThis method should be overriden in extended classes.\n \t\t@method test\n \t@param {Mixed} item Does this item match the given symbol?\n \t@param {Mixed} symbol\n \t@return {Boolean}\n */\n\ttest: function test(item, symbol) {\n\t\treturn item === symbol;\n\t},\n\n\n\t/**\n \tEmit the token for this State (just return it in this case)\n \tIf this emits a token, this instance is an accepting state\n \t@method emit\n \t@return {Class} T\n */\n\temit: function emit() {\n\t\treturn this.T;\n\t}\n};\n\n/**\n\tState machine for string-based input\n\n\t@class CharacterState\n\t@extends BaseState\n*/\nvar CharacterState = (0, _class.inherits)(BaseState, createStateClass(), {\n\t/**\n \tDoes the given character match the given character or regular\n \texpression?\n \t\t@method test\n \t@param {String} char\n \t@param {String|RegExp} charOrRegExp\n \t@return {Boolean}\n */\n\ttest: function test(character, charOrRegExp) {\n\t\treturn character === charOrRegExp || charOrRegExp instanceof RegExp && charOrRegExp.test(character);\n\t}\n});\n\n/**\n\tState machine for input in the form of TextTokens\n\n\t@class TokenState\n\t@extends BaseState\n*/\nvar TokenState = (0, _class.inherits)(BaseState, createStateClass(), {\n\n\t/**\n * Similar to `on`, but returns the state the results in the transition from\n * the given item\n * @method jump\n * @param {Mixed} item\n * @param {Token} [token]\n * @return state\n */\n\tjump: function jump(token) {\n\t\tvar tClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\t\tvar state = this.next(new token('')); // dummy temp token\n\t\tif (state === this.defaultTransition) {\n\t\t\t// Make a new state!\n\t\t\tstate = new this.constructor(tClass);\n\t\t\tthis.on(token, state);\n\t\t} else if (tClass) {\n\t\t\tstate.T = tClass;\n\t\t}\n\t\treturn state;\n\t},\n\n\n\t/**\n \tIs the given token an instance of the given token class?\n \t\t@method test\n \t@param {TextToken} token\n \t@param {Class} tokenClass\n \t@return {Boolean}\n */\n\ttest: function test(token, tokenClass) {\n\t\treturn token instanceof tokenClass;\n\t}\n});\n\n/**\n\tGiven a non-empty target string, generates states (if required) for each\n\tconsecutive substring of characters in str starting from the beginning of\n\tthe string. The final state will have a special value, as specified in\n\toptions. All other \"in between\" substrings will have a default end state.\n\n\tThis turns the state machine into a Trie-like data structure (rather than a\n\tintelligently-designed DFA).\n\n\tNote that I haven't really tried these with any strings other than\n\tDOMAIN.\n\n\t@param {String} str\n\t@param {CharacterState} start State to jump from the first character\n\t@param {Class} endToken Token class to emit when the given string has been\n\t\tmatched and no more jumps exist.\n\t@param {Class} defaultToken \"Filler token\", or which token type to emit when\n\t\twe don't have a full match\n\t@return {Array} list of newly-created states\n*/\nfunction stateify(str, start, endToken, defaultToken) {\n\tvar i = 0,\n\t len = str.length,\n\t state = start,\n\t newStates = [],\n\t nextState = void 0;\n\n\t// Find the next state without a jump to the next character\n\twhile (i < len && (nextState = state.next(str[i]))) {\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tif (i >= len) {\n\t\treturn [];\n\t} // no new tokens were added\n\n\twhile (i < len - 1) {\n\t\tnextState = new CharacterState(defaultToken);\n\t\tnewStates.push(nextState);\n\t\tstate.on(str[i], nextState);\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tnextState = new CharacterState(endToken);\n\tnewStates.push(nextState);\n\tstate.on(str[len - 1], nextState);\n\n\treturn newStates;\n}\n\nexports.CharacterState = CharacterState;\nexports.TokenState = TokenState;\nexports.stateify = stateify;\n\n/***/ }),\n\n/***/ \"170b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\nvar speciesConstructor = __webpack_require__(\"4840\");\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"1726\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormatMessage_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"4f8d\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormatMessage_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormatMessage_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"17c2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(\"b727\").forEach;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"182d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPositiveInteger = __webpack_require__(\"f8cd\");\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n\n\n/***/ }),\n\n/***/ \"19aa\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"1a98\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"detectMobile\", function() { return detectMobile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"iOSDevice\", function() { return iOSDevice; });\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"caad\");\n/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"2532\");\n/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction detectMobile() {\n var userAgent = getUserAgent();\n var userAgentPart = userAgent.substr(0, 4);\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(userAgentPart);\n}\n\nfunction getUserAgent() {\n var userAgent = navigator.userAgent || navigator.vendor || window.opera || null;\n if (!userAgent) throw new Error('Failed to look for user agent information.');\n return userAgent;\n}\n\nfunction iOSDevice() {\n return ['iPad', 'iPhone', 'iPod'].includes(navigator.platform) || navigator.userAgent.includes('Mac') && 'ontouchend' in document;\n}\n\n/***/ }),\n\n/***/ \"1be4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ \"1bff\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomUsersTag_vue_vue_type_style_index_0_id_4e36c504_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"98d5\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomUsersTag_vue_vue_type_style_index_0_id_4e36c504_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomUsersTag_vue_vue_type_style_index_0_id_4e36c504_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"1c0b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"1c7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\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\n\n/***/ }),\n\n/***/ \"1cdc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar userAgent = __webpack_require__(\"342f\");\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n\n\n/***/ }),\n\n/***/ \"1d1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(\"23e7\");\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar defineProperties = __webpack_require__(\"37e8\");\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n\n\n/***/ }),\n\n/***/ \"1d80\":\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"1dde\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar V8_VERSION = __webpack_require__(\"2d00\");\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\n\n/***/ }),\n\n/***/ \"219c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n\n\n/***/ }),\n\n/***/ \"2266\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\nvar isArrayIteratorMethod = __webpack_require__(\"e95a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar bind = __webpack_require__(\"0366\");\nvar getIteratorMethod = __webpack_require__(\"35a1\");\nvar iteratorClose = __webpack_require__(\"2a62\");\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\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 = callFn(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 try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\n\n/***/ }),\n\n/***/ \"2315\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar createHTML = __webpack_require__(\"857a\");\nvar forcedStringHTMLMethod = __webpack_require__(\"af03\");\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n strike: function strike() {\n return createHTML(this, 'strike', '', '');\n }\n});\n\n\n/***/ }),\n\n/***/ \"23cb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\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\n\n/***/ }),\n\n/***/ \"23e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar copyConstructorProperties = __webpack_require__(\"e893\");\nvar isForced = __webpack_require__(\"94ca\");\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\n\n/***/ }),\n\n/***/ \"241c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(\"ca84\");\nvar enumBugKeys = __webpack_require__(\"7839\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"2532\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar notARegExp = __webpack_require__(\"5a34\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar correctIsRegExpLogic = __webpack_require__(\"ab13\");\n\n// `String.prototype.includes` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"254c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.inherits = inherits;\nfunction inherits(parent, child) {\n\tvar props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\tvar extended = Object.create(parent.prototype);\n\tfor (var p in props) {\n\t\textended[p] = props[p];\n\t}\n\textended.constructor = child;\n\tchild.prototype = extended;\n\treturn child;\n}\n\n/***/ }),\n\n/***/ \"2582\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsSearch_vue_vue_type_style_index_0_id_75dd31cd_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"4596\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsSearch_vue_vue_type_style_index_0_id_75dd31cd_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomsSearch_vue_vue_type_style_index_0_id_75dd31cd_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"25a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar $reduceRight = __webpack_require__(\"d58f\").right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"25f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(\"6eeb\");\nvar anObject = __webpack_require__(\"825a\");\nvar fails = __webpack_require__(\"d039\");\nvar flags = __webpack_require__(\"ad6d\");\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.es/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\n\n/***/ }),\n\n/***/ \"2626\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\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\n\n/***/ }),\n\n/***/ \"277d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(\"23e7\");\nvar isArray = __webpack_require__(\"e8b5\");\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n\n\n/***/ }),\n\n/***/ \"2954\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar speciesConstructor = __webpack_require__(\"4840\");\nvar fails = __webpack_require__(\"d039\");\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.es/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\n\n/***/ }),\n\n/***/ \"2a62\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n\n\n/***/ }),\n\n/***/ \"2b3d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(\"3ca3\");\nvar $ = __webpack_require__(\"23e7\");\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar USE_NATIVE_URL = __webpack_require__(\"0d3b\");\nvar global = __webpack_require__(\"da84\");\nvar defineProperties = __webpack_require__(\"37e8\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar anInstance = __webpack_require__(\"19aa\");\nvar has = __webpack_require__(\"5135\");\nvar assign = __webpack_require__(\"60da\");\nvar arrayFrom = __webpack_require__(\"4df4\");\nvar codeAt = __webpack_require__(\"6547\").codeAt;\nvar toASCII = __webpack_require__(\"5fb2\");\nvar setToStringTag = __webpack_require__(\"d44e\");\nvar URLSearchParamsModule = __webpack_require__(\"9861\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n\n\n/***/ }),\n\n/***/ \"2ca0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar toLength = __webpack_require__(\"50c4\");\nvar notARegExp = __webpack_require__(\"5a34\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar correctIsRegExpLogic = __webpack_require__(\"ab13\");\nvar IS_PURE = __webpack_require__(\"c430\");\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.es/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\n\n/***/ }),\n\n/***/ \"2cf4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar fails = __webpack_require__(\"d039\");\nvar bind = __webpack_require__(\"0366\");\nvar html = __webpack_require__(\"1be4\");\nvar createElement = __webpack_require__(\"cc12\");\nvar IS_IOS = __webpack_require__(\"1cdc\");\nvar IS_NODE = __webpack_require__(\"605d\");\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 (IS_NODE) {\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 location && location.protocol !== 'file:' &&\n !fails(post)\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\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar userAgent = __webpack_require__(\"342f\");\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\n\n/***/ }),\n\n/***/ \"2d78\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.tokenize = exports.test = exports.scanner = exports.parser = exports.options = exports.inherits = exports.find = undefined;\n\nvar _class = __webpack_require__(\"254c\");\n\nvar _options = __webpack_require__(\"316e\");\n\nvar options = _interopRequireWildcard(_options);\n\nvar _scanner = __webpack_require__(\"b7fe\");\n\nvar scanner = _interopRequireWildcard(_scanner);\n\nvar _parser = __webpack_require__(\"4128\");\n\nvar parser = _interopRequireWildcard(_parser);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nif (!Array.isArray) {\n\tArray.isArray = function (arg) {\n\t\treturn Object.prototype.toString.call(arg) === '[object Array]';\n\t};\n}\n\n/**\n\tConverts a string into tokens that represent linkable and non-linkable bits\n\t@method tokenize\n\t@param {String} str\n\t@return {Array} tokens\n*/\nvar tokenize = function tokenize(str) {\n\treturn parser.run(scanner.run(str));\n};\n\n/**\n\tReturns a list of linkable items in the given string.\n*/\nvar find = function find(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\tvar filtered = [];\n\n\tfor (var i = 0; i < tokens.length; i++) {\n\t\tvar token = tokens[i];\n\t\tif (token.isLink && (!type || token.type === type)) {\n\t\t\tfiltered.push(token.toObject());\n\t\t}\n\t}\n\n\treturn filtered;\n};\n\n/**\n\tIs the given string valid linkable text of some sort\n\tNote that this does not trim the text for you.\n\n\tOptionally pass in a second `type` param, which is the type of link to test\n\tfor.\n\n\tFor example,\n\n\t\ttest(str, 'email');\n\n\tWill return `true` if str is a valid email.\n*/\nvar test = function test(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\treturn tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].type === type);\n};\n\n// Scanner and parser provide states and tokens for the lexicographic stage\n// (will be used to add additional link types)\nexports.find = find;\nexports.inherits = _class.inherits;\nexports.options = options;\nexports.parser = parser;\nexports.scanner = scanner;\nexports.test = test;\nexports.tokenize = tokenize;\n\n/***/ }),\n\n/***/ \"2da9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"3113\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Loader_vue_vue_type_style_index_0_id_fd7c39d0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"e3b2\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Loader_vue_vue_type_style_index_0_id_fd7c39d0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Loader_vue_vue_type_style_index_0_id_fd7c39d0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"316e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar defaults = {\n\tdefaultProtocol: 'http',\n\tevents: null,\n\tformat: noop,\n\tformatHref: noop,\n\tnl2br: false,\n\ttagName: 'a',\n\ttarget: typeToTarget,\n\tvalidate: true,\n\tignoreTags: [],\n\tattributes: null,\n\tclassName: 'linkified' // Deprecated value - no default class will be provided in the future\n};\n\nexports.defaults = defaults;\nexports.Options = Options;\nexports.contains = contains;\n\n\nfunction Options(opts) {\n\topts = opts || {};\n\n\tthis.defaultProtocol = opts.hasOwnProperty('defaultProtocol') ? opts.defaultProtocol : defaults.defaultProtocol;\n\tthis.events = opts.hasOwnProperty('events') ? opts.events : defaults.events;\n\tthis.format = opts.hasOwnProperty('format') ? opts.format : defaults.format;\n\tthis.formatHref = opts.hasOwnProperty('formatHref') ? opts.formatHref : defaults.formatHref;\n\tthis.nl2br = opts.hasOwnProperty('nl2br') ? opts.nl2br : defaults.nl2br;\n\tthis.tagName = opts.hasOwnProperty('tagName') ? opts.tagName : defaults.tagName;\n\tthis.target = opts.hasOwnProperty('target') ? opts.target : defaults.target;\n\tthis.validate = opts.hasOwnProperty('validate') ? opts.validate : defaults.validate;\n\tthis.ignoreTags = [];\n\n\t// linkAttributes and linkClass is deprecated\n\tthis.attributes = opts.attributes || opts.linkAttributes || defaults.attributes;\n\tthis.className = opts.hasOwnProperty('className') ? opts.className : opts.linkClass || defaults.className;\n\n\t// Make all tags names upper case\n\tvar ignoredTags = opts.hasOwnProperty('ignoreTags') ? opts.ignoreTags : defaults.ignoreTags;\n\tfor (var i = 0; i < ignoredTags.length; i++) {\n\t\tthis.ignoreTags.push(ignoredTags[i].toUpperCase());\n\t}\n}\n\nOptions.prototype = {\n\t/**\n * Given the token, return all options for how it should be displayed\n */\n\tresolve: function resolve(token) {\n\t\tvar href = token.toHref(this.defaultProtocol);\n\t\treturn {\n\t\t\tformatted: this.get('format', token.toString(), token),\n\t\t\tformattedHref: this.get('formatHref', href, token),\n\t\t\ttagName: this.get('tagName', href, token),\n\t\t\tclassName: this.get('className', href, token),\n\t\t\ttarget: this.get('target', href, token),\n\t\t\tevents: this.getObject('events', href, token),\n\t\t\tattributes: this.getObject('attributes', href, token)\n\t\t};\n\t},\n\n\n\t/**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options. By default,\n */\n\tcheck: function check(token) {\n\t\treturn this.get('validate', token.toString(), token);\n\t},\n\n\n\t// Private methods\n\n\t/**\n * Resolve an option's value based on the value of the option and the given\n * params.\n * @param {String} key Name of option to use\n * @param operator will be passed to the target option if it's method\n * @param {MultiToken} token The token from linkify.tokenize\n */\n\tget: function get(key, operator, token) {\n\t\tvar optionValue = void 0,\n\t\t option = this[key];\n\t\tif (!option) {\n\t\t\treturn option;\n\t\t}\n\n\t\tswitch (typeof option === 'undefined' ? 'undefined' : _typeof(option)) {\n\t\t\tcase 'function':\n\t\t\t\treturn option(operator, token.type);\n\t\t\tcase 'object':\n\t\t\t\toptionValue = option.hasOwnProperty(token.type) ? option[token.type] : defaults[key];\n\t\t\t\treturn typeof optionValue === 'function' ? optionValue(operator, token.type) : optionValue;\n\t\t}\n\n\t\treturn option;\n\t},\n\tgetObject: function getObject(key, operator, token) {\n\t\tvar option = this[key];\n\t\treturn typeof option === 'function' ? option(operator, token.type) : option;\n\t}\n};\n\n/**\n * Quick indexOf replacement for checking the ignoreTags option\n */\nfunction contains(arr, value) {\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (arr[i] === value) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction noop(val) {\n\treturn val;\n}\n\nfunction typeToTarget(href, type) {\n\treturn type === 'url' ? '_blank' : null;\n}\n\n/***/ }),\n\n/***/ \"3280\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar $lastIndexOf = __webpack_require__(\"e58c\");\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"3298\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EmojiPicker_vue_vue_type_style_index_0_id_7840a3ed_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"5c52\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EmojiPicker_vue_vue_type_style_index_0_id_7840a3ed_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_EmojiPicker_vue_vue_type_style_index_0_id_7840a3ed_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"342f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ \"35a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"f5df\");\nvar Iterators = __webpack_require__(\"3f8c\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\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\n\n/***/ }),\n\n/***/ \"3719\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"37e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar anObject = __webpack_require__(\"825a\");\nvar objectKeys = __webpack_require__(\"df75\");\n\n// `Object.defineProperties` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"3a7b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar $findIndex = __webpack_require__(\"b727\").findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"3bbe\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\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\n\n/***/ }),\n\n/***/ \"3c5d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toOffset = __webpack_require__(\"182d\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar fails = __webpack_require__(\"d039\");\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.es/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\n\n/***/ }),\n\n/***/ \"3ca3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(\"6547\").charAt;\nvar InternalStateModule = __webpack_require__(\"69f3\");\nvar defineIterator = __webpack_require__(\"7dd0\");\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.es/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.es/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\n\n/***/ }),\n\n/***/ \"3f85\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgIcon_vue_vue_type_style_index_0_id_3e37b0e6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"1648\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgIcon_vue_vue_type_style_index_0_id_3e37b0e6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgIcon_vue_vue_type_style_index_0_id_3e37b0e6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"3f8c\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"3fcc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar $map = __webpack_require__(\"b727\").map;\nvar speciesConstructor = __webpack_require__(\"4840\");\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"408a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"c6b6\");\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"4128\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.start = exports.run = exports.TOKENS = exports.State = undefined;\n\nvar _state = __webpack_require__(\"1652\");\n\nvar _multi = __webpack_require__(\"bea1\");\n\nvar MULTI_TOKENS = _interopRequireWildcard(_multi);\n\nvar _text = __webpack_require__(\"7656\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/Email_address (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main parser\n*/\n\nvar makeState = function makeState(tokenClass) {\n\treturn new _state.TokenState(tokenClass);\n};\n\n// The universal starting state.\nvar S_START = makeState();\n\n// Intermediate states for URLs. Note that domains that begin with a protocol\n// are treated slighly differently from those that don't.\nvar S_PROTOCOL = makeState(); // e.g., 'http:'\nvar S_MAILTO = makeState(); // 'mailto:'\nvar S_PROTOCOL_SLASH = makeState(); // e.g., '/', 'http:/''\nvar S_PROTOCOL_SLASH_SLASH = makeState(); // e.g., '//', 'http://'\nvar S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)\nvar S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT\nvar S_TLD = makeState(_multi.URL); // (A) Simplest possible URL with no query string\nvar S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)\nvar S_TLD_PORT = makeState(_multi.URL); // TLD followed by a port number\nvar S_URL = makeState(_multi.URL); // Long URL with optional port and maybe query string\nvar S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)\nvar S_URL_OPENBRACE = makeState(); // URL followed by {\nvar S_URL_OPENBRACKET = makeState(); // URL followed by [\nvar S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <\nvar S_URL_OPENPAREN = makeState(); // URL followed by (\nvar S_URL_OPENBRACE_Q = makeState(_multi.URL); // URL followed by { and some symbols that the URL can end it\nvar S_URL_OPENBRACKET_Q = makeState(_multi.URL); // URL followed by [ and some symbols that the URL can end it\nvar S_URL_OPENANGLEBRACKET_Q = makeState(_multi.URL); // URL followed by < and some symbols that the URL can end it\nvar S_URL_OPENPAREN_Q = makeState(_multi.URL); // URL followed by ( and some symbols that the URL can end it\nvar S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it\nvar S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it\nvar S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)\nvar S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT\nvar S_EMAIL = makeState(_multi.EMAIL); // (C) Possible email address (could have more tlds)\nvar S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)\nvar S_EMAIL_PORT = makeState(_multi.EMAIL); // (C) Email address with a port\nvar S_MAILTO_EMAIL = makeState(_multi.MAILTOEMAIL); // Email that begins with the mailto prefix (D)\nvar S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars\nvar S_LOCALPART = makeState(); // Local part of the email address\nvar S_LOCALPART_AT = makeState(); // Local part of the email address plus @\nvar S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)\nvar S_NL = makeState(_multi.NL); // single new line\n\n// Make path from start to protocol (with '//')\nS_START.on(_text.NL, S_NL).on(_text.PROTOCOL, S_PROTOCOL).on(_text.MAILTO, S_MAILTO).on(_text.SLASH, S_PROTOCOL_SLASH);\n\nS_PROTOCOL.on(_text.SLASH, S_PROTOCOL_SLASH);\nS_PROTOCOL_SLASH.on(_text.SLASH, S_PROTOCOL_SLASH_SLASH);\n\n// The very first potential domain name\nS_START.on(_text.TLD, S_DOMAIN).on(_text.DOMAIN, S_DOMAIN).on(_text.LOCALHOST, S_TLD).on(_text.NUM, S_DOMAIN);\n\n// Force URL for protocol followed by anything sane\nS_PROTOCOL_SLASH_SLASH.on(_text.TLD, S_URL).on(_text.DOMAIN, S_URL).on(_text.NUM, S_URL).on(_text.LOCALHOST, S_URL);\n\n// Account for dots and hyphens\n// hyphens are usually parts of domain names\nS_DOMAIN.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL_DOMAIN.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Hyphen can jump back to a domain name\n\n// After the first domain and a dot, we can find either a URL or another domain\nS_DOMAIN_DOT.on(_text.TLD, S_TLD).on(_text.DOMAIN, S_DOMAIN).on(_text.NUM, S_DOMAIN).on(_text.LOCALHOST, S_DOMAIN);\n\nS_EMAIL_DOMAIN_DOT.on(_text.TLD, S_EMAIL).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.NUM, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL_DOMAIN);\n\n// S_TLD accepts! But the URL could be longer, try to find a match greedily\n// The `run` function should be able to \"rollback\" to the accepting state\nS_TLD.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Become real URLs after `SLASH` or `COLON NUM SLASH`\n// Here PSS and non-PSS converge\nS_TLD.on(_text.COLON, S_TLD_COLON).on(_text.SLASH, S_URL);\nS_TLD_COLON.on(_text.NUM, S_TLD_PORT);\nS_TLD_PORT.on(_text.SLASH, S_URL);\nS_EMAIL.on(_text.COLON, S_EMAIL_COLON);\nS_EMAIL_COLON.on(_text.NUM, S_EMAIL_PORT);\n\n// Types of characters the URL can definitely end in\nvar qsAccepting = [_text.DOMAIN, _text.AT, _text.LOCALHOST, _text.NUM, _text.PLUS, _text.POUND, _text.PROTOCOL, _text.SLASH, _text.TLD, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND];\n\n// Types of tokens that can follow a URL and be part of the query string\n// but cannot be the very last characters\n// Characters that cannot appear in the URL at all should be excluded\nvar qsNonAccepting = [_text.COLON, _text.DOT, _text.QUERY, _text.PUNCTUATION, _text.CLOSEBRACE, _text.CLOSEBRACKET, _text.CLOSEANGLEBRACKET, _text.CLOSEPAREN, _text.OPENBRACE, _text.OPENBRACKET, _text.OPENANGLEBRACKET, _text.OPENPAREN];\n\n// These states are responsible primarily for determining whether or not to\n// include the final round bracket.\n\n// URL, followed by an opening bracket\nS_URL.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// URL with extra symbols at the end, followed by an opening bracket\nS_URL_NON_ACCEPTING.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// Closing bracket component. This character WILL be included in the URL\nS_URL_OPENBRACE.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_Q.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_Q.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_Q.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_Q.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_SYMS.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_SYMS.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_SYMS.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_SYMS.on(_text.CLOSEPAREN, S_URL);\n\n// URL that beings with an opening bracket, followed by a symbols.\n// Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only\n// has a single opening bracket for some reason).\nS_URL_OPENBRACE.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// URL that begins with an opening bracket, followed by some symbols\nS_URL_OPENBRACE_Q.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_Q.on(qsNonAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsNonAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsNonAccepting, S_URL_OPENPAREN_Q);\n\nS_URL_OPENBRACE_SYMS.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_SYMS.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_SYMS.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_SYMS.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN_SYMS.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// Account for the query string\nS_URL.on(qsAccepting, S_URL);\nS_URL_NON_ACCEPTING.on(qsAccepting, S_URL);\n\nS_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);\nS_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);\n\n// Email address-specific state definitions\n// Note: We are not allowing '/' in email addresses since this would interfere\n// with real URLs\n\n// For addresses with the mailto prefix\n// 'mailto:' followed by anything sane is a valid email\nS_MAILTO.on(_text.TLD, S_MAILTO_EMAIL).on(_text.DOMAIN, S_MAILTO_EMAIL).on(_text.NUM, S_MAILTO_EMAIL).on(_text.LOCALHOST, S_MAILTO_EMAIL);\n\n// Greedily get more potential valid email values\nS_MAILTO_EMAIL.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\nS_MAILTO_EMAIL_NON_ACCEPTING.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\n\n// For addresses without the mailto prefix\n// Tokens allowed in the localpart of the email\nvar localpartAccepting = [_text.DOMAIN, _text.NUM, _text.PLUS, _text.POUND, _text.QUERY, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND, _text.TLD];\n\n// Some of the tokens in `localpartAccepting` are already accounted for here and\n// will not be overwritten (don't worry)\nS_DOMAIN.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_TLD.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_DOMAIN_DOT.on(localpartAccepting, S_LOCALPART);\n\n// Okay we're on a localpart. Now what?\n// TODO: IP addresses and what if the email starts with numbers?\nS_LOCALPART.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT) // close to an email address now\n.on(_text.DOT, S_LOCALPART_DOT);\nS_LOCALPART_DOT.on(localpartAccepting, S_LOCALPART);\nS_LOCALPART_AT.on(_text.TLD, S_EMAIL_DOMAIN).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL);\n// States following `@` defined above\n\nvar run = function run(tokens) {\n\tvar len = tokens.length;\n\tvar cursor = 0;\n\tvar multis = [];\n\tvar textTokens = [];\n\n\twhile (cursor < len) {\n\t\tvar state = S_START;\n\t\tvar secondState = null;\n\t\tvar nextState = null;\n\t\tvar multiLength = 0;\n\t\tvar latestAccepting = null;\n\t\tvar sinceAccepts = -1;\n\n\t\twhile (cursor < len && !(secondState = state.next(tokens[cursor]))) {\n\t\t\t// Starting tokens with nowhere to jump to.\n\t\t\t// Consider these to be just plain text\n\t\t\ttextTokens.push(tokens[cursor++]);\n\t\t}\n\n\t\twhile (cursor < len && (nextState = secondState || state.next(tokens[cursor]))) {\n\n\t\t\t// Get the next state\n\t\t\tsecondState = null;\n\t\t\tstate = nextState;\n\n\t\t\t// Keep track of the latest accepting state\n\t\t\tif (state.accepts()) {\n\t\t\t\tsinceAccepts = 0;\n\t\t\t\tlatestAccepting = state;\n\t\t\t} else if (sinceAccepts >= 0) {\n\t\t\t\tsinceAccepts++;\n\t\t\t}\n\n\t\t\tcursor++;\n\t\t\tmultiLength++;\n\t\t}\n\n\t\tif (sinceAccepts < 0) {\n\n\t\t\t// No accepting state was found, part of a regular text token\n\t\t\t// Add all the tokens we looked at to the text tokens array\n\t\t\tfor (var i = cursor - multiLength; i < cursor; i++) {\n\t\t\t\ttextTokens.push(tokens[i]);\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Accepting state!\n\n\t\t\t// First close off the textTokens (if available)\n\t\t\tif (textTokens.length > 0) {\n\t\t\t\tmultis.push(new _multi.TEXT(textTokens));\n\t\t\t\ttextTokens = [];\n\t\t\t}\n\n\t\t\t// Roll back to the latest accepting state\n\t\t\tcursor -= sinceAccepts;\n\t\t\tmultiLength -= sinceAccepts;\n\n\t\t\t// Create a new multitoken\n\t\t\tvar MULTI = latestAccepting.emit();\n\t\t\tmultis.push(new MULTI(tokens.slice(cursor - multiLength, cursor)));\n\t\t}\n\t}\n\n\t// Finally close off the textTokens (if available)\n\tif (textTokens.length > 0) {\n\t\tmultis.push(new _multi.TEXT(textTokens));\n\t}\n\n\treturn multis;\n};\n\nexports.State = _state.TokenState;\nexports.TOKENS = MULTI_TOKENS;\nexports.run = run;\nexports.start = S_START;\n\n/***/ }),\n\n/***/ \"4160\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar forEach = __webpack_require__(\"17c2\");\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n\n\n/***/ }),\n\n/***/ \"428f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ \"44ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar classof = __webpack_require__(\"c6b6\");\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\n\n/***/ }),\n\n/***/ \"44d2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar create = __webpack_require__(\"7c73\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"44de\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\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\n\n/***/ }),\n\n/***/ \"44e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar classof = __webpack_require__(\"c6b6\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"4596\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"45fc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $some = __webpack_require__(\"b727\").some;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"466d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\nvar anObject = __webpack_require__(\"825a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar advanceStringIndex = __webpack_require__(\"8aa5\");\nvar regExpExec = __webpack_require__(\"14c3\");\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/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.es/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\n\n/***/ }),\n\n/***/ \"46f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nfunction createTokenClass() {\n\treturn function (value) {\n\t\tif (value) {\n\t\t\tthis.v = value;\n\t\t}\n\t};\n}\n\nexports.createTokenClass = createTokenClass;\n\n/***/ }),\n\n/***/ \"4795\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(\"23e7\");\nvar global = __webpack_require__(\"da84\");\nvar userAgent = __webpack_require__(\"342f\");\n\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\n\nvar wrap = function (scheduler) {\n return function (handler, timeout /* , ...arguments */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : undefined;\n return scheduler(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);\n } : handler, timeout);\n };\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n$({ global: true, bind: true, forced: MSIE }, {\n // `setTimeout` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n setTimeout: wrap(global.setTimeout),\n // `setInterval` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n setInterval: wrap(global.setInterval)\n});\n\n\n/***/ }),\n\n/***/ \"4840\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\nvar aFunction = __webpack_require__(\"1c0b\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"4930\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\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\n\n/***/ }),\n\n/***/ \"4978\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"498a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $trim = __webpack_require__(\"58a8\").trim;\nvar forcedStringTrimMethod = __webpack_require__(\"c8d2\");\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n\n\n/***/ }),\n\n/***/ \"4c1d\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"roomsValidation\", function() { return /* binding */ roomsValidation; });\n__webpack_require__.d(__webpack_exports__, \"partcipantsValidation\", function() { return /* binding */ partcipantsValidation; });\n__webpack_require__.d(__webpack_exports__, \"messagesValidation\", function() { return /* binding */ messagesValidation; });\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.every.js\nvar es_array_every = __webpack_require__(\"a623\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js\nvar es_array_find = __webpack_require__(\"7db0\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.is-array.js\nvar es_array_is_array = __webpack_require__(\"277d\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js\nvar es_symbol = __webpack_require__(\"a4d3\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.description.js\nvar es_symbol_description = __webpack_require__(\"e01a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.iterator.js\nvar es_symbol_iterator = __webpack_require__(\"d28b\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js\nvar es_array_iterator = __webpack_require__(\"e260\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js\nvar es_object_to_string = __webpack_require__(\"d3b7\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js\nvar es_string_iterator = __webpack_require__(\"3ca3\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js\nvar web_dom_collections_iterator = __webpack_require__(\"ddb0\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\n\n\n\n\n\n\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n// CONCATENATED MODULE: ./src/utils/data-validation.js\n\n\n\n\nfunction roomsValidation(obj) {\n var roomsValidate = [{\n key: 'roomId',\n type: ['string', 'number']\n }, {\n key: 'roomName',\n type: ['string']\n }, {\n key: 'users',\n type: ['array']\n }];\n\n var validate = function validate(obj, props) {\n return props.every(function (prop) {\n var validType = false;\n\n if (prop.type[0] === 'array' && Array.isArray(obj[prop.key])) {\n validType = true;\n } else if (prop.type.find(function (t) {\n return t === _typeof(obj[prop.key]);\n })) {\n validType = true;\n }\n\n return validType && checkObjectValid(obj, prop.key);\n });\n };\n\n if (!validate(obj, roomsValidate)) {\n throw new Error('Rooms object is not valid! Must contain roomId[String, Number], roomName[String] and users[Array]');\n }\n}\nfunction partcipantsValidation(obj) {\n var participantsValidate = [{\n key: '_id',\n type: ['string', 'number']\n }, {\n key: 'username',\n type: ['string']\n }];\n\n var validate = function validate(obj, props) {\n return props.every(function (prop) {\n var validType = prop.type.find(function (t) {\n return t === _typeof(obj[prop.key]);\n });\n return validType && checkObjectValid(obj, prop.key);\n });\n };\n\n if (!validate(obj, participantsValidate)) {\n throw new Error('Participants object is not valid! Must contain _id[String, Number] and username[String]');\n }\n}\nfunction messagesValidation(obj) {\n var messagesValidate = [{\n key: '_id',\n type: ['string', 'number']\n }, {\n key: 'content',\n type: ['string', 'number']\n }, {\n key: 'senderId',\n type: ['string', 'number']\n }];\n\n var validate = function validate(obj, props) {\n return props.every(function (prop) {\n var validType = prop.type.find(function (t) {\n return t === _typeof(obj[prop.key]);\n });\n return validType && checkObjectValid(obj, prop.key);\n });\n };\n\n if (!validate(obj, messagesValidate)) {\n throw new Error('Messages object is not valid! Must contain _id[String, Number], content[String, Number] and senderId[String, Number]');\n }\n}\n\nfunction checkObjectValid(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key) && obj[key] !== null && obj[key] !== undefined;\n}\n\n/***/ }),\n\n/***/ \"4d63\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar global = __webpack_require__(\"da84\");\nvar isForced = __webpack_require__(\"94ca\");\nvar inheritIfRequired = __webpack_require__(\"7156\");\nvar defineProperty = __webpack_require__(\"9bf2\").f;\nvar getOwnPropertyNames = __webpack_require__(\"241c\").f;\nvar isRegExp = __webpack_require__(\"44e7\");\nvar getFlags = __webpack_require__(\"ad6d\");\nvar stickyHelpers = __webpack_require__(\"9f7f\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar fails = __webpack_require__(\"d039\");\nvar setInternalState = __webpack_require__(\"69f3\").set;\nvar setSpecies = __webpack_require__(\"2626\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n\n\n/***/ }),\n\n/***/ \"4d64\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\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.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"4de4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $filter = __webpack_require__(\"b727\").filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(\"1dde\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"4df4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(\"0366\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar callWithSafeIterationClosing = __webpack_require__(\"9bdd\");\nvar isArrayIteratorMethod = __webpack_require__(\"e95a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar createProperty = __webpack_require__(\"8418\");\nvar getIteratorMethod = __webpack_require__(\"35a1\");\n\n// `Array.from` method implementation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"4e82\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar aFunction = __webpack_require__(\"1c0b\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar fails = __webpack_require__(\"d039\");\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n\n\n/***/ }),\n\n/***/ \"4f8d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"4fad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(\"23e7\");\nvar $entries = __webpack_require__(\"6f53\").entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n\n\n/***/ }),\n\n/***/ \"50c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"5135\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"5319\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\nvar anObject = __webpack_require__(\"825a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar advanceStringIndex = __webpack_require__(\"8aa5\");\nvar getSubstitution = __webpack_require__(\"0cb2\");\nvar regExpExec = __webpack_require__(\"14c3\");\n\nvar max = Math.max;\nvar min = Math.min;\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.es/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.es/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\n\n/***/ }),\n\n/***/ \"5692\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(\"c430\");\nvar store = __webpack_require__(\"c6cd\");\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.8.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"56ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar getOwnPropertyNamesModule = __webpack_require__(\"241c\");\nvar getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\nvar anObject = __webpack_require__(\"825a\");\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\n\n/***/ }),\n\n/***/ \"5899\":\n/***/ (function(module, exports) {\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\n\n/***/ }),\n\n/***/ \"58a8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar whitespaces = __webpack_require__(\"5899\");\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.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n\n\n/***/ }),\n\n/***/ \"5a34\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isRegExp = __webpack_require__(\"44e7\");\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"5c52\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"5c6c\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"5f96\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"5fb2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n\n\n/***/ }),\n\n/***/ \"605d\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"c6b6\");\nvar global = __webpack_require__(\"da84\");\n\nmodule.exports = classof(global.process) == 'process';\n\n\n/***/ }),\n\n/***/ \"60bd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(\"da84\");\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar ArrayIterators = __webpack_require__(\"e260\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\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.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n\n\n/***/ }),\n\n/***/ \"60da\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar fails = __webpack_require__(\"d039\");\nvar objectKeys = __webpack_require__(\"df75\");\nvar getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\nvar propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar IndexedObject = __webpack_require__(\"44ad\");\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"621a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(\"da84\");\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(\"a981\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefineAll = __webpack_require__(\"e2cc\");\nvar fails = __webpack_require__(\"d039\");\nvar anInstance = __webpack_require__(\"19aa\");\nvar toInteger = __webpack_require__(\"a691\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toIndex = __webpack_require__(\"0b25\");\nvar IEEE754 = __webpack_require__(\"77a7\");\nvar getPrototypeOf = __webpack_require__(\"e163\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\nvar getOwnPropertyNames = __webpack_require__(\"241c\").f;\nvar defineProperty = __webpack_require__(\"9bf2\").f;\nvar arrayFill = __webpack_require__(\"81d5\");\nvar setToStringTag = __webpack_require__(\"d44e\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\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\n\n/***/ }),\n\n/***/ \"649e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar $some = __webpack_require__(\"b727\").some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"64e5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(\"d039\");\nvar padStart = __webpack_require__(\"0ccb\").start;\n\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar getTime = DatePrototype.getTime;\nvar nativeDateToISOString = DatePrototype.toISOString;\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var date = this;\n var year = date.getUTCFullYear();\n var milliseconds = date.getUTCMilliseconds();\n var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n '-' + padStart(date.getUTCMonth() + 1, 2, 0) +\n '-' + padStart(date.getUTCDate(), 2, 0) +\n 'T' + padStart(date.getUTCHours(), 2, 0) +\n ':' + padStart(date.getUTCMinutes(), 2, 0) +\n ':' + padStart(date.getUTCSeconds(), 2, 0) +\n '.' + padStart(milliseconds, 3, 0) +\n 'Z';\n} : nativeDateToISOString;\n\n\n/***/ }),\n\n/***/ \"6547\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\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.es/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\n\n/***/ }),\n\n/***/ \"65f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar isArray = __webpack_require__(\"e8b5\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"669f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n!function(e,o){ true?module.exports=o():undefined}(this,function(){return function(e){function o(a){if(t[a])return t[a].exports;var n=t[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,o),n.l=!0,n.exports}var t={};return o.m=e,o.c=t,o.i=function(e){return e},o.d=function(e,t,a){o.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:a})},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,\"a\",t),t},o.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},o.p=\"/dist-module/\",o(o.s=3)}([function(e,o,t){var a=t(4)(t(1),t(5),null,null,null);e.exports=a.exports},function(e,o,t){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0});var a=t(2),n=function(e){return e&&e.__esModule?e:{default:e}}(a);o.default={props:{search:{type:String,required:!1,default:\"\"},emojiTable:{type:Object,required:!1,default:function(){return n.default}}},data:function(){return{display:{x:0,y:0,visible:!1}}},computed:{emojis:function(){if(this.search){var e={};for(var o in this.emojiTable){e[o]={};for(var t in this.emojiTable[o])new RegExp(\".*\"+this.search+\".*\").test(t)&&(e[o][t]=this.emojiTable[o][t]);0===Object.keys(e[o]).length&&delete e[o]}return e}return this.emojiTable}},methods:{insert:function(e){this.$emit(\"emoji\",e)},toggle:function(e){this.display.visible=!this.display.visible,this.display.x=e.clientX,this.display.y=e.clientY},hide:function(){this.display.visible=!1},escape:function(e){!0===this.display.visible&&27===e.keyCode&&(this.display.visible=!1)}},directives:{\"click-outside\":{bind:function(e,o,t){if(\"function\"==typeof o.value){var a=o.modifiers.bubble,n=function(t){(a||!e.contains(t.target)&&e!==t.target)&&o.value(t)};e.__vueClickOutside__=n,document.addEventListener(\"click\",n)}},unbind:function(e,o){document.removeEventListener(\"click\",e.__vueClickOutside__),e.__vueClickOutside__=null}}},mounted:function(){document.addEventListener(\"keyup\",this.escape)},destroyed:function(){document.removeEventListener(\"keyup\",this.escape)}}},function(e,o,t){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.default={\"Frequently used\":{thumbs_up:\"👍\",\"-1\":\"👎\",sob:\"😭\",confused:\"😕\",neutral_face:\"😐\",blush:\"😊\",heart_eyes:\"😍\"},People:{smile:\"😄\",smiley:\"😃\",grinning:\"😀\",blush:\"😊\",wink:\"😉\",heart_eyes:\"😍\",kissing_heart:\"😘\",kissing_closed_eyes:\"😚\",kissing:\"😗\",kissing_smiling_eyes:\"😙\",stuck_out_tongue_winking_eye:\"😜\",stuck_out_tongue_closed_eyes:\"😝\",stuck_out_tongue:\"😛\",flushed:\"😳\",grin:\"😁\",pensive:\"😔\",relieved:\"😌\",unamused:\"😒\",disappointed:\"😞\",persevere:\"😣\",cry:\"😢\",joy:\"😂\",sob:\"😭\",sleepy:\"😪\",disappointed_relieved:\"😥\",cold_sweat:\"😰\",sweat_smile:\"😅\",sweat:\"😓\",weary:\"😩\",tired_face:\"😫\",fearful:\"😨\",scream:\"😱\",angry:\"😠\",rage:\"😡\",triumph:\"😤\",confounded:\"😖\",laughing:\"😆\",yum:\"😋\",mask:\"😷\",sunglasses:\"😎\",sleeping:\"😴\",dizzy_face:\"😵\",astonished:\"😲\",worried:\"😟\",frowning:\"😦\",anguished:\"😧\",imp:\"👿\",open_mouth:\"😮\",grimacing:\"😬\",neutral_face:\"😐\",confused:\"😕\",hushed:\"😯\",smirk:\"😏\",expressionless:\"😑\",man_with_gua_pi_mao:\"👲\",man_with_turban:\"👳\",cop:\"👮\",construction_worker:\"👷\",guardsman:\"💂\",baby:\"👶\",boy:\"👦\",girl:\"👧\",man:\"👨\",woman:\"👩\",older_man:\"👴\",older_woman:\"👵\",person_with_blond_hair:\"👱\",angel:\"👼\",princess:\"👸\",smiley_cat:\"😺\",smile_cat:\"😸\",heart_eyes_cat:\"😻\",kissing_cat:\"😽\",smirk_cat:\"😼\",scream_cat:\"🙀\",crying_cat_face:\"😿\",joy_cat:\"😹\",pouting_cat:\"😾\",japanese_ogre:\"👹\",japanese_goblin:\"👺\",see_no_evil:\"🙈\",hear_no_evil:\"🙉\",speak_no_evil:\"🙊\",skull:\"💀\",alien:\"👽\",hankey:\"💩\",fire:\"🔥\",sparkles:\"✨\",star2:\"🌟\",dizzy:\"💫\",boom:\"💥\",anger:\"💢\",sweat_drops:\"💦\",droplet:\"💧\",zzz:\"💤\",dash:\"💨\",ear:\"👂\",eyes:\"👀\",nose:\"👃\",tongue:\"👅\",lips:\"👄\",thumbs_up:\"👍\",\"-1\":\"👎\",ok_hand:\"👌\",facepunch:\"👊\",fist:\"✊\",wave:\"👋\",hand:\"✋\",open_hands:\"👐\",point_up_2:\"👆\",point_down:\"👇\",point_right:\"👉\",point_left:\"👈\",raised_hands:\"🙌\",pray:\"🙏\",clap:\"👏\",muscle:\"💪\",walking:\"🚶\",runner:\"🏃\",dancer:\"💃\",couple:\"👫\",family:\"👪\",couplekiss:\"💏\",couple_with_heart:\"💑\",dancers:\"👯\",ok_woman:\"🙆\",no_good:\"🙅\",information_desk_person:\"💁\",raising_hand:\"🙋\",massage:\"💆\",haircut:\"💇\",nail_care:\"💅\",bride_with_veil:\"👰\",person_with_pouting_face:\"🙎\",person_frowning:\"🙍\",bow:\"🙇\",tophat:\"🎩\",crown:\"👑\",womans_hat:\"👒\",athletic_shoe:\"👟\",mans_shoe:\"👞\",sandal:\"👡\",high_heel:\"👠\",boot:\"👢\",shirt:\"👕\",necktie:\"👔\",womans_clothes:\"👚\",dress:\"👗\",running_shirt_with_sash:\"🎽\",jeans:\"👖\",kimono:\"👘\",bikini:\"👙\",briefcase:\"💼\",handbag:\"👜\",pouch:\"👝\",purse:\"👛\",eyeglasses:\"👓\",ribbon:\"🎀\",closed_umbrella:\"🌂\",lipstick:\"💄\",yellow_heart:\"💛\",blue_heart:\"💙\",purple_heart:\"💜\",green_heart:\"💚\",broken_heart:\"💔\",heartpulse:\"💗\",heartbeat:\"💓\",two_hearts:\"💕\",sparkling_heart:\"💖\",revolving_hearts:\"💞\",cupid:\"💘\",love_letter:\"💌\",kiss:\"💋\",ring:\"💍\",gem:\"💎\",bust_in_silhouette:\"👤\",speech_balloon:\"💬\",footprints:\"👣\"},Nature:{dog:\"🐶\",wolf:\"🐺\",cat:\"🐱\",mouse:\"🐭\",hamster:\"🐹\",rabbit:\"🐰\",frog:\"🐸\",tiger:\"🐯\",koala:\"🐨\",bear:\"🐻\",pig:\"🐷\",pig_nose:\"🐽\",cow:\"🐮\",boar:\"🐗\",monkey_face:\"🐵\",monkey:\"🐒\",horse:\"🐴\",sheep:\"🐑\",elephant:\"🐘\",panda_face:\"🐼\",penguin:\"🐧\",bird:\"🐦\",baby_chick:\"🐤\",hatched_chick:\"🐥\",hatching_chick:\"🐣\",chicken:\"🐔\",snake:\"🐍\",turtle:\"🐢\",bug:\"🐛\",bee:\"🐝\",ant:\"🐜\",beetle:\"🐞\",snail:\"🐌\",octopus:\"🐙\",shell:\"🐚\",tropical_fish:\"🐠\",fish:\"🐟\",dolphin:\"🐬\",whale:\"🐳\",racehorse:\"🐎\",dragon_face:\"🐲\",blowfish:\"🐡\",camel:\"🐫\",poodle:\"🐩\",feet:\"🐾\",bouquet:\"💐\",cherry_blossom:\"🌸\",tulip:\"🌷\",four_leaf_clover:\"🍀\",rose:\"🌹\",sunflower:\"🌻\",hibiscus:\"🌺\",maple_leaf:\"🍁\",leaves:\"🍃\",fallen_leaf:\"🍂\",herb:\"🌿\",ear_of_rice:\"🌾\",mushroom:\"🍄\",cactus:\"🌵\",palm_tree:\"🌴\",chestnut:\"🌰\",seedling:\"🌱\",blossom:\"🌼\",new_moon:\"🌑\",first_quarter_moon:\"🌓\",moon:\"🌔\",full_moon:\"🌕\",first_quarter_moon_with_face:\"🌛\",crescent_moon:\"🌙\",earth_asia:\"🌏\",volcano:\"🌋\",milky_way:\"🌌\",stars:\"🌠\",partly_sunny:\"⛅\",snowman:\"⛄\",cyclone:\"🌀\",foggy:\"🌁\",rainbow:\"🌈\",ocean:\"🌊\"},Objects:{bamboo:\"🎍\",gift_heart:\"💝\",dolls:\"🎎\",school_satchel:\"🎒\",mortar_board:\"🎓\",flags:\"🎏\",fireworks:\"🎆\",sparkler:\"🎇\",wind_chime:\"🎐\",rice_scene:\"🎑\",jack_o_lantern:\"🎃\",ghost:\"👻\",santa:\"🎅\",christmas_tree:\"🎄\",gift:\"🎁\",tanabata_tree:\"🎋\",tada:\"🎉\",confetti_ball:\"🎊\",balloon:\"🎈\",crossed_flags:\"🎌\",crystal_ball:\"🔮\",movie_camera:\"🎥\",camera:\"📷\",video_camera:\"📹\",vhs:\"📼\",cd:\"💿\",dvd:\"📀\",minidisc:\"💽\",floppy_disk:\"💾\",computer:\"💻\",iphone:\"📱\",telephone_receiver:\"📞\",pager:\"📟\",fax:\"📠\",satellite:\"📡\",tv:\"📺\",radio:\"📻\",loud_sound:\"🔊\",bell:\"🔔\",loudspeaker:\"📢\",mega:\"📣\",hourglass_flowing_sand:\"⏳\",hourglass:\"⌛\",alarm_clock:\"⏰\",watch:\"⌚\",unlock:\"🔓\",lock:\"🔒\",lock_with_ink_pen:\"🔏\",closed_lock_with_key:\"🔐\",key:\"🔑\",mag_right:\"🔎\",bulb:\"💡\",flashlight:\"🔦\",electric_plug:\"🔌\",battery:\"🔋\",mag:\"🔍\",bath:\"🛀\",toilet:\"🚽\",wrench:\"🔧\",nut_and_bolt:\"🔩\",hammer:\"🔨\",door:\"🚪\",smoking:\"🚬\",bomb:\"💣\",gun:\"🔫\",hocho:\"🔪\",pill:\"💊\",syringe:\"💉\",moneybag:\"💰\",yen:\"💴\",dollar:\"💵\",credit_card:\"💳\",money_with_wings:\"💸\",calling:\"📲\",\"e-mail\":\"📧\",inbox_tray:\"📥\",outbox_tray:\"📤\",envelope_with_arrow:\"📩\",incoming_envelope:\"📨\",mailbox:\"📫\",mailbox_closed:\"📪\",postbox:\"📮\",package:\"📦\",memo:\"📝\",page_facing_up:\"📄\",page_with_curl:\"📃\",bookmark_tabs:\"📑\",bar_chart:\"📊\",chart_with_upwards_trend:\"📈\",chart_with_downwards_trend:\"📉\",scroll:\"📜\",clipboard:\"📋\",date:\"📅\",calendar:\"📆\",card_index:\"📇\",file_folder:\"📁\",open_file_folder:\"📂\",pushpin:\"📌\",paperclip:\"📎\",straight_ruler:\"📏\",triangular_ruler:\"📐\",closed_book:\"📕\",green_book:\"📗\",blue_book:\"📘\",orange_book:\"📙\",notebook:\"📓\",notebook_with_decorative_cover:\"📔\",ledger:\"📒\",books:\"📚\",book:\"📖\",bookmark:\"🔖\",name_badge:\"📛\",newspaper:\"📰\",art:\"🎨\",clapper:\"🎬\",microphone:\"🎤\",headphones:\"🎧\",musical_score:\"🎼\",musical_note:\"🎵\",notes:\"🎶\",musical_keyboard:\"🎹\",violin:\"🎻\",trumpet:\"🎺\",saxophone:\"🎷\",guitar:\"🎸\",space_invader:\"👾\",video_game:\"🎮\",black_joker:\"🃏\",flower_playing_cards:\"🎴\",mahjong:\"🀄\",game_die:\"🎲\",dart:\"🎯\",football:\"🏈\",basketball:\"🏀\",soccer:\"⚽\",baseball:\"⚾\",tennis:\"🎾\",\"8ball\":\"🎱\",bowling:\"🎳\",golf:\"⛳\",checkered_flag:\"🏁\",trophy:\"🏆\",ski:\"🎿\",snowboarder:\"🏂\",swimmer:\"🏊\",surfer:\"🏄\",fishing_pole_and_fish:\"🎣\",tea:\"🍵\",sake:\"🍶\",beer:\"🍺\",beers:\"🍻\",cocktail:\"🍸\",tropical_drink:\"🍹\",wine_glass:\"🍷\",fork_and_knife:\"🍴\",pizza:\"🍕\",hamburger:\"🍔\",fries:\"🍟\",poultry_leg:\"🍗\",meat_on_bone:\"🍖\",spaghetti:\"🍝\",curry:\"🍛\",fried_shrimp:\"🍤\",bento:\"🍱\",sushi:\"🍣\",fish_cake:\"🍥\",rice_ball:\"🍙\",rice_cracker:\"🍘\",rice:\"🍚\",ramen:\"🍜\",stew:\"🍲\",oden:\"🍢\",dango:\"🍡\",egg:\"🍳\",bread:\"🍞\",doughnut:\"🍩\",custard:\"🍮\",icecream:\"🍦\",ice_cream:\"🍨\",shaved_ice:\"🍧\",birthday:\"🎂\",cake:\"🍰\",cookie:\"🍪\",chocolate_bar:\"🍫\",candy:\"🍬\",lollipop:\"🍭\",honey_pot:\"🍯\",apple:\"🍎\",green_apple:\"🍏\",tangerine:\"🍊\",cherries:\"🍒\",grapes:\"🍇\",watermelon:\"🍉\",strawberry:\"🍓\",peach:\"🍑\",melon:\"🍈\",banana:\"🍌\",pineapple:\"🍍\",sweet_potato:\"🍠\",eggplant:\"🍆\",tomato:\"🍅\",corn:\"🌽\"},Places:{house:\"🏠\",house_with_garden:\"🏡\",school:\"🏫\",office:\"🏢\",post_office:\"🏣\",hospital:\"🏥\",bank:\"🏦\",convenience_store:\"🏪\",love_hotel:\"🏩\",hotel:\"🏨\",wedding:\"💒\",church:\"⛪\",department_store:\"🏬\",city_sunrise:\"🌇\",city_sunset:\"🌆\",japanese_castle:\"🏯\",european_castle:\"🏰\",tent:\"⛺\",factory:\"🏭\",tokyo_tower:\"🗼\",japan:\"🗾\",mount_fuji:\"🗻\",sunrise_over_mountains:\"🌄\",sunrise:\"🌅\",night_with_stars:\"🌃\",statue_of_liberty:\"🗽\",bridge_at_night:\"🌉\",carousel_horse:\"🎠\",ferris_wheel:\"🎡\",fountain:\"⛲\",roller_coaster:\"🎢\",ship:\"🚢\",boat:\"⛵\",speedboat:\"🚤\",rocket:\"🚀\",seat:\"💺\",station:\"🚉\",bullettrain_side:\"🚄\",bullettrain_front:\"🚅\",metro:\"🚇\",railway_car:\"🚃\",bus:\"🚌\",blue_car:\"🚙\",car:\"🚗\",taxi:\"🚕\",truck:\"🚚\",rotating_light:\"🚨\",police_car:\"🚓\",fire_engine:\"🚒\",ambulance:\"🚑\",bike:\"🚲\",barber:\"💈\",busstop:\"🚏\",ticket:\"🎫\",traffic_light:\"🚥\",construction:\"🚧\",beginner:\"🔰\",fuelpump:\"⛽\",izakaya_lantern:\"🏮\",slot_machine:\"🎰\",moyai:\"🗿\",circus_tent:\"🎪\",performing_arts:\"🎭\",round_pushpin:\"📍\",triangular_flag_on_post:\"🚩\"},Symbols:{keycap_ten:\"🔟\",1234:\"🔢\",symbols:\"🔣\",capital_abcd:\"🔠\",abcd:\"🔡\",abc:\"🔤\",arrow_up_small:\"🔼\",arrow_down_small:\"🔽\",rewind:\"⏪\",fast_forward:\"⏩\",arrow_double_up:\"⏫\",arrow_double_down:\"⏬\",ok:\"🆗\",new:\"🆕\",up:\"🆙\",cool:\"🆒\",free:\"🆓\",ng:\"🆖\",signal_strength:\"📶\",cinema:\"🎦\",koko:\"🈁\",u6307:\"🈯\",u7a7a:\"🈳\",u6e80:\"🈵\",u5408:\"🈴\",u7981:\"🈲\",ideograph_advantage:\"🉐\",u5272:\"🈹\",u55b6:\"🈺\",u6709:\"🈶\",u7121:\"🈚\",restroom:\"🚻\",mens:\"🚹\",womens:\"🚺\",baby_symbol:\"🚼\",wc:\"🚾\",no_smoking:\"🚭\",u7533:\"🈸\",accept:\"🉑\",cl:\"🆑\",sos:\"🆘\",id:\"🆔\",no_entry_sign:\"🚫\",underage:\"🔞\",no_entry:\"⛔\",negative_squared_cross_mark:\"❎\",white_check_mark:\"✅\",heart_decoration:\"💟\",vs:\"🆚\",vibration_mode:\"📳\",mobile_phone_off:\"📴\",ab:\"🆎\",diamond_shape_with_a_dot_inside:\"💠\",ophiuchus:\"⛎\",six_pointed_star:\"🔯\",atm:\"🏧\",chart:\"💹\",heavy_dollar_sign:\"💲\",currency_exchange:\"💱\",x:\"❌\",exclamation:\"❗\",question:\"❓\",grey_exclamation:\"❕\",grey_question:\"❔\",o:\"⭕\",top:\"🔝\",end:\"🔚\",back:\"🔙\",on:\"🔛\",soon:\"🔜\",arrows_clockwise:\"🔃\",clock12:\"🕛\",clock1:\"🕐\",clock2:\"🕑\",clock3:\"🕒\",clock4:\"🕓\",clock5:\"🕔\",clock6:\"🕕\",clock7:\"🕖\",clock8:\"🕗\",clock9:\"🕘\",clock10:\"🕙\",clock11:\"🕚\",heavy_plus_sign:\"➕\",heavy_minus_sign:\"➖\",heavy_division_sign:\"➗\",white_flower:\"💮\",100:\"💯\",radio_button:\"🔘\",link:\"🔗\",curly_loop:\"➰\",trident:\"🔱\",small_red_triangle:\"🔺\",black_square_button:\"🔲\",white_square_button:\"🔳\",red_circle:\"🔴\",large_blue_circle:\"🔵\",small_red_triangle_down:\"🔻\",white_large_square:\"⬜\",black_large_square:\"⬛\",large_orange_diamond:\"🔶\",large_blue_diamond:\"🔷\",small_orange_diamond:\"🔸\",small_blue_diamond:\"🔹\"}}},function(e,o,t){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.EmojiPickerPlugin=o.EmojiPicker=void 0;var a=t(0),n=function(e){return e&&e.__esModule?e:{default:e}}(a),i={install:function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.component(\"emoji-picker\",n.default)}};\"undefined\"!=typeof window&&(window.EmojiPicker=i),o.EmojiPicker=n.default,o.EmojiPickerPlugin=i,o.default=n.default},function(e,o){e.exports=function(e,o,t,a,n){var i,r=e=e||{},s=typeof e.default;\"object\"!==s&&\"function\"!==s||(i=e,r=e.default);var l=\"function\"==typeof r?r.options:r;o&&(l.render=o.render,l.staticRenderFns=o.staticRenderFns),a&&(l._scopeId=a);var _;if(n?(_=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(n)},l._ssrRegister=_):t&&(_=t),_){var c=l.functional,u=c?l.render:l.beforeCreate;c?l.render=function(e,o){return _.call(o),u(e,o)}:l.beforeCreate=u?[].concat(u,_):[_]}return{esModule:i,exports:r,options:l}}},function(e,o){e.exports={render:function(){var e=this,o=e.$createElement,t=e._self._c||o;return t(\"div\",[e._t(\"emoji-invoker\",null,{events:{click:function(o){return e.toggle(o)}}}),e._v(\" \"),e.display.visible?t(\"div\",{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:e.hide,expression:\"hide\"}]},[e._t(\"emoji-picker\",null,{emojis:e.emojis,insert:e.insert,display:e.display})],2):e._e()],2)},staticRenderFns:[]}}])});\n//# sourceMappingURL=main.js.map\n\n/***/ }),\n\n/***/ \"68fb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ \"69f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(\"7f9a\");\nvar global = __webpack_require__(\"da84\");\nvar isObject = __webpack_require__(\"861d\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar objectHas = __webpack_require__(\"5135\");\nvar shared = __webpack_require__(\"c6cd\");\nvar sharedKey = __webpack_require__(\"f772\");\nvar hiddenKeys = __webpack_require__(\"d012\");\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 = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\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 metadata.facade = it;\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\n\n/***/ }),\n\n/***/ \"6eba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(\"23e7\");\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return new Date().getTime();\n }\n});\n\n\n/***/ }),\n\n/***/ \"6eeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar has = __webpack_require__(\"5135\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar inspectSource = __webpack_require__(\"8925\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\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 var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\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\n\n/***/ }),\n\n/***/ \"6f53\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar objectKeys = __webpack_require__(\"df75\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar propertyIsEnumerable = __webpack_require__(\"d1e7\").f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"7156\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\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\n\n/***/ }),\n\n/***/ \"72f7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar exportTypedArrayMethod = __webpack_require__(\"ebb5\").exportTypedArrayMethod;\nvar fails = __webpack_require__(\"d039\");\nvar global = __webpack_require__(\"da84\");\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.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n\n\n/***/ }),\n\n/***/ \"735e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar $fill = __webpack_require__(\"81d5\");\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"73be\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomHeader_vue_vue_type_style_index_0_id_516a26e9_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"e024\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomHeader_vue_vue_type_style_index_0_id_516a26e9_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RoomHeader_vue_vue_type_style_index_0_id_516a26e9_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"7418\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"746f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(\"428f\");\nvar has = __webpack_require__(\"5135\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(\"e538\");\nvar defineProperty = __webpack_require__(\"9bf2\").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\n\n/***/ }),\n\n/***/ \"74e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar global = __webpack_require__(\"da84\");\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(\"8aa7\");\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar ArrayBufferModule = __webpack_require__(\"621a\");\nvar anInstance = __webpack_require__(\"19aa\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toIndex = __webpack_require__(\"0b25\");\nvar toOffset = __webpack_require__(\"182d\");\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar has = __webpack_require__(\"5135\");\nvar classof = __webpack_require__(\"f5df\");\nvar isObject = __webpack_require__(\"861d\");\nvar create = __webpack_require__(\"7c73\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\nvar getOwnPropertyNames = __webpack_require__(\"241c\").f;\nvar typedArrayFrom = __webpack_require__(\"a078\");\nvar forEach = __webpack_require__(\"b727\").forEach;\nvar setSpecies = __webpack_require__(\"2626\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar getOwnPropertyDescriptorModule = __webpack_require__(\"06cf\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\nvar inheritIfRequired = __webpack_require__(\"7156\");\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\n\n/***/ }),\n\n/***/ \"74fe\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"2d78\");\n\n\n/***/ }),\n\n/***/ \"7656\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.AMPERSAND = exports.CLOSEPAREN = exports.CLOSEANGLEBRACKET = exports.CLOSEBRACKET = exports.CLOSEBRACE = exports.OPENPAREN = exports.OPENANGLEBRACKET = exports.OPENBRACKET = exports.OPENBRACE = exports.WS = exports.TLD = exports.SYM = exports.UNDERSCORE = exports.SLASH = exports.MAILTO = exports.PROTOCOL = exports.QUERY = exports.POUND = exports.PLUS = exports.NUM = exports.NL = exports.LOCALHOST = exports.PUNCTUATION = exports.DOT = exports.COLON = exports.AT = exports.DOMAIN = exports.Base = undefined;\n\nvar _createTokenClass = __webpack_require__(\"46f3\");\n\nvar _class = __webpack_require__(\"254c\");\n\n/******************************************************************************\n\tText Tokens\n\tTokens composed of strings\n******************************************************************************/\n\n/**\n\tAbstract class used for manufacturing text tokens.\n\tPass in the value this token represents\n\n\t@class TextToken\n\t@abstract\n*/\nvar TextToken = (0, _createTokenClass.createTokenClass)();\nTextToken.prototype = {\n\ttoString: function toString() {\n\t\treturn this.v + '';\n\t}\n};\n\nfunction inheritsToken(value) {\n\tvar props = value ? { v: value } : {};\n\treturn (0, _class.inherits)(TextToken, (0, _createTokenClass.createTokenClass)(), props);\n}\n\n/**\n\tA valid domain token\n\t@class DOMAIN\n\t@extends TextToken\n*/\nvar DOMAIN = inheritsToken();\n\n/**\n\t@class AT\n\t@extends TextToken\n*/\nvar AT = inheritsToken('@');\n\n/**\n\tRepresents a single colon `:` character\n\n\t@class COLON\n\t@extends TextToken\n*/\nvar COLON = inheritsToken(':');\n\n/**\n\t@class DOT\n\t@extends TextToken\n*/\nvar DOT = inheritsToken('.');\n\n/**\n\tA character class that can surround the URL, but which the URL cannot begin\n\tor end with. Does not include certain English punctuation like parentheses.\n\n\t@class PUNCTUATION\n\t@extends TextToken\n*/\nvar PUNCTUATION = inheritsToken();\n\n/**\n\tThe word localhost (by itself)\n\t@class LOCALHOST\n\t@extends TextToken\n*/\nvar LOCALHOST = inheritsToken();\n\n/**\n\tNewline token\n\t@class NL\n\t@extends TextToken\n*/\nvar NL = inheritsToken('\\n');\n\n/**\n\t@class NUM\n\t@extends TextToken\n*/\nvar NUM = inheritsToken();\n\n/**\n\t@class PLUS\n\t@extends TextToken\n*/\nvar PLUS = inheritsToken('+');\n\n/**\n\t@class POUND\n\t@extends TextToken\n*/\nvar POUND = inheritsToken('#');\n\n/**\n\tRepresents a web URL protocol. Supported types include\n\n\t* `http:`\n\t* `https:`\n\t* `ftp:`\n\t* `ftps:`\n\n\t@class PROTOCOL\n\t@extends TextToken\n*/\nvar PROTOCOL = inheritsToken();\n\n/**\n\tRepresents the start of the email URI protocol\n\n\t@class MAILTO\n\t@extends TextToken\n*/\nvar MAILTO = inheritsToken('mailto:');\n\n/**\n\t@class QUERY\n\t@extends TextToken\n*/\nvar QUERY = inheritsToken('?');\n\n/**\n\t@class SLASH\n\t@extends TextToken\n*/\nvar SLASH = inheritsToken('/');\n\n/**\n\t@class UNDERSCORE\n\t@extends TextToken\n*/\nvar UNDERSCORE = inheritsToken('_');\n\n/**\n\tOne ore more non-whitespace symbol.\n\t@class SYM\n\t@extends TextToken\n*/\nvar SYM = inheritsToken();\n\n/**\n\t@class TLD\n\t@extends TextToken\n*/\nvar TLD = inheritsToken();\n\n/**\n\tRepresents a string of consecutive whitespace characters\n\n\t@class WS\n\t@extends TextToken\n*/\nvar WS = inheritsToken();\n\n/**\n\tOpening/closing bracket classes\n*/\n\nvar OPENBRACE = inheritsToken('{');\nvar OPENBRACKET = inheritsToken('[');\nvar OPENANGLEBRACKET = inheritsToken('<');\nvar OPENPAREN = inheritsToken('(');\nvar CLOSEBRACE = inheritsToken('}');\nvar CLOSEBRACKET = inheritsToken(']');\nvar CLOSEANGLEBRACKET = inheritsToken('>');\nvar CLOSEPAREN = inheritsToken(')');\n\nvar AMPERSAND = inheritsToken('&');\n\nexports.Base = TextToken;\nexports.DOMAIN = DOMAIN;\nexports.AT = AT;\nexports.COLON = COLON;\nexports.DOT = DOT;\nexports.PUNCTUATION = PUNCTUATION;\nexports.LOCALHOST = LOCALHOST;\nexports.NL = NL;\nexports.NUM = NUM;\nexports.PLUS = PLUS;\nexports.POUND = POUND;\nexports.QUERY = QUERY;\nexports.PROTOCOL = PROTOCOL;\nexports.MAILTO = MAILTO;\nexports.SLASH = SLASH;\nexports.UNDERSCORE = UNDERSCORE;\nexports.SYM = SYM;\nexports.TLD = TLD;\nexports.WS = WS;\nexports.OPENBRACE = OPENBRACE;\nexports.OPENBRACKET = OPENBRACKET;\nexports.OPENANGLEBRACKET = OPENANGLEBRACKET;\nexports.OPENPAREN = OPENPAREN;\nexports.CLOSEBRACE = CLOSEBRACE;\nexports.CLOSEBRACKET = CLOSEBRACKET;\nexports.CLOSEANGLEBRACKET = CLOSEANGLEBRACKET;\nexports.CLOSEPAREN = CLOSEPAREN;\nexports.AMPERSAND = AMPERSAND;\n\n/***/ }),\n\n/***/ \"77a7\":\n/***/ (function(module, exports) {\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\n\n/***/ }),\n\n/***/ \"7839\":\n/***/ (function(module, exports) {\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\n\n/***/ }),\n\n/***/ \"7a82\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(\"23e7\");\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar objectDefinePropertyModile = __webpack_require__(\"9bf2\");\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperty: objectDefinePropertyModile.f\n});\n\n\n/***/ }),\n\n/***/ \"7b0b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ \"7c73\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\nvar defineProperties = __webpack_require__(\"37e8\");\nvar enumBugKeys = __webpack_require__(\"7839\");\nvar hiddenKeys = __webpack_require__(\"d012\");\nvar html = __webpack_require__(\"1be4\");\nvar documentCreateElement = __webpack_require__(\"cc12\");\nvar sharedKey = __webpack_require__(\"f772\");\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.es/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\n\n/***/ }),\n\n/***/ \"7db0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $find = __webpack_require__(\"b727\").find;\nvar addToUnscopables = __webpack_require__(\"44d2\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n\n\n/***/ }),\n\n/***/ \"7dd0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar createIteratorConstructor = __webpack_require__(\"9ed3\");\nvar getPrototypeOf = __webpack_require__(\"e163\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\nvar setToStringTag = __webpack_require__(\"d44e\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar IS_PURE = __webpack_require__(\"c430\");\nvar Iterators = __webpack_require__(\"3f8c\");\nvar IteratorsCore = __webpack_require__(\"ae93\");\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\n\n/***/ }),\n\n/***/ \"7e12\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar trim = __webpack_require__(\"58a8\").trim;\nvar whitespaces = __webpack_require__(\"5899\");\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(String(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n\n\n/***/ }),\n\n/***/ \"7f9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar inspectSource = __webpack_require__(\"8925\");\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ \"81d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(\"7b0b\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\nvar toLength = __webpack_require__(\"50c4\");\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"8241\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageImage_vue_vue_type_style_index_0_id_1ef3d9d6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"049b\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageImage_vue_vue_type_style_index_0_id_1ef3d9d6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageImage_vue_vue_type_style_index_0_id_1ef3d9d6_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"825a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"82ee\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageActions_vue_vue_type_style_index_0_id_452af8e1_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"3719\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageActions_vue_vue_type_style_index_0_id_452af8e1_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MessageActions_vue_vue_type_style_index_0_id_452af8e1_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n\n/***/ }),\n\n/***/ \"82f8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(\"ebb5\");\nvar $includes = __webpack_require__(\"4d64\").includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/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\n\n/***/ }),\n\n/***/ \"83ab\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ \"8418\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\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\n\n/***/ }),\n\n/***/ \"841c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\nvar anObject = __webpack_require__(\"825a\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar sameValue = __webpack_require__(\"129f\");\nvar regExpExec = __webpack_require__(\"14c3\");\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/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.es/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n\n\n/***/ }),\n\n/***/ \"857a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n\n\n/***/ }),\n\n/***/ \"861d\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"8875\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*