tweb/public/0.a6cdeb9e3c75607d2263.chunk.js.map
morethanwords 2c96983f84 (commit before) fixed changing profile (#4119)
Include source maps
2021-04-16 22:04:15 +04:00

1 line
234 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack:///./src/config/debug.ts","webpack:///./src/lib/richtextprocessor.ts","webpack:///./src/helpers/schedulers.ts","webpack:///./src/helpers/touchSupport.ts","webpack:///./src/helpers/mediaSizes.ts","webpack:///./src/helpers/cancellablePromise.ts","webpack:///./src/helpers/string.ts","webpack:///./src/helpers/eventListenerBase.ts","webpack:///./src/config/modes.ts","webpack:///./src/helpers/sequentialDom.ts","webpack:///./src/helpers/dom.ts","webpack:///./src/lib/config.ts","webpack:///./src/vendor/emoji/index.ts","webpack:///./src/lib/rootScope.ts"],"names":["DEBUG","debug","MOUNT_CLASS_TO","window","self","EmojiHelper","emojiMap","code","shortcuts","emojis","emojiData","Emoji","alphaCharsRegExp","urlRegExp","fullRegExp","RegExp","emailRegExp","markdownRegExp","siteHashtags","Telegram","Twitter","Instagram","siteMentions","GitHub","markdownEntities","RichTextProcessor","getEmojiSpritesheetCoords","emojiCode","unified","hasOwnProperty","replace","parseEntities","text","match","raw","entities","matchIndex","rawOffset","index","push","_","offset","length","test","url","protocol","tld","substr","TLD","indexOf","toLowerCase","balanced","checkBrackets","substring","emojiCoords","unicode","mergeEntities","currentEntities","newEntities","slice","filtered","filter","e","find","_e","sort","a","b","combineSameEntities","i","entity","nextEntityIdx","findIndex","_i","nextEntity","splice","wrapRichText","options","lol","passEntities","contextSite","contextExternal","insertPart","startPart","endPart","part","unshift","noTextFormat","wrappingDraft","language","noLinks","noCommands","bot","atPos","command","fromBot","encodeURIComponent","emojiSupported","entityText","wrapUrl","currentContext","contextUrl","hashtag","user_id","username","out","usedLength","urlLength","urlOpenBrackets","split","urlCloseBrackets","charAt","wrapEmojiText","unsafe","tgMeMatch","telescoPeMatch","path","domainQuery","domain","query","decodeURIComponent","navigator","userAgent","search","parseMarkdown","noTrim","newText","isSOH","join","trim","wrapDraftText","messageEntityTextUrl","replaceUrlEncodings","urlWithEncoded","str","wrapPlainText","emojiTitle","matchUrl","matchEmail","getAbbreviation","onlyFirst","splitted","first","isUsernameValid","debounce","fn","ms","shouldRunFirst","shouldRunLast","waitingTimeout","args","clearTimeout","setTimeout","throttle","isPending","interval","_args","setInterval","clearInterval","pause","Promise","resolve","fastRafCallbacks","fastRaf","callback","requestAnimationFrame","currentCallbacks","undefined","forEach","cb","doubleRaf","isTouchSupported","DocumentTouch","document","ScreenSize","MediaSizes","super","screenSizes","key","mobile","value","medium","large","sizes","handhelds","regular","width","height","webpage","album","esgSticker","desktop","isMobile","handleResize","innerWidth","activeScreen","this","wasScreen","active","dispatchEvent","addEventListener","rAF","cancelAnimationFrame","mediaSizes","deferredPromise","deferredHelper","isFulfilled","isRejected","notify","notifyAll","lastNotify","listeners","addNotifyListener","deferred","reject","finally","cancel","Object","assign","limitSymbols","limitFrom","escapeRegExp","encodeEntities","charCodeAt","splitStringByLength","maxLength","lastSliceStartIndex","arrayIndex","cut","end","_arrayIndex","lastIndex","partLength","checkRTL","s","convertInputKeyToKey","inputKey","convertKeyToInputKey","toUpperCase","capitalizeFirstLetter","string","EventListenerBase","reuseResults","_constructor","listenerResults","name","once","findAndSplice","l","arr","listener","removeEventListener","Modes","location","http","ssl","multipleConnections","asServiceWorker","sequentialDom","promises","raf","bind","scheduled","kind","promise","scheduleFlush","then","do","element","mutate","read","write","isInDOM","isConnected","cancelEvent","event","originalEvent","stopPropagation","preventDefault","returnValue","cancelBubble","err","placeCaretAtEnd","el","focus","getSelection","createRange","range","selectNodeContents","collapse","sel","removeAllRanges","addRange","body","createTextRange","textRange","moveToElementText","select","getRichValue","field","lines","line","getRichElementValue","node","selNode","selOffset","nodeType","nodeValue","parentNode","parentElement","type","markdownTags","tag","closest","getAttribute","entityName","href","isSelected","isBlock","tagName","alt","curChild","firstChild","nextSibling","bold","underline","italic","monospace","strikethrough","link","isInputEmpty","hasAttribute","arcParameter","rx","ry","xAxisRotation","largeArcFlag","sweepFlag","x","y","generatePathData","tl","tr","br","bl","data","whichChild","elem","previousElementSibling","fillPropertyValue","calcImageInBox","imageW","imageH","boxW","boxH","noZoom","w","h","boxedImageW","boxedImageH","positionElementByIndex","container","pos","prevPos","childElementCount","insertBefore","children","append","cancelSelection","empty","selection","getSelectedText","toString","blurActiveElement","activeElement","blur","CLICK_EVENT_NAME","attachClickEvent","add","listenerSetter","removeManual","touchMouseDown","detachClickEvent","getSelectedNodes","nodes","rangeCount","getRangeAt","startContainer","endContainer","handleScrollSideEvent","side","lastY","passive","touches","onTouchEnd","clientY","onTouchMove","isDown","deltaY","isSendShortcutPressed","settings","sendShortcut","shiftKey","ctrlKey","metaKey","secondaryKey","reflowScrollableElement","style","display","offsetLeft","isSelectionEmpty","selectionRange","START_TO_END","disableTransition","elements","classList","remove","toggleDisability","disable","setAttribute","removeAttribute","canFocus","isFirstInput","htmlToDocumentFragment","html","template","createElement","innerHTML","content","htmlToSpan","span","replaceContent","lastChild","replaceWith","textContent","Config","LatinizeMap","encodeEmoji","emojiText","unicodeSurrogates","points","char","previous","toCodePoints","removeVS16s","vs16RegExp","zeroWidthJoiner","String","fromCharCode","rawEmoji","getEmojiToneIndex","input","RootScope","_overlayIsActive","myId","idle","isIDLE","connectionStatus","broadcast","detail","on","off","status","rootScope"],"mappings":"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AK,KAAO,KAAK,KAAO,KAAK,KAAO,IAAI,KAAO,IAAI,KAAO,IAAI,KAAO,IAAI,KAAO,IAAI,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,GAAG,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,cAAc,GAAG,cAAc,GAAG,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,4BAA4B,KAAK,4BAA4B,KAAK,QAAQ,KAAK,4BAA4B,KAAK,4BAA4B,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,wBAAwB,GAAG,QAAQ,GAAG,uBAAuB,GAAG,4CAA4C,KAAK,4CAA4C,KAAK,4CAA4C,KAAK,QAAQ,GAAG,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,6BAA6B,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,yCAAyC,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,yCAAyC,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,kCAAkC,KAAK,6CAA6C,KAAK,QAAQ,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,yCAAyC,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,kCAAkC,KAAK,kCAAkC,KAAK,6CAA6C,KAAK,6CAA6C,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,4BAA4B,KAAK,4BAA4B,KAAK,QAAQ,KAAK,QAAQ,GAAG,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,GAAG,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,GAAG,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,IAAI,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,GAAG,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,IAAI,OAAO,IAAI,OAAO,GAAG,OAAO,KAAK,OAAO,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,IAAI,2BAA2B,KAAK,2BAA2B,KAAK,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAEtm6D,YAAqB,KACrB,YAAqB,KACrB,YAAqB,MAQfwa,EAAS,CACbxa,QACAya,YAJgD,CAAC,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,MAAM,IAAK,MAAM,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAM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","file":"0.a6cdeb9e3c75607d2263.chunk.js","sourcesContent":["/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nimport Modes from \"./modes\";\n\nexport const DEBUG = process.env.NODE_ENV !== 'production' || Modes.debug;\nconst ctx: any = typeof(window) !== 'undefined' ? window : self;\nexport const MOUNT_CLASS_TO: any = DEBUG || true/* && false */ ? ctx : {};\nexport default DEBUG;\n\n//let m = DEBUG;\n/* if(!DEBUG) {\n ctx.sandpitTurtle = () => {\n //if(!m) {\n for(let i in MOUNT_CLASS_TO) {\n ctx[i] = MOUNT_CLASS_TO[i];\n }\n //m = true;\n //}\n \n //DEBUG = !DEBUG;\n };\n} */\n\n/* export const superDebug = (object: any, key: string) => {\n var d = object[key];\n var beforeStr = '', afterStr = '';\n for(var r of d) {\n beforeStr += r.before.hex + '\\n';\n afterStr += r.after.hex + '\\n';\n }\n\n beforeStr = beforeStr.trim();\n afterStr = afterStr.trim();\n //var beforeStr = d.map(r => r.before.hex).join('\\n');\n //var afterStr = d.map(r => r.after.hex).join('\\n');\n\n var dada = (name: string, str: string) => {\n var a = document.createElement('a');\n a.target = '_blank';\n a.download = name + '.txt';\n a.href = URL.createObjectURL(new Blob([str], {\n type: 'text/plain'\n }));\n document.body.append(a);\n a.click();\n };\n\n dada(key + '_' + 'before', beforeStr);\n dada(key + '_' + 'after', afterStr);\n}\n\nMOUNT_CLASS_TO.superDebug = superDebug; */\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n * \n * Originally from:\n * https://github.com/zhukov/webogram\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\n * https://github.com/zhukov/webogram/blob/master/LICENSE\n */\n\nimport Config from './config';\n\nimport emojiRegExp from '../vendor/emoji/regex';\nimport { encodeEmoji } from '../vendor/emoji';\nimport { MessageEntity } from '../layer';\nimport { encodeEntities } from '../helpers/string';\nimport { isSafari } from '../helpers/userAgent';\nimport { MOUNT_CLASS_TO } from '../config/debug';\n\nconst EmojiHelper = {\n emojiMap: (code: string) => { return code; },\n shortcuts: [] as any,\n emojis: [] as any\n};\n\nconst emojiData = Config.Emoji;\n\nconst alphaCharsRegExp = 'a-z' +\n '\\\\u00c0-\\\\u00d6\\\\u00d8-\\\\u00f6\\\\u00f8-\\\\u00ff' + // Latin-1\n '\\\\u0100-\\\\u024f' + // Latin Extended A and B\n '\\\\u0253\\\\u0254\\\\u0256\\\\u0257\\\\u0259\\\\u025b\\\\u0263\\\\u0268\\\\u026f\\\\u0272\\\\u0289\\\\u028b' + // IPA Extensions\n '\\\\u02bb' + // Hawaiian\n '\\\\u0300-\\\\u036f' + // Combining diacritics\n '\\\\u1e00-\\\\u1eff' + // Latin Extended Additional (mostly for Vietnamese)\n '\\\\u0400-\\\\u04ff\\\\u0500-\\\\u0527' + // Cyrillic\n '\\\\u2de0-\\\\u2dff\\\\ua640-\\\\ua69f' + // Cyrillic Extended A/B\n '\\\\u0591-\\\\u05bf\\\\u05c1-\\\\u05c2\\\\u05c4-\\\\u05c5\\\\u05c7' +\n '\\\\u05d0-\\\\u05ea\\\\u05f0-\\\\u05f4' + // Hebrew\n '\\\\ufb1d-\\\\ufb28\\\\ufb2a-\\\\ufb36\\\\ufb38-\\\\ufb3c\\\\ufb3e\\\\ufb40-\\\\ufb41' +\n '\\\\ufb43-\\\\ufb44\\\\ufb46-\\\\ufb4f' + // Hebrew Pres. Forms\n '\\\\u0610-\\\\u061a\\\\u0620-\\\\u065f\\\\u066e-\\\\u06d3\\\\u06d5-\\\\u06dc' +\n '\\\\u06de-\\\\u06e8\\\\u06ea-\\\\u06ef\\\\u06fa-\\\\u06fc\\\\u06ff' + // Arabic\n '\\\\u0750-\\\\u077f\\\\u08a0\\\\u08a2-\\\\u08ac\\\\u08e4-\\\\u08fe' + // Arabic Supplement and Extended A\n '\\\\ufb50-\\\\ufbb1\\\\ufbd3-\\\\ufd3d\\\\ufd50-\\\\ufd8f\\\\ufd92-\\\\ufdc7\\\\ufdf0-\\\\ufdfb' + // Pres. Forms A\n '\\\\ufe70-\\\\ufe74\\\\ufe76-\\\\ufefc' + // Pres. Forms B\n '\\\\u200c' + // Zero-Width Non-Joiner\n '\\\\u0e01-\\\\u0e3a\\\\u0e40-\\\\u0e4e' + // Thai\n '\\\\u1100-\\\\u11ff\\\\u3130-\\\\u3185\\\\uA960-\\\\uA97F\\\\uAC00-\\\\uD7AF\\\\uD7B0-\\\\uD7FF' + // Hangul (Korean)\n '\\\\u3003\\\\u3005\\\\u303b' + // Kanji/Han iteration marks\n '\\\\uff21-\\\\uff3a\\\\uff41-\\\\uff5a' + // full width Alphabet\n '\\\\uff66-\\\\uff9f' + // half width Katakana\n '\\\\uffa1-\\\\uffdc'; // half width Hangul (Korean)\nconst alphaNumericRegExp = '0-9\\_' + alphaCharsRegExp;\nconst domainAddChars = '\\u00b7';\n// Based on Regular Expression for URL validation by Diego Perini\nconst urlRegExp = '((?:https?|ftp)://|mailto:)?' +\n // user:pass authentication\n '(?:\\\\S{1,64}(?::\\\\S{0,64})?@)?' +\n '(?:' +\n // sindresorhus/ip-regexp\n '(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}' +\n '|' +\n // host name\n '[' + alphaCharsRegExp + '0-9][' + alphaCharsRegExp + domainAddChars + '0-9\\-]{0,64}' +\n // domain name\n '(?:\\\\.[' + alphaCharsRegExp + '0-9][' + alphaCharsRegExp + domainAddChars + '0-9\\-]{0,64}){0,10}' +\n // TLD identifier\n '(?:\\\\.(xn--[0-9a-z]{2,16}|[' + alphaCharsRegExp + ']{2,24}))' +\n ')' +\n // port number\n '(?::\\\\d{2,5})?' +\n // resource path\n '(?:/(?:\\\\S{0,255}[^\\\\s.;,(\\\\[\\\\]{}<>\"\\'])?)?';\nconst usernameRegExp = '[a-zA-Z\\\\d_]{5,32}';\nconst botCommandRegExp = '\\\\/([a-zA-Z\\\\d_]{1,32})(?:@(' + usernameRegExp + '))?(\\\\b|$)';\nconst fullRegExp = new RegExp('(^| )(@)(' + usernameRegExp + ')|(' + urlRegExp + ')|(\\\\n)|(' + emojiRegExp + ')|(^|[\\\\s\\\\(\\\\]])(#[' + alphaNumericRegExp + ']{2,64})|(^|\\\\s)' + botCommandRegExp, 'i')\nconst emailRegExp = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n//const markdownTestRegExp = /[`_*@~]/;\nconst markdownRegExp = /(^|\\s|\\n)(````?)([\\s\\S]+?)(````?)([\\s\\n\\.,:?!;]|$)|(^|\\s|\\x01)(`|~~|\\*\\*|__|_-_)([^\\n]+?)\\7([\\x01\\s\\.,:?!;]|$)|@(\\d+)\\s*\\((.+?)\\)|(\\[(.+?)\\]\\((.+?)\\))/m;\nconst siteHashtags: {[siteName: string]: string} = {\n Telegram: 'tg://search_hashtag?hashtag={1}',\n Twitter: 'https://twitter.com/hashtag/{1}',\n Instagram: 'https://instagram.com/explore/tags/{1}/',\n 'Google Plus': 'https://plus.google.com/explore/{1}'\n};\n\nconst siteMentions: {[siteName: string]: string} = {\n Telegram: '#/im?p=%40{1}',\n Twitter: 'https://twitter.com/{1}',\n Instagram: 'https://instagram.com/{1}/',\n GitHub: 'https://github.com/{1}'\n};\nconst markdownEntities: {[markdown: string]: any} = {\n '`': 'messageEntityCode',\n '``': 'messageEntityPre',\n '**': 'messageEntityBold',\n '__': 'messageEntityItalic',\n '~~': 'messageEntityStrike',\n '_-_': 'messageEntityUnderline'\n};\n\nnamespace RichTextProcessor {\n export const emojiSupported = navigator.userAgent.search(/OS X|iPhone|iPad|iOS/i) !== -1/* && false *//* || true */;\n\n export function getEmojiSpritesheetCoords(emojiCode: string) {\n let unified = encodeEmoji(emojiCode)/* .replace(/(-fe0f|fe0f)/g, '') */;\n \n if(unified === '1f441-200d-1f5e8') {\n unified = '1f441-fe0f-200d-1f5e8-fe0f';\n }\n \n if(!emojiData.hasOwnProperty(unified)/* && !emojiData.hasOwnProperty(unified.replace(/(-fe0f|fe0f)/g, '')) */) {\n //if(!emojiData.hasOwnProperty(emojiCode) && !emojiData.hasOwnProperty(emojiCode.replace(/[\\ufe0f\\u200d]/g, ''))) {\n //console.error('lol', unified);\n return null;\n }\n \n return unified.replace(/(-fe0f|fe0f)/g, '');\n }\n\n export function parseEntities(text: string) {\n var match;\n var raw = text, url;\n const entities: MessageEntity[] = [];\n let matchIndex;\n var rawOffset = 0;\n // var start = tsNow()\n while((match = raw.match(fullRegExp))) {\n matchIndex = rawOffset + match.index;\n \n //console.log('parseEntities match:', match);\n \n if(match[3]) { // mentions\n entities.push({\n _: 'messageEntityMention',\n offset: matchIndex + match[1].length,\n length: match[2].length + match[3].length\n });\n } else if(match[4]) {\n if(emailRegExp.test(match[4])) { // email\n entities.push({\n _: 'messageEntityEmail',\n offset: matchIndex,\n length: match[4].length\n });\n } else {\n var url: any = false;\n var protocol = match[5];\n var tld = match[6];\n var excluded = '';\n if(tld) { // URL\n if(!protocol && (tld.substr(0, 4) === 'xn--' || Config.TLD.indexOf(tld.toLowerCase()) !== -1)) {\n protocol = 'http://';\n }\n \n if(protocol) {\n var balanced = checkBrackets(match[4]);\n if (balanced.length !== match[4].length) {\n excluded = match[4].substring(balanced.length);\n match[4] = balanced;\n }\n \n url = (match[5] ? '' : protocol) + match[4];\n }\n } else { // IP address\n url = (match[5] ? '' : 'http://') + match[4];\n }\n \n if (url) {\n entities.push({\n _: 'messageEntityUrl',\n offset: matchIndex,\n length: match[4].length\n });\n }\n }\n } else if(match[7]) { // New line\n entities.push({\n _: 'messageEntityLinebreak',\n offset: matchIndex,\n length: 1\n });\n } else if(match[8]) { // Emoji\n //console.log('hit', match[8]);\n let emojiCoords = getEmojiSpritesheetCoords(match[8]);\n if(emojiCoords) {\n entities.push({\n _: 'messageEntityEmoji',\n offset: matchIndex,\n length: match[8].length,\n unicode: emojiCoords\n });\n }\n } else if(match[11]) { // Hashtag\n entities.push({\n _: 'messageEntityHashtag',\n offset: matchIndex + (match[10] ? match[10].length : 0),\n length: match[11].length\n });\n } else if(match[12]) { // Bot command\n entities.push({\n _: 'messageEntityBotCommand',\n offset: matchIndex + (match[11] ? match[11].length : 0),\n length: 1 + match[12].length + (match[13] ? 1 + match[13].length : 0)\n });\n }\n \n raw = raw.substr(match.index + match[0].length);\n rawOffset += match.index + match[0].length;\n }\n \n // if (entities.length) {\n // console.log('parse entities', text, entities.slice())\n // }\n return entities;\n }\n\n /* export function parseEmojis(text: string) {\n return text.replace(/:([a-z0-9\\-\\+\\*_]+?):/gi, function (all, shortcut) {\n var emojiCode = EmojiHelper.shortcuts[shortcut]\n if (emojiCode !== undefined) {\n return EmojiHelper.emojis[emojiCode][0]\n }\n return all\n })\n } */\n\n export function parseMarkdown(text: string, currentEntities: MessageEntity[], noTrim?: any): string {\n   /* if(!markdownTestRegExp.test(text)) {\n return noTrim ? text : text.trim();\n } */\n\n const entities: MessageEntity[] = [];\n let raw = text;\n let match;\n let newText: any = [];\n let rawOffset = 0;\n while(match = raw.match(markdownRegExp)) {\n const matchIndex = rawOffset + match.index;\n newText.push(raw.substr(0, match.index));\n let text = (match[3] || match[8] || match[11] || match[14]);\n rawOffset -= text.length;\n //text = text.replace(/^\\s+|\\s+$/g, '');\n rawOffset += text.length;\n\n if(text.match(/^`*$/)) {\n newText.push(match[0]);\n } else if(match[3]) { // pre\n if(match[5] === '\\n') {\n match[5] = '';\n rawOffset -= 1;\n }\n\n newText.push(match[1] + text + match[5]);\n entities.push({\n _: 'messageEntityPre',\n language: '',\n offset: matchIndex + match[1].length,\n length: text.length\n });\n\n rawOffset -= match[2].length + match[4].length;\n } else if(match[7]) { // code|italic|bold\n const isSOH = match[6] === '\\x01';\n if(!isSOH) {\n newText.push(match[6] + text + match[9]);\n } else {\n newText.push(text);\n }\n\n entities.push({\n _: markdownEntities[match[7]],\n //offset: matchIndex + match[6].length,\n offset: matchIndex + (isSOH ? 0 : match[6].length),\n length: text.length\n });\n\n rawOffset -= match[7].length * 2 + (isSOH ? 2 : 0);\n } else if(match[11]) { // custom mention\n newText.push(text)\n entities.push({\n _: 'messageEntityMentionName',\n user_id: +match[10],\n offset: matchIndex,\n length: text.length\n });\n\n rawOffset -= match[0].length - text.length;\n } else if(match[12]) { // text url\n newText.push(text);\n entities.push({\n _: 'messageEntityTextUrl',\n url: match[13],\n offset: matchIndex,\n length: text.length\n });\n\n rawOffset -= match[12].length - text.length;\n }\n\n raw = raw.substr(match.index + match[0].length);\n rawOffset += match.index + match[0].length;\n }\n\n newText.push(raw);\n newText = newText.join('');\n if(!newText.replace(/\\s+/g, '').length) {\n newText = text;\n entities.splice(0, entities.length);\n }\n\n if(!entities.length && !noTrim) {\n newText = newText.trim();\n }\n\n mergeEntities(currentEntities, entities);\n combineSameEntities(currentEntities);\n\n return newText;\n }\n\n export function mergeEntities(currentEntities: MessageEntity[], newEntities: MessageEntity[]) {\n currentEntities = currentEntities.slice();\n const filtered = newEntities.filter(e => !currentEntities.find(_e => e._ === _e._ && e.offset === _e.offset && e.length === _e.length));\n currentEntities.push(...filtered);\n currentEntities.sort((a, b) => a.offset - b.offset);\n return currentEntities;\n }\n\n export function combineSameEntities(entities: MessageEntity[]) {\n //entities = entities.slice();\n for(let i = 0; i < entities.length; ++i) {\n const entity = entities[i];\n\n let nextEntityIdx = -1;\n do {\n nextEntityIdx = entities.findIndex((e, _i) => _i !== i && e._ === entity._ && (e.offset - entity.length) === entity.offset);\n if(nextEntityIdx !== -1) {\n const nextEntity = entities[nextEntityIdx];\n entity.length += nextEntity.length;\n entities.splice(nextEntityIdx, 1);\n }\n } while(nextEntityIdx !== -1);\n }\n //return entities;\n }\n\n export function wrapRichText(text: string, options: Partial<{\n entities: MessageEntity[],\n contextSite: string,\n highlightUsername: string,\n noLinks: true,\n noLinebreaks: true,\n noCommands: true,\n wrappingDraft: true,\n fromBot: boolean,\n noTextFormat: true,\n passEntities: Partial<{\n [_ in MessageEntity['_']]: true\n }>,\n\n contextHashtag?: string\n }> = {}) {\n if(!text || !text.length) {\n return '';\n }\n\n const lol: {\n part: string,\n offset: number\n }[] = [];\n const entities = options.entities || parseEntities(text);\n\n const passEntities: typeof options.passEntities = options.passEntities || {};\n const contextSite = options.contextSite || 'Telegram';\n const contextExternal = contextSite !== 'Telegram';\n\n const insertPart = (entity: MessageEntity, startPart: string, endPart?: string) => {\n lol.push({part: startPart, offset: entity.offset});\n\n if(endPart) {\n lol.unshift({part: endPart, offset: entity.offset + entity.length});\n }\n };\n\n for(const entity of entities) {\n switch(entity._) {\n case 'messageEntityBold': {\n if(!options.noTextFormat) {\n if(options.wrappingDraft) {\n insertPart(entity, '<span style=\"font-weight: bold;\">', '</span>');\n } else {\n insertPart(entity, '<strong>', '</strong>');\n }\n }\n\n break;\n }\n\n case 'messageEntityItalic': {\n if(!options.noTextFormat) {\n if(options.wrappingDraft) {\n insertPart(entity, '<span style=\"font-style: italic;\">', '</span>');\n } else {\n insertPart(entity, '<em>', '</em>');\n }\n }\n\n break;\n }\n\n case 'messageEntityStrike': {\n if(options.wrappingDraft) {\n const styleName = isSafari ? 'text-decoration' : 'text-decoration-line';\n insertPart(entity, `<span style=\"${styleName}: line-through;\">`, '</span>');\n } else {\n insertPart(entity, '<del>', '</del>');\n }\n\n break;\n }\n\n case 'messageEntityUnderline': {\n if(options.wrappingDraft) {\n const styleName = isSafari ? 'text-decoration' : 'text-decoration-line';\n insertPart(entity, `<span style=\"${styleName}: underline;\">`, '</span>');\n } else {\n insertPart(entity, '<u>', '</u>');\n }\n\n break;\n }\n \n case 'messageEntityCode': {\n if(options.wrappingDraft) {\n insertPart(entity, '<span style=\"font-family: monospace;\">', '</span>');\n } else {\n insertPart(entity, '<code>', '</code>');\n }\n \n break;\n }\n \n case 'messageEntityPre': {\n if(!options.noTextFormat) {\n insertPart(entity, `<pre><code${entity.language ? ' class=\"language-' + encodeEntities(entity.language) + '\"' : ''}>`, '</code></pre>');\n }\n \n break;\n }\n\n case 'messageEntityHighlight': {\n insertPart(entity, '<i class=\"text-highlight\">', '</i>');\n break;\n }\n\n case 'messageEntityBotCommand': {\n if(!(options.noLinks || options.noCommands || contextExternal)) {\n const entityText = text.substr(entity.offset, entity.length);\n let command = entityText.substr(1);\n let bot: string | boolean;\n let atPos: number;\n if((atPos = command.indexOf('@')) !== -1) {\n bot = command.substr(atPos + 1);\n command = command.substr(0, atPos);\n } else {\n bot = options.fromBot;\n }\n\n insertPart(entity, `<a href=\"${encodeEntities('tg://bot_command?command=' + encodeURIComponent(command) + (bot ? '&bot=' + encodeURIComponent(bot) : ''))}\">`, `</a>`);\n }\n\n break;\n }\n\n case 'messageEntityEmoji': {\n if(!(options.wrappingDraft && emojiSupported)) { // * fix safari emoji\n if(emojiSupported) { // ! contenteditable=\"false\" нужен для поля ввода, иначе там будет меняться шрифт в Safari, или же рендерить смайлик напрямую, без контейнера\n insertPart(entity, '<span class=\"emoji\">', '</span>');\n } else {\n insertPart(entity, `<img src=\"assets/img/emoji/${entity.unicode}.png\" alt=\"`, `\" class=\"emoji\">`);\n }\n }\n /* if(!emojiSupported) {\n insertPart(entity, `<img src=\"assets/img/emoji/${entity.unicode}.png\" alt=\"`, `\" class=\"emoji\">`);\n } */\n\n break;\n }\n\n /* case 'messageEntityLinebreak': {\n if(options.noLinebreaks) {\n insertPart(entity, ' ');\n } else {\n insertPart(entity, '<br/>');\n }\n \n break;\n } */\n\n case 'messageEntityUrl':\n case 'messageEntityTextUrl': {\n if(!(options.noLinks && !passEntities[entity._])) {\n const entityText = text.substr(entity.offset, entity.length);\n\n let inner: string;\n let url: string;\n if(entity._ === 'messageEntityTextUrl') {\n url = (entity as MessageEntity.messageEntityTextUrl).url;\n url = wrapUrl(url, true);\n } else {\n url = wrapUrl(entityText, false);\n //inner = encodeEntities(replaceUrlEncodings(entityText));\n }\n\n const currentContext = url[0] === '#';\n\n insertPart(entity, `<a class=\"anchor-url\" href=\"${encodeEntities(url)}\"${currentContext ? '' : ' target=\"_blank\" rel=\"noopener noreferrer\"'}>`, '</a>');\n }\n\n break;\n }\n\n case 'messageEntityEmail': {\n if(!options.noLinks) {\n const entityText = text.substr(entity.offset, entity.length);\n insertPart(entity, `<a href=\"${encodeEntities('mailto:' + entityText)}\" target=\"_blank\" rel=\"noopener noreferrer\">`, '</a>');\n }\n\n break;\n }\n \n case 'messageEntityHashtag': {\n const contextUrl = !options.noLinks && siteHashtags[contextSite];\n if(contextUrl) {\n const entityText = text.substr(entity.offset, entity.length);\n const hashtag = entityText.substr(1);\n insertPart(entity, `<a class=\"anchor-hashtag\" href=\"${contextUrl.replace('{1}', encodeURIComponent(hashtag))}\"${contextExternal ? ' target=\"_blank\" rel=\"noopener noreferrer\"' : ''}>`, '</a>');\n }\n\n break;\n }\n\n case 'messageEntityMentionName': {\n if(!options.noLinks) {\n insertPart(entity, `<a href=\"#/im?p=u${encodeURIComponent(entity.user_id)}\" class=\"follow\" data-follow=\"${entity.user_id}\">`, '</a>');\n }\n\n break;\n }\n\n case 'messageEntityMention': {\n const contextUrl = !options.noLinks && siteMentions[contextSite];\n if(contextUrl) {\n const entityText = text.substr(entity.offset, entity.length);\n const username = entityText.substr(1);\n\n insertPart(entity, `<a class=\"mention\" href=\"${contextUrl.replace('{1}', encodeURIComponent(username))}\"${contextExternal ? ' target=\"_blank\" rel=\"noopener noreferrer\"' : ''}>`, '</a>');\n }\n \n break;\n }\n }\n }\n\n lol.sort((a, b) => a.offset - b.offset);\n\n let out = '';\n let usedLength = 0;\n for(const {part, offset} of lol) {\n if(offset > usedLength) {\n out += encodeEntities(text.slice(usedLength, offset));\n usedLength = offset;\n }\n\n out += part;\n\n \n }\n\n if(usedLength < text.length) {\n out += encodeEntities(text.slice(usedLength));\n }\n\n return out;\n }\n\n export function wrapDraftText(text: string, options: Partial<{\n entities: MessageEntity[]\n }> = {}) {\n if(!text) {\n return '';\n }\n\n return wrapRichText(text, {\n entities: options.entities, \n noLinks: true,\n wrappingDraft: true,\n passEntities: {\n messageEntityTextUrl: true\n }\n });\n }\n\n export function checkBrackets(url: string) {\n var urlLength = url.length;\n var urlOpenBrackets = url.split('(').length - 1;\n var urlCloseBrackets = url.split(')').length - 1;\n while(urlCloseBrackets > urlOpenBrackets &&\n url.charAt(urlLength - 1) === ')') {\n url = url.substr(0, urlLength - 1)\n urlCloseBrackets--;\n urlLength--;\n }\n if(urlOpenBrackets > urlCloseBrackets) {\n url = url.replace(/\\)+$/, '');\n }\n return url;\n }\n \n export function replaceUrlEncodings(urlWithEncoded: string) {\n return urlWithEncoded.replace(/(%[A-Z\\d]{2})+/g, (str) => {\n try {\n return decodeURIComponent(str);\n } catch (e) {\n return str;\n }\n });\n }\n \n export function wrapPlainText(text: any) {\n if(emojiSupported) {\n return text;\n }\n \n if(!text || !text.length) {\n return '';\n }\n \n text = text.replace(/\\ufe0f/g, '', text);\n var match;\n var raw = text;\n var text: any = [],\n emojiTitle;\n while((match = raw.match(fullRegExp))) {\n text.push(raw.substr(0, match.index))\n if(match[8]) {\n // @ts-ignore\n const emojiCode = EmojiHelper.emojiMap[match[8]];\n if(emojiCode &&\n // @ts-ignore\n (emojiTitle = emojiData[emojiCode][1][0])) {\n text.push(':' + emojiTitle + ':');\n } else {\n text.push(match[0]);\n }\n } else {\n text.push(match[0]);\n }\n \n raw = raw.substr(match.index + match[0].length);\n }\n text.push(raw);\n return text.join('');\n }\n\n export function wrapEmojiText(text: string) {\n if(!text) return '';\n \n let entities = parseEntities(text).filter(e => e._ === 'messageEntityEmoji');\n return wrapRichText(text, {entities});\n }\n\n export function wrapUrl(url: string, unsafe?: number | boolean): string {\n if(!url.match(/^https?:\\/\\//i)) {\n url = 'https://' + url;\n }\n \n let tgMeMatch;\n let telescoPeMatch;\n /* if(unsafe === 2) {\n url = 'tg://unsafe_url?url=' + encodeURIComponent(url);\n } else */if((tgMeMatch = url.match(/^https?:\\/\\/t(?:elegram)?\\.me\\/(.+)/))) {\n const fullPath = tgMeMatch[1];\n const path = fullPath.split('/');\n switch(path[0]) {\n case 'joinchat':\n url = 'tg://join?invite=' + path[1];\n break;\n \n case 'addstickers':\n url = 'tg://addstickers?set=' + path[1];\n break;\n \n default:\n if(path[1] && path[1].match(/^\\d+$/)) { // https://t.me/.+/[0-9]+ (channel w/ username)\n if(path[0] === 'c' && path[2]) { // https://t.me/c/111111111/111 (channel w/o username)\n url = '#/im?p=' + path[1] + '&post=' + path[2];\n } else { // https://t.me/durov/151 (channel w/ username)\n url = siteMentions['Telegram'].replace('{1}', path[0] + '&post=' + path[1]);\n }\n } else if(path.length === 1) {\n const domainQuery = path[0].split('?');\n const domain = domainQuery[0];\n const query = domainQuery[1];\n\n if(domain === 'iv') {\n const match = (query || '').match(/url=([^&=]+)/);\n if(match) {\n url = match[1];\n try {\n url = decodeURIComponent(url);\n } catch (e) {}\n \n return wrapUrl(url, unsafe);\n }\n }\n \n url = siteMentions['Telegram'].replace('{1}', domain + (query ? '&' + query : ''));\n //url = 'tg://resolve?domain=' + domain + (query ? '&' + query : '');\n }\n\n break;\n }\n } else if((telescoPeMatch = url.match(/^https?:\\/\\/telesco\\.pe\\/([^/?]+)\\/(\\d+)/))) {\n url = 'tg://resolve?domain=' + telescoPeMatch[1] + '&post=' + telescoPeMatch[2];\n }/* else if(unsafe) {\n url = 'tg://unsafe_url?url=' + encodeURIComponent(url);\n } */\n \n return url;\n }\n \n export function matchUrl(text: string) {\n return !text ? null : text.match(urlRegExp);\n }\n\n export function matchEmail(text: string) {\n return !text ? null : text.match(emailRegExp);\n }\n\n export function getAbbreviation(str: string, onlyFirst = false) {\n const splitted = str.trim().split(' ');\n if(!splitted[0]) return '';\n\n const first = [...splitted[0]][0];\n\n if(onlyFirst || splitted.length === 1) return wrapEmojiText(first);\n\n const last = [...splitted[splitted.length - 1]][0];\n\n return wrapEmojiText(first + last);\n }\n\n export function isUsernameValid(username: string) {\n return ((username.length >= 5 && username.length <= 32) || !username.length) && /^[a-zA-Z0-9_]*$/.test(username);\n }\n}\n\nMOUNT_CLASS_TO.RichTextProcessor = RichTextProcessor;\n\nexport {RichTextProcessor};\nexport default RichTextProcessor;\n\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\n// * Jolly Cobra's schedulers\nimport { AnyToVoidFunction, NoneToVoidFunction } from \"../types\";\n\n//type Scheduler = typeof requestAnimationFrame | typeof onTickEnd | typeof runNow;\n\nexport function debounce<F extends AnyToVoidFunction>(\n fn: F,\n ms: number,\n shouldRunFirst = true,\n shouldRunLast = true,\n) {\n let waitingTimeout: number | null = null;\n\n return (...args: Parameters<F>) => {\n if(waitingTimeout) {\n clearTimeout(waitingTimeout);\n waitingTimeout = null;\n } else if(shouldRunFirst) {\n // @ts-ignore\n fn(...args);\n }\n\n waitingTimeout = setTimeout(() => {\n if(shouldRunLast) {\n // @ts-ignore\n fn(...args);\n }\n\n waitingTimeout = null;\n }, ms) as any;\n };\n}\n\nexport function throttle<F extends AnyToVoidFunction>(\n fn: F,\n ms: number,\n shouldRunFirst = true,\n) {\n let interval: number | null = null;\n let isPending: boolean;\n let args: Parameters<F>;\n\n return (..._args: Parameters<F>) => {\n isPending = true;\n args = _args;\n\n if (!interval) {\n if (shouldRunFirst) {\n isPending = false;\n // @ts-ignore\n fn(...args);\n }\n\n interval = window.setInterval(() => {\n if (!isPending) {\n window.clearInterval(interval!);\n interval = null;\n return;\n }\n\n isPending = false;\n // @ts-ignore\n fn(...args);\n }, ms);\n }\n };\n}\n\n/* export function throttleWithRaf<F extends AnyToVoidFunction>(fn: F) {\n return throttleWith(fastRaf, fn);\n}\n\nexport function throttleWithTickEnd<F extends AnyToVoidFunction>(fn: F) {\n return throttleWith(onTickEnd, fn);\n}\n\nexport function throttleWithNow<F extends AnyToVoidFunction>(fn: F) {\n return throttleWith(runNow, fn);\n}\n\nexport function throttleWith<F extends AnyToVoidFunction>(schedulerFn: Scheduler, fn: F) {\n let waiting = false;\n let args: Parameters<F>;\n\n return (..._args: Parameters<F>) => {\n args = _args;\n\n if (!waiting) {\n waiting = true;\n\n schedulerFn(() => {\n waiting = false;\n // @ts-ignore\n fn(...args);\n });\n }\n };\n}\n\nexport function onTickEnd(cb: NoneToVoidFunction) {\n Promise.resolve().then(cb);\n}\n\nfunction runNow(fn: NoneToVoidFunction) {\n fn();\n} */\n\nexport const pause = (ms: number) => new Promise<void>((resolve) => {\n setTimeout(resolve, ms);\n});\n\nlet fastRafCallbacks: NoneToVoidFunction[] | undefined;\nexport function fastRaf(callback: NoneToVoidFunction) {\n if(!fastRafCallbacks) {\n fastRafCallbacks = [callback];\n\n requestAnimationFrame(() => {\n const currentCallbacks = fastRafCallbacks!;\n fastRafCallbacks = undefined;\n currentCallbacks.forEach((cb) => cb());\n });\n } else {\n fastRafCallbacks.push(callback);\n }\n}\n\nexport function doubleRaf() {\n return new Promise<void>((resolve) => {\n fastRaf(() => {\n fastRaf(resolve);\n });\n });\n}\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\n// @ts-ignore\nexport const isTouchSupported = ('ontouchstart' in window) || (window.DocumentTouch && document instanceof DocumentTouch)/* || true */;","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nimport { MOUNT_CLASS_TO } from \"../config/debug\";\nimport EventListenerBase from \"./eventListenerBase\";\n\ntype Size = Partial<{width: number, height: number}>;\ntype Sizes = {\n regular: Size,\n webpage: Size,\n album: Size,\n esgSticker: Size\n};\n\nexport enum ScreenSize {\n mobile,\n medium,\n large\n}\n\nconst MOBILE_SIZE = 600;\nconst MEDIUM_SIZE = 1275;\nconst LARGE_SIZE = 1680;\n\nclass MediaSizes extends EventListenerBase<{\n changeScreen: (from: ScreenSize, to: ScreenSize) => void\n}> {\n private screenSizes: {key: ScreenSize, value: number}[] = [\n {key: ScreenSize.mobile, value: MOBILE_SIZE},\n {key: ScreenSize.medium, value: MEDIUM_SIZE},\n {key: ScreenSize.large, value: LARGE_SIZE}\n ];\n\n private sizes: {[k in 'desktop' | 'handhelds']: Sizes} = {\n handhelds: {\n regular: {\n width: 270,\n height: 270\n },\n webpage: {\n width: 270,\n height: 200\n },\n album: {\n width: 270,\n height: 0\n },\n esgSticker: {\n width: 68,\n height: 68\n }\n },\n desktop: {\n regular: {\n width: 400,\n height: 320\n },\n webpage: {\n width: 400,\n height: 320\n },\n album: {\n width: 420,\n height: 0\n },\n esgSticker: {\n width: 80,\n height: 80\n }\n }\n };\n\n public isMobile = false;\n public active: Sizes;\n public activeScreen: ScreenSize;\n public rAF: number;\n\n constructor() {\n super();\n\n window.addEventListener('resize', () => {\n if(this.rAF) window.cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n this.handleResize();\n this.rAF = 0;\n });\n });\n this.handleResize();\n }\n\n private handleResize = () => {\n const innerWidth = window.innerWidth;\n //this.isMobile = innerWidth <= 720;\n \n let activeScreen = this.screenSizes[0].key;\n for(let i = this.screenSizes.length - 1; i >= 0; --i) {\n if(this.screenSizes[i].value < innerWidth) {\n activeScreen = (this.screenSizes[i + 1] || this.screenSizes[i]).key;\n break;\n }\n }\n\n const wasScreen = this.activeScreen;\n this.activeScreen = activeScreen;\n this.isMobile = this.activeScreen === ScreenSize.mobile;\n this.active = this.isMobile ? this.sizes.handhelds : this.sizes.desktop;\n\n //console.time('esg');\n //const computedStyle = window.getComputedStyle(document.documentElement);\n //this.active.esgSticker.width = parseFloat(computedStyle.getPropertyValue('--esg-sticker-size'));\n //console.timeEnd('esg');\n\n if(wasScreen !== activeScreen) {\n //console.log('changeScreen', this.activeScreen, activeScreen);\n\n if(wasScreen !== undefined) {\n this.dispatchEvent('changeScreen', this.activeScreen, activeScreen);\n }\n }\n\n /* if(this.isMobile) {\n for(let i in this.active) {\n // @ts-ignore\n let size = this.active[i];\n size.width = innerWidth \n }\n } */\n };\n}\n\nconst mediaSizes = new MediaSizes();\nMOUNT_CLASS_TO.mediaSizes = mediaSizes;\nexport default mediaSizes;\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nexport interface CancellablePromise<T> extends Promise<T> {\n resolve?: (...args: any[]) => void,\n reject?: (...args: any[]) => void,\n cancel?: () => void,\n\n notify?: (...args: any[]) => void,\n notifyAll?: (...args: any[]) => void,\n lastNotify?: any,\n listeners?: Array<(...args: any[]) => void>,\n addNotifyListener?: (callback: (...args: any[]) => void) => void,\n\n isFulfilled?: boolean,\n isRejected?: boolean\n}\n\nexport function deferredPromise<T>() {\n let deferredHelper: any = {\n isFulfilled: false, \n isRejected: false,\n\n notify: () => {}, \n notifyAll: (...args: any[]) => {\n deferredHelper.lastNotify = args;\n deferredHelper.listeners.forEach((callback: any) => callback(...args));\n }, \n\n lastNotify: undefined,\n listeners: [],\n addNotifyListener: (callback: (...args: any[]) => void) => {\n if(deferredHelper.lastNotify) {\n callback(...deferredHelper.lastNotify);\n }\n\n deferredHelper.listeners.push(callback);\n }\n };\n\n let deferred: CancellablePromise<T> = new Promise<T>((resolve, reject) => {\n deferredHelper.resolve = (value: T) => {\n if(deferred.isFulfilled) return;\n\n deferred.isFulfilled = true;\n resolve(value);\n };\n \n deferredHelper.reject = (...args: any[]) => {\n if(deferred.isRejected) return;\n \n deferred.isRejected = true;\n reject(...args);\n };\n });\n\n // @ts-ignore\n /* deferred.then = (resolve: (value: T) => any, reject: (...args: any[]) => any) => {\n const n = deferredPromise<ReturnType<typeof resolve>>();\n \n }; */\n\n deferred.finally(() => {\n deferred.notify = null;\n deferred.listeners.length = 0;\n deferred.lastNotify = null;\n\n if(deferred.cancel) {\n deferred.cancel = () => {};\n }\n });\n\n Object.assign(deferred, deferredHelper);\n\n return deferred;\n}","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\n/* export function stringMiddleOverflow(str: string, maxLength: number) {\n return str.length > maxLength ? str.slice(0, maxLength / 2 | 0) + '...' + str.slice(-Math.round(maxLength / 2)) : str; \n} */\n\nexport function limitSymbols(str: string, length: number, limitFrom = length + 10) {\n str = str.trim();\n if(str.length > limitFrom) {\n str = str.slice(0, length)/* .replace(/\\s*$/, '') */ + '...';\n }\n\n return str;\n}\n\n// credits to https://github.com/sindresorhus/escape-string-regexp/blob/master/index.js\nexport function escapeRegExp(str: string) {\n return str\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n .replace(/-/g, '\\\\x2d');\n}\n\nexport function encodeEntities(value: string) {\n return value.replace(/&/g, '&amp;').replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, (value) => {\n var hi = value.charCodeAt(0);\n var low = value.charCodeAt(1);\n return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';';\n }).replace(/([^\\#-~| |!])/g, (value) => { // non-alphanumeric\n return '&#' + value.charCodeAt(0) + ';';\n }).replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n\nexport function splitStringByLength(str: string, maxLength: number) {\n if(str.length < maxLength) return [str];\n let length = 0, lastSliceStartIndex = 0, arrayIndex = 0;\n const delimiter = ' ';//'\\n';\n const out: string[] = [];\n\n const cut = (end?: number) => {\n let part = str.slice(lastSliceStartIndex, end);\n const _arrayIndex = arrayIndex++;\n if(part.length > maxLength) {\n let overflowPart = part.slice(maxLength);\n const splitted = splitStringByLength(overflowPart, maxLength);\n splitted.forEach(part => {\n out[arrayIndex++] = part;\n });\n\n part = part.slice(0, maxLength);\n }\n\n lastSliceStartIndex = end;\n length = 0;\n out[_arrayIndex] = (out[_arrayIndex] || '') + part;\n };\n\n let lastIndex = 0;\n do {\n let index = str.indexOf(delimiter, lastIndex);\n if(index === -1) {\n if(lastIndex !== (str.length - 1)) {\n cut();\n }\n\n break;\n }\n\n index += delimiter.length;\n\n const partLength = index - lastIndex;\n if((length + partLength) > maxLength) {\n cut(length);\n }\n \n lastIndex = index;\n length += partLength;\n } while(true);\n\n return out;\n}\n\n// https://stackoverflow.com/a/14824756\nexport const checkRTL = (s: string) => { \n const ltrChars = 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF'+'\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF',\n rtlChars = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC',\n rtlDirCheck = new RegExp('^[^'+ltrChars+']*['+rtlChars+']');\n\n return rtlDirCheck.test(s);\n};\n\n//(window as any).checkRTL = checkRTL;\n\nexport function convertInputKeyToKey(inputKey: string) {\n const str = inputKey.replace('input', '');\n return (str[0].toLowerCase() + str.slice(1)) as string;\n}\n\nexport function convertKeyToInputKey(key: string) {\n key = key[0].toUpperCase() + key.slice(1);\n key = 'input' + key;\n return key;\n}\n\nexport function capitalizeFirstLetter(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\n//import { MOUNT_CLASS_TO } from \"../config/debug\";\nimport type { ArgumentTypes, SuperReturnType } from \"../types\";\n\n// class EventSystem {\n// wm: WeakMap<any, Record<any, Set<any>>> = new WeakMap();\n\n// add(target: any, event: any, listener: any) {\n// let listeners = this.wm.get(target);\n// if (listeners === undefined) {\n// listeners = {};\n// }\n// let listenersForEvent = listeners[event];\n// if (listenersForEvent === undefined) {\n// listenersForEvent = new Set();\n// }\n// listenersForEvent.add(listener);\n// listeners[event] = listenersForEvent;\n// //target.addEventListener(event, listener);\n// this.wm.set(target, listeners);\n// };\n\n// remove(target: any, event: any, listener: any) {\n// let listeners = this.wm.get(target);\n// if (!listeners) return;\n// let listenersForEvent = listeners[event];\n// if (!listenersForEvent) return;\n// listenersForEvent.delete(listener);\n// };\n \n// /* fire(target, event) {\n// let listeners = this.wm.get(target);\n// if (!listeners) return;\n// let listenersForEvent = listeners[event];\n// if (!listenersForEvent) return;\n// for (let handler of handlers) {\n// setTimeout(handler, 0, event, target); // we use a setTimeout here because we want event triggering to be asynchronous. \n// }\n// }; */\n// }\n\n// console.log = () => {};\n\n// const e = new EventSystem();\n// MOUNT_CLASS_TO.e = e;\n\n/**\n * Better not to remove listeners during setting\n * Should add listener callback only once\n */\nexport default class EventListenerBase<Listeners extends {[name: string]: Function}> {\n protected listeners: Partial<{\n [k in keyof Listeners]: Array<{callback: Listeners[k], once?: boolean}>\n }>;\n protected listenerResults: Partial<{\n [k in keyof Listeners]: ArgumentTypes<Listeners[k]>\n }>;\n\n private reuseResults: boolean;\n\n constructor(reuseResults?: boolean) {\n this._constructor(reuseResults);\n }\n\n public _constructor(reuseResults = false): any {\n this.reuseResults = reuseResults;\n this.listeners = {};\n this.listenerResults = {};\n }\n\n public addEventListener(name: keyof Listeners, callback: Listeners[typeof name], once?: boolean) {\n if(this.listenerResults.hasOwnProperty(name)) {\n callback(...this.listenerResults[name]);\n \n if(once) {\n return;\n }\n }\n \n (this.listeners[name] ?? (this.listeners[name] = [])).push({callback, once});\n //e.add(this, name, {callback, once});\n }\n\n public removeEventListener(name: keyof Listeners, callback: Listeners[typeof name]) {\n if(this.listeners[name]) {\n this.listeners[name].findAndSplice(l => l.callback === callback);\n }\n //e.remove(this, name, callback);\n }\n\n // * must be protected, but who cares\n public dispatchEvent(name: keyof Listeners, ...args: ArgumentTypes<Listeners[typeof name]>) {\n if(this.reuseResults) {\n this.listenerResults[name] = args;\n }\n\n const arr: Array<SuperReturnType<Listeners[typeof name]>> = [];\n\n /* let a = e.wm.get(this)[name];\n if(!a) return arr;\n const listeners = [...a]; */\n const listeners = this.listeners[name];\n if(listeners) {\n // ! this one will guarantee execution even if delete another listener during setting\n const left = listeners.slice();\n left.forEach((listener: any) => {\n const index = listeners.findIndex((l: any) => l.callback === listener.callback);\n if(index === -1) {\n return;\n }\n\n arr.push(listener.callback(...args));\n\n if(listener.once) {\n this.removeEventListener(name, listener.callback);\n }\n });\n\n /* for(let i = 0, length = listeners.length; i < length; ++i) {\n const listener = listeners[i];\n arr.push(listener.callback(...args));\n\n if(listener.once) {\n listeners.splice(i, 1);\n --i;\n --length;\n }\n } */\n }\n\n return arr;\n }\n\n public cleanup() {\n this.listeners = {}; \n this.listenerResults = {};\n }\n}\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n * \n * Originally from:\n * https://github.com/zhukov/webogram\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\n * https://github.com/zhukov/webogram/blob/master/LICENSE\n */\n\nconst Modes = {\n test: location.search.indexOf('test=1') > 0/* || true */,\n debug: location.search.indexOf('debug=1') > 0,\n http: false, //location.search.indexOf('http=1') > 0,\n ssl: true, // location.search.indexOf('ssl=1') > 0 || location.protocol === 'https:' && location.search.indexOf('ssl=0') === -1,\n multipleConnections: true,\n asServiceWorker: false\n};\n\n//////////////////\n/////////////////////////////\n//////////\n\nexport default Modes;\n","import { fastRaf } from \"./schedulers\";\nimport { CancellablePromise, deferredPromise } from \"./cancellablePromise\";\nimport { isInDOM } from \"./dom\";\nimport { MOUNT_CLASS_TO } from \"../config/debug\";\n\nclass SequentialDom {\n private promises: Partial<{\n read: CancellablePromise<void>,\n write: CancellablePromise<void>\n }> = {};\n private raf = fastRaf.bind(null);\n private scheduled = false;\n\n private do(kind: keyof SequentialDom['promises'], callback?: VoidFunction) {\n let promise = this.promises[kind];\n if(!promise) {\n this.scheduleFlush();\n promise = this.promises[kind] = deferredPromise<void>();\n }\n\n if(callback !== undefined) {\n promise.then(() => callback());\n }\n \n return promise;\n }\n\n public measure(callback?: VoidFunction) {\n return this.do('read', callback);\n }\n\n public mutate(callback?: VoidFunction) {\n return this.do('write', callback);\n }\n\n /**\n * Will fire instantly if element is not connected\n * @param element \n * @param callback \n */\n public mutateElement(element: HTMLElement, callback?: VoidFunction) {\n const promise = isInDOM(element) ? this.mutate() : Promise.resolve();\n\n if(callback !== undefined) {\n promise.then(() => callback());\n }\n\n return promise;\n }\n\n private scheduleFlush() {\n if(!this.scheduled) {\n this.scheduled = true;\n\n this.raf(() => {\n this.promises.read && this.promises.read.resolve();\n this.promises.write && this.promises.write.resolve();\n\n this.scheduled = false;\n this.promises = {};\n });\n }\n }\n}\n\nconst sequentialDom = new SequentialDom();\nMOUNT_CLASS_TO && (MOUNT_CLASS_TO.sequentialDom = sequentialDom);\nexport default sequentialDom;\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n * \n * Originally from:\n * https://github.com/zhukov/webogram\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\n * https://github.com/zhukov/webogram/blob/master/LICENSE\n */\n\nimport { MessageEntity } from \"../layer\";\nimport RichTextProcessor from \"../lib/richtextprocessor\";\nimport ListenerSetter from \"./listenerSetter\";\nimport { isTouchSupported } from \"./touchSupport\";\nimport { isApple, isMobileSafari } from \"./userAgent\";\nimport rootScope from \"../lib/rootScope\";\nimport { MOUNT_CLASS_TO } from \"../config/debug\";\nimport { doubleRaf } from \"./schedulers\";\n\n/* export function isInDOM(element: Element, parentNode?: HTMLElement): boolean {\n if(!element) {\n return false;\n }\n\n parentNode = parentNode || document.body;\n if(element === parentNode) {\n return true;\n }\n return isInDOM(element.parentNode as HTMLElement, parentNode);\n} */\nexport function isInDOM(element: Element): boolean {\n return element?.isConnected;\n}\n\n/* export function checkDragEvent(e: any) {\n if(!e || e.target && (e.target.tagName === 'IMG' || e.target.tagName === 'A')) return false\n if(e.dataTransfer && e.dataTransfer.types) {\n for(var i = 0; i < e.dataTransfer.types.length; i++) {\n if(e.dataTransfer.types[i] === 'Files') {\n return true;\n }\n }\n } else {\n return true;\n }\n\n return false;\n} */\n\nexport function cancelEvent(event: Event) {\n event = event || window.event;\n if(event) {\n // @ts-ignore\n event = event.originalEvent || event;\n\n try {\n if(event.stopPropagation) event.stopPropagation();\n if(event.preventDefault) event.preventDefault();\n event.returnValue = false;\n event.cancelBubble = true;\n } catch(err) {}\n }\n\n return false;\n}\n\nexport function placeCaretAtEnd(el: HTMLElement) {\n if(isTouchSupported) {\n return;\n }\n \n el.focus();\n if(typeof window.getSelection !== \"undefined\" && typeof document.createRange !== \"undefined\") {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n // @ts-ignore\n } else if(typeof document.body.createTextRange !== \"undefined\") {\n // @ts-ignore\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n}\n\n/* export function getFieldSelection(field: any) {\n if(field.selectionStart) {\n return field.selectionStart;\n // @ts-ignore\n } else if(!document.selection) {\n return 0;\n }\n\n const c = '\\x01';\n // @ts-ignore\n const sel = document.selection.createRange();\n const txt = sel.text;\n const dup = sel.duplicate();\n let len = 0;\n\n try {\n dup.moveToElementText(field);\n } catch(e) {\n return 0;\n }\n\n sel.text = txt + c;\n len = dup.text.indexOf(c);\n sel.moveStart('character', -1);\n sel.text = '';\n\n // if (browser.msie && len === -1) {\n // return field.value.length\n // }\n return len;\n} */\n\nexport function getRichValue(field: HTMLElement, entities?: MessageEntity[]) {\n if(!field) {\n return '';\n }\n\n const lines: string[] = [];\n const line: string[] = [];\n\n getRichElementValue(field, lines, line, undefined, undefined, entities);\n if(line.length) {\n lines.push(line.join(''));\n }\n\n let value = lines.join('\\n');\n value = value.replace(/\\u00A0/g, ' ');\n\n if(entities) {\n RichTextProcessor.combineSameEntities(entities);\n }\n\n //console.log('getRichValue:', value, entities);\n\n return value;\n}\n\nMOUNT_CLASS_TO.getRichValue = getRichValue;\n\nexport type MarkdownType = 'bold' | 'italic' | 'underline' | 'strikethrough' | 'monospace' | 'link';\nexport type MarkdownTag = {\n match: string,\n entityName: 'messageEntityBold' | 'messageEntityUnderline' | 'messageEntityItalic' | 'messageEntityPre' | 'messageEntityStrike' | 'messageEntityTextUrl';\n};\nexport const markdownTags: {[type in MarkdownType]: MarkdownTag} = {\n bold: {\n match: '[style*=\"font-weight\"], b',\n entityName: 'messageEntityBold'\n },\n underline: {\n match: '[style*=\"underline\"], u',\n entityName: 'messageEntityUnderline'\n },\n italic: {\n match: '[style*=\"italic\"], i',\n entityName: 'messageEntityItalic'\n },\n monospace: {\n match: '[style*=\"monospace\"], [face=\"monospace\"]',\n entityName: 'messageEntityPre'\n },\n strikethrough: {\n match: '[style*=\"line-through\"], strike',\n entityName: 'messageEntityStrike'\n },\n link: {\n match: 'A',\n entityName: 'messageEntityTextUrl'\n }\n};\nexport function getRichElementValue(node: HTMLElement, lines: string[], line: string[], selNode?: Node, selOffset?: number, entities?: MessageEntity[], offset = {offset: 0}) {\n if(node.nodeType === 3) { // TEXT\n if(selNode === node) {\n const value = node.nodeValue;\n line.push(value.substr(0, selOffset) + '\\x01' + value.substr(selOffset));\n } else {\n const nodeValue = node.nodeValue;\n line.push(nodeValue);\n\n if(entities && nodeValue.trim()) {\n if(node.parentNode) {\n const parentElement = node.parentElement;\n \n for(const type in markdownTags) {\n const tag = markdownTags[type as MarkdownType];\n const closest = parentElement.closest(tag.match + ', [contenteditable]');\n if(closest && closest.getAttribute('contenteditable') === null) {\n if(tag.entityName === 'messageEntityTextUrl') {\n entities.push({\n _: tag.entityName as any,\n url: (parentElement as HTMLAnchorElement).href,\n offset: offset.offset,\n length: nodeValue.length\n });\n } else {\n entities.push({\n _: tag.entityName as any,\n offset: offset.offset,\n length: nodeValue.length\n });\n }\n }\n }\n }\n }\n\n offset.offset += nodeValue.length;\n }\n\n return;\n }\n\n if(node.nodeType !== 1) { // NON-ELEMENT\n return;\n }\n\n const isSelected = (selNode === node);\n const isBlock = node.tagName === 'DIV' || node.tagName === 'P';\n if(isBlock && line.length || node.tagName === 'BR') {\n lines.push(line.join(''));\n line.splice(0, line.length);\n } else if(node.tagName === 'IMG') {\n const alt = (node as HTMLImageElement).alt;\n if(alt) {\n line.push(alt);\n offset.offset += alt.length;\n }\n }\n\n if(isSelected && !selOffset) {\n line.push('\\x01');\n }\n\n let curChild = node.firstChild as HTMLElement;\n while(curChild) {\n getRichElementValue(curChild, lines, line, selNode, selOffset, entities, offset);\n curChild = curChild.nextSibling as any;\n }\n\n if(isSelected && selOffset) {\n line.push('\\x01');\n }\n\n if(isBlock && line.length) {\n lines.push(line.join(''));\n line.splice(0, line.length);\n }\n}\n\nexport function isInputEmpty(element: HTMLElement) {\n if(element.hasAttribute('contenteditable') || element.tagName !== 'INPUT') {\n /* const value = element.innerText;\n\n return !value.trim() && !serializeNodes(Array.from(element.childNodes)).trim(); */\n return !getRichValue(element).trim();\n } else {\n return !(element as HTMLInputElement).value.trim();\n }\n}\n\n/* export function serializeNodes(nodes: Node[]): string {\n return nodes.reduce((str, child: any) => {\n //console.log('childNode', str, child, typeof(child), typeof(child) === 'string', child.innerText);\n\n if(typeof(child) === 'object' && child.textContent) return str += child.textContent;\n if(child.innerText) return str += child.innerText;\n if(child.tagName === 'IMG' && child.classList && child.classList.contains('emoji')) return str += child.getAttribute('alt');\n\n return str;\n }, '');\n} */\n\n/* if (Config.Modes.animations &&\n typeof window.requestAnimationFrame === 'function') {\n window.onAnimationFrameCallback = function (cb) {\n return (function () {\n window.requestAnimationFrame(cb)\n })\n }\n} else {\n window.onAnimationFrameCallback = function (cb) {\n return cb\n }\n} */\n\n// generate a path's arc data parameter\n// http://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands\nvar arcParameter = function(rx: number, ry: number, xAxisRotation: number, largeArcFlag: number, sweepFlag: number, x: number, y: number) {\n return [rx, ',', ry, ' ',\n xAxisRotation, ' ',\n largeArcFlag, ',',\n sweepFlag, ' ',\n x, ',', y ].join('');\n};\n\nexport function generatePathData(x: number, y: number, width: number, height: number, tl: number, tr: number, br: number, bl: number) {\n const data: string[] = [];\n\n // start point in top-middle of the rectangle\n data.push('M' + (x + width / 2) + ',' + y);\n\n // next we go to the right\n data.push('H' + (x + width - tr));\n\n if(tr > 0) {\n // now we draw the arc in the top-right corner\n data.push('A' + arcParameter(tr, tr, 0, 0, 1, (x + width), (y + tr)));\n }\n\n // next we go down\n data.push('V' + (y + height - br));\n\n if(br > 0) {\n // now we draw the arc in the lower-right corner\n data.push('A' + arcParameter(br, br, 0, 0, 1, (x + width - br), (y + height)));\n }\n\n // now we go to the left\n data.push('H' + (x + bl));\n\n if(bl > 0) {\n // now we draw the arc in the lower-left corner\n data.push('A' + arcParameter(bl, bl, 0, 0, 1, (x + 0), (y + height - bl)));\n }\n\n // next we go up\n data.push('V' + (y + tl));\n\n if(tl > 0) {\n // now we draw the arc in the top-left corner\n data.push('A' + arcParameter(tl, tl, 0, 0, 1, (x + tl), (y + 0)));\n }\n\n // and we close the path\n data.push('Z');\n\n return data.join(' ');\n};\n\nMOUNT_CLASS_TO.generatePathData = generatePathData;\n\nexport function whichChild(elem: Node) {\n if(!elem.parentNode) {\n return -1;\n }\n \n let i = 0;\n // @ts-ignore\n while((elem = elem.previousElementSibling) !== null) ++i;\n return i;\n};\n\nexport function fillPropertyValue(str: string) {\n let splitted = str.split(' ');\n if(splitted.length !== 4) {\n if(!splitted[0]) splitted[0] = '0px';\n for(let i = splitted.length; i < 4; ++i) {\n splitted[i] = splitted[i % 2] || splitted[0] || '0px';\n }\n }\n\n return splitted;\n}\n\nexport function calcImageInBox(imageW: number, imageH: number, boxW: number, boxH: number, noZoom = true) {\n if(imageW < boxW && imageH < boxH && noZoom) {\n return {w: imageW, h: imageH};\n }\n\n let boxedImageW = boxW;\n let boxedImageH = boxH;\n\n if((imageW / imageH) > (boxW / boxH)) {\n boxedImageH = (imageH * boxW / imageW) | 0;\n } else {\n boxedImageW = (imageW * boxH / imageH) | 0;\n if(boxedImageW > boxW) {\n boxedImageH = (boxedImageH * boxW / boxedImageW) | 0;\n boxedImageW = boxW;\n }\n }\n\n // if (Config.Navigator.retina) {\n // imageW = Math.floor(imageW / 2)\n // imageH = Math.floor(imageH / 2)\n // }\n\n if(noZoom && boxedImageW >= imageW && boxedImageH >= imageH) {\n boxedImageW = imageW;\n boxedImageH = imageH;\n }\n\n return {w: boxedImageW, h: boxedImageH};\n}\n\nMOUNT_CLASS_TO.calcImageInBox = calcImageInBox;\n\nexport function positionElementByIndex(element: HTMLElement, container: HTMLElement, pos: number, prevPos?: number) {\n if(prevPos === undefined) {\n prevPos = element.parentElement === container ? whichChild(element) : -1;\n }\n\n if(prevPos === pos) {\n return false;\n } else if(prevPos !== -1 && prevPos < pos) { // was higher\n pos += 1;\n }\n\n if(container.childElementCount > pos) {\n container.insertBefore(element, container.children[pos]);\n } else {\n container.append(element);\n }\n\n return true;\n}\n\nexport function cancelSelection() {\n if(window.getSelection) {\n if(window.getSelection().empty) { // Chrome\n window.getSelection().empty();\n } else if(window.getSelection().removeAllRanges) { // Firefox\n window.getSelection().removeAllRanges();\n }\n // @ts-ignore\n } else if(document.selection) { // IE?\n // @ts-ignore\n document.selection.empty();\n }\n}\n\n//(window as any).splitStringByLength = splitStringByLength;\n\nexport function getSelectedText(): string {\n if(window.getSelection) {\n return window.getSelection().toString();\n // @ts-ignore\n } else if(document.selection) {\n // @ts-ignore\n return document.selection.createRange().text;\n }\n \n return '';\n}\n\nexport function blurActiveElement() {\n if(document.activeElement && (document.activeElement as HTMLInputElement).blur) {\n (document.activeElement as HTMLInputElement).blur();\n return true;\n }\n\n return false;\n}\n\nexport const CLICK_EVENT_NAME: 'mousedown' | 'touchend' | 'click' = (isTouchSupported ? 'mousedown' : 'click') as any;\nexport type AttachClickOptions = AddEventListenerOptions & Partial<{listenerSetter: ListenerSetter, touchMouseDown: true}>;\nexport const attachClickEvent = (elem: HTMLElement, callback: (e: TouchEvent | MouseEvent) => void, options: AttachClickOptions = {}) => {\n const add = options.listenerSetter ? options.listenerSetter.add.bind(options.listenerSetter, elem) : elem.addEventListener.bind(elem);\n const remove = options.listenerSetter ? options.listenerSetter.removeManual.bind(options.listenerSetter, elem) : elem.removeEventListener.bind(elem);\n\n options.touchMouseDown = true;\n /* if(options.touchMouseDown && CLICK_EVENT_NAME === 'touchend') {\n add('mousedown', callback, options);\n } else if(CLICK_EVENT_NAME === 'touchend') {\n const o = {...options, once: true};\n\n const onTouchStart = (e: TouchEvent) => {\n const onTouchMove = (e: TouchEvent) => {\n remove('touchmove', onTouchMove, o);\n remove('touchend', onTouchEnd, o);\n };\n \n const onTouchEnd = (e: TouchEvent) => {\n remove('touchmove', onTouchMove, o);\n callback(e);\n if(options.once) {\n remove('touchstart', onTouchStart);\n }\n };\n \n add('touchend', onTouchEnd, o);\n add('touchmove', onTouchMove, o);\n };\n\n add('touchstart', onTouchStart);\n } else {\n add(CLICK_EVENT_NAME, callback, options);\n } */\n add(CLICK_EVENT_NAME, callback, options);\n};\n\nexport const detachClickEvent = (elem: HTMLElement, callback: (e: TouchEvent | MouseEvent) => void, options?: AddEventListenerOptions) => {\n if(CLICK_EVENT_NAME === 'touchend') {\n elem.removeEventListener('touchstart', callback, options);\n } else {\n elem.removeEventListener(CLICK_EVENT_NAME, callback, options);\n }\n};\n\nexport const getSelectedNodes = () => {\n const nodes: Node[] = [];\n const selection = window.getSelection();\n for(let i = 0; i < selection.rangeCount; ++i) {\n const range = selection.getRangeAt(i);\n let {startContainer, endContainer} = range;\n if(endContainer.nodeType !== 3) endContainer = endContainer.firstChild;\n \n while(startContainer && startContainer !== endContainer) {\n nodes.push(startContainer.nodeType === 3 ? startContainer : startContainer.firstChild);\n startContainer = startContainer.nextSibling;\n }\n \n if(nodes[nodes.length - 1] !== endContainer) {\n nodes.push(endContainer);\n }\n }\n\n // * filter null's due to <br>\n return nodes.filter(node => !!node);\n};\n\n/* export const isSelectionSingle = (input: Element = document.activeElement) => {\n const nodes = getSelectedNodes();\n const parents = [...new Set(nodes.map(node => node.parentNode))];\n const differentParents = parents.length > 1;\n\n let single = true;\n if(differentParents) {\n single = false;\n } else {\n const node = nodes[0];\n if(node && node.parentNode !== input && node.parentNode.parentNode !== input) {\n single = false;\n }\n }\n\n return single;\n}; */\n\nexport const handleScrollSideEvent = (elem: HTMLElement, side: 'top' | 'bottom', callback: () => void, listenerSetter: ListenerSetter) => {\n if(isTouchSupported) {\n let lastY: number;\n const options = {passive: true};\n listenerSetter.add(elem, 'touchstart', (e) => {\n if(e.touches.length > 1) {\n onTouchEnd();\n return;\n }\n\n lastY = e.touches[0].clientY;\n\n listenerSetter.add(elem, 'touchmove', onTouchMove, options);\n listenerSetter.add(elem, 'touchend', onTouchEnd, options);\n }, options);\n\n const onTouchMove = (e: TouchEvent) => {\n const clientY = e.touches[0].clientY;\n\n const isDown = clientY < lastY;\n if(side === 'bottom' && isDown) callback();\n else if(side === 'top' && !isDown) callback();\n lastY = clientY;\n //alert('isDown: ' + !!isDown);\n };\n \n const onTouchEnd = () => {\n listenerSetter.removeManual(elem, 'touchmove', onTouchMove, options);\n listenerSetter.removeManual(elem, 'touchend', onTouchEnd, options);\n };\n } else {\n listenerSetter.add(elem, 'wheel', (e) => {\n const isDown = e.deltaY > 0;\n //this.log('wheel', e, isDown);\n if(side === 'bottom' && isDown) callback();\n else if(side === 'top' && !isDown) callback();\n }, {passive: true});\n }\n};\n\n/* export function radiosHandleChange(inputs: HTMLInputElement[], onChange: (value: string) => void) {\n inputs.forEach(input => {\n input.addEventListener('change', () => {\n if(input.checked) {\n onChange(input.value);\n }\n });\n });\n} */\n\nexport function isSendShortcutPressed(e: KeyboardEvent) {\n if(e.key === 'Enter' && !isTouchSupported) {\n /* if(e.ctrlKey || e.metaKey) {\n this.messageInput.innerHTML += '<br>';\n placeCaretAtEnd(this.message)\n return;\n } */\n\n if(rootScope.settings.sendShortcut === 'enter') {\n if(e.shiftKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n return true;\n } else {\n const secondaryKey = isApple ? e.metaKey : e.ctrlKey;\n if(e.shiftKey || (isApple ? e.ctrlKey : e.metaKey)) {\n return;\n }\n\n if(secondaryKey) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function reflowScrollableElement(element: HTMLElement) {\n element.style.display = 'none';\n void element.offsetLeft; // reflow\n element.style.display = '';\n}\n\nexport function isSelectionEmpty(selection = window.getSelection()) {\n if(!selection || !selection.rangeCount) {\n return true;\n }\n\n const selectionRange = selection.getRangeAt(0);\n if(!selectionRange.toString() || !selectionRange.START_TO_END) {\n return true;\n }\n\n return false;\n}\n\nexport function disableTransition(elements: HTMLElement[]) {\n elements.forEach(el => el.classList.add('no-transition'));\n\n doubleRaf().then(() => {\n elements.forEach(el => el.classList.remove('no-transition'));\n });\n}\n\nexport function toggleDisability(elements: HTMLElement[], disable: boolean) {\n if(disable) {\n elements.forEach(el => el.setAttribute('disabled', 'true'));\n } else {\n elements.forEach(el => el.removeAttribute('disabled'));\n }\n\n return () => toggleDisability(elements, !disable);\n}\n\nexport function canFocus(isFirstInput: boolean) {\n return !isMobileSafari || !isFirstInput;\n}\n\nexport function htmlToDocumentFragment(html: string) {\n var template = document.createElement('template');\n html = html.trim(); // Never return a text node of whitespace as the result\n template.innerHTML = html;\n return template.content;\n}\n\nexport function htmlToSpan(html: string) {\n const span = document.createElement('span');\n span.innerHTML = html;\n return span;\n}\n\nexport function replaceContent(elem: HTMLElement, node: string | Node) {\n // * children.length doesn't count text nodes\n const firstChild = elem.firstChild;\n if(firstChild) {\n if(elem.lastChild === firstChild) {\n firstChild.replaceWith(node);\n } else {\n elem.textContent = '';\n elem.append(node);\n }\n } else {\n elem.append(node);\n }\n}\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n * \n * Originally from:\n * https://github.com/zhukov/webogram\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\n * https://github.com/zhukov/webogram/blob/master/LICENSE\n */\n\nimport { MOUNT_CLASS_TO } from '../config/debug';\nimport mediaSizes from '../helpers/mediaSizes';\n\n// !WARNING, ТУТ СЛОЖНО! по-хорошему, надо бы это переделать без fe0f, но они здесь необходимы чтобы отрендерить панель, и ниже дописаны 3 элемента которые не воспроизводятся без fe0f\nexport const Emoji: {[emoji: string]: number} = {\"2049\":6356,\"2122\":6364,\"2139\":6389,\"2194\":6269,\"2195\":6268,\"2196\":6267,\"2197\":6261,\"2198\":6263,\"2199\":6265,\"2328\":680,\"2600\":4177,\"2601\":4185,\"2602\":4200,\"2603\":4205,\"2604\":4207,\"2611\":6341,\"2614\":4201,\"2615\":3101,\"2618\":2123,\"2620\":194,\"2622\":6258,\"2623\":6259,\"2626\":6288,\"2638\":6285,\"2639\":166,\"2648\":6293,\"2649\":6294,\"2650\":6301,\"2651\":6302,\"2652\":6303,\"2653\":6304,\"2660\":567,\"2663\":570,\"2665\":568,\"2666\":569,\"2668\":457,\"2692\":6184,\"2693\":4110,\"2694\":6187,\"2696\":6195,\"2697\":6201,\"2699\":6193,\"2702\":6171,\"2705\":6340,\"2708\":4118,\"2709\":6132,\"2712\":6146,\"2714\":6342,\"2716\":6343,\"2721\":6284,\"2728\":56,\"2733\":6352,\"2734\":6353,\"2744\":4204,\"2747\":6354,\"2753\":6357,\"2754\":6358,\"2755\":6359,\"2757\":6360,\"2763\":1125,\"2764\":1127,\"2795\":6346,\"2796\":6347,\"2797\":6348,\"2934\":6272,\"2935\":6273,\"3030\":6361,\"3297\":6413,\"3299\":6414,\"0023-20e3\":6365,\"002a-20e3\":6366,\"0030-20e3\":6367,\"0031-20e3\":6368,\"0032-20e3\":6369,\"0033-20e3\":6370,\"0034-20e3\":6371,\"0035-20e3\":6372,\"0036-20e3\":6373,\"0037-20e3\":6374,\"0038-20e3\":6375,\"0039-20e3\":6376,\"00a9\":6362,\"00ae\":6363,\"1f004\":573,\"1f0cf\":572,\"1f170\":6383,\"1f171\":6385,\"1f17e\":6394,\"1f17f\":6396,\"1f18e\":6384,\"1f191\":6386,\"1f192\":6387,\"1f193\":6388,\"1f194\":6390,\"1f195\":6392,\"1f196\":6393,\"1f197\":6395,\"1f198\":6397,\"1f199\":6398,\"1f19a\":6399,\"1f1e6-1f1e8\":78,\"1f1e6-1f1e9\":79,\"1f1e6-1f1ea\":710,\"1f1e6-1f1eb\":711,\"1f1e6-1f1ec\":712,\"1f1e6-1f1ee\":713,\"1f1e6-1f1f1\":714,\"1f1e6-1f1f2\":715,\"1f1e6-1f1f4\":716,\"1f1e6-1f1f6\":717,\"1f1e6-1f1f7\":718,\"1f1e6-1f1f8\":719,\"1f1e6-1f1f9\":720,\"1f1e6-1f1fa\":721,\"1f1e6-1f1fc\":722,\"1f1e6-1f1fd\":723,\"1f1e6-1f1ff\":724,\"1f1e7-1f1e6\":725,\"1f1e7-1f1e7\":726,\"1f1e7-1f1e9\":727,\"1f1e7-1f1ea\":728,\"1f1e7-1f1eb\":729,\"1f1e7-1f1ec\":730,\"1f1e7-1f1ed\":731,\"1f1e7-1f1ee\":732,\"1f1e7-1f1ef\":733,\"1f1e7-1f1f1\":734,\"1f1e7-1f1f2\":735,\"1f1e7-1f1f3\":736,\"1f1e7-1f1f4\":737,\"1f1e7-1f1f6\":738,\"1f1e7-1f1f7\":739,\"1f1e7-1f1f8\":740,\"1f1e7-1f1f9\":741,\"1f1e7-1f1fb\":742,\"1f1e7-1f1fc\":743,\"1f1e7-1f1fe\":744,\"1f1e7-1f1ff\":745,\"1f1e8-1f1e6\":746,\"1f1e8-1f1e8\":747,\"1f1e8-1f1e9\":748,\"1f1e8-1f1eb\":749,\"1f1e8-1f1ec\":750,\"1f1e8-1f1ed\":751,\"1f1e8-1f1ee\":752,\"1f1e8-1f1f0\":753,\"1f1e8-1f1f1\":754,\"1f1e8-1f1f2\":755,\"1f1e8-1f1f3\":756,\"1f1e8-1f1f4\":757,\"1f1e8-1f1f5\":758,\"1f1e8-1f1f7\":759,\"1f1e8-1f1fa\":760,\"1f1e8-1f1fb\":761,\"1f1e8-1f1fc\":762,\"1f1e8-1f1fd\":763,\"1f1e8-1f1fe\":764,\"1f1e8-1f1ff\":765,\"1f1e9-1f1ea\":766,\"1f1e9-1f1ec\":767,\"1f1e9-1f1ef\":768,\"1f1e9-1f1f0\":769,\"1f1e9-1f1f2\":770,\"1f1e9-1f1f4\":771,\"1f1e9-1f1ff\":772,\"1f1ea-1f1e6\":773,\"1f1ea-1f1e8\":774,\"1f1ea-1f1ea\":775,\"1f1ea-1f1ec\":776,\"1f1ea-1f1ed\":777,\"1f1ea-1f1f7\":778,\"1f1ea-1f1f8\":779,\"1f1ea-1f1f9\":780,\"1f1ea-1f1fa\":781,\"1f1eb-1f1ee\":782,\"1f1eb-1f1ef\":783,\"1f1eb-1f1f0\":784,\"1f1eb-1f1f2\":785,\"1f1eb-1f1f4\":786,\"1f1eb-1f1f7\":787,\"1f1ec-1f1e6\":788,\"1f1ec-1f1e7\":789,\"1f1ec-1f1e9\":790,\"1f1ec-1f1ea\":791,\"1f1ec-1f1eb\":792,\"1f1ec-1f1ec\":793,\"1f1ec-1f1ed\":794,\"1f1ec-1f1ee\":795,\"1f1ec-1f1f1\":796,\"1f1ec-1f1f2\":797,\"1f1ec-1f1f3\":798,\"1f1ec-1f1f5\":799,\"1f1ec-1f1f6\":7100,\"1f1ec-1f1f7\":7101,\"1f1ec-1f1f8\":7102,\"1f1ec-1f1f9\":7103,\"1f1ec-1f1fa\":7104,\"1f1ec-1f1fc\":7105,\"1f1ec-1f1fe\":7106,\"1f1ed-1f1f0\":7107,\"1f1ed-1f1f2\":7108,\"1f1ed-1f1f3\":7109,\"1f1ed-1f1f7\":7110,\"1f1ed-1f1f9\":7111,\"1f1ed-1f1fa\":7112,\"1f1ee-1f1e8\":7113,\"1f1ee-1f1e9\":7114,\"1f1ee-1f1ea\":7115,\"1f1ee-1f1f1\":7116,\"1f1ee-1f1f2\":7117,\"1f1ee-1f1f3\":7118,\"1f1ee-1f1f4\":7119,\"1f1ee-1f1f6\":7120,\"1f1ee-1f1f7\":7121,\"1f1ee-1f1f8\":7122,\"1f1ee-1f1f9\":7123,\"1f1ef-1f1ea\":7124,\"1f1ef-1f1f2\":7125,\"1f1ef-1f1f4\":7126,\"1f1ef-1f1f5\":7127,\"1f1f0-1f1ea\":7128,\"1f1f0-1f1ec\":7129,\"1f1f0-1f1ed\":7130,\"1f1f0-1f1ee\":7131,\"1f1f0-1f1f2\":7132,\"1f1f0-1f1f3\":7133,\"1f1f0-1f1f5\":7134,\"1f1f0-1f1f7\":7135,\"1f1f0-1f1fc\":7136,\"1f1f0-1f1fe\":7137,\"1f1f0-1f1ff\":7138,\"1f1f1-1f1e6\":7139,\"1f1f1-1f1e7\":7140,\"1f1f1-1f1e8\":7141,\"1f1f1-1f1ee\":7142,\"1f1f1-1f1f0\":7143,\"1f1f1-1f1f7\":7144,\"1f1f1-1f1f8\":7145,\"1f1f1-1f1f9\":7146,\"1f1f1-1f1fa\":7147,\"1f1f1-1f1fb\":7148,\"1f1f1-1f1fe\":7149,\"1f1f2-1f1e6\":7150,\"1f1f2-1f1e8\":7151,\"1f1f2-1f1e9\":7152,\"1f1f2-1f1ea\":7153,\"1f1f2-1f1eb\":7154,\"1f1f2-1f1ec\":7155,\"1f1f2-1f1ed\":7156,\"1f1f2-1f1f0\":7157,\"1f1f2-1f1f1\":7158,\"1f1f2-1f1f2\":7159,\"1f1f2-1f1f3\":7160,\"1f1f2-1f1f4\":7161,\"1f1f2-1f1f5\":7162,\"1f1f2-1f1f6\":7163,\"1f1f2-1f1f7\":7164,\"1f1f2-1f1f8\":7165,\"1f1f2-1f1f9\":7166,\"1f1f2-1f1fa\":7167,\"1f1f2-1f1fb\":7168,\"1f1f2-1f1fc\":7169,\"1f1f2-1f1fd\":7170,\"1f1f2-1f1fe\":7171,\"1f1f2-1f1ff\":7172,\"1f1f3-1f1e6\":7173,\"1f1f3-1f1e8\":7174,\"1f1f3-1f1ea\":7175,\"1f1f3-1f1eb\":7176,\"1f1f3-1f1ec\":7177,\"1f1f3-1f1ee\":7178,\"1f1f3-1f1f1\":7179,\"1f1f3-1f1f4\":7180,\"1f1f3-1f1f5\":7181,\"1f1f3-1f1f7\":7182,\"1f1f3-1f1fa\":7183,\"1f1f3-1f1ff\":7184,\"1f1f4-1f1f2\":7185,\"1f1f5-1f1e6\":7186,\"1f1f5-1f1ea\":7187,\"1f1f5-1f1eb\":7188,\"1f1f5-1f1ec\":7189,\"1f1f5-1f1ed\":7190,\"1f1f5-1f1f0\":7191,\"1f1f5-1f1f1\":7192,\"1f1f5-1f1f2\":7193,\"1f1f5-1f1f3\":7194,\"1f1f5-1f1f7\":7195,\"1f1f5-1f1f8\":7196,\"1f1f5-1f1f9\":7197,\"1f1f5-1f1fc\":7198,\"1f1f5-1f1fe\":7199,\"1f1f6-1f1e6\":7200,\"1f1f7-1f1ea\":7201,\"1f1f7-1f1f4\":7202,\"1f1f7-1f1f8\":7203,\"1f1f7-1f1fa\":7204,\"1f1f7-1f1fc\":7205,\"1f1f8-1f1e6\":7206,\"1f1f8-1f1e7\":7207,\"1f1f8-1f1e8\":7208,\"1f1f8-1f1e9\":7209,\"1f1f8-1f1ea\":7210,\"1f1f8-1f1ec\":7211,\"1f1f8-1f1ed\":7212,\"1f1f8-1f1ee\":7213,\"1f1f8-1f1ef\":7214,\"1f1f8-1f1f0\":7215,\"1f1f8-1f1f1\":7216,\"1f1f8-1f1f2\":7217,\"1f1f8-1f1f3\":7218,\"1f1f8-1f1f4\":7219,\"1f1f8-1f1f7\":7220,\"1f1f8-1f1f8\":7221,\"1f1f8-1f1f9\":7222,\"1f1f8-1f1fb\":7223,\"1f1f8-1f1fd\":7224,\"1f1f8-1f1fe\":7225,\"1f1f8-1f1ff\":7226,\"1f1f9-1f1e6\":7227,\"1f1f9-1f1e8\":7228,\"1f1f9-1f1e9\":7229,\"1f1f9-1f1eb\":7230,\"1f1f9-1f1ec\":7231,\"1f1f9-1f1ed\":7232,\"1f1f9-1f1ef\":7233,\"1f1f9-1f1f0\":7234,\"1f1f9-1f1f1\":7235,\"1f1f9-1f1f2\":7236,\"1f1f9-1f1f3\":7237,\"1f1f9-1f1f4\":7238,\"1f1f9-1f1f7\":7239,\"1f1f9-1f1f9\":7240,\"1f1f9-1f1fb\":7241,\"1f1f9-1f1fc\":7242,\"1f1f9-1f1ff\":7243,\"1f1fa-1f1e6\":7244,\"1f1fa-1f1ec\":7245,\"1f1fa-1f1f2\":7246,\"1f1fa-1f1f3\":7247,\"1f1fa-1f1f8\":7248,\"1f1fa-1f1fe\":7249,\"1f1fa-1f1ff\":7250,\"1f1fb-1f1e6\":7251,\"1f1fb-1f1e8\":7252,\"1f1fb-1f1ea\":7253,\"1f1fb-1f1ec\":7254,\"1f1fb-1f1ee\":7255,\"1f1fb-1f1f3\":7256,\"1f1fb-1f1fa\":7257,\"1f1fc-1f1eb\":7258,\"1f1fc-1f1f8\":7259,\"1f1fd-1f1f0\":7260,\"1f1fe-1f1ea\":7261,\"1f1fe-1f1f9\":7262,\"1f1ff-1f1e6\":7263,\"1f1ff-1f1f2\":7264,\"1f1ff-1f1fc\":7265,\"1f201\":6400,\"1f202\":6401,\"1f21a\":6407,\"1f22f\":6404,\"1f232\":6408,\"1f233\":6412,\"1f234\":6411,\"1f235\":6416,\"1f236\":6403,\"1f237\":6402,\"1f238\":6410,\"1f239\":6406,\"1f23a\":6415,\"1f250\":6405,\"1f251\":6409,\"1f300\":4197,\"1f301\":449,\"1f302\":4199,\"1f303\":450,\"1f304\":452,\"1f305\":453,\"1f306\":454,\"1f307\":455,\"1f308\":4198,\"1f309\":456,\"1f30a\":4210,\"1f30b\":410,\"1f30c\":4184,\"1f30d\":41,\"1f30e\":42,\"1f30f\":43,\"1f310\":44,\"1f311\":4164,\"1f312\":4165,\"1f313\":4166,\"1f314\":4167,\"1f315\":4168,\"1f316\":4169,\"1f317\":4170,\"1f318\":4171,\"1f319\":4172,\"1f31a\":4173,\"1f31b\":4174,\"1f31c\":4175,\"1f31d\":4178,\"1f31e\":4179,\"1f31f\":4182,\"1f320\":4183,\"1f321\":4176,\"1f324\":4188,\"1f325\":4189,\"1f326\":4190,\"1f327\":4191,\"1f328\":4192,\"1f329\":4193,\"1f32a\":4194,\"1f32b\":4195,\"1f32c\":4196,\"1f32d\":347,\"1f32e\":349,\"1f32f\":350,\"1f330\":331,\"1f331\":2116,\"1f332\":2117,\"1f333\":2118,\"1f334\":2119,\"1f335\":2120,\"1f336\":323,\"1f337\":2115,\"1f338\":2107,\"1f339\":2110,\"1f33a\":2112,\"1f33b\":2113,\"1f33c\":2114,\"1f33d\":322,\"1f33e\":2121,\"1f33f\":2122,\"1f340\":2124,\"1f341\":2125,\"1f342\":2126,\"1f343\":2127,\"1f344\":329,\"1f345\":316,\"1f346\":319,\"1f347\":31,\"1f348\":32,\"1f349\":33,\"1f34a\":34,\"1f34b\":35,\"1f34c\":36,\"1f34d\":37,\"1f34e\":39,\"1f34f\":310,\"1f350\":311,\"1f351\":312,\"1f352\":313,\"1f353\":314,\"1f354\":344,\"1f355\":346,\"1f356\":340,\"1f357\":341,\"1f358\":364,\"1f359\":365,\"1f35a\":366,\"1f35b\":367,\"1f35c\":368,\"1f35d\":369,\"1f35e\":332,\"1f35f\":345,\"1f360\":370,\"1f361\":376,\"1f362\":371,\"1f363\":372,\"1f364\":373,\"1f365\":374,\"1f366\":385,\"1f367\":386,\"1f368\":387,\"1f369\":388,\"1f36a\":389,\"1f36b\":394,\"1f36c\":395,\"1f36d\":396,\"1f36e\":397,\"1f36f\":398,\"1f370\":391,\"1f371\":363,\"1f372\":356,\"1f373\":354,\"1f374\":3118,\"1f375\":3102,\"1f376\":3103,\"1f377\":3105,\"1f378\":3106,\"1f379\":3107,\"1f37a\":3108,\"1f37b\":3109,\"1f37c\":399,\"1f37d\":3117,\"1f37e\":3104,\"1f37f\":359,\"1f380\":517,\"1f381\":518,\"1f382\":390,\"1f383\":51,\"1f384\":52,\"1f385\":1326,\"1f386\":53,\"1f387\":54,\"1f388\":57,\"1f389\":58,\"1f38a\":59,\"1f38b\":510,\"1f38c\":73,\"1f38d\":511,\"1f38e\":512,\"1f38f\":513,\"1f390\":514,\"1f391\":515,\"1f392\":625,\"1f393\":637,\"1f396\":522,\"1f397\":519,\"1f399\":656,\"1f39a\":657,\"1f39b\":658,\"1f39e\":689,\"1f39f\":520,\"1f3a0\":458,\"1f3a1\":459,\"1f3a2\":460,\"1f3a3\":549,\"1f3a4\":659,\"1f3a5\":688,\"1f3a6\":6324,\"1f3a7\":660,\"1f3a8\":577,\"1f3a9\":636,\"1f3aa\":462,\"1f3ab\":521,\"1f3ac\":691,\"1f3ad\":575,\"1f3ae\":561,\"1f3af\":555,\"1f3b0\":563,\"1f3b1\":558,\"1f3b2\":564,\"1f3b3\":537,\"1f3b4\":574,\"1f3b5\":654,\"1f3b6\":655,\"1f3b7\":662,\"1f3b8\":663,\"1f3b9\":664,\"1f3ba\":665,\"1f3bb\":666,\"1f3bc\":653,\"1f3bd\":551,\"1f3be\":535,\"1f3bf\":552,\"1f3c0\":531,\"1f3c1\":71,\"1f3c2\":1397,\"1f3c3-200d-2640-fe0f\":1381,\"1f3c3-200d-2642-fe0f\":1380,\"1f3c3\":1379,\"1f3c4-200d-2640-fe0f\":1403,\"1f3c4-200d-2642-fe0f\":1402,\"1f3c4\":1401,\"1f3c5\":524,\"1f3c6\":523,\"1f3c7\":1395,\"1f3c8\":533,\"1f3c9\":534,\"1f3ca-200d-2640-fe0f\":1409,\"1f3ca-200d-2642-fe0f\":1408,\"1f3ca\":1407,\"1f3cb-fe0f-200d-2640-fe0f\":1415,\"1f3cb-fe0f-200d-2642-fe0f\":1414,\"1f3cb\":1413,\"1f3cc-fe0f-200d-2640-fe0f\":1400,\"1f3cc-fe0f-200d-2642-fe0f\":1399,\"1f3cc\":1398,\"1f3cd\":492,\"1f3ce\":491,\"1f3cf\":538,\"1f3d0\":532,\"1f3d1\":539,\"1f3d2\":540,\"1f3d3\":542,\"1f3d4\":48,\"1f3d5\":412,\"1f3d6\":413,\"1f3d7\":419,\"1f3d8\":421,\"1f3d9\":451,\"1f3da\":422,\"1f3db\":418,\"1f3dc\":414,\"1f3dd\":415,\"1f3de\":416,\"1f3df\":417,\"1f3e0\":423,\"1f3e1\":424,\"1f3e2\":425,\"1f3e3\":426,\"1f3e4\":427,\"1f3e5\":428,\"1f3e6\":429,\"1f3e7\":6234,\"1f3e8\":430,\"1f3e9\":431,\"1f3ea\":432,\"1f3eb\":433,\"1f3ec\":434,\"1f3ed\":435,\"1f3ee\":6102,\"1f3ef\":436,\"1f3f0\":437,\"1f3f3-fe0f-200d-1f308\":76,\"1f3f3\":75,\"1f3f4-200d-2620-fe0f\":77,\"1f3f4-e0067-e0062-e0065-e006e-e0067-e007f\":7266,\"1f3f4-e0067-e0062-e0073-e0063-e0074-e007f\":7267,\"1f3f4-e0067-e0062-e0077-e006c-e0073-e007f\":7268,\"1f3f4\":74,\"1f3f5\":2109,\"1f3f7\":6120,\"1f3f8\":543,\"1f3f9\":6189,\"1f3fa\":3121,\"1f3fb\":81,\"1f3fc\":82,\"1f3fd\":83,\"1f3fe\":84,\"1f3ff\":85,\"1f400\":244,\"1f401\":243,\"1f402\":225,\"1f403\":226,\"1f404\":227,\"1f405\":217,\"1f406\":218,\"1f407\":247,\"1f408\":214,\"1f409\":282,\"1f40a\":277,\"1f40b\":286,\"1f40c\":294,\"1f40d\":280,\"1f40e\":220,\"1f40f\":232,\"1f410\":234,\"1f411\":233,\"1f412\":22,\"1f413\":262,\"1f414\":261,\"1f415-200d-1f9ba\":28,\"1f415\":26,\"1f416\":229,\"1f417\":230,\"1f418\":239,\"1f419\":292,\"1f41a\":293,\"1f41b\":296,\"1f41c\":297,\"1f41d\":298,\"1f41e\":299,\"1f41f\":288,\"1f420\":289,\"1f421\":290,\"1f422\":278,\"1f423\":263,\"1f424\":264,\"1f425\":265,\"1f426\":266,\"1f427\":267,\"1f428\":252,\"1f429\":29,\"1f42a\":235,\"1f42b\":236,\"1f42c\":287,\"1f42d\":242,\"1f42e\":224,\"1f42f\":216,\"1f430\":246,\"1f431\":213,\"1f432\":281,\"1f433\":285,\"1f434\":219,\"1f435\":21,\"1f436\":25,\"1f437\":228,\"1f438\":276,\"1f439\":245,\"1f43a\":210,\"1f43b\":251,\"1f43c\":253,\"1f43d\":231,\"1f43e\":259,\"1f43f\":248,\"1f440\":1194,\"1f441-fe0f-200d-1f5e8-fe0f\":1145,\"1f441\":1195,\"1f442\":1188,\"1f443\":1190,\"1f444\":1197,\"1f445\":1196,\"1f446\":1164,\"1f447\":1166,\"1f448\":1162,\"1f449\":1163,\"1f44a\":1171,\"1f44b\":1150,\"1f44c\":1155,\"1f44d\":1168,\"1f44e\":1169,\"1f44f\":1174,\"1f450\":1176,\"1f451\":634,\"1f452\":635,\"1f453\":61,\"1f454\":66,\"1f455\":67,\"1f456\":68,\"1f457\":613,\"1f458\":614,\"1f459\":619,\"1f45a\":620,\"1f45b\":621,\"1f45c\":622,\"1f45d\":623,\"1f45e\":626,\"1f45f\":627,\"1f460\":630,\"1f461\":631,\"1f462\":633,\"1f463\":1483,\"1f464\":1481,\"1f465\":1482,\"1f466\":1200,\"1f467\":1201,\"1f468-200d-1f33e\":1267,\"1f468-200d-1f373\":1270,\"1f468-200d-1f393\":1258,\"1f468-200d-1f3a4\":1288,\"1f468-200d-1f3a8\":1291,\"1f468-200d-1f3eb\":1261,\"1f468-200d-1f3ed\":1276,\"1f468-200d-1f466-200d-1f466\":1471,\"1f468-200d-1f466\":1470,\"1f468-200d-1f467-200d-1f466\":1473,\"1f468-200d-1f467-200d-1f467\":1474,\"1f468-200d-1f467\":1472,\"1f468-200d-1f468-200d-1f466\":1460,\"1f468-200d-1f468-200d-1f466-200d-1f466\":1463,\"1f468-200d-1f468-200d-1f467\":1461,\"1f468-200d-1f468-200d-1f467-200d-1f466\":1462,\"1f468-200d-1f468-200d-1f467-200d-1f467\":1464,\"1f468-200d-1f469-200d-1f466\":1455,\"1f468-200d-1f469-200d-1f466-200d-1f466\":1458,\"1f468-200d-1f469-200d-1f467\":1456,\"1f468-200d-1f469-200d-1f467-200d-1f466\":1457,\"1f468-200d-1f469-200d-1f467-200d-1f467\":1459,\"1f468-200d-1f4bb\":1285,\"1f468-200d-1f4bc\":1279,\"1f468-200d-1f527\":1273,\"1f468-200d-1f52c\":1282,\"1f468-200d-1f680\":1297,\"1f468-200d-1f692\":1300,\"1f468-200d-1f9af\":1371,\"1f468-200d-1f9b0\":1206,\"1f468-200d-1f9b1\":1207,\"1f468-200d-1f9b2\":1209,\"1f468-200d-1f9b3\":1208,\"1f468-200d-1f9bc\":1374,\"1f468-200d-1f9bd\":1377,\"1f468-200d-2695-fe0f\":1255,\"1f468-200d-2696-fe0f\":1264,\"1f468-200d-2708-fe0f\":1294,\"1f468-200d-2764-fe0f-200d-1f468\":1452,\"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468\":1448,\"1f468\":1204,\"1f469-200d-1f33e\":1268,\"1f469-200d-1f373\":1271,\"1f469-200d-1f393\":1259,\"1f469-200d-1f3a4\":1289,\"1f469-200d-1f3a8\":1292,\"1f469-200d-1f3eb\":1262,\"1f469-200d-1f3ed\":1277,\"1f469-200d-1f466-200d-1f466\":1476,\"1f469-200d-1f466\":1475,\"1f469-200d-1f467-200d-1f466\":1478,\"1f469-200d-1f467-200d-1f467\":1479,\"1f469-200d-1f467\":1477,\"1f469-200d-1f469-200d-1f466\":1465,\"1f469-200d-1f469-200d-1f466-200d-1f466\":1468,\"1f469-200d-1f469-200d-1f467\":1466,\"1f469-200d-1f469-200d-1f467-200d-1f466\":1467,\"1f469-200d-1f469-200d-1f467-200d-1f467\":1469,\"1f469-200d-1f4bb\":1286,\"1f469-200d-1f4bc\":1280,\"1f469-200d-1f527\":1274,\"1f469-200d-1f52c\":1283,\"1f469-200d-1f680\":1298,\"1f469-200d-1f692\":1301,\"1f469-200d-1f9af\":1372,\"1f469-200d-1f9b0\":1211,\"1f469-200d-1f9b1\":1213,\"1f469-200d-1f9b2\":1217,\"1f469-200d-1f9b3\":1215,\"1f469-200d-1f9bc\":1375,\"1f469-200d-1f9bd\":1378,\"1f469-200d-2695-fe0f\":1256,\"1f469-200d-2696-fe0f\":1265,\"1f469-200d-2708-fe0f\":1295,\"1f469-200d-2764-fe0f-200d-1f468\":1451,\"1f469-200d-2764-fe0f-200d-1f469\":1453,\"1f469-200d-2764-fe0f-200d-1f48b-200d-1f468\":1447,\"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469\":1449,\"1f469\":1210,\"1f46a\":1454,\"1f46b\":1444,\"1f46c\":1445,\"1f46d\":1443,\"1f46e-200d-2640-fe0f\":1304,\"1f46e-200d-2642-fe0f\":1303,\"1f46e\":1302,\"1f46f-200d-2640-fe0f\":1387,\"1f46f-200d-2642-fe0f\":1386,\"1f46f\":1385,\"1f470\":1322,\"1f471-200d-2640-fe0f\":1219,\"1f471-200d-2642-fe0f\":1220,\"1f471\":1203,\"1f472\":1319,\"1f473-200d-2640-fe0f\":1318,\"1f473-200d-2642-fe0f\":1317,\"1f473\":1316,\"1f474\":1222,\"1f475\":1223,\"1f476\":1198,\"1f477-200d-2640-fe0f\":1313,\"1f477-200d-2642-fe0f\":1312,\"1f477\":1311,\"1f478\":1315,\"1f479\":197,\"1f47a\":198,\"1f47b\":199,\"1f47c\":1325,\"1f47d\":1100,\"1f47e\":1101,\"1f47f\":192,\"1f480\":193,\"1f481-200d-2640-fe0f\":1238,\"1f481-200d-2642-fe0f\":1237,\"1f481\":1236,\"1f482-200d-2640-fe0f\":1310,\"1f482-200d-2642-fe0f\":1309,\"1f482\":1308,\"1f483\":1382,\"1f484\":641,\"1f485\":1181,\"1f486-200d-2640-fe0f\":1357,\"1f486-200d-2642-fe0f\":1356,\"1f486\":1355,\"1f487-200d-2640-fe0f\":1360,\"1f487-200d-2642-fe0f\":1359,\"1f487\":1358,\"1f488\":461,\"1f489\":6208,\"1f48a\":6210,\"1f48b\":1115,\"1f48c\":1116,\"1f48d\":642,\"1f48e\":643,\"1f48f\":1446,\"1f490\":2106,\"1f491\":1450,\"1f492\":438,\"1f493\":1121,\"1f494\":1126,\"1f495\":1123,\"1f496\":1119,\"1f497\":1120,\"1f498\":1117,\"1f499\":1131,\"1f49a\":1130,\"1f49b\":1129,\"1f49c\":1132,\"1f49d\":1118,\"1f49e\":1122,\"1f49f\":1124,\"1f4a0\":6447,\"1f4a1\":6100,\"1f4a2\":1137,\"1f4a3\":1143,\"1f4a4\":1149,\"1f4a5\":1138,\"1f4a6\":1140,\"1f4a7\":4209,\"1f4a8\":1141,\"1f4a9\":195,\"1f4aa\":1183,\"1f4ab\":1139,\"1f4ac\":1144,\"1f4ad\":1148,\"1f4ae\":2108,\"1f4af\":1136,\"1f4b0\":6121,\"1f4b1\":6130,\"1f4b2\":6131,\"1f4b3\":6127,\"1f4b4\":6122,\"1f4b5\":6123,\"1f4b6\":6124,\"1f4b7\":6125,\"1f4b8\":6126,\"1f4b9\":6129,\"1f4ba\":4123,\"1f4bb\":677,\"1f4bc\":6152,\"1f4bd\":683,\"1f4be\":684,\"1f4bf\":685,\"1f4c0\":686,\"1f4c1\":6153,\"1f4c2\":6154,\"1f4c3\":6113,\"1f4c4\":6115,\"1f4c5\":6156,\"1f4c6\":6157,\"1f4c7\":6160,\"1f4c8\":6161,\"1f4c9\":6162,\"1f4ca\":6163,\"1f4cb\":6164,\"1f4cc\":6165,\"1f4cd\":6166,\"1f4ce\":6167,\"1f4cf\":6169,\"1f4d0\":6170,\"1f4d1\":6118,\"1f4d2\":6112,\"1f4d3\":6111,\"1f4d4\":6104,\"1f4d5\":6105,\"1f4d6\":6106,\"1f4d7\":6107,\"1f4d8\":6108,\"1f4d9\":6109,\"1f4da\":6110,\"1f4db\":6337,\"1f4dc\":6114,\"1f4dd\":6151,\"1f4de\":672,\"1f4df\":673,\"1f4e0\":674,\"1f4e1\":6207,\"1f4e2\":648,\"1f4e3\":649,\"1f4e4\":6136,\"1f4e5\":6137,\"1f4e6\":6138,\"1f4e7\":6133,\"1f4e8\":6134,\"1f4e9\":6135,\"1f4ea\":6140,\"1f4eb\":6139,\"1f4ec\":6141,\"1f4ed\":6142,\"1f4ee\":6143,\"1f4ef\":650,\"1f4f0\":6116,\"1f4f1\":669,\"1f4f2\":670,\"1f4f3\":6328,\"1f4f4\":6329,\"1f4f5\":6256,\"1f4f6\":6327,\"1f4f7\":693,\"1f4f8\":694,\"1f4f9\":695,\"1f4fa\":692,\"1f4fb\":661,\"1f4fc\":696,\"1f4fd\":690,\"1f4ff\":640,\"1f500\":6306,\"1f501\":6307,\"1f502\":6308,\"1f503\":6274,\"1f504\":6275,\"1f505\":6325,\"1f506\":6326,\"1f507\":644,\"1f508\":645,\"1f509\":646,\"1f50a\":647,\"1f50b\":675,\"1f50c\":676,\"1f50d\":697,\"1f50e\":698,\"1f50f\":6177,\"1f510\":6178,\"1f511\":6179,\"1f512\":6175,\"1f513\":6176,\"1f514\":651,\"1f515\":652,\"1f516\":6119,\"1f517\":6197,\"1f518\":6448,\"1f519\":6276,\"1f51a\":6277,\"1f51b\":6278,\"1f51c\":6279,\"1f51d\":6280,\"1f51e\":6257,\"1f51f\":6377,\"1f520\":6378,\"1f521\":6379,\"1f522\":6380,\"1f523\":6381,\"1f524\":6382,\"1f525\":4208,\"1f526\":6101,\"1f527\":6191,\"1f528\":6181,\"1f529\":6192,\"1f52a\":3120,\"1f52b\":6188,\"1f52c\":6205,\"1f52d\":6206,\"1f52e\":559,\"1f52f\":6292,\"1f530\":6338,\"1f531\":6336,\"1f532\":6450,\"1f533\":6449,\"1f534\":6417,\"1f535\":6421,\"1f536\":6441,\"1f537\":6442,\"1f538\":6443,\"1f539\":6444,\"1f53a\":6445,\"1f53b\":6446,\"1f53c\":6316,\"1f53d\":6318,\"1f549\":6283,\"1f54a\":268,\"1f54b\":446,\"1f54c\":442,\"1f54d\":444,\"1f54e\":6291,\"1f550\":4142,\"1f551\":4144,\"1f552\":4146,\"1f553\":4148,\"1f554\":4150,\"1f555\":4152,\"1f556\":4154,\"1f557\":4156,\"1f558\":4158,\"1f559\":4160,\"1f55a\":4162,\"1f55b\":4140,\"1f55c\":4143,\"1f55d\":4145,\"1f55e\":4147,\"1f55f\":4149,\"1f560\":4151,\"1f561\":4153,\"1f562\":4155,\"1f563\":4157,\"1f564\":4159,\"1f565\":4161,\"1f566\":4163,\"1f567\":4141,\"1f56f\":699,\"1f570\":4139,\"1f573\":1142,\"1f574\":1384,\"1f575-fe0f-200d-2640-fe0f\":1307,\"1f575-fe0f-200d-2642-fe0f\":1306,\"1f575\":1305,\"1f576\":62,\"1f577\":2101,\"1f578\":2102,\"1f579\":562,\"1f57a\":1383,\"1f587\":6168,\"1f58a\":6148,\"1f58b\":6147,\"1f58c\":6149,\"1f58d\":6150,\"1f590\":1152,\"1f595\":1165,\"1f596\":1154,\"1f5a4\":1134,\"1f5a5\":678,\"1f5a8\":679,\"1f5b1\":681,\"1f5b2\":682,\"1f5bc\":576,\"1f5c2\":6155,\"1f5c3\":6172,\"1f5c4\":6173,\"1f5d1\":6174,\"1f5d2\":6158,\"1f5d3\":6159,\"1f5dc\":6194,\"1f5dd\":6180,\"1f5de\":6117,\"1f5e1\":6186,\"1f5e3\":1480,\"1f5e8\":1146,\"1f5ef\":1147,\"1f5f3\":6144,\"1f5fa\":45,\"1f5fb\":411,\"1f5fc\":439,\"1f5fd\":440,\"1f5fe\":46,\"1f5ff\":6233,\"1f600\":11,\"1f601\":14,\"1f602\":18,\"1f603\":12,\"1f604\":13,\"1f605\":16,\"1f606\":15,\"1f607\":113,\"1f608\":191,\"1f609\":111,\"1f60a\":112,\"1f60b\":122,\"1f60c\":142,\"1f60d\":115,\"1f60e\":160,\"1f60f\":137,\"1f610\":134,\"1f611\":135,\"1f612\":138,\"1f613\":183,\"1f614\":143,\"1f615\":163,\"1f616\":180,\"1f617\":118,\"1f618\":117,\"1f619\":121,\"1f61a\":120,\"1f61b\":123,\"1f61c\":124,\"1f61d\":126,\"1f61e\":182,\"1f61f\":164,\"1f620\":189,\"1f621\":188,\"1f622\":177,\"1f623\":181,\"1f624\":187,\"1f625\":176,\"1f626\":172,\"1f627\":173,\"1f628\":174,\"1f629\":184,\"1f62a\":144,\"1f62b\":185,\"1f62c\":140,\"1f62d\":178,\"1f62e\":167,\"1f62f\":168,\"1f630\":175,\"1f631\":179,\"1f632\":169,\"1f633\":170,\"1f634\":146,\"1f635\":156,\"1f636\":136,\"1f637\":147,\"1f638\":1104,\"1f639\":1105,\"1f63a\":1103,\"1f63b\":1106,\"1f63c\":1107,\"1f63d\":1108,\"1f63e\":1111,\"1f63f\":1110,\"1f640\":1109,\"1f641\":165,\"1f642\":19,\"1f643\":110,\"1f644\":139,\"1f645-200d-2640-fe0f\":1232,\"1f645-200d-2642-fe0f\":1231,\"1f645\":1230,\"1f646-200d-2640-fe0f\":1235,\"1f646-200d-2642-fe0f\":1234,\"1f646\":1233,\"1f647-200d-2640-fe0f\":1247,\"1f647-200d-2642-fe0f\":1246,\"1f647\":1245,\"1f648\":1112,\"1f649\":1113,\"1f64a\":1114,\"1f64b-200d-2640-fe0f\":1241,\"1f64b-200d-2642-fe0f\":1240,\"1f64b\":1239,\"1f64c\":1175,\"1f64d-200d-2640-fe0f\":1226,\"1f64d-200d-2642-fe0f\":1225,\"1f64d\":1224,\"1f64e-200d-2640-fe0f\":1229,\"1f64e-200d-2642-fe0f\":1228,\"1f64e\":1227,\"1f64f\":1179,\"1f680\":4129,\"1f681\":4124,\"1f682\":463,\"1f683\":464,\"1f684\":465,\"1f685\":466,\"1f686\":467,\"1f687\":468,\"1f688\":469,\"1f689\":470,\"1f68a\":471,\"1f68b\":474,\"1f68c\":475,\"1f68d\":476,\"1f68e\":477,\"1f68f\":4100,\"1f690\":478,\"1f691\":479,\"1f692\":480,\"1f693\":481,\"1f694\":482,\"1f695\":483,\"1f696\":484,\"1f697\":485,\"1f698\":486,\"1f699\":487,\"1f69a\":488,\"1f69b\":489,\"1f69c\":490,\"1f69d\":472,\"1f69e\":473,\"1f69f\":4125,\"1f6a0\":4126,\"1f6a1\":4127,\"1f6a2\":4117,\"1f6a3-200d-2640-fe0f\":1406,\"1f6a3-200d-2642-fe0f\":1405,\"1f6a3\":1404,\"1f6a4\":4113,\"1f6a5\":4106,\"1f6a6\":4107,\"1f6a7\":4109,\"1f6a8\":4105,\"1f6a9\":72,\"1f6aa\":6213,\"1f6ab\":6250,\"1f6ac\":6230,\"1f6ad\":6252,\"1f6ae\":6235,\"1f6af\":6253,\"1f6b0\":6236,\"1f6b1\":6254,\"1f6b2\":497,\"1f6b3\":6251,\"1f6b4-200d-2640-fe0f\":1418,\"1f6b4-200d-2642-fe0f\":1417,\"1f6b4\":1416,\"1f6b5-200d-2640-fe0f\":1421,\"1f6b5-200d-2642-fe0f\":1420,\"1f6b5\":1419,\"1f6b6-200d-2640-fe0f\":1363,\"1f6b6-200d-2642-fe0f\":1362,\"1f6b6\":1361,\"1f6b7\":6255,\"1f6b8\":6248,\"1f6b9\":6238,\"1f6ba\":6239,\"1f6bb\":6240,\"1f6bc\":6241,\"1f6bd\":6217,\"1f6be\":6242,\"1f6bf\":6218,\"1f6c0\":1440,\"1f6c1\":6219,\"1f6c2\":6243,\"1f6c3\":6244,\"1f6c4\":6245,\"1f6c5\":6246,\"1f6cb\":6215,\"1f6cc\":1441,\"1f6cd\":624,\"1f6ce\":4131,\"1f6cf\":6214,\"1f6d0\":6281,\"1f6d1\":4108,\"1f6d2\":6229,\"1f6d5\":443,\"1f6e0\":6185,\"1f6e1\":6190,\"1f6e2\":4103,\"1f6e3\":4101,\"1f6e4\":4102,\"1f6e5\":4116,\"1f6e9\":4119,\"1f6eb\":4120,\"1f6ec\":4121,\"1f6f0\":4128,\"1f6f3\":4114,\"1f6f4\":498,\"1f6f5\":493,\"1f6f6\":4112,\"1f6f7\":553,\"1f6f8\":4130,\"1f6f9\":499,\"1f6fa\":496,\"1f7e0\":6418,\"1f7e1\":6419,\"1f7e2\":6420,\"1f7e3\":6422,\"1f7e4\":6423,\"1f7e5\":6426,\"1f7e6\":6430,\"1f7e7\":6427,\"1f7e8\":6428,\"1f7e9\":6429,\"1f7ea\":6431,\"1f7eb\":6432,\"1f90d\":1135,\"1f90e\":1133,\"1f90f\":1156,\"1f910\":132,\"1f911\":127,\"1f912\":148,\"1f913\":161,\"1f914\":131,\"1f915\":149,\"1f916\":1102,\"1f917\":128,\"1f918\":1160,\"1f919\":1161,\"1f91a\":1151,\"1f91b\":1172,\"1f91c\":1173,\"1f91d\":1178,\"1f91e\":1158,\"1f91f\":1159,\"1f920\":158,\"1f921\":196,\"1f922\":150,\"1f923\":17,\"1f924\":145,\"1f925\":141,\"1f926-200d-2640-fe0f\":1250,\"1f926-200d-2642-fe0f\":1249,\"1f926\":1248,\"1f927\":152,\"1f928\":133,\"1f929\":116,\"1f92a\":125,\"1f92b\":130,\"1f92c\":190,\"1f92d\":129,\"1f92e\":151,\"1f92f\":157,\"1f930\":1323,\"1f931\":1324,\"1f932\":1177,\"1f933\":1182,\"1f934\":1314,\"1f935\":1321,\"1f936\":1327,\"1f937-200d-2640-fe0f\":1253,\"1f937-200d-2642-fe0f\":1252,\"1f937\":1251,\"1f938-200d-2640-fe0f\":1424,\"1f938-200d-2642-fe0f\":1423,\"1f938\":1422,\"1f939-200d-2640-fe0f\":1436,\"1f939-200d-2642-fe0f\":1435,\"1f939\":1434,\"1f93a\":1394,\"1f93c-200d-2640-fe0f\":1427,\"1f93c-200d-2642-fe0f\":1426,\"1f93c\":1425,\"1f93d-200d-2640-fe0f\":1430,\"1f93d-200d-2642-fe0f\":1429,\"1f93d\":1428,\"1f93e-200d-2640-fe0f\":1433,\"1f93e-200d-2642-fe0f\":1432,\"1f93e\":1431,\"1f93f\":550,\"1f940\":2111,\"1f941\":668,\"1f942\":3110,\"1f943\":3111,\"1f944\":3119,\"1f945\":546,\"1f947\":525,\"1f948\":526,\"1f949\":527,\"1f94a\":544,\"1f94b\":545,\"1f94c\":554,\"1f94d\":541,\"1f94e\":530,\"1f94f\":536,\"1f950\":333,\"1f951\":318,\"1f952\":324,\"1f953\":343,\"1f954\":320,\"1f955\":321,\"1f956\":334,\"1f957\":358,\"1f958\":355,\"1f959\":351,\"1f95a\":353,\"1f95b\":3100,\"1f95c\":330,\"1f95d\":315,\"1f95e\":337,\"1f95f\":377,\"1f960\":378,\"1f961\":379,\"1f962\":3116,\"1f963\":357,\"1f964\":3112,\"1f965\":317,\"1f966\":326,\"1f967\":393,\"1f968\":335,\"1f969\":342,\"1f96a\":348,\"1f96b\":362,\"1f96c\":325,\"1f96d\":38,\"1f96e\":375,\"1f96f\":336,\"1f970\":114,\"1f971\":186,\"1f973\":159,\"1f974\":155,\"1f975\":153,\"1f976\":154,\"1f97a\":171,\"1f97b\":615,\"1f97c\":64,\"1f97d\":63,\"1f97e\":628,\"1f97f\":629,\"1f980\":380,\"1f981\":215,\"1f982\":2103,\"1f983\":260,\"1f984\":221,\"1f985\":269,\"1f986\":270,\"1f987\":250,\"1f988\":291,\"1f989\":272,\"1f98a\":211,\"1f98b\":295,\"1f98c\":223,\"1f98d\":23,\"1f98e\":279,\"1f98f\":240,\"1f990\":382,\"1f991\":383,\"1f992\":238,\"1f993\":222,\"1f994\":249,\"1f995\":283,\"1f996\":284,\"1f997\":2100,\"1f998\":257,\"1f999\":237,\"1f99a\":274,\"1f99b\":241,\"1f99c\":275,\"1f99d\":212,\"1f99e\":381,\"1f99f\":2104,\"1f9a0\":2105,\"1f9a1\":258,\"1f9a2\":271,\"1f9a5\":254,\"1f9a6\":255,\"1f9a7\":24,\"1f9a8\":256,\"1f9a9\":273,\"1f9aa\":384,\"1f9ae\":27,\"1f9af\":6196,\"1f9b4\":1193,\"1f9b5\":1186,\"1f9b6\":1187,\"1f9b7\":1192,\"1f9b8-200d-2640-fe0f\":1330,\"1f9b8-200d-2642-fe0f\":1329,\"1f9b8\":1328,\"1f9b9-200d-2640-fe0f\":1333,\"1f9b9-200d-2642-fe0f\":1332,\"1f9b9\":1331,\"1f9ba\":65,\"1f9bb\":1189,\"1f9bc\":495,\"1f9bd\":494,\"1f9be\":1184,\"1f9bf\":1185,\"1f9c0\":339,\"1f9c1\":392,\"1f9c2\":361,\"1f9c3\":3113,\"1f9c4\":327,\"1f9c5\":328,\"1f9c6\":352,\"1f9c7\":338,\"1f9c8\":360,\"1f9c9\":3114,\"1f9ca\":3115,\"1f9cd-200d-2640-fe0f\":1366,\"1f9cd-200d-2642-fe0f\":1365,\"1f9cd\":1364,\"1f9ce-200d-2640-fe0f\":1369,\"1f9ce-200d-2642-fe0f\":1368,\"1f9ce\":1367,\"1f9cf-200d-2640-fe0f\":1244,\"1f9cf-200d-2642-fe0f\":1243,\"1f9cf\":1242,\"1f9d0\":162,\"1f9d1-200d-1f33e\":1266,\"1f9d1-200d-1f373\":1269,\"1f9d1-200d-1f393\":1257,\"1f9d1-200d-1f3a4\":1287,\"1f9d1-200d-1f3a8\":1290,\"1f9d1-200d-1f3eb\":1260,\"1f9d1-200d-1f3ed\":1275,\"1f9d1-200d-1f4bb\":1284,\"1f9d1-200d-1f4bc\":1278,\"1f9d1-200d-1f527\":1272,\"1f9d1-200d-1f52c\":1281,\"1f9d1-200d-1f680\":1296,\"1f9d1-200d-1f692\":1299,\"1f9d1-200d-1f91d-200d-1f9d1\":1442,\"1f9d1-200d-1f9af\":1370,\"1f9d1-200d-1f9b0\":1212,\"1f9d1-200d-1f9b1\":1214,\"1f9d1-200d-1f9b2\":1218,\"1f9d1-200d-1f9b3\":1216,\"1f9d1-200d-1f9bc\":1373,\"1f9d1-200d-1f9bd\":1376,\"1f9d1-200d-2695-fe0f\":1254,\"1f9d1-200d-2696-fe0f\":1263,\"1f9d1-200d-2708-fe0f\":1293,\"1f9d1\":1202,\"1f9d2\":1199,\"1f9d3\":1221,\"1f9d4\":1205,\"1f9d5\":1320,\"1f9d6-200d-2640-fe0f\":1390,\"1f9d6-200d-2642-fe0f\":1389,\"1f9d6\":1388,\"1f9d7-200d-2640-fe0f\":1393,\"1f9d7-200d-2642-fe0f\":1392,\"1f9d7\":1391,\"1f9d8-200d-2640-fe0f\":1439,\"1f9d8-200d-2642-fe0f\":1438,\"1f9d8\":1437,\"1f9d9-200d-2640-fe0f\":1336,\"1f9d9-200d-2642-fe0f\":1335,\"1f9d9\":1334,\"1f9da-200d-2640-fe0f\":1339,\"1f9da-200d-2642-fe0f\":1338,\"1f9da\":1337,\"1f9db-200d-2640-fe0f\":1342,\"1f9db-200d-2642-fe0f\":1341,\"1f9db\":1340,\"1f9dc-200d-2640-fe0f\":1345,\"1f9dc-200d-2642-fe0f\":1344,\"1f9dc\":1343,\"1f9dd-200d-2640-fe0f\":1348,\"1f9dd-200d-2642-fe0f\":1347,\"1f9dd\":1346,\"1f9de-200d-2640-fe0f\":1351,\"1f9de-200d-2642-fe0f\":1350,\"1f9de\":1349,\"1f9df-200d-2640-fe0f\":1354,\"1f9df-200d-2642-fe0f\":1353,\"1f9df\":1352,\"1f9e0\":1191,\"1f9e1\":1128,\"1f9e2\":638,\"1f9e3\":69,\"1f9e4\":610,\"1f9e5\":611,\"1f9e6\":612,\"1f9e7\":516,\"1f9e8\":55,\"1f9e9\":565,\"1f9ea\":6202,\"1f9eb\":6203,\"1f9ec\":6204,\"1f9ed\":47,\"1f9ee\":687,\"1f9ef\":6228,\"1f9f0\":6199,\"1f9f1\":420,\"1f9f2\":6200,\"1f9f3\":4132,\"1f9f4\":6221,\"1f9f5\":578,\"1f9f6\":579,\"1f9f7\":6222,\"1f9f8\":566,\"1f9f9\":6223,\"1f9fa\":6224,\"1f9fb\":6225,\"1f9fc\":6226,\"1f9fd\":6227,\"1f9fe\":6128,\"1f9ff\":560,\"1fa70\":632,\"1fa71\":616,\"1fa72\":617,\"1fa73\":618,\"1fa78\":6209,\"1fa79\":6211,\"1fa7a\":6212,\"1fa80\":556,\"1fa81\":557,\"1fa82\":4122,\"1fa90\":4180,\"1fa91\":6216,\"1fa92\":6220,\"1fa93\":6182,\"1fa94\":6103,\"1fa95\":667,\"203c\":6355,\"21a9\":6270,\"21aa\":6271,\"231a\":4135,\"231b\":4133,\"23cf\":6323,\"23e9\":6310,\"23ea\":6314,\"23eb\":6317,\"23ec\":6319,\"23ed\":6311,\"23ee\":6315,\"23ef\":6312,\"23f0\":4136,\"23f1\":4137,\"23f2\":4138,\"23f3\":4134,\"23f8\":6320,\"23f9\":6321,\"23fa\":6322,\"24c2\":6391,\"25aa\":6439,\"25ab\":6440,\"25b6\":6309,\"25c0\":6313,\"25fb\":6436,\"25fc\":6435,\"25fd\":6438,\"25fe\":6437,\"260e\":671,\"261d\":1167,\"262a\":6289,\"262e\":6290,\"262f\":6286,\"263a\":119,\"264a\":6295,\"264b\":6296,\"264c\":6297,\"264d\":6298,\"264e\":6299,\"264f\":6300,\"265f\":571,\"267b\":6334,\"267e\":6333,\"267f\":6237,\"269b\":6282,\"269c\":6335,\"26a0\":6247,\"26a1\":4203,\"26aa\":6425,\"26ab\":6424,\"26b0\":6231,\"26b1\":6232,\"26bd\":528,\"26be\":529,\"26c4\":4206,\"26c5\":4186,\"26c8\":4187,\"26ce\":6305,\"26cf\":6183,\"26d1\":639,\"26d3\":6198,\"26d4\":6249,\"26e9\":445,\"26ea\":441,\"26f0\":49,\"26f1\":4202,\"26f2\":447,\"26f3\":547,\"26f4\":4115,\"26f5\":4111,\"26f7\":1396,\"26f8\":548,\"26f9-fe0f-200d-2640-fe0f\":1412,\"26f9-fe0f-200d-2642-fe0f\":1411,\"26f9\":1410,\"26fa\":448,\"26fd\":4104,\"270a\":1170,\"270b\":1153,\"270c\":1157,\"270d\":1180,\"270f\":6145,\"271d\":6287,\"274c\":6344,\"274e\":6345,\"27a1\":6262,\"27b0\":6349,\"27bf\":6350,\"2b05\":6266,\"2b06\":6260,\"2b07\":6264,\"2b1b\":6433,\"2b1c\":6434,\"2b50\":4181,\"2b55\":6339,\"303d\":6351,\"1f385-1f3fb\":0,\"1f385-1f3fc\":0,\"1f385-1f3fd\":0,\"1f385-1f3fe\":0,\"1f385-1f3ff\":0,\"1f3c2-1f3fb\":0,\"1f3c2-1f3fc\":0,\"1f3c2-1f3fd\":0,\"1f3c2-1f3fe\":0,\"1f3c2-1f3ff\":0,\"1f3c3-1f3fb-200d-2640-fe0f\":0,\"1f3c3-1f3fc-200d-2640-fe0f\":0,\"1f3c3-1f3fd-200d-2640-fe0f\":0,\"1f3c3-1f3fe-200d-2640-fe0f\":0,\"1f3c3-1f3ff-200d-2640-fe0f\":0,\"1f3c3-1f3fb-200d-2642-fe0f\":0,\"1f3c3-1f3fc-200d-2642-fe0f\":0,\"1f3c3-1f3fd-200d-2642-fe0f\":0,\"1f3c3-1f3fe-200d-2642-fe0f\":0,\"1f3c3-1f3ff-200d-2642-fe0f\":0,\"1f3c3-1f3fb\":0,\"1f3c3-1f3fc\":0,\"1f3c3-1f3fd\":0,\"1f3c3-1f3fe\":0,\"1f3c3-1f3ff\":0,\"1f3c4-1f3fb-200d-2640-fe0f\":0,\"1f3c4-1f3fc-200d-2640-fe0f\":0,\"1f3c4-1f3fd-200d-2640-fe0f\":0,\"1f3c4-1f3fe-200d-2640-fe0f\":0,\"1f3c4-1f3ff-200d-2640-fe0f\":0,\"1f3c4-1f3fb-200d-2642-fe0f\":0,\"1f3c4-1f3fc-200d-2642-fe0f\":0,\"1f3c4-1f3fd-200d-2642-fe0f\":0,\"1f3c4-1f3fe-200d-2642-fe0f\":0,\"1f3c4-1f3ff-200d-2642-fe0f\":0,\"1f3c4-1f3fb\":0,\"1f3c4-1f3fc\":0,\"1f3c4-1f3fd\":0,\"1f3c4-1f3fe\":0,\"1f3c4-1f3ff\":0,\"1f3c7-1f3fb\":0,\"1f3c7-1f3fc\":0,\"1f3c7-1f3fd\":0,\"1f3c7-1f3fe\":0,\"1f3c7-1f3ff\":0,\"1f3ca-1f3fb-200d-2640-fe0f\":0,\"1f3ca-1f3fc-200d-2640-fe0f\":0,\"1f3ca-1f3fd-200d-2640-fe0f\":0,\"1f3ca-1f3fe-200d-2640-fe0f\":0,\"1f3ca-1f3ff-200d-2640-fe0f\":0,\"1f3ca-1f3fb-200d-2642-fe0f\":0,\"1f3ca-1f3fc-200d-2642-fe0f\":0,\"1f3ca-1f3fd-200d-2642-fe0f\":0,\"1f3ca-1f3fe-200d-2642-fe0f\":0,\"1f3ca-1f3ff-200d-2642-fe0f\":0,\"1f3ca-1f3fb\":0,\"1f3ca-1f3fc\":0,\"1f3ca-1f3fd\":0,\"1f3ca-1f3fe\":0,\"1f3ca-1f3ff\":0,\"1f3cb-1f3fb-200d-2640-fe0f\":0,\"1f3cb-1f3fc-200d-2640-fe0f\":0,\"1f3cb-1f3fd-200d-2640-fe0f\":0,\"1f3cb-1f3fe-200d-2640-fe0f\":0,\"1f3cb-1f3ff-200d-2640-fe0f\":0,\"1f3cb-1f3fb-200d-2642-fe0f\":0,\"1f3cb-1f3fc-200d-2642-fe0f\":0,\"1f3cb-1f3fd-200d-2642-fe0f\":0,\"1f3cb-1f3fe-200d-2642-fe0f\":0,\"1f3cb-1f3ff-200d-2642-fe0f\":0,\"1f3cb-1f3fb\":0,\"1f3cb-1f3fc\":0,\"1f3cb-1f3fd\":0,\"1f3cb-1f3fe\":0,\"1f3cb-1f3ff\":0,\"1f3cc-1f3fb-200d-2640-fe0f\":0,\"1f3cc-1f3fc-200d-2640-fe0f\":0,\"1f3cc-1f3fd-200d-2640-fe0f\":0,\"1f3cc-1f3fe-200d-2640-fe0f\":0,\"1f3cc-1f3ff-200d-2640-fe0f\":0,\"1f3cc-1f3fb-200d-2642-fe0f\":0,\"1f3cc-1f3fc-200d-2642-fe0f\":0,\"1f3cc-1f3fd-200d-2642-fe0f\":0,\"1f3cc-1f3fe-200d-2642-fe0f\":0,\"1f3cc-1f3ff-200d-2642-fe0f\":0,\"1f3cc-1f3fb\":0,\"1f3cc-1f3fc\":0,\"1f3cc-1f3fd\":0,\"1f3cc-1f3fe\":0,\"1f3cc-1f3ff\":0,\"1f442-1f3fb\":0,\"1f442-1f3fc\":0,\"1f442-1f3fd\":0,\"1f442-1f3fe\":0,\"1f442-1f3ff\":0,\"1f443-1f3fb\":0,\"1f443-1f3fc\":0,\"1f443-1f3fd\":0,\"1f443-1f3fe\":0,\"1f443-1f3ff\":0,\"1f446-1f3fb\":0,\"1f446-1f3fc\":0,\"1f446-1f3fd\":0,\"1f446-1f3fe\":0,\"1f446-1f3ff\":0,\"1f447-1f3fb\":0,\"1f447-1f3fc\":0,\"1f447-1f3fd\":0,\"1f447-1f3fe\":0,\"1f447-1f3ff\":0,\"1f448-1f3fb\":0,\"1f448-1f3fc\":0,\"1f448-1f3fd\":0,\"1f448-1f3fe\":0,\"1f448-1f3ff\":0,\"1f449-1f3fb\":0,\"1f449-1f3fc\":0,\"1f449-1f3fd\":0,\"1f449-1f3fe\":0,\"1f449-1f3ff\":0,\"1f44a-1f3fb\":0,\"1f44a-1f3fc\":0,\"1f44a-1f3fd\":0,\"1f44a-1f3fe\":0,\"1f44a-1f3ff\":0,\"1f44b-1f3fb\":0,\"1f44b-1f3fc\":0,\"1f44b-1f3fd\":0,\"1f44b-1f3fe\":0,\"1f44b-1f3ff\":0,\"1f44c-1f3fb\":0,\"1f44c-1f3fc\":0,\"1f44c-1f3fd\":0,\"1f44c-1f3fe\":0,\"1f44c-1f3ff\":0,\"1f44d-1f3fb\":0,\"1f44d-1f3fc\":0,\"1f44d-1f3fd\":0,\"1f44d-1f3fe\":0,\"1f44d-1f3ff\":0,\"1f44e-1f3fb\":0,\"1f44e-1f3fc\":0,\"1f44e-1f3fd\":0,\"1f44e-1f3fe\":0,\"1f44e-1f3ff\":0,\"1f44f-1f3fb\":0,\"1f44f-1f3fc\":0,\"1f44f-1f3fd\":0,\"1f44f-1f3fe\":0,\"1f44f-1f3ff\":0,\"1f450-1f3fb\":0,\"1f450-1f3fc\":0,\"1f450-1f3fd\":0,\"1f450-1f3fe\":0,\"1f450-1f3ff\":0,\"1f466-1f3fb\":0,\"1f466-1f3fc\":0,\"1f466-1f3fd\":0,\"1f466-1f3fe\":0,\"1f466-1f3ff\":0,\"1f467-1f3fb\":0,\"1f467-1f3fc\":0,\"1f467-1f3fd\":0,\"1f467-1f3fe\":0,\"1f467-1f3ff\":0,\"1f468-1f3fb-200d-1f33e\":0,\"1f468-1f3fc-200d-1f33e\":0,\"1f468-1f3fd-200d-1f33e\":0,\"1f468-1f3fe-200d-1f33e\":0,\"1f468-1f3ff-200d-1f33e\":0,\"1f468-1f3fb-200d-1f373\":0,\"1f468-1f3fc-200d-1f373\":0,\"1f468-1f3fd-200d-1f373\":0,\"1f468-1f3fe-200d-1f373\":0,\"1f468-1f3ff-200d-1f373\":0,\"1f468-1f3fb-200d-1f393\":0,\"1f468-1f3fc-200d-1f393\":0,\"1f468-1f3fd-200d-1f393\":0,\"1f468-1f3fe-200d-1f393\":0,\"1f468-1f3ff-200d-1f393\":0,\"1f468-1f3fb-200d-1f3a4\":0,\"1f468-1f3fc-200d-1f3a4\":0,\"1f468-1f3fd-200d-1f3a4\":0,\"1f468-1f3fe-200d-1f3a4\":0,\"1f468-1f3ff-200d-1f3a4\":0,\"1f468-1f3fb-200d-1f3a8\":0,\"1f468-1f3fc-200d-1f3a8\":0,\"1f468-1f3fd-200d-1f3a8\":0,\"1f468-1f3fe-200d-1f3a8\":0,\"1f468-1f3ff-200d-1f3a8\":0,\"1f468-1f3fb-200d-1f3eb\":0,\"1f468-1f3fc-200d-1f3eb\":0,\"1f468-1f3fd-200d-1f3eb\":0,\"1f468-1f3fe-200d-1f3eb\":0,\"1f468-1f3ff-200d-1f3eb\":0,\"1f468-1f3fb-200d-1f3ed\":0,\"1f468-1f3fc-200d-1f3ed\":0,\"1f468-1f3fd-200d-1f3ed\":0,\"1f468-1f3fe-200d-1f3ed\":0,\"1f468-1f3ff-200d-1f3ed\":0,\"1f468-1f3fb-200d-1f4bb\":0,\"1f468-1f3fc-200d-1f4bb\":0,\"1f468-1f3fd-200d-1f4bb\":0,\"1f468-1f3fe-200d-1f4bb\":0,\"1f468-1f3ff-200d-1f4bb\":0,\"1f468-1f3fb-200d-1f4bc\":0,\"1f468-1f3fc-200d-1f4bc\":0,\"1f468-1f3fd-200d-1f4bc\":0,\"1f468-1f3fe-200d-1f4bc\":0,\"1f468-1f3ff-200d-1f4bc\":0,\"1f468-1f3fb-200d-1f527\":0,\"1f468-1f3fc-200d-1f527\":0,\"1f468-1f3fd-200d-1f527\":0,\"1f468-1f3fe-200d-1f527\":0,\"1f468-1f3ff-200d-1f527\":0,\"1f468-1f3fb-200d-1f52c\":0,\"1f468-1f3fc-200d-1f52c\":0,\"1f468-1f3fd-200d-1f52c\":0,\"1f468-1f3fe-200d-1f52c\":0,\"1f468-1f3ff-200d-1f52c\":0,\"1f468-1f3fb-200d-1f680\":0,\"1f468-1f3fc-200d-1f680\":0,\"1f468-1f3fd-200d-1f680\":0,\"1f468-1f3fe-200d-1f680\":0,\"1f468-1f3ff-200d-1f680\":0,\"1f468-1f3fb-200d-1f692\":0,\"1f468-1f3fc-200d-1f692\":0,\"1f468-1f3fd-200d-1f692\":0,\"1f468-1f3fe-200d-1f692\":0,\"1f468-1f3ff-200d-1f692\":0,\"1f468-1f3fb-200d-1f9af\":0,\"1f468-1f3fc-200d-1f9af\":0,\"1f468-1f3fd-200d-1f9af\":0,\"1f468-1f3fe-200d-1f9af\":0,\"1f468-1f3ff-200d-1f9af\":0,\"1f468-1f3fb-200d-1f9b0\":0,\"1f468-1f3fc-200d-1f9b0\":0,\"1f468-1f3fd-200d-1f9b0\":0,\"1f468-1f3fe-200d-1f9b0\":0,\"1f468-1f3ff-200d-1f9b0\":0,\"1f468-1f3fb-200d-1f9b1\":0,\"1f468-1f3fc-200d-1f9b1\":0,\"1f468-1f3fd-200d-1f9b1\":0,\"1f468-1f3fe-200d-1f9b1\":0,\"1f468-1f3ff-200d-1f9b1\":0,\"1f468-1f3fb-200d-1f9b2\":0,\"1f468-1f3fc-200d-1f9b2\":0,\"1f468-1f3fd-200d-1f9b2\":0,\"1f468-1f3fe-200d-1f9b2\":0,\"1f468-1f3ff-200d-1f9b2\":0,\"1f468-1f3fb-200d-1f9b3\":0,\"1f468-1f3fc-200d-1f9b3\":0,\"1f468-1f3fd-200d-1f9b3\":0,\"1f468-1f3fe-200d-1f9b3\":0,\"1f468-1f3ff-200d-1f9b3\":0,\"1f468-1f3fb-200d-1f9bc\":0,\"1f468-1f3fc-200d-1f9bc\":0,\"1f468-1f3fd-200d-1f9bc\":0,\"1f468-1f3fe-200d-1f9bc\":0,\"1f468-1f3ff-200d-1f9bc\":0,\"1f468-1f3fb-200d-1f9bd\":0,\"1f468-1f3fc-200d-1f9bd\":0,\"1f468-1f3fd-200d-1f9bd\":0,\"1f468-1f3fe-200d-1f9bd\":0,\"1f468-1f3ff-200d-1f9bd\":0,\"1f468-1f3fb-200d-2695-fe0f\":0,\"1f468-1f3fc-200d-2695-fe0f\":0,\"1f468-1f3fd-200d-2695-fe0f\":0,\"1f468-1f3fe-200d-2695-fe0f\":0,\"1f468-1f3ff-200d-2695-fe0f\":0,\"1f468-1f3fb-200d-2696-fe0f\":0,\"1f468-1f3fc-200d-2696-fe0f\":0,\"1f468-1f3fd-200d-2696-fe0f\":0,\"1f468-1f3fe-200d-2696-fe0f\":0,\"1f468-1f3ff-200d-2696-fe0f\":0,\"1f468-1f3fb-200d-2708-fe0f\":0,\"1f468-1f3fc-200d-2708-fe0f\":0,\"1f468-1f3fd-200d-2708-fe0f\":0,\"1f468-1f3fe-200d-2708-fe0f\":0,\"1f468-1f3ff-200d-2708-fe0f\":0,\"1f468-1f3fb\":0,\"1f468-1f3fc\":0,\"1f468-1f3fd\":0,\"1f468-1f3fe\":0,\"1f468-1f3ff\":0,\"1f469-1f3fb-200d-1f33e\":0,\"1f469-1f3fc-200d-1f33e\":0,\"1f469-1f3fd-200d-1f33e\":0,\"1f469-1f3fe-200d-1f33e\":0,\"1f469-1f3ff-200d-1f33e\":0,\"1f469-1f3fb-200d-1f373\":0,\"1f469-1f3fc-200d-1f373\":0,\"1f469-1f3fd-200d-1f373\":0,\"1f469-1f3fe-200d-1f373\":0,\"1f469-1f3ff-200d-1f373\":0,\"1f469-1f3fb-200d-1f393\":0,\"1f469-1f3fc-200d-1f393\":0,\"1f469-1f3fd-200d-1f393\":0,\"1f469-1f3fe-200d-1f393\":0,\"1f469-1f3ff-200d-1f393\":0,\"1f469-1f3fb-200d-1f3a4\":0,\"1f469-1f3fc-200d-1f3a4\":0,\"1f469-1f3fd-200d-1f3a4\":0,\"1f469-1f3fe-200d-1f3a4\":0,\"1f469-1f3ff-200d-1f3a4\":0,\"1f469-1f3fb-200d-1f3a8\":0,\"1f469-1f3fc-200d-1f3a8\":0,\"1f469-1f3fd-200d-1f3a8\":0,\"1f469-1f3fe-200d-1f3a8\":0,\"1f469-1f3ff-200d-1f3a8\":0,\"1f469-1f3fb-200d-1f3eb\":0,\"1f469-1f3fc-200d-1f3eb\":0,\"1f469-1f3fd-200d-1f3eb\":0,\"1f469-1f3fe-200d-1f3eb\":0,\"1f469-1f3ff-200d-1f3eb\":0,\"1f469-1f3fb-200d-1f3ed\":0,\"1f469-1f3fc-200d-1f3ed\":0,\"1f469-1f3fd-200d-1f3ed\":0,\"1f469-1f3fe-200d-1f3ed\":0,\"1f469-1f3ff-200d-1f3ed\":0,\"1f469-1f3fb-200d-1f4bb\":0,\"1f469-1f3fc-200d-1f4bb\":0,\"1f469-1f3fd-200d-1f4bb\":0,\"1f469-1f3fe-200d-1f4bb\":0,\"1f469-1f3ff-200d-1f4bb\":0,\"1f469-1f3fb-200d-1f4bc\":0,\"1f469-1f3fc-200d-1f4bc\":0,\"1f469-1f3fd-200d-1f4bc\":0,\"1f469-1f3fe-200d-1f4bc\":0,\"1f469-1f3ff-200d-1f4bc\":0,\"1f469-1f3fb-200d-1f527\":0,\"1f469-1f3fc-200d-1f527\":0,\"1f469-1f3fd-200d-1f527\":0,\"1f469-1f3fe-200d-1f527\":0,\"1f469-1f3ff-200d-1f527\":0,\"1f469-1f3fb-200d-1f52c\":0,\"1f469-1f3fc-200d-1f52c\":0,\"1f469-1f3fd-200d-1f52c\":0,\"1f469-1f3fe-200d-1f52c\":0,\"1f469-1f3ff-200d-1f52c\":0,\"1f469-1f3fb-200d-1f680\":0,\"1f469-1f3fc-200d-1f680\":0,\"1f469-1f3fd-200d-1f680\":0,\"1f469-1f3fe-200d-1f680\":0,\"1f469-1f3ff-200d-1f680\":0,\"1f469-1f3fb-200d-1f692\":0,\"1f469-1f3fc-200d-1f692\":0,\"1f469-1f3fd-200d-1f692\":0,\"1f469-1f3fe-200d-1f692\":0,\"1f469-1f3ff-200d-1f692\":0,\"1f469-1f3fb-200d-1f9af\":0,\"1f469-1f3fc-200d-1f9af\":0,\"1f469-1f3fd-200d-1f9af\":0,\"1f469-1f3fe-200d-1f9af\":0,\"1f469-1f3ff-200d-1f9af\":0,\"1f469-1f3fb-200d-1f9b0\":0,\"1f469-1f3fc-200d-1f9b0\":0,\"1f469-1f3fd-200d-1f9b0\":0,\"1f469-1f3fe-200d-1f9b0\":0,\"1f469-1f3ff-200d-1f9b0\":0,\"1f469-1f3fb-200d-1f9b1\":0,\"1f469-1f3fc-200d-1f9b1\":0,\"1f469-1f3fd-200d-1f9b1\":0,\"1f469-1f3fe-200d-1f9b1\":0,\"1f469-1f3ff-200d-1f9b1\":0,\"1f469-1f3fb-200d-1f9b2\":0,\"1f469-1f3fc-200d-1f9b2\":0,\"1f469-1f3fd-200d-1f9b2\":0,\"1f469-1f3fe-200d-1f9b2\":0,\"1f469-1f3ff-200d-1f9b2\":0,\"1f469-1f3fb-200d-1f9b3\":0,\"1f469-1f3fc-200d-1f9b3\":0,\"1f469-1f3fd-200d-1f9b3\":0,\"1f469-1f3fe-200d-1f9b3\":0,\"1f469-1f3ff-200d-1f9b3\":0,\"1f469-1f3fb-200d-1f9bc\":0,\"1f469-1f3fc-200d-1f9bc\":0,\"1f469-1f3fd-200d-1f9bc\":0,\"1f469-1f3fe-200d-1f9bc\":0,\"1f469-1f3ff-200d-1f9bc\":0,\"1f469-1f3fb-200d-1f9bd\":0,\"1f469-1f3fc-200d-1f9bd\":0,\"1f469-1f3fd-200d-1f9bd\":0,\"1f469-1f3fe-200d-1f9bd\":0,\"1f469-1f3ff-200d-1f9bd\":0,\"1f469-1f3fb-200d-2695-fe0f\":0,\"1f469-1f3fc-200d-2695-fe0f\":0,\"1f469-1f3fd-200d-2695-fe0f\":0,\"1f469-1f3fe-200d-2695-fe0f\":0,\"1f469-1f3ff-200d-2695-fe0f\":0,\"1f469-1f3fb-200d-2696-fe0f\":0,\"1f469-1f3fc-200d-2696-fe0f\":0,\"1f469-1f3fd-200d-2696-fe0f\":0,\"1f469-1f3fe-200d-2696-fe0f\":0,\"1f469-1f3ff-200d-2696-fe0f\":0,\"1f469-1f3fb-200d-2708-fe0f\":0,\"1f469-1f3fc-200d-2708-fe0f\":0,\"1f469-1f3fd-200d-2708-fe0f\":0,\"1f469-1f3fe-200d-2708-fe0f\":0,\"1f469-1f3ff-200d-2708-fe0f\":0,\"1f469-1f3fb\":0,\"1f469-1f3fc\":0,\"1f469-1f3fd\":0,\"1f469-1f3fe\":0,\"1f469-1f3ff\":0,\"1f46b-1f3fb\":0,\"1f46b-1f3fc\":0,\"1f46b-1f3fd\":0,\"1f46b-1f3fe\":0,\"1f46b-1f3ff\":0,\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc\":0,\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd\":0,\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe\":0,\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff\":0,\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb\":0,\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd\":0,\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe\":0,\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff\":0,\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb\":0,\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc\":0,\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe\":0,\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff\":0,\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb\":0,\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc\":0,\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd\":0,\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff\":0,\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb\":0,\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc\":0,\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd\":0,\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe\":0,\"1f46c-1f3fb\":0,\"1f46c-1f3fc\":0,\"1f46c-1f3fd\":0,\"1f46c-1f3fe\":0,\"1f46c-1f3ff\":0,\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc\":0,\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd\":0,\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe\":0,\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff\":0,\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb\":0,\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd\":0,\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe\":0,\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff\":0,\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb\":0,\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc\":0,\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe\":0,\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff\":0,\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb\":0,\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc\":0,\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd\":0,\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff\":0,\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb\":0,\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc\":0,\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd\":0,\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe\":0,\"1f46d-1f3fb\":0,\"1f46d-1f3fc\":0,\"1f46d-1f3fd\":0,\"1f46d-1f3fe\":0,\"1f46d-1f3ff\":0,\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc\":0,\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd\":0,\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe\":0,\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff\":0,\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb\":0,\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd\":0,\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe\":0,\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff\":0,\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb\":0,\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc\":0,\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe\":0,\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff\":0,\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb\":0,\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc\":0,\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd\":0,\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff\":0,\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb\":0,\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc\":0,\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd\":0,\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe\":0,\"1f46e-1f3fb-200d-2640-fe0f\":0,\"1f46e-1f3fc-200d-2640-fe0f\":0,\"1f46e-1f3fd-200d-2640-fe0f\":0,\"1f46e-1f3fe-200d-2640-fe0f\":0,\"1f46e-1f3ff-200d-2640-fe0f\":0,\"1f46e-1f3fb-200d-2642-fe0f\":0,\"1f46e-1f3fc-200d-2642-fe0f\":0,\"1f46e-1f3fd-200d-2642-fe0f\":0,\"1f46e-1f3fe-200d-2642-fe0f\":0,\"1f46e-1f3ff-200d-2642-fe0f\":0,\"1f46e-1f3fb\":0,\"1f46e-1f3fc\":0,\"1f46e-1f3fd\":0,\"1f46e-1f3fe\":0,\"1f46e-1f3ff\":0,\"1f470-1f3fb\":0,\"1f470-1f3fc\":0,\"1f470-1f3fd\":0,\"1f470-1f3fe\":0,\"1f470-1f3ff\":0,\"1f471-1f3fb-200d-2640-fe0f\":0,\"1f471-1f3fc-200d-2640-fe0f\":0,\"1f471-1f3fd-200d-2640-fe0f\":0,\"1f471-1f3fe-200d-2640-fe0f\":0,\"1f471-1f3ff-200d-2640-fe0f\":0,\"1f471-1f3fb-200d-2642-fe0f\":0,\"1f471-1f3fc-200d-2642-fe0f\":0,\"1f471-1f3fd-200d-2642-fe0f\":0,\"1f471-1f3fe-200d-2642-fe0f\":0,\"1f471-1f3ff-200d-2642-fe0f\":0,\"1f471-1f3fb\":0,\"1f471-1f3fc\":0,\"1f471-1f3fd\":0,\"1f471-1f3fe\":0,\"1f471-1f3ff\":0,\"1f472-1f3fb\":0,\"1f472-1f3fc\":0,\"1f472-1f3fd\":0,\"1f472-1f3fe\":0,\"1f472-1f3ff\":0,\"1f473-1f3fb-200d-2640-fe0f\":0,\"1f473-1f3fc-200d-2640-fe0f\":0,\"1f473-1f3fd-200d-2640-fe0f\":0,\"1f473-1f3fe-200d-2640-fe0f\":0,\"1f473-1f3ff-200d-2640-fe0f\":0,\"1f473-1f3fb-200d-2642-fe0f\":0,\"1f473-1f3fc-200d-2642-fe0f\":0,\"1f473-1f3fd-200d-2642-fe0f\":0,\"1f473-1f3fe-200d-2642-fe0f\":0,\"1f473-1f3ff-200d-2642-fe0f\":0,\"1f473-1f3fb\":0,\"1f473-1f3fc\":0,\"1f473-1f3fd\":0,\"1f473-1f3fe\":0,\"1f473-1f3ff\":0,\"1f474-1f3fb\":0,\"1f474-1f3fc\":0,\"1f474-1f3fd\":0,\"1f474-1f3fe\":0,\"1f474-1f3ff\":0,\"1f475-1f3fb\":0,\"1f475-1f3fc\":0,\"1f475-1f3fd\":0,\"1f475-1f3fe\":0,\"1f475-1f3ff\":0,\"1f476-1f3fb\":0,\"1f476-1f3fc\":0,\"1f476-1f3fd\":0,\"1f476-1f3fe\":0,\"1f476-1f3ff\":0,\"1f477-1f3fb-200d-2640-fe0f\":0,\"1f477-1f3fc-200d-2640-fe0f\":0,\"1f477-1f3fd-200d-2640-fe0f\":0,\"1f477-1f3fe-200d-2640-fe0f\":0,\"1f477-1f3ff-200d-2640-fe0f\":0,\"1f477-1f3fb-200d-2642-fe0f\":0,\"1f477-1f3fc-200d-2642-fe0f\":0,\"1f477-1f3fd-200d-2642-fe0f\":0,\"1f477-1f3fe-200d-2642-fe0f\":0,\"1f477-1f3ff-200d-2642-fe0f\":0,\"1f477-1f3fb\":0,\"1f477-1f3fc\":0,\"1f477-1f3fd\":0,\"1f477-1f3fe\":0,\"1f477-1f3ff\":0,\"1f478-1f3fb\":0,\"1f478-1f3fc\":0,\"1f478-1f3fd\":0,\"1f478-1f3fe\":0,\"1f478-1f3ff\":0,\"1f47c-1f3fb\":0,\"1f47c-1f3fc\":0,\"1f47c-1f3fd\":0,\"1f47c-1f3fe\":0,\"1f47c-1f3ff\":0,\"1f481-1f3fb-200d-2640-fe0f\":0,\"1f481-1f3fc-200d-2640-fe0f\":0,\"1f481-1f3fd-200d-2640-fe0f\":0,\"1f481-1f3fe-200d-2640-fe0f\":0,\"1f481-1f3ff-200d-2640-fe0f\":0,\"1f481-1f3fb-200d-2642-fe0f\":0,\"1f481-1f3fc-200d-2642-fe0f\":0,\"1f481-1f3fd-200d-2642-fe0f\":0,\"1f481-1f3fe-200d-2642-fe0f\":0,\"1f481-1f3ff-200d-2642-fe0f\":0,\"1f481-1f3fb\":0,\"1f481-1f3fc\":0,\"1f481-1f3fd\":0,\"1f481-1f3fe\":0,\"1f481-1f3ff\":0,\"1f482-1f3fb-200d-2640-fe0f\":0,\"1f482-1f3fc-200d-2640-fe0f\":0,\"1f482-1f3fd-200d-2640-fe0f\":0,\"1f482-1f3fe-200d-2640-fe0f\":0,\"1f482-1f3ff-200d-2640-fe0f\":0,\"1f482-1f3fb-200d-2642-fe0f\":0,\"1f482-1f3fc-200d-2642-fe0f\":0,\"1f482-1f3fd-200d-2642-fe0f\":0,\"1f482-1f3fe-200d-2642-fe0f\":0,\"1f482-1f3ff-200d-2642-fe0f\":0,\"1f482-1f3fb\":0,\"1f482-1f3fc\":0,\"1f482-1f3fd\":0,\"1f482-1f3fe\":0,\"1f482-1f3ff\":0,\"1f483-1f3fb\":0,\"1f483-1f3fc\":0,\"1f483-1f3fd\":0,\"1f483-1f3fe\":0,\"1f483-1f3ff\":0,\"1f485-1f3fb\":0,\"1f485-1f3fc\":0,\"1f485-1f3fd\":0,\"1f485-1f3fe\":0,\"1f485-1f3ff\":0,\"1f486-1f3fb-200d-2640-fe0f\":0,\"1f486-1f3fc-200d-2640-fe0f\":0,\"1f486-1f3fd-200d-2640-fe0f\":0,\"1f486-1f3fe-200d-2640-fe0f\":0,\"1f486-1f3ff-200d-2640-fe0f\":0,\"1f486-1f3fb-200d-2642-fe0f\":0,\"1f486-1f3fc-200d-2642-fe0f\":0,\"1f486-1f3fd-200d-2642-fe0f\":0,\"1f486-1f3fe-200d-2642-fe0f\":0,\"1f486-1f3ff-200d-2642-fe0f\":0,\"1f486-1f3fb\":0,\"1f486-1f3fc\":0,\"1f486-1f3fd\":0,\"1f486-1f3fe\":0,\"1f486-1f3ff\":0,\"1f487-1f3fb-200d-2640-fe0f\":0,\"1f487-1f3fc-200d-2640-fe0f\":0,\"1f487-1f3fd-200d-2640-fe0f\":0,\"1f487-1f3fe-200d-2640-fe0f\":0,\"1f487-1f3ff-200d-2640-fe0f\":0,\"1f487-1f3fb-200d-2642-fe0f\":0,\"1f487-1f3fc-200d-2642-fe0f\":0,\"1f487-1f3fd-200d-2642-fe0f\":0,\"1f487-1f3fe-200d-2642-fe0f\":0,\"1f487-1f3ff-200d-2642-fe0f\":0,\"1f487-1f3fb\":0,\"1f487-1f3fc\":0,\"1f487-1f3fd\":0,\"1f487-1f3fe\":0,\"1f487-1f3ff\":0,\"1f4aa-1f3fb\":0,\"1f4aa-1f3fc\":0,\"1f4aa-1f3fd\":0,\"1f4aa-1f3fe\":0,\"1f4aa-1f3ff\":0,\"1f574-1f3fb\":0,\"1f574-1f3fc\":0,\"1f574-1f3fd\":0,\"1f574-1f3fe\":0,\"1f574-1f3ff\":0,\"1f575-1f3fb-200d-2640-fe0f\":0,\"1f575-1f3fc-200d-2640-fe0f\":0,\"1f575-1f3fd-200d-2640-fe0f\":0,\"1f575-1f3fe-200d-2640-fe0f\":0,\"1f575-1f3ff-200d-2640-fe0f\":0,\"1f575-1f3fb-200d-2642-fe0f\":0,\"1f575-1f3fc-200d-2642-fe0f\":0,\"1f575-1f3fd-200d-2642-fe0f\":0,\"1f575-1f3fe-200d-2642-fe0f\":0,\"1f575-1f3ff-200d-2642-fe0f\":0,\"1f575-1f3fb\":0,\"1f575-1f3fc\":0,\"1f575-1f3fd\":0,\"1f575-1f3fe\":0,\"1f575-1f3ff\":0,\"1f57a-1f3fb\":0,\"1f57a-1f3fc\":0,\"1f57a-1f3fd\":0,\"1f57a-1f3fe\":0,\"1f57a-1f3ff\":0,\"1f590-1f3fb\":0,\"1f590-1f3fc\":0,\"1f590-1f3fd\":0,\"1f590-1f3fe\":0,\"1f590-1f3ff\":0,\"1f595-1f3fb\":0,\"1f595-1f3fc\":0,\"1f595-1f3fd\":0,\"1f595-1f3fe\":0,\"1f595-1f3ff\":0,\"1f596-1f3fb\":0,\"1f596-1f3fc\":0,\"1f596-1f3fd\":0,\"1f596-1f3fe\":0,\"1f596-1f3ff\":0,\"1f645-1f3fb-200d-2640-fe0f\":0,\"1f645-1f3fc-200d-2640-fe0f\":0,\"1f645-1f3fd-200d-2640-fe0f\":0,\"1f645-1f3fe-200d-2640-fe0f\":0,\"1f645-1f3ff-200d-2640-fe0f\":0,\"1f645-1f3fb-200d-2642-fe0f\":0,\"1f645-1f3fc-200d-2642-fe0f\":0,\"1f645-1f3fd-200d-2642-fe0f\":0,\"1f645-1f3fe-200d-2642-fe0f\":0,\"1f645-1f3ff-200d-2642-fe0f\":0,\"1f645-1f3fb\":0,\"1f645-1f3fc\":0,\"1f645-1f3fd\":0,\"1f645-1f3fe\":0,\"1f645-1f3ff\":0,\"1f646-1f3fb-200d-2640-fe0f\":0,\"1f646-1f3fc-200d-2640-fe0f\":0,\"1f646-1f3fd-200d-2640-fe0f\":0,\"1f646-1f3fe-200d-2640-fe0f\":0,\"1f646-1f3ff-200d-2640-fe0f\":0,\"1f646-1f3fb-200d-2642-fe0f\":0,\"1f646-1f3fc-200d-2642-fe0f\":0,\"1f646-1f3fd-200d-2642-fe0f\":0,\"1f646-1f3fe-200d-2642-fe0f\":0,\"1f646-1f3ff-200d-2642-fe0f\":0,\"1f646-1f3fb\":0,\"1f646-1f3fc\":0,\"1f646-1f3fd\":0,\"1f646-1f3fe\":0,\"1f646-1f3ff\":0,\"1f647-1f3fb-200d-2640-fe0f\":0,\"1f647-1f3fc-200d-2640-fe0f\":0,\"1f647-1f3fd-200d-2640-fe0f\":0,\"1f647-1f3fe-200d-2640-fe0f\":0,\"1f647-1f3ff-200d-2640-fe0f\":0,\"1f647-1f3fb-200d-2642-fe0f\":0,\"1f647-1f3fc-200d-2642-fe0f\":0,\"1f647-1f3fd-200d-2642-fe0f\":0,\"1f647-1f3fe-200d-2642-fe0f\":0,\"1f647-1f3ff-200d-2642-fe0f\":0,\"1f647-1f3fb\":0,\"1f647-1f3fc\":0,\"1f647-1f3fd\":0,\"1f647-1f3fe\":0,\"1f647-1f3ff\":0,\"1f64b-1f3fb-200d-2640-fe0f\":0,\"1f64b-1f3fc-200d-2640-fe0f\":0,\"1f64b-1f3fd-200d-2640-fe0f\":0,\"1f64b-1f3fe-200d-2640-fe0f\":0,\"1f64b-1f3ff-200d-2640-fe0f\":0,\"1f64b-1f3fb-200d-2642-fe0f\":0,\"1f64b-1f3fc-200d-2642-fe0f\":0,\"1f64b-1f3fd-200d-2642-fe0f\":0,\"1f64b-1f3fe-200d-2642-fe0f\":0,\"1f64b-1f3ff-200d-2642-fe0f\":0,\"1f64b-1f3fb\":0,\"1f64b-1f3fc\":0,\"1f64b-1f3fd\":0,\"1f64b-1f3fe\":0,\"1f64b-1f3ff\":0,\"1f64c-1f3fb\":0,\"1f64c-1f3fc\":0,\"1f64c-1f3fd\":0,\"1f64c-1f3fe\":0,\"1f64c-1f3ff\":0,\"1f64d-1f3fb-200d-2640-fe0f\":0,\"1f64d-1f3fc-200d-2640-fe0f\":0,\"1f64d-1f3fd-200d-2640-fe0f\":0,\"1f64d-1f3fe-200d-2640-fe0f\":0,\"1f64d-1f3ff-200d-2640-fe0f\":0,\"1f64d-1f3fb-200d-2642-fe0f\":0,\"1f64d-1f3fc-200d-2642-fe0f\":0,\"1f64d-1f3fd-200d-2642-fe0f\":0,\"1f64d-1f3fe-200d-2642-fe0f\":0,\"1f64d-1f3ff-200d-2642-fe0f\":0,\"1f64d-1f3fb\":0,\"1f64d-1f3fc\":0,\"1f64d-1f3fd\":0,\"1f64d-1f3fe\":0,\"1f64d-1f3ff\":0,\"1f64e-1f3fb-200d-2640-fe0f\":0,\"1f64e-1f3fc-200d-2640-fe0f\":0,\"1f64e-1f3fd-200d-2640-fe0f\":0,\"1f64e-1f3fe-200d-2640-fe0f\":0,\"1f64e-1f3ff-200d-2640-fe0f\":0,\"1f64e-1f3fb-200d-2642-fe0f\":0,\"1f64e-1f3fc-200d-2642-fe0f\":0,\"1f64e-1f3fd-200d-2642-fe0f\":0,\"1f64e-1f3fe-200d-2642-fe0f\":0,\"1f64e-1f3ff-200d-2642-fe0f\":0,\"1f64e-1f3fb\":0,\"1f64e-1f3fc\":0,\"1f64e-1f3fd\":0,\"1f64e-1f3fe\":0,\"1f64e-1f3ff\":0,\"1f64f-1f3fb\":0,\"1f64f-1f3fc\":0,\"1f64f-1f3fd\":0,\"1f64f-1f3fe\":0,\"1f64f-1f3ff\":0,\"1f6a3-1f3fb-200d-2640-fe0f\":0,\"1f6a3-1f3fc-200d-2640-fe0f\":0,\"1f6a3-1f3fd-200d-2640-fe0f\":0,\"1f6a3-1f3fe-200d-2640-fe0f\":0,\"1f6a3-1f3ff-200d-2640-fe0f\":0,\"1f6a3-1f3fb-200d-2642-fe0f\":0,\"1f6a3-1f3fc-200d-2642-fe0f\":0,\"1f6a3-1f3fd-200d-2642-fe0f\":0,\"1f6a3-1f3fe-200d-2642-fe0f\":0,\"1f6a3-1f3ff-200d-2642-fe0f\":0,\"1f6a3-1f3fb\":0,\"1f6a3-1f3fc\":0,\"1f6a3-1f3fd\":0,\"1f6a3-1f3fe\":0,\"1f6a3-1f3ff\":0,\"1f6b4-1f3fb-200d-2640-fe0f\":0,\"1f6b4-1f3fc-200d-2640-fe0f\":0,\"1f6b4-1f3fd-200d-2640-fe0f\":0,\"1f6b4-1f3fe-200d-2640-fe0f\":0,\"1f6b4-1f3ff-200d-2640-fe0f\":0,\"1f6b4-1f3fb-200d-2642-fe0f\":0,\"1f6b4-1f3fc-200d-2642-fe0f\":0,\"1f6b4-1f3fd-200d-2642-fe0f\":0,\"1f6b4-1f3fe-200d-2642-fe0f\":0,\"1f6b4-1f3ff-200d-2642-fe0f\":0,\"1f6b4-1f3fb\":0,\"1f6b4-1f3fc\":0,\"1f6b4-1f3fd\":0,\"1f6b4-1f3fe\":0,\"1f6b4-1f3ff\":0,\"1f6b5-1f3fb-200d-2640-fe0f\":0,\"1f6b5-1f3fc-200d-2640-fe0f\":0,\"1f6b5-1f3fd-200d-2640-fe0f\":0,\"1f6b5-1f3fe-200d-2640-fe0f\":0,\"1f6b5-1f3ff-200d-2640-fe0f\":0,\"1f6b5-1f3fb-200d-2642-fe0f\":0,\"1f6b5-1f3fc-200d-2642-fe0f\":0,\"1f6b5-1f3fd-200d-2642-fe0f\":0,\"1f6b5-1f3fe-200d-2642-fe0f\":0,\"1f6b5-1f3ff-200d-2642-fe0f\":0,\"1f6b5-1f3fb\":0,\"1f6b5-1f3fc\":0,\"1f6b5-1f3fd\":0,\"1f6b5-1f3fe\":0,\"1f6b5-1f3ff\":0,\"1f6b6-1f3fb-200d-2640-fe0f\":0,\"1f6b6-1f3fc-200d-2640-fe0f\":0,\"1f6b6-1f3fd-200d-2640-fe0f\":0,\"1f6b6-1f3fe-200d-2640-fe0f\":0,\"1f6b6-1f3ff-200d-2640-fe0f\":0,\"1f6b6-1f3fb-200d-2642-fe0f\":0,\"1f6b6-1f3fc-200d-2642-fe0f\":0,\"1f6b6-1f3fd-200d-2642-fe0f\":0,\"1f6b6-1f3fe-200d-2642-fe0f\":0,\"1f6b6-1f3ff-200d-2642-fe0f\":0,\"1f6b6-1f3fb\":0,\"1f6b6-1f3fc\":0,\"1f6b6-1f3fd\":0,\"1f6b6-1f3fe\":0,\"1f6b6-1f3ff\":0,\"1f6c0-1f3fb\":0,\"1f6c0-1f3fc\":0,\"1f6c0-1f3fd\":0,\"1f6c0-1f3fe\":0,\"1f6c0-1f3ff\":0,\"1f6cc-1f3fb\":0,\"1f6cc-1f3fc\":0,\"1f6cc-1f3fd\":0,\"1f6cc-1f3fe\":0,\"1f6cc-1f3ff\":0,\"1f90f-1f3fb\":0,\"1f90f-1f3fc\":0,\"1f90f-1f3fd\":0,\"1f90f-1f3fe\":0,\"1f90f-1f3ff\":0,\"1f918-1f3fb\":0,\"1f918-1f3fc\":0,\"1f918-1f3fd\":0,\"1f918-1f3fe\":0,\"1f918-1f3ff\":0,\"1f919-1f3fb\":0,\"1f919-1f3fc\":0,\"1f919-1f3fd\":0,\"1f919-1f3fe\":0,\"1f919-1f3ff\":0,\"1f91a-1f3fb\":0,\"1f91a-1f3fc\":0,\"1f91a-1f3fd\":0,\"1f91a-1f3fe\":0,\"1f91a-1f3ff\":0,\"1f91b-1f3fb\":0,\"1f91b-1f3fc\":0,\"1f91b-1f3fd\":0,\"1f91b-1f3fe\":0,\"1f91b-1f3ff\":0,\"1f91c-1f3fb\":0,\"1f91c-1f3fc\":0,\"1f91c-1f3fd\":0,\"1f91c-1f3fe\":0,\"1f91c-1f3ff\":0,\"1f91e-1f3fb\":0,\"1f91e-1f3fc\":0,\"1f91e-1f3fd\":0,\"1f91e-1f3fe\":0,\"1f91e-1f3ff\":0,\"1f91f-1f3fb\":0,\"1f91f-1f3fc\":0,\"1f91f-1f3fd\":0,\"1f91f-1f3fe\":0,\"1f91f-1f3ff\":0,\"1f926-1f3fb-200d-2640-fe0f\":0,\"1f926-1f3fc-200d-2640-fe0f\":0,\"1f926-1f3fd-200d-2640-fe0f\":0,\"1f926-1f3fe-200d-2640-fe0f\":0,\"1f926-1f3ff-200d-2640-fe0f\":0,\"1f926-1f3fb-200d-2642-fe0f\":0,\"1f926-1f3fc-200d-2642-fe0f\":0,\"1f926-1f3fd-200d-2642-fe0f\":0,\"1f926-1f3fe-200d-2642-fe0f\":0,\"1f926-1f3ff-200d-2642-fe0f\":0,\"1f926-1f3fb\":0,\"1f926-1f3fc\":0,\"1f926-1f3fd\":0,\"1f926-1f3fe\":0,\"1f926-1f3ff\":0,\"1f930-1f3fb\":0,\"1f930-1f3fc\":0,\"1f930-1f3fd\":0,\"1f930-1f3fe\":0,\"1f930-1f3ff\":0,\"1f931-1f3fb\":0,\"1f931-1f3fc\":0,\"1f931-1f3fd\":0,\"1f931-1f3fe\":0,\"1f931-1f3ff\":0,\"1f932-1f3fb\":0,\"1f932-1f3fc\":0,\"1f932-1f3fd\":0,\"1f932-1f3fe\":0,\"1f932-1f3ff\":0,\"1f933-1f3fb\":0,\"1f933-1f3fc\":0,\"1f933-1f3fd\":0,\"1f933-1f3fe\":0,\"1f933-1f3ff\":0,\"1f934-1f3fb\":0,\"1f934-1f3fc\":0,\"1f934-1f3fd\":0,\"1f934-1f3fe\":0,\"1f934-1f3ff\":0,\"1f935-1f3fb\":0,\"1f935-1f3fc\":0,\"1f935-1f3fd\":0,\"1f935-1f3fe\":0,\"1f935-1f3ff\":0,\"1f936-1f3fb\":0,\"1f936-1f3fc\":0,\"1f936-1f3fd\":0,\"1f936-1f3fe\":0,\"1f936-1f3ff\":0,\"1f937-1f3fb-200d-2640-fe0f\":0,\"1f937-1f3fc-200d-2640-fe0f\":0,\"1f937-1f3fd-200d-2640-fe0f\":0,\"1f937-1f3fe-200d-2640-fe0f\":0,\"1f937-1f3ff-200d-2640-fe0f\":0,\"1f937-1f3fb-200d-2642-fe0f\":0,\"1f937-1f3fc-200d-2642-fe0f\":0,\"1f937-1f3fd-200d-2642-fe0f\":0,\"1f937-1f3fe-200d-2642-fe0f\":0,\"1f937-1f3ff-200d-2642-fe0f\":0,\"1f937-1f3fb\":0,\"1f937-1f3fc\":0,\"1f937-1f3fd\":0,\"1f937-1f3fe\":0,\"1f937-1f3ff\":0,\"1f938-1f3fb-200d-2640-fe0f\":0,\"1f938-1f3fc-200d-2640-fe0f\":0,\"1f938-1f3fd-200d-2640-fe0f\":0,\"1f938-1f3fe-200d-2640-fe0f\":0,\"1f938-1f3ff-200d-2640-fe0f\":0,\"1f938-1f3fb-200d-2642-fe0f\":0,\"1f938-1f3fc-200d-2642-fe0f\":0,\"1f938-1f3fd-200d-2642-fe0f\":0,\"1f938-1f3fe-200d-2642-fe0f\":0,\"1f938-1f3ff-200d-2642-fe0f\":0,\"1f938-1f3fb\":0,\"1f938-1f3fc\":0,\"1f938-1f3fd\":0,\"1f938-1f3fe\":0,\"1f938-1f3ff\":0,\"1f939-1f3fb-200d-2640-fe0f\":0,\"1f939-1f3fc-200d-2640-fe0f\":0,\"1f939-1f3fd-200d-2640-fe0f\":0,\"1f939-1f3fe-200d-2640-fe0f\":0,\"1f939-1f3ff-200d-2640-fe0f\":0,\"1f939-1f3fb-200d-2642-fe0f\":0,\"1f939-1f3fc-200d-2642-fe0f\":0,\"1f939-1f3fd-200d-2642-fe0f\":0,\"1f939-1f3fe-200d-2642-fe0f\":0,\"1f939-1f3ff-200d-2642-fe0f\":0,\"1f939-1f3fb\":0,\"1f939-1f3fc\":0,\"1f939-1f3fd\":0,\"1f939-1f3fe\":0,\"1f939-1f3ff\":0,\"1f93d-1f3fb-200d-2640-fe0f\":0,\"1f93d-1f3fc-200d-2640-fe0f\":0,\"1f93d-1f3fd-200d-2640-fe0f\":0,\"1f93d-1f3fe-200d-2640-fe0f\":0,\"1f93d-1f3ff-200d-2640-fe0f\":0,\"1f93d-1f3fb-200d-2642-fe0f\":0,\"1f93d-1f3fc-200d-2642-fe0f\":0,\"1f93d-1f3fd-200d-2642-fe0f\":0,\"1f93d-1f3fe-200d-2642-fe0f\":0,\"1f93d-1f3ff-200d-2642-fe0f\":0,\"1f93d-1f3fb\":0,\"1f93d-1f3fc\":0,\"1f93d-1f3fd\":0,\"1f93d-1f3fe\":0,\"1f93d-1f3ff\":0,\"1f93e-1f3fb-200d-2640-fe0f\":0,\"1f93e-1f3fc-200d-2640-fe0f\":0,\"1f93e-1f3fd-200d-2640-fe0f\":0,\"1f93e-1f3fe-200d-2640-fe0f\":0,\"1f93e-1f3ff-200d-2640-fe0f\":0,\"1f93e-1f3fb-200d-2642-fe0f\":0,\"1f93e-1f3fc-200d-2642-fe0f\":0,\"1f93e-1f3fd-200d-2642-fe0f\":0,\"1f93e-1f3fe-200d-2642-fe0f\":0,\"1f93e-1f3ff-200d-2642-fe0f\":0,\"1f93e-1f3fb\":0,\"1f93e-1f3fc\":0,\"1f93e-1f3fd\":0,\"1f93e-1f3fe\":0,\"1f93e-1f3ff\":0,\"1f9b5-1f3fb\":0,\"1f9b5-1f3fc\":0,\"1f9b5-1f3fd\":0,\"1f9b5-1f3fe\":0,\"1f9b5-1f3ff\":0,\"1f9b6-1f3fb\":0,\"1f9b6-1f3fc\":0,\"1f9b6-1f3fd\":0,\"1f9b6-1f3fe\":0,\"1f9b6-1f3ff\":0,\"1f9b8-1f3fb-200d-2640-fe0f\":0,\"1f9b8-1f3fc-200d-2640-fe0f\":0,\"1f9b8-1f3fd-200d-2640-fe0f\":0,\"1f9b8-1f3fe-200d-2640-fe0f\":0,\"1f9b8-1f3ff-200d-2640-fe0f\":0,\"1f9b8-1f3fb-200d-2642-fe0f\":0,\"1f9b8-1f3fc-200d-2642-fe0f\":0,\"1f9b8-1f3fd-200d-2642-fe0f\":0,\"1f9b8-1f3fe-200d-2642-fe0f\":0,\"1f9b8-1f3ff-200d-2642-fe0f\":0,\"1f9b8-1f3fb\":0,\"1f9b8-1f3fc\":0,\"1f9b8-1f3fd\":0,\"1f9b8-1f3fe\":0,\"1f9b8-1f3ff\":0,\"1f9b9-1f3fb-200d-2640-fe0f\":0,\"1f9b9-1f3fc-200d-2640-fe0f\":0,\"1f9b9-1f3fd-200d-2640-fe0f\":0,\"1f9b9-1f3fe-200d-2640-fe0f\":0,\"1f9b9-1f3ff-200d-2640-fe0f\":0,\"1f9b9-1f3fb-200d-2642-fe0f\":0,\"1f9b9-1f3fc-200d-2642-fe0f\":0,\"1f9b9-1f3fd-200d-2642-fe0f\":0,\"1f9b9-1f3fe-200d-2642-fe0f\":0,\"1f9b9-1f3ff-200d-2642-fe0f\":0,\"1f9b9-1f3fb\":0,\"1f9b9-1f3fc\":0,\"1f9b9-1f3fd\":0,\"1f9b9-1f3fe\":0,\"1f9b9-1f3ff\":0,\"1f9bb-1f3fb\":0,\"1f9bb-1f3fc\":0,\"1f9bb-1f3fd\":0,\"1f9bb-1f3fe\":0,\"1f9bb-1f3ff\":0,\"1f9cd-1f3fb-200d-2640-fe0f\":0,\"1f9cd-1f3fc-200d-2640-fe0f\":0,\"1f9cd-1f3fd-200d-2640-fe0f\":0,\"1f9cd-1f3fe-200d-2640-fe0f\":0,\"1f9cd-1f3ff-200d-2640-fe0f\":0,\"1f9cd-1f3fb-200d-2642-fe0f\":0,\"1f9cd-1f3fc-200d-2642-fe0f\":0,\"1f9cd-1f3fd-200d-2642-fe0f\":0,\"1f9cd-1f3fe-200d-2642-fe0f\":0,\"1f9cd-1f3ff-200d-2642-fe0f\":0,\"1f9cd-1f3fb\":0,\"1f9cd-1f3fc\":0,\"1f9cd-1f3fd\":0,\"1f9cd-1f3fe\":0,\"1f9cd-1f3ff\":0,\"1f9ce-1f3fb-200d-2640-fe0f\":0,\"1f9ce-1f3fc-200d-2640-fe0f\":0,\"1f9ce-1f3fd-200d-2640-fe0f\":0,\"1f9ce-1f3fe-200d-2640-fe0f\":0,\"1f9ce-1f3ff-200d-2640-fe0f\":0,\"1f9ce-1f3fb-200d-2642-fe0f\":0,\"1f9ce-1f3fc-200d-2642-fe0f\":0,\"1f9ce-1f3fd-200d-2642-fe0f\":0,\"1f9ce-1f3fe-200d-2642-fe0f\":0,\"1f9ce-1f3ff-200d-2642-fe0f\":0,\"1f9ce-1f3fb\":0,\"1f9ce-1f3fc\":0,\"1f9ce-1f3fd\":0,\"1f9ce-1f3fe\":0,\"1f9ce-1f3ff\":0,\"1f9cf-1f3fb-200d-2640-fe0f\":0,\"1f9cf-1f3fc-200d-2640-fe0f\":0,\"1f9cf-1f3fd-200d-2640-fe0f\":0,\"1f9cf-1f3fe-200d-2640-fe0f\":0,\"1f9cf-1f3ff-200d-2640-fe0f\":0,\"1f9cf-1f3fb-200d-2642-fe0f\":0,\"1f9cf-1f3fc-200d-2642-fe0f\":0,\"1f9cf-1f3fd-200d-2642-fe0f\":0,\"1f9cf-1f3fe-200d-2642-fe0f\":0,\"1f9cf-1f3ff-200d-2642-fe0f\":0,\"1f9cf-1f3fb\":0,\"1f9cf-1f3fc\":0,\"1f9cf-1f3fd\":0,\"1f9cf-1f3fe\":0,\"1f9cf-1f3ff\":0,\"1f9d1-1f3fb-200d-1f33e\":0,\"1f9d1-1f3fc-200d-1f33e\":0,\"1f9d1-1f3fd-200d-1f33e\":0,\"1f9d1-1f3fe-200d-1f33e\":0,\"1f9d1-1f3ff-200d-1f33e\":0,\"1f9d1-1f3fb-200d-1f373\":0,\"1f9d1-1f3fc-200d-1f373\":0,\"1f9d1-1f3fd-200d-1f373\":0,\"1f9d1-1f3fe-200d-1f373\":0,\"1f9d1-1f3ff-200d-1f373\":0,\"1f9d1-1f3fb-200d-1f393\":0,\"1f9d1-1f3fc-200d-1f393\":0,\"1f9d1-1f3fd-200d-1f393\":0,\"1f9d1-1f3fe-200d-1f393\":0,\"1f9d1-1f3ff-200d-1f393\":0,\"1f9d1-1f3fb-200d-1f3a4\":0,\"1f9d1-1f3fc-200d-1f3a4\":0,\"1f9d1-1f3fd-200d-1f3a4\":0,\"1f9d1-1f3fe-200d-1f3a4\":0,\"1f9d1-1f3ff-200d-1f3a4\":0,\"1f9d1-1f3fb-200d-1f3a8\":0,\"1f9d1-1f3fc-200d-1f3a8\":0,\"1f9d1-1f3fd-200d-1f3a8\":0,\"1f9d1-1f3fe-200d-1f3a8\":0,\"1f9d1-1f3ff-200d-1f3a8\":0,\"1f9d1-1f3fb-200d-1f3eb\":0,\"1f9d1-1f3fc-200d-1f3eb\":0,\"1f9d1-1f3fd-200d-1f3eb\":0,\"1f9d1-1f3fe-200d-1f3eb\":0,\"1f9d1-1f3ff-200d-1f3eb\":0,\"1f9d1-1f3fb-200d-1f3ed\":0,\"1f9d1-1f3fc-200d-1f3ed\":0,\"1f9d1-1f3fd-200d-1f3ed\":0,\"1f9d1-1f3fe-200d-1f3ed\":0,\"1f9d1-1f3ff-200d-1f3ed\":0,\"1f9d1-1f3fb-200d-1f4bb\":0,\"1f9d1-1f3fc-200d-1f4bb\":0,\"1f9d1-1f3fd-200d-1f4bb\":0,\"1f9d1-1f3fe-200d-1f4bb\":0,\"1f9d1-1f3ff-200d-1f4bb\":0,\"1f9d1-1f3fb-200d-1f4bc\":0,\"1f9d1-1f3fc-200d-1f4bc\":0,\"1f9d1-1f3fd-200d-1f4bc\":0,\"1f9d1-1f3fe-200d-1f4bc\":0,\"1f9d1-1f3ff-200d-1f4bc\":0,\"1f9d1-1f3fb-200d-1f527\":0,\"1f9d1-1f3fc-200d-1f527\":0,\"1f9d1-1f3fd-200d-1f527\":0,\"1f9d1-1f3fe-200d-1f527\":0,\"1f9d1-1f3ff-200d-1f527\":0,\"1f9d1-1f3fb-200d-1f52c\":0,\"1f9d1-1f3fc-200d-1f52c\":0,\"1f9d1-1f3fd-200d-1f52c\":0,\"1f9d1-1f3fe-200d-1f52c\":0,\"1f9d1-1f3ff-200d-1f52c\":0,\"1f9d1-1f3fb-200d-1f680\":0,\"1f9d1-1f3fc-200d-1f680\":0,\"1f9d1-1f3fd-200d-1f680\":0,\"1f9d1-1f3fe-200d-1f680\":0,\"1f9d1-1f3ff-200d-1f680\":0,\"1f9d1-1f3fb-200d-1f692\":0,\"1f9d1-1f3fc-200d-1f692\":0,\"1f9d1-1f3fd-200d-1f692\":0,\"1f9d1-1f3fe-200d-1f692\":0,\"1f9d1-1f3ff-200d-1f692\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3fb-200d-1f9af\":0,\"1f9d1-1f3fc-200d-1f9af\":0,\"1f9d1-1f3fd-200d-1f9af\":0,\"1f9d1-1f3fe-200d-1f9af\":0,\"1f9d1-1f3ff-200d-1f9af\":0,\"1f9d1-1f3fb-200d-1f9b0\":0,\"1f9d1-1f3fc-200d-1f9b0\":0,\"1f9d1-1f3fd-200d-1f9b0\":0,\"1f9d1-1f3fe-200d-1f9b0\":0,\"1f9d1-1f3ff-200d-1f9b0\":0,\"1f9d1-1f3fb-200d-1f9b1\":0,\"1f9d1-1f3fc-200d-1f9b1\":0,\"1f9d1-1f3fd-200d-1f9b1\":0,\"1f9d1-1f3fe-200d-1f9b1\":0,\"1f9d1-1f3ff-200d-1f9b1\":0,\"1f9d1-1f3fb-200d-1f9b2\":0,\"1f9d1-1f3fc-200d-1f9b2\":0,\"1f9d1-1f3fd-200d-1f9b2\":0,\"1f9d1-1f3fe-200d-1f9b2\":0,\"1f9d1-1f3ff-200d-1f9b2\":0,\"1f9d1-1f3fb-200d-1f9b3\":0,\"1f9d1-1f3fc-200d-1f9b3\":0,\"1f9d1-1f3fd-200d-1f9b3\":0,\"1f9d1-1f3fe-200d-1f9b3\":0,\"1f9d1-1f3ff-200d-1f9b3\":0,\"1f9d1-1f3fb-200d-1f9bc\":0,\"1f9d1-1f3fc-200d-1f9bc\":0,\"1f9d1-1f3fd-200d-1f9bc\":0,\"1f9d1-1f3fe-200d-1f9bc\":0,\"1f9d1-1f3ff-200d-1f9bc\":0,\"1f9d1-1f3fb-200d-1f9bd\":0,\"1f9d1-1f3fc-200d-1f9bd\":0,\"1f9d1-1f3fd-200d-1f9bd\":0,\"1f9d1-1f3fe-200d-1f9bd\":0,\"1f9d1-1f3ff-200d-1f9bd\":0,\"1f9d1-1f3fb-200d-2695-fe0f\":0,\"1f9d1-1f3fc-200d-2695-fe0f\":0,\"1f9d1-1f3fd-200d-2695-fe0f\":0,\"1f9d1-1f3fe-200d-2695-fe0f\":0,\"1f9d1-1f3ff-200d-2695-fe0f\":0,\"1f9d1-1f3fb-200d-2696-fe0f\":0,\"1f9d1-1f3fc-200d-2696-fe0f\":0,\"1f9d1-1f3fd-200d-2696-fe0f\":0,\"1f9d1-1f3fe-200d-2696-fe0f\":0,\"1f9d1-1f3ff-200d-2696-fe0f\":0,\"1f9d1-1f3fb-200d-2708-fe0f\":0,\"1f9d1-1f3fc-200d-2708-fe0f\":0,\"1f9d1-1f3fd-200d-2708-fe0f\":0,\"1f9d1-1f3fe-200d-2708-fe0f\":0,\"1f9d1-1f3ff-200d-2708-fe0f\":0,\"1f9d1-1f3fb\":0,\"1f9d1-1f3fc\":0,\"1f9d1-1f3fd\":0,\"1f9d1-1f3fe\":0,\"1f9d1-1f3ff\":0,\"1f9d2-1f3fb\":0,\"1f9d2-1f3fc\":0,\"1f9d2-1f3fd\":0,\"1f9d2-1f3fe\":0,\"1f9d2-1f3ff\":0,\"1f9d3-1f3fb\":0,\"1f9d3-1f3fc\":0,\"1f9d3-1f3fd\":0,\"1f9d3-1f3fe\":0,\"1f9d3-1f3ff\":0,\"1f9d4-1f3fb\":0,\"1f9d4-1f3fc\":0,\"1f9d4-1f3fd\":0,\"1f9d4-1f3fe\":0,\"1f9d4-1f3ff\":0,\"1f9d5-1f3fb\":0,\"1f9d5-1f3fc\":0,\"1f9d5-1f3fd\":0,\"1f9d5-1f3fe\":0,\"1f9d5-1f3ff\":0,\"1f9d6-1f3fb-200d-2640-fe0f\":0,\"1f9d6-1f3fc-200d-2640-fe0f\":0,\"1f9d6-1f3fd-200d-2640-fe0f\":0,\"1f9d6-1f3fe-200d-2640-fe0f\":0,\"1f9d6-1f3ff-200d-2640-fe0f\":0,\"1f9d6-1f3fb-200d-2642-fe0f\":0,\"1f9d6-1f3fc-200d-2642-fe0f\":0,\"1f9d6-1f3fd-200d-2642-fe0f\":0,\"1f9d6-1f3fe-200d-2642-fe0f\":0,\"1f9d6-1f3ff-200d-2642-fe0f\":0,\"1f9d6-1f3fb\":0,\"1f9d6-1f3fc\":0,\"1f9d6-1f3fd\":0,\"1f9d6-1f3fe\":0,\"1f9d6-1f3ff\":0,\"1f9d7-1f3fb-200d-2640-fe0f\":0,\"1f9d7-1f3fc-200d-2640-fe0f\":0,\"1f9d7-1f3fd-200d-2640-fe0f\":0,\"1f9d7-1f3fe-200d-2640-fe0f\":0,\"1f9d7-1f3ff-200d-2640-fe0f\":0,\"1f9d7-1f3fb-200d-2642-fe0f\":0,\"1f9d7-1f3fc-200d-2642-fe0f\":0,\"1f9d7-1f3fd-200d-2642-fe0f\":0,\"1f9d7-1f3fe-200d-2642-fe0f\":0,\"1f9d7-1f3ff-200d-2642-fe0f\":0,\"1f9d7-1f3fb\":0,\"1f9d7-1f3fc\":0,\"1f9d7-1f3fd\":0,\"1f9d7-1f3fe\":0,\"1f9d7-1f3ff\":0,\"1f9d8-1f3fb-200d-2640-fe0f\":0,\"1f9d8-1f3fc-200d-2640-fe0f\":0,\"1f9d8-1f3fd-200d-2640-fe0f\":0,\"1f9d8-1f3fe-200d-2640-fe0f\":0,\"1f9d8-1f3ff-200d-2640-fe0f\":0,\"1f9d8-1f3fb-200d-2642-fe0f\":0,\"1f9d8-1f3fc-200d-2642-fe0f\":0,\"1f9d8-1f3fd-200d-2642-fe0f\":0,\"1f9d8-1f3fe-200d-2642-fe0f\":0,\"1f9d8-1f3ff-200d-2642-fe0f\":0,\"1f9d8-1f3fb\":0,\"1f9d8-1f3fc\":0,\"1f9d8-1f3fd\":0,\"1f9d8-1f3fe\":0,\"1f9d8-1f3ff\":0,\"1f9d9-1f3fb-200d-2640-fe0f\":0,\"1f9d9-1f3fc-200d-2640-fe0f\":0,\"1f9d9-1f3fd-200d-2640-fe0f\":0,\"1f9d9-1f3fe-200d-2640-fe0f\":0,\"1f9d9-1f3ff-200d-2640-fe0f\":0,\"1f9d9-1f3fb-200d-2642-fe0f\":0,\"1f9d9-1f3fc-200d-2642-fe0f\":0,\"1f9d9-1f3fd-200d-2642-fe0f\":0,\"1f9d9-1f3fe-200d-2642-fe0f\":0,\"1f9d9-1f3ff-200d-2642-fe0f\":0,\"1f9d9-1f3fb\":0,\"1f9d9-1f3fc\":0,\"1f9d9-1f3fd\":0,\"1f9d9-1f3fe\":0,\"1f9d9-1f3ff\":0,\"1f9da-1f3fb-200d-2640-fe0f\":0,\"1f9da-1f3fc-200d-2640-fe0f\":0,\"1f9da-1f3fd-200d-2640-fe0f\":0,\"1f9da-1f3fe-200d-2640-fe0f\":0,\"1f9da-1f3ff-200d-2640-fe0f\":0,\"1f9da-1f3fb-200d-2642-fe0f\":0,\"1f9da-1f3fc-200d-2642-fe0f\":0,\"1f9da-1f3fd-200d-2642-fe0f\":0,\"1f9da-1f3fe-200d-2642-fe0f\":0,\"1f9da-1f3ff-200d-2642-fe0f\":0,\"1f9da-1f3fb\":0,\"1f9da-1f3fc\":0,\"1f9da-1f3fd\":0,\"1f9da-1f3fe\":0,\"1f9da-1f3ff\":0,\"1f9db-1f3fb-200d-2640-fe0f\":0,\"1f9db-1f3fc-200d-2640-fe0f\":0,\"1f9db-1f3fd-200d-2640-fe0f\":0,\"1f9db-1f3fe-200d-2640-fe0f\":0,\"1f9db-1f3ff-200d-2640-fe0f\":0,\"1f9db-1f3fb-200d-2642-fe0f\":0,\"1f9db-1f3fc-200d-2642-fe0f\":0,\"1f9db-1f3fd-200d-2642-fe0f\":0,\"1f9db-1f3fe-200d-2642-fe0f\":0,\"1f9db-1f3ff-200d-2642-fe0f\":0,\"1f9db-1f3fb\":0,\"1f9db-1f3fc\":0,\"1f9db-1f3fd\":0,\"1f9db-1f3fe\":0,\"1f9db-1f3ff\":0,\"1f9dc-1f3fb-200d-2640-fe0f\":0,\"1f9dc-1f3fc-200d-2640-fe0f\":0,\"1f9dc-1f3fd-200d-2640-fe0f\":0,\"1f9dc-1f3fe-200d-2640-fe0f\":0,\"1f9dc-1f3ff-200d-2640-fe0f\":0,\"1f9dc-1f3fb-200d-2642-fe0f\":0,\"1f9dc-1f3fc-200d-2642-fe0f\":0,\"1f9dc-1f3fd-200d-2642-fe0f\":0,\"1f9dc-1f3fe-200d-2642-fe0f\":0,\"1f9dc-1f3ff-200d-2642-fe0f\":0,\"1f9dc-1f3fb\":0,\"1f9dc-1f3fc\":0,\"1f9dc-1f3fd\":0,\"1f9dc-1f3fe\":0,\"1f9dc-1f3ff\":0,\"1f9dd-1f3fb-200d-2640-fe0f\":0,\"1f9dd-1f3fc-200d-2640-fe0f\":0,\"1f9dd-1f3fd-200d-2640-fe0f\":0,\"1f9dd-1f3fe-200d-2640-fe0f\":0,\"1f9dd-1f3ff-200d-2640-fe0f\":0,\"1f9dd-1f3fb-200d-2642-fe0f\":0,\"1f9dd-1f3fc-200d-2642-fe0f\":0,\"1f9dd-1f3fd-200d-2642-fe0f\":0,\"1f9dd-1f3fe-200d-2642-fe0f\":0,\"1f9dd-1f3ff-200d-2642-fe0f\":0,\"1f9dd-1f3fb\":0,\"1f9dd-1f3fc\":0,\"1f9dd-1f3fd\":0,\"1f9dd-1f3fe\":0,\"1f9dd-1f3ff\":0,\"261d-1f3fb\":0,\"261d-1f3fc\":0,\"261d-1f3fd\":0,\"261d-1f3fe\":0,\"261d-1f3ff\":0,\"26f9-1f3fb-200d-2640-fe0f\":0,\"26f9-1f3fc-200d-2640-fe0f\":0,\"26f9-1f3fd-200d-2640-fe0f\":0,\"26f9-1f3fe-200d-2640-fe0f\":0,\"26f9-1f3ff-200d-2640-fe0f\":0,\"26f9-1f3fb-200d-2642-fe0f\":0,\"26f9-1f3fc-200d-2642-fe0f\":0,\"26f9-1f3fd-200d-2642-fe0f\":0,\"26f9-1f3fe-200d-2642-fe0f\":0,\"26f9-1f3ff-200d-2642-fe0f\":0,\"26f9-1f3fb\":0,\"26f9-1f3fc\":0,\"26f9-1f3fd\":0,\"26f9-1f3fe\":0,\"26f9-1f3ff\":0,\"270a-1f3fb\":0,\"270a-1f3fc\":0,\"270a-1f3fd\":0,\"270a-1f3fe\":0,\"270a-1f3ff\":0,\"270b-1f3fb\":0,\"270b-1f3fc\":0,\"270b-1f3fd\":0,\"270b-1f3fe\":0,\"270b-1f3ff\":0,\"270c-1f3fb\":0,\"270c-1f3fc\":0,\"270c-1f3fd\":0,\"270c-1f3fe\":0,\"270c-1f3ff\":0,\"270d-1f3fb\":0,\"270d-1f3fc\":0,\"270d-1f3fd\":0,\"270d-1f3fe\":0,\"270d-1f3ff\":0};\n\nEmoji[\"00a9-fe0f\"] = 6362;\nEmoji[\"00ae-fe0f\"] = 6363;\nEmoji[\"2122-fe0f\"] = 6364;\n\n// From https://github.com/stephenmathieson/node-tlds/blob/master/index.js\nexport const TLD = ['abogado', 'ac', 'academy', 'accountants', 'active', 'actor', 'ad', 'adult', 'ae', 'aero', 'af', 'ag', 'agency', 'ai', 'airforce', 'al', 'allfinanz', 'alsace', 'am', 'amsterdam', 'an', 'android', 'ao', 'apartments', 'aq', 'aquarelle', 'ar', 'archi', 'army', 'arpa', 'as', 'asia', 'associates', 'at', 'attorney', 'au', 'auction', 'audio', 'autos', 'aw', 'ax', 'axa', 'az', 'ba', 'band', 'bank', 'bar', 'barclaycard', 'barclays', 'bargains', 'bayern', 'bb', 'bd', 'be', 'beer', 'berlin', 'best', 'bf', 'bg', 'bh', 'bi', 'bid', 'bike', 'bingo', 'bio', 'biz', 'bj', 'black', 'blackfriday', 'bloomberg', 'blue', 'bm', 'bmw', 'bn', 'bnpparibas', 'bo', 'boo', 'boutique', 'br', 'brussels', 'bs', 'bt', 'budapest', 'build', 'builders', 'business', 'buzz', 'bv', 'bw', 'by', 'bz', 'bzh', 'ca', 'cab', 'cal', 'camera', 'camp', 'cancerresearch', 'canon', 'capetown', 'capital', 'caravan', 'cards', 'care', 'career', 'careers', 'cartier', 'casa', 'cash', 'cat', 'catering', 'cc', 'cd', 'center', 'ceo', 'cern', 'cf', 'cg', 'ch', 'channel', 'chat', 'cheap', 'christmas', 'chrome', 'church', 'ci', 'citic', 'city', 'ck', 'cl', 'claims', 'cleaning', 'click', 'clinic', 'clothing', 'club', 'cm', 'cn', 'co', 'coach', 'codes', 'coffee', 'college', 'cologne', 'com', 'community', 'company', 'computer', 'condos', 'construction', 'consulting', 'contractors', 'cooking', 'cool', 'coop', 'country', 'cr', 'credit', 'creditcard', 'cricket', 'crs', 'cruises', 'cu', 'cuisinella', 'cv', 'cw', 'cx', 'cy', 'cymru', 'cz', 'dabur', 'dad', 'dance', 'dating', 'day', 'dclk', 'de', 'deals', 'degree', 'delivery', 'democrat', 'dental', 'dentist', 'desi', 'design', 'dev', 'diamonds', 'diet', 'digital', 'direct', 'directory', 'discount', 'dj', 'dk', 'dm', 'dnp', 'do', 'docs', 'domains', 'doosan', 'durban', 'dvag', 'dz', 'eat', 'ec', 'edu', 'education', 'ee', 'eg', 'email', 'emerck', 'energy', 'engineer', 'engineering', 'enterprises', 'equipment', 'er', 'es', 'esq', 'estate', 'et', 'eu', 'eurovision', 'eus', 'events', 'everbank', 'exchange', 'expert', 'exposed', 'fail', 'farm', 'fashion', 'feedback', 'fi', 'finance', 'financial', 'firmdale', 'fish', 'fishing', 'fit', 'fitness', 'fj', 'fk', 'flights', 'florist', 'flowers', 'flsmidth', 'fly', 'fm', 'fo', 'foo', 'forsale', 'foundation', 'fr', 'frl', 'frogans', 'fund', 'furniture', 'futbol', 'ga', 'gal', 'gallery', 'garden', 'gb', 'gbiz', 'gd', 'ge', 'gent', 'gf', 'gg', 'ggee', 'gh', 'gi', 'gift', 'gifts', 'gives', 'gl', 'glass', 'gle', 'global', 'globo', 'gm', 'gmail', 'gmo', 'gmx', 'gn', 'goog', 'google', 'gop', 'gov', 'gp', 'gq', 'gr', 'graphics', 'gratis', 'green', 'gripe', 'gs', 'gt', 'gu', 'guide', 'guitars', 'guru', 'gw', 'gy', 'hamburg', 'hangout', 'haus', 'healthcare', 'help', 'here', 'hermes', 'hiphop', 'hiv', 'hk', 'hm', 'hn', 'holdings', 'holiday', 'homes', 'horse', 'host', 'hosting', 'house', 'how', 'hr', 'ht', 'hu', 'ibm', 'id', 'ie', 'ifm', 'il', 'im', 'immo', 'immobilien', 'in', 'industries', 'info', 'ing', 'ink', 'institute', 'insure', 'int', 'international', 'investments', 'io', 'iq', 'ir', 'irish', 'is', 'it', 'iwc', 'jcb', 'je', 'jetzt', 'jm', 'jo', 'jobs', 'joburg', 'jp', 'juegos', 'kaufen', 'kddi', 'ke', 'kg', 'kh', 'ki', 'kim', 'kitchen', 'kiwi', 'km', 'kn', 'koeln', 'kp', 'kr', 'krd', 'kred', 'kw', 'ky', 'kyoto', 'kz', 'la', 'lacaixa', 'land', 'lat', 'latrobe', 'lawyer', 'lb', 'lc', 'lds', 'lease', 'legal', 'lgbt', 'li', 'lidl', 'life', 'lighting', 'limited', 'limo', 'link', 'lk', 'loans', 'london', 'lotte', 'lotto', 'lr', 'ls', 'lt', 'ltda', 'lu', 'luxe', 'luxury', 'lv', 'ly', 'ma', 'madrid', 'maison', 'management', 'mango', 'market', 'marketing', 'marriott', 'mc', 'md', 'me', 'media', 'meet', 'melbourne', 'meme', 'memorial', 'menu', 'mg', 'mh', 'miami', 'mil', 'mini', 'mk', 'ml', 'mm', 'mn', 'mo', 'mobi', 'moda', 'moe', 'monash', 'money', 'mormon', 'mortgage', 'moscow', 'motorcycles', 'mov', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'museum', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'nagoya', 'name', 'navy', 'nc', 'ne', 'net', 'network', 'neustar', 'new', 'nexus', 'nf', 'ng', 'ngo', 'nhk', 'ni', 'nico', 'ninja', 'nl', 'no', 'np', 'nr', 'nra', 'nrw', 'ntt', 'nu', 'nyc', 'nz', 'okinawa', 'om', 'one', 'ong', 'onl', 'ooo', 'org', 'organic', 'osaka', 'otsuka', 'ovh', 'pa', 'paris', 'partners', 'parts', 'party', 'pe', 'pf', 'pg', 'ph', 'pharmacy', 'photo', 'photography', 'photos', 'physio', 'pics', 'pictures', 'pink', 'pizza', 'pk', 'pl', 'place', 'plumbing', 'pm', 'pn', 'pohl', 'poker', 'porn', 'post', 'pr', 'praxi', 'press', 'pro', 'prod', 'productions', 'prof', 'properties', 'property', 'ps', 'pt', 'pub', 'pw', 'py', 'qa', 'qpon', 'quebec', 're', 'realtor', 'recipes', 'red', 'rehab', 'reise', 'reisen', 'reit', 'ren', 'rentals', 'repair', 'report', 'republican', 'rest', 'restaurant', 'reviews', 'rich', 'rio', 'rip', 'ro', 'rocks', 'rodeo', 'rs', 'rsvp', 'ru', 'ruhr', 'rw', 'ryukyu', 'sa', 'saarland', 'sale', 'samsung', 'sarl', 'saxo', 'sb', 'sc', 'sca', 'scb', 'schmidt', 'schule', 'schwarz', 'science', 'scot', 'sd', 'se', 'services', 'sew', 'sexy', 'sg', 'sh', 'shiksha', 'shoes', 'shriram', 'si', 'singles', 'sj', 'sk', 'sky', 'sl', 'sm', 'sn', 'so', 'social', 'software', 'sohu', 'solar', 'solutions', 'soy', 'space', 'spiegel', 'sr', 'st', 'style', 'su', 'supplies', 'supply', 'support', 'surf', 'surgery', 'suzuki', 'sv', 'sx', 'sy', 'sydney', 'systems', 'sz', 'taipei', 'tatar', 'tattoo', 'tax', 'tc', 'td', 'technology', 'tel', 'temasek', 'tennis', 'tf', 'tg', 'th', 'tienda', 'tips', 'tires', 'tirol', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'today', 'tokyo', 'tools', 'top', 'toshiba', 'town', 'toys', 'tp', 'tr', 'trade', 'training', 'travel', 'trust', 'tt', 'tui', 'tv', 'tw', 'tz', 'ua', 'ug', 'uk', 'university', 'uno', 'uol', 'us', 'uy', 'uz', 'va', 'vacations', 'vc', 've', 'vegas', 'ventures', 'versicherung', 'vet', 'vg', 'vi', 'viajes', 'video', 'villas', 'vision', 'vlaanderen', 'vn', 'vodka', 'vote', 'voting', 'voto', 'voyage', 'vu', 'wales', 'wang', 'watch', 'webcam', 'website', 'wed', 'wedding', 'wf', 'whoswho', 'wien', 'wiki', 'williamhill', 'wme', 'work', 'works', 'world', 'ws', 'wtc', 'wtf', '佛山', '集团', '在线', '한국', 'ভারত', '八卦', 'موقع', '公益', '公司', '移动', '我爱你', 'москва', 'қаз', 'онлайн', 'сайт', 'срб', '淡马锡', 'орг', '삼성', 'சிங்கப்பூர்', '商标', '商店', '商城', 'дети', 'мкд', '中文网', '中信', '中国', '中國', '谷歌', 'భారత్', 'ලංකා', 'ભારત', 'भारत', '网店', 'संगठन', '网络', 'укр', '香港', '台湾', '台灣', '手机', 'мон', 'الجزائر', 'عمان', 'ایران', 'امارات', 'بازار', 'الاردن', 'بھارت', 'المغرب', 'السعودية', 'مليسيا', 'شبكة', 'გე', '机构', '组织机构', 'ไทย', 'سورية', 'рус', 'рф', 'تونس', 'みんな', 'グーグル', '世界', 'ਭਾਰਤ', '网址', '游戏', 'vermögensberater', 'vermögensberatung', '企业', 'مصر', 'قطر', '广东', 'இலங்கை', 'இந்தியா', '新加坡', 'فلسطين', '政务', 'xxx', 'xyz', 'yachts', 'yandex', 'ye', 'yoga', 'yokohama', 'youtube', 'yt', 'za', 'zip', 'zm', 'zone', 'zuerich', 'zw'];\n\n// From https://raw.githubusercontent.com/FGRibreau/latenize/master/latinize_map.js\nexport const LatinizeMap: {[k: string]: string} = {'Á': 'A','Ă': 'A','Ắ': 'A','Ặ': 'A','Ằ': 'A','Ẳ': 'A','Ẵ': 'A','Ǎ': 'A','Â': 'A','Ấ': 'A','Ậ': 'A','Ầ': 'A','Ẩ': 'A','Ẫ': 'A','Ä': 'A','Ǟ': 'A','Ȧ': 'A','Ǡ': 'A','Ạ': 'A','Ȁ': 'A','À': 'A','Ả': 'A','Ȃ': 'A','Ā': 'A','Ą': 'A','Å': 'A','Ǻ': 'A','Ḁ': 'A','Ⱥ': 'A','Ã': 'A','Ꜳ': 'AA','Æ': 'AE','Ǽ': 'AE','Ǣ': 'AE','Ꜵ': 'AO','Ꜷ': 'AU','Ꜹ': 'AV','Ꜻ': 'AV','Ꜽ': 'AY','Ḃ': 'B','Ḅ': 'B','Ɓ': 'B','Ḇ': 'B','Ƀ': 'B','Ƃ': 'B','Ć': 'C','Č': 'C','Ç': 'C','Ḉ': 'C','Ĉ': 'C','Ċ': 'C','Ƈ': 'C','Ȼ': 'C','Ď': 'D','Ḑ': 'D','Ḓ': 'D','Ḋ': 'D','Ḍ': 'D','Ɗ': 'D','Ḏ': 'D','Dz': 'D','Dž': 'D','Đ': 'D','Ƌ': 'D','DZ': 'DZ','DŽ': 'DZ','É': 'E','Ĕ': 'E','Ě': 'E','Ȩ': 'E','Ḝ': 'E','Ê': 'E','Ế': 'E','Ệ': 'E','Ề': 'E','Ể': 'E','Ễ': 'E','Ḙ': 'E','Ë': 'E','Ė': 'E','Ẹ': 'E','Ȅ': 'E','È': 'E','Ẻ': 'E','Ȇ': 'E','Ē': 'E','Ḗ': 'E','Ḕ': 'E','Ę': 'E','Ɇ': 'E','Ẽ': 'E','Ḛ': 'E','': 'ET','Ḟ': 'F','Ƒ': 'F','Ǵ': 'G','Ğ': 'G','Ǧ': 'G','Ģ': 'G','Ĝ': 'G','Ġ': 'G','Ɠ': 'G','Ḡ': 'G','Ǥ': 'G','Ḫ': 'H','Ȟ': 'H','Ḩ': 'H','Ĥ': 'H','Ⱨ': 'H','Ḧ': 'H','Ḣ': 'H','Ḥ': 'H','Ħ': 'H','Í': 'I','Ĭ': 'I','Ǐ': 'I','Î': 'I','Ï': 'I','Ḯ': 'I','İ': 'I','Ị': 'I','Ȉ': 'I','Ì': 'I','Ỉ': 'I','Ȋ': 'I','Ī': 'I','Į': 'I','Ɨ': 'I','Ĩ': 'I','Ḭ': 'I','Ꝺ': 'D','Ꝼ': 'F','Ᵹ': 'G','Ꞃ': 'R','Ꞅ': 'S','Ꞇ': 'T','Ꝭ': 'IS','Ĵ': 'J','Ɉ': 'J','Ḱ': 'K','Ǩ': 'K','Ķ': 'K','Ⱪ': 'K','Ꝃ': 'K','Ḳ': 'K','Ƙ': 'K','Ḵ': 'K','Ꝁ': 'K','Ꝅ': 'K','Ĺ': 'L','Ƚ': 'L','Ľ': 'L','Ļ': 'L','Ḽ': 'L','Ḷ': 'L','Ḹ': 'L','Ⱡ': 'L','Ꝉ': 'L','Ḻ': 'L','Ŀ': 'L','Ɫ': 'L','Lj': 'L','Ł': 'L','LJ': 'LJ','Ḿ': 'M','Ṁ': 'M','Ṃ': 'M','Ɱ': 'M','Ń': 'N','Ň': 'N','Ņ': 'N','Ṋ': 'N','Ṅ': 'N','Ṇ': 'N','Ǹ': 'N','Ɲ': 'N','Ṉ': 'N','Ƞ': 'N','Nj': 'N','Ñ': 'N','NJ': 'NJ','Ó': 'O','Ŏ': 'O','Ǒ': 'O','Ô': 'O','Ố': 'O','Ộ': 'O','Ồ': 'O','Ổ': 'O','Ỗ': 'O','Ö': 'O','Ȫ': 'O','Ȯ': 'O','Ȱ': 'O','Ọ': 'O','Ő': 'O','Ȍ': 'O','Ò': 'O','Ỏ': 'O','Ơ': 'O','Ớ': 'O','Ợ': 'O','Ờ': 'O','Ở': 'O','Ỡ': 'O','Ȏ': 'O','Ꝋ': 'O','Ꝍ': 'O','Ō': 'O','Ṓ': 'O','Ṑ': 'O','Ɵ': 'O','Ǫ': 'O','Ǭ': 'O','Ø': 'O','Ǿ': 'O','Õ': 'O','Ṍ': 'O','Ṏ': 'O','Ȭ': 'O','Ƣ': 'OI','Ꝏ': 'OO','Ɛ': 'E','Ɔ': 'O','Ȣ': 'OU','Ṕ': 'P','Ṗ': 'P','Ꝓ': 'P','Ƥ': 'P','Ꝕ': 'P','Ᵽ': 'P','Ꝑ': 'P','Ꝙ': 'Q','Ꝗ': 'Q','Ŕ': 'R','Ř': 'R','Ŗ': 'R','Ṙ': 'R','Ṛ': 'R','Ṝ': 'R','Ȑ': 'R','Ȓ': 'R','Ṟ': 'R','Ɍ': 'R','Ɽ': 'R','Ꜿ': 'C','Ǝ': 'E','Ś': 'S','Ṥ': 'S','Š': 'S','Ṧ': 'S','Ş': 'S','Ŝ': 'S','Ș': 'S','Ṡ': 'S','Ṣ': 'S','Ṩ': 'S','ẞ': 'SS','Ť': 'T','Ţ': 'T','Ṱ': 'T','Ț': 'T','Ⱦ': 'T','Ṫ': 'T','Ṭ': 'T','Ƭ': 'T','Ṯ': 'T','Ʈ': 'T','Ŧ': 'T','Ɐ': 'A','Ꞁ': 'L','Ɯ': 'M','Ʌ': 'V','Ꜩ': 'TZ','Ú': 'U','Ŭ': 'U','Ǔ': 'U','Û': 'U','Ṷ': 'U','Ü': 'U','Ǘ': 'U','Ǚ': 'U','Ǜ': 'U','Ǖ': 'U','Ṳ': 'U','Ụ': 'U','Ű': 'U','Ȕ': 'U','Ù': 'U','Ủ': 'U','Ư': 'U','Ứ': 'U','Ự': 'U','Ừ': 'U','Ử': 'U','Ữ': 'U','Ȗ': 'U','Ū': 'U','Ṻ': 'U','Ų': 'U','Ů': 'U','Ũ': 'U','Ṹ': 'U','Ṵ': 'U','Ꝟ': 'V','Ṿ': 'V','Ʋ': 'V','Ṽ': 'V','Ꝡ': 'VY','Ẃ': 'W','Ŵ': 'W','Ẅ': 'W','Ẇ': 'W','Ẉ': 'W','Ẁ': 'W','Ⱳ': 'W','Ẍ': 'X','Ẋ': 'X','Ý': 'Y','Ŷ': 'Y','Ÿ': 'Y','Ẏ': 'Y','Ỵ': 'Y','Ỳ': 'Y','Ƴ': 'Y','Ỷ': 'Y','Ỿ': 'Y','Ȳ': 'Y','Ɏ': 'Y','Ỹ': 'Y','Ź': 'Z','Ž': 'Z','Ẑ': 'Z','Ⱬ': 'Z','Ż': 'Z','Ẓ': 'Z','Ȥ': 'Z','Ẕ': 'Z','Ƶ': 'Z','IJ': 'IJ','Œ': 'OE','ᴀ': 'A','ᴁ': 'AE','ʙ': 'B','ᴃ': 'B','': 'C','ᴅ': 'D','ᴇ': 'E','ꜰ': 'F','ɢ': 'G','ʛ': 'G','ʜ': 'H','ɪ': 'I','ʁ': 'R','ᴊ': 'J','ᴋ': 'K','ʟ': 'L','ᴌ': 'L','ᴍ': 'M','ɴ': 'N','': 'O','ɶ': 'OE','ᴐ': 'O','ᴕ': 'OU','ᴘ': 'P','ʀ': 'R','ᴎ': 'N','ᴙ': 'R','': 'S','ᴛ': 'T','ⱻ': 'E','ᴚ': 'R','': 'U','': 'V','': 'W','ʏ': 'Y','': 'Z','á': 'a','ă': 'a','ắ': 'a','ặ': 'a','ằ': 'a','ẳ': 'a','ẵ': 'a','ǎ': 'a','â': 'a','ấ': 'a','ậ': 'a','ầ': 'a','ẩ': 'a','ẫ': 'a','ä': 'a','ǟ': 'a','ȧ': 'a','ǡ': 'a','ạ': 'a','ȁ': 'a','à': 'a','ả': 'a','ȃ': 'a','ā': 'a','ą': 'a','ᶏ': 'a','ẚ': 'a','å': 'a','ǻ': 'a','ḁ': 'a','ⱥ': 'a','ã': 'a','ꜳ': 'aa','æ': 'ae','ǽ': 'ae','ǣ': 'ae','ꜵ': 'ao','ꜷ': 'au','ꜹ': 'av','ꜻ': 'av','ꜽ': 'ay','ḃ': 'b','ḅ': 'b','ɓ': 'b','ḇ': 'b','ᵬ': 'b','ᶀ': 'b','ƀ': 'b','ƃ': 'b','ɵ': 'o','ć': 'c','č': 'c','ç': 'c','ḉ': 'c','ĉ': 'c','ɕ': 'c','ċ': 'c','ƈ': 'c','ȼ': 'c','ď': 'd','ḑ': 'd','ḓ': 'd','ȡ': 'd','ḋ': 'd','ḍ': 'd','ɗ': 'd','ᶑ': 'd','ḏ': 'd','ᵭ': 'd','ᶁ': 'd','đ': 'd','ɖ': 'd','ƌ': 'd','ı': 'i','ȷ': 'j','ɟ': 'j','ʄ': 'j','dz': 'dz','dž': 'dz','é': 'e','ĕ': 'e','ě': 'e','ȩ': 'e','ḝ': 'e','ê': 'e','ế': 'e','ệ': 'e','ề': 'e','ể': 'e','ễ': 'e','ḙ': 'e','ë': 'e','ė': 'e','ẹ': 'e','ȅ': 'e','è': 'e','ẻ': 'e','ȇ': 'e','ē': 'e','ḗ': 'e','ḕ': 'e','ⱸ': 'e','ę': 'e','ᶒ': 'e','ɇ': 'e','ẽ': 'e','ḛ': 'e','ꝫ': 'et','ḟ': 'f','ƒ': 'f','ᵮ': 'f','ᶂ': 'f','ǵ': 'g','ğ': 'g','ǧ': 'g','ģ': 'g','ĝ': 'g','ġ': 'g','ɠ': 'g','ḡ': 'g','': 'g','ǥ': 'g','ḫ': 'h','ȟ': 'h','ḩ': 'h','ĥ': 'h','ⱨ': 'h','ḧ': 'h','ḣ': 'h','ḥ': 'h','ɦ': 'h','ẖ': 'h','ħ': 'h','ƕ': 'hv','í': 'i','ĭ': 'i','ǐ': 'i','î': 'i','ï': 'i','ḯ': 'i','ị': 'i','ȉ': 'i','ì': 'i','ỉ': 'i','ȋ': 'i','ī': 'i','į': 'i','ᶖ': 'i','ɨ': 'i','ĩ': 'i','ḭ': 'i','ꝺ': 'd','ꝼ': 'f','ᵹ': 'g','ꞃ': 'r','ꞅ': 's','ꞇ': 't','ꝭ': 'is','ǰ': 'j','ĵ': 'j','ʝ': 'j','ɉ': 'j','ḱ': 'k','ǩ': 'k','ķ': 'k','ⱪ': 'k','ꝃ': 'k','ḳ': 'k','ƙ': 'k','ḵ': 'k','ᶄ': 'k','ꝁ': 'k','ꝅ': 'k','ĺ': 'l','ƚ': 'l','ɬ': 'l','ľ': 'l','ļ': 'l','ḽ': 'l','ȴ': 'l','ḷ': 'l','ḹ': 'l','ⱡ': 'l','ꝉ': 'l','ḻ': 'l','ŀ': 'l','ɫ': 'l','ᶅ': 'l','ɭ': 'l','ł': 'l','lj': 'lj','ſ': 's','ẜ': 's','ẛ': 's','': 's','ḿ': 'm','ṁ': 'm','ṃ': 'm','ɱ': 'm','ᵯ': 'm','ᶆ': 'm','ń': 'n','ň': 'n','ņ': 'n','ṋ': 'n','ȵ': 'n','ṅ': 'n','ṇ': 'n','ǹ': 'n','ɲ': 'n','ṉ': 'n','ƞ': 'n','ᵰ': 'n','ᶇ': 'n','ɳ': 'n','ñ': 'n','nj': 'nj','ó': 'o','ŏ': 'o','ǒ': 'o','ô': 'o','ố': 'o','ộ': 'o','ồ': 'o','ổ': 'o','ỗ': 'o','ö': 'o','ȫ': 'o','ȯ': 'o','ȱ': 'o','ọ': 'o','ő': 'o','ȍ': 'o','ò': 'o','ỏ': 'o','ơ': 'o','ớ': 'o','ợ': 'o','ờ': 'o','ở': 'o','ỡ': 'o','ȏ': 'o','ꝋ': 'o','ꝍ': 'o','ⱺ': 'o','ō': 'o','ṓ': 'o','ṑ': 'o','ǫ': 'o','ǭ': 'o','ø': 'o','ǿ': 'o','õ': 'o','ṍ': 'o','ṏ': 'o','ȭ': 'o','ƣ': 'oi','ꝏ': 'oo','ɛ': 'e','ᶓ': 'e','ɔ': 'o','ᶗ': 'o','ȣ': 'ou','ṕ': 'p','ṗ': 'p','ꝓ': 'p','ƥ': 'p','ᵱ': 'p','ᶈ': 'p','ꝕ': 'p','ᵽ': 'p','ꝑ': 'p','ꝙ': 'q','ʠ': 'q','ɋ': 'q','ꝗ': 'q','ŕ': 'r','ř': 'r','ŗ': 'r','ṙ': 'r','ṛ': 'r','ṝ': 'r','ȑ': 'r','ɾ': 'r','ᵳ': 'r','ȓ': 'r','ṟ': 'r','ɼ': 'r','ᵲ': 'r','ᶉ': 'r','ɍ': 'r','ɽ': 'r','ↄ': 'c','ꜿ': 'c','ɘ': 'e','ɿ': 'r','ś': 's','ṥ': 's','š': 's','ṧ': 's','ş': 's','ŝ': 's','ș': 's','ṡ': 's','ṣ': 's','ṩ': 's','ʂ': 's','ᵴ': 's','ᶊ': 's','ȿ': 's','ɡ': 'g','ß': 'ss','': 'o','ᴓ': 'o','ᴝ': 'u','ť': 't','ţ': 't','ṱ': 't','ț': 't','ȶ': 't','ẗ': 't','ⱦ': 't','ṫ': 't','ṭ': 't','ƭ': 't','ṯ': 't','ᵵ': 't','ƫ': 't','ʈ': 't','ŧ': 't','ᵺ': 'th','ɐ': 'a','ᴂ': 'ae','ǝ': 'e','ᵷ': 'g','ɥ': 'h','ʮ': 'h','ʯ': 'h','ᴉ': 'i','ʞ': 'k','ꞁ': 'l','ɯ': 'm','ɰ': 'm','ᴔ': 'oe','ɹ': 'r','ɻ': 'r','ɺ': 'r','ⱹ': 'r','ʇ': 't','ʌ': 'v','ʍ': 'w','ʎ': 'y','ꜩ': 'tz','ú': 'u','ŭ': 'u','ǔ': 'u','û': 'u','ṷ': 'u','ü': 'u','ǘ': 'u','ǚ': 'u','ǜ': 'u','ǖ': 'u','ṳ': 'u','ụ': 'u','ű': 'u','ȕ': 'u','ù': 'u','ủ': 'u','ư': 'u','ứ': 'u','ự': 'u','ừ': 'u','ử': 'u','ữ': 'u','ȗ': 'u','ū': 'u','ṻ': 'u','ų': 'u','ᶙ': 'u','ů': 'u','ũ': 'u','ṹ': 'u','ṵ': 'u','ᵫ': 'ue','': 'um','ⱴ': 'v','ꝟ': 'v','ṿ': 'v','ʋ': 'v','': 'v','ⱱ': 'v','ṽ': 'v','ꝡ': 'vy','ẃ': 'w','ŵ': 'w','ẅ': 'w','ẇ': 'w','ẉ': 'w','ẁ': 'w','ⱳ': 'w','ẘ': 'w','ẍ': 'x','ẋ': 'x','ᶍ': 'x','ý': 'y','ŷ': 'y','ÿ': 'y','ẏ': 'y','ỵ': 'y','ỳ': 'y','ƴ': 'y','ỷ': 'y','ỿ': 'y','ȳ': 'y','ẙ': 'y','ɏ': 'y','ỹ': 'y','ź': 'z','ž': 'z','ẑ': 'z','ʑ': 'z','ⱬ': 'z','ż': 'z','ẓ': 'z','ȥ': 'z','ẕ': 'z','ᵶ': 'z','ᶎ': 'z','ʐ': 'z','ƶ': 'z','ɀ': 'z','ff': 'ff','ffi': 'ffi','ffl': 'ffl','fi': 'fi','fl': 'fl','ij': 'ij','œ': 'oe','st': 'st','ₐ': 'a','ₑ': 'e','ᵢ': 'i','ⱼ': 'j','ₒ': 'o','ᵣ': 'r','ᵤ': 'u','ᵥ': 'v','ₓ': 'x','Ё': 'YO', 'Й': 'I', 'Ц': 'TS', 'У': 'U', 'К': 'K', 'Е': 'E', 'Н': 'N', 'Г': 'G', 'Ш': 'SH', 'Щ': 'SCH', 'З': 'Z', 'Х': 'H', 'Ъ': '', 'ё': 'yo', 'й': 'i', 'ц': 'ts', 'у': 'u', 'к': 'k', 'е': 'e', 'н': 'n', 'г': 'g', 'ш': 'sh', 'щ': 'sch', 'з': 'z', 'х': 'h', 'ъ': '', 'Ф': 'F', 'Ы': 'I', 'В': 'V', 'А': 'A', 'П': 'P', 'Р': 'R', 'О': 'O', 'Л': 'L', 'Д': 'D', 'Ж': 'ZH', 'Э': 'E', 'ф': 'f', 'ы': 'i', 'в': 'v', 'а': 'a', 'п': 'p', 'р': 'r', 'о': 'o', 'л': 'l', 'д': 'd', 'ж': 'zh', 'э': 'e', 'Я': 'Ya', 'Ч': 'CH', 'С': 'S', 'М': 'M', 'И': 'I', 'Т': 'T', 'Ь': '', 'Б': 'B', 'Ю': 'YU', 'я': 'ya', 'ч': 'ch', 'с': 's', 'м': 'm', 'и': 'i', 'т': 't', 'ь': '', 'б': 'b', 'ю': 'yu'};\n\nconst Config = {\n Emoji,\n LatinizeMap,\n TLD,\n MediaSizes: mediaSizes\n};\nMOUNT_CLASS_TO.Config = Config;\nexport default Config;","// https://github.com/twitter/twemoji-parser/blob/master/src/lib/regex.js\n\nexport function encodeEmoji(emojiText: string) {\n const codepoints = toCodePoints(removeVS16s(emojiText)).join('-');\n return codepoints;\n}\n\nconst vs16RegExp = /\\uFE0F/g;\n// avoid using a string literal like '\\u200D' here because minifiers expand it inline\nconst zeroWidthJoiner = String.fromCharCode(0x200d);\n\nconst removeVS16s = (rawEmoji: string) => (rawEmoji.indexOf(zeroWidthJoiner) < 0 ? rawEmoji.replace(vs16RegExp, '') : rawEmoji);\n\nexport function toCodePoints(unicodeSurrogates: string): Array<string> {\n const points = [];\n let char = 0;\n let previous = 0;\n let i = 0;\n while(i < unicodeSurrogates.length) {\n char = unicodeSurrogates.charCodeAt(i++);\n if(previous) {\n points.push((0x10000 + ((previous - 0xd800) << 10) + (char - 0xdc00)).toString(16));\n previous = 0;\n } else if (char > 0xd800 && char <= 0xdbff) {\n previous = char;\n } else {\n points.push(char.toString(16));\n }\n }\n\n if(points.length && points[0].length === 2) {\n points[0] = '00' + points[0];\n }\n\n return points;\n}\n\nexport function getEmojiToneIndex(input: string) {\n let match = input.match(/[\\uDFFB-\\uDFFF]/);\n return match ? 5 - (57343 - match[0].charCodeAt(0)) : 0;\n}","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nimport type { Message, StickerSet, Update, NotifyPeer, PeerNotifySettings } from \"../layer\";\nimport type { MyDocument } from \"./appManagers/appDocsManager\";\nimport type { AppMessagesManager, Dialog, MessagesStorage } from \"./appManagers/appMessagesManager\";\nimport type { Poll, PollResults } from \"./appManagers/appPollsManager\";\nimport type { MyDialogFilter } from \"./storages/filters\";\nimport type { ConnectionStatusChange } from \"../types\";\nimport type { UserTyping } from \"./appManagers/appChatsManager\";\nimport type Chat from \"../components/chat/chat\";\nimport type { UserAuth } from \"./mtproto/mtproto_config\";\nimport type { State } from \"./appManagers/appStateManager\";\nimport type { MyDraftMessage } from \"./appManagers/appDraftsManager\";\nimport EventListenerBase from \"../helpers/eventListenerBase\";\nimport { MOUNT_CLASS_TO } from \"../config/debug\";\n\nexport type BroadcastEvents = {\n 'user_update': number,\n 'user_auth': UserAuth,\n 'peer_changed': number,\n 'peer_changing': Chat,\n 'peer_pinned_messages': {peerId: number, mids?: number[], pinned?: boolean, unpinAll?: true},\n 'peer_pinned_hidden': {peerId: number, maxId: number},\n 'peer_typings': {peerId: number, typings: UserTyping[]},\n 'peer_block': {peerId: number, blocked: boolean},\n 'peer_title_edit': number,\n 'peer_bio_edit': number,\n\n 'filter_delete': MyDialogFilter,\n 'filter_update': MyDialogFilter,\n 'filter_order': number[],\n \n 'dialog_draft': {peerId: number, draft: MyDraftMessage | undefined, index: number},\n 'dialog_unread': {peerId: number},\n 'dialog_flush': {peerId: number},\n 'dialog_drop': {peerId: number, dialog?: Dialog},\n 'dialog_migrate': {migrateFrom: number, migrateTo: number},\n //'dialog_top': Dialog,\n 'dialog_notify_settings': Dialog,\n 'dialogs_multiupdate': {[peerId: string]: Dialog},\n 'dialogs_archived_unread': {count: number},\n \n 'history_append': {storage: MessagesStorage, peerId: number, mid: number},\n 'history_update': {storage: MessagesStorage, peerId: number, mid: number},\n 'history_reply_markup': {peerId: number},\n 'history_multiappend': AppMessagesManager['newMessagesToHandle'],\n 'history_delete': {peerId: number, msgs: {[mid: number]: true}},\n 'history_forbidden': number,\n 'history_reload': number,\n 'history_focus': number,\n //'history_request': void,\n \n 'message_edit': {storage: MessagesStorage, peerId: number, mid: number},\n 'message_views': {mid: number, views: number},\n 'message_sent': {storage: MessagesStorage, tempId: number, tempMessage: any, mid: number},\n 'messages_pending': void,\n 'messages_read': void,\n 'messages_downloaded': {peerId: number, mids: number[]},\n 'messages_media_read': {peerId: number, mids: number[]},\n\n 'replies_updated': Message.message,\n\n 'scheduled_new': {peerId: number, mid: number},\n 'scheduled_delete': {peerId: number, mids: number[]},\n\n 'album_edit': {peerId: number, groupId: string, deletedMids: number[]},\n\n 'stickers_installed': StickerSet.stickerSet,\n 'stickers_deleted': StickerSet.stickerSet,\n\n 'audio_play': {doc: MyDocument, mid: number, peerId: number},\n 'audio_pause': void,\n \n 'state_synchronized': number,\n 'state_synchronizing': number,\n \n 'contacts_update': number,\n 'avatar_update': number,\n 'chat_full_update': number,\n 'poll_update': {poll: Poll, results: PollResults},\n 'chat_update': number,\n 'channel_settings': {channelId: number},\n 'webpage_updated': {id: string, msgs: number[]},\n\n 'apiUpdate': Update,\n 'download_progress': any,\n 'connection_status_change': ConnectionStatusChange,\n 'settings_updated': {key: string, value: any},\n 'draft_updated': {peerId: number, threadId: number, draft: MyDraftMessage | undefined},\n\n 'event-heavy-animation-start': void,\n 'event-heavy-animation-end': void,\n\n 'im_mount': void,\n 'im_tab_change': number,\n\n 'idle': boolean,\n\n 'overlay_toggle': boolean,\n\n 'background_change': void,\n\n 'privacy_update': Update.updatePrivacy,\n\n 'notify_settings': Update.updateNotifySettings,\n 'notify_peer_type_settings': {key: Exclude<NotifyPeer['_'], 'notifyPeer'>, settings: PeerNotifySettings},\n\n 'language_change': void,\n};\n\nexport class RootScope extends EventListenerBase<any> {\n private _overlayIsActive: boolean = false;\n public myId = 0;\n public idle = {\n isIDLE: true\n };\n public connectionStatus: {[name: string]: ConnectionStatusChange} = {};\n public settings: State['settings'];\n\n constructor() {\n super();\n\n this.on('user_auth', (e) => {\n this.myId = e;\n });\n\n this.on('connection_status_change', (e) => {\n const status = e;\n this.connectionStatus[e.name] = status;\n });\n }\n\n get overlayIsActive() {\n return this._overlayIsActive;\n }\n\n set overlayIsActive(value: boolean) {\n this._overlayIsActive = value;\n this.broadcast('overlay_toggle', value);\n }\n\n public broadcast = <T extends keyof BroadcastEvents>(name: T, detail?: BroadcastEvents[T]) => {\n /* //if(DEBUG) {\n if(name !== 'user_update') {\n console.debug('Broadcasting ' + name + ' event, with args:', detail);\n }\n //} */\n\n this.dispatchEvent(name, detail);\n };\n\n public on = <T extends keyof BroadcastEvents>(name: T, callback: (e: BroadcastEvents[T]) => any, once?: true) => {\n super.addEventListener(name, callback, once);\n };\n\n public addEventListener = this.on;\n\n public off = <T extends keyof BroadcastEvents>(name: T, callback: (e: BroadcastEvents[T]) => any) => {\n super.removeEventListener(name, callback);\n };\n\n public removeEventListener = this.off;\n}\n\nconst rootScope = new RootScope();\nMOUNT_CLASS_TO.rootScope = rootScope;\nexport default rootScope;\n\nrootScope.addEventListener('album_edit', (e) => {\n \n});\n\nrootScope.addEventListener<'album_edit'>('album_edit', (e) => {\n \n});\n"],"sourceRoot":""}