403Webshell
Server IP : 62.72.47.131  /  Your IP : 216.73.217.34
Web Server : Apache/2.4.66 (Debian)
System : Linux 975cdb959a49 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64
User :  ( 501)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/html/wp-content/themes/medicate/inc/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wp-content/themes/medicate/inc/classes/jsmin.php
<?php
/**
 * jsmin.php - PHP implementation of Douglas Crockford's JSMin.
 *
 * This is pretty much a direct port of jsmin.c to PHP with just a few
 * PHP-specific performance tweaks. Also, whereas jsmin.c reads from stdin and
 * outputs to stdout, this library accepts a string as input and returns another
 * string as output.
 *
 * PHP 5 or higher is required.
 *
 * Permission is hereby granted to use this version of the library under the
 * same terms as jsmin.c, which has the following license:
 *
 * --
 * Copyright (c) 2002 Douglas Crockford  (www.crockford.com)
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of
 * this software and associated documentation files (the "Software"), to deal in
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is furnished to do
 * so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * The Software shall be used for Good, not Evil.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 * --
 *
 * @package   JSMin
 * @author    Ryan Grove <ryan@wonko.com>
 * @copyright 2002 Douglas Crockford <douglas@crockford.com> (jsmin.c)
 * @copyright 2008 Ryan Grove <ryan@wonko.com> (PHP port)
 * @license   http://opensource.org/licenses/mit-license.php MIT License
 * @version   1.1.1 (2008-03-02)
 * @link      http://code.google.com/p/jsmin-php/
 */

class JSMin {
	const ORD_LF = 10;
	const ORD_SPACE = 32;

	protected $a = '';
	protected $b = '';
	protected $input = '';
	protected $inputIndex = 0;
	protected $inputLength = 0;
	protected $lookAhead = null;
	protected $output = '';

	// -- Public Static Methods --------------------------------------------------

	public function __construct( $input ) {
		$this->input       = str_replace( "\r\n", "\n", $input );
		$this->inputLength = strlen( $this->input );
	}

	// -- Public Instance Methods ------------------------------------------------

	public static function minify( $js ) {
		$jsmin = new JSMin( $js );

		return $jsmin->ideapark_min();
	}

	// -- Protected Instance Methods ---------------------------------------------


	/* action -- do something! What you do is determined by the argument:
			1   Output A. Copy B to A. Get the next B.
			2   Copy B to A. Get the next B. (Delete A).
			3   Get the next B. (Delete B).
	   action treats a string as a single character. Wow!
	   action recognizes a regular expression if it is preceded by ( or , or =.
	*/

	protected function ideapark_min() {
		$this->a = "\n";
		$this->ideapark_action( 3 );

		while ( $this->a !== null ) {
			switch ( $this->a ) {
				case ' ':
					if ( $this->ideapark_isAlphaNum( $this->b ) ) {
						$this->ideapark_action( 1 );
					} else {
						$this->ideapark_action( 2 );
					}
					break;

				case "\n":
					switch ( $this->b ) {
						case '{':
						case '[':
						case '(':
						case '+':
						case '-':
							$this->ideapark_action( 1 );
							break;

						case ' ':
							$this->ideapark_action( 3 );
							break;

						default:
							if ( $this->ideapark_isAlphaNum( $this->b ) ) {
								$this->ideapark_action( 1 );
							} else {
								$this->ideapark_action( 2 );
							}
					}
					break;

				default:
					switch ( $this->b ) {
						case ' ':
							if ( $this->ideapark_isAlphaNum( $this->a ) ) {
								$this->ideapark_action( 1 );
								break;
							}

							$this->ideapark_action( 3 );
							break;

						case "\n":
							switch ( $this->a ) {
								case '}':
								case ']':
								case ')':
								case '+':
								case '-':
								case '"':
								case "'":
									$this->ideapark_action( 1 );
									break;

								default:
									if ( $this->ideapark_isAlphaNum( $this->a ) ) {
										$this->ideapark_action( 1 );
									} else {
										$this->ideapark_action( 3 );
									}
							}
							break;

						default:
							$this->ideapark_action( 1 );
							break;
					}
			}
		}

		return $this->output;
	}

	protected function ideapark_action( $d ) {
		switch ( $d ) {
			case 1:
				$this->output .= $this->a;

			case 2:
				$this->a = $this->b;

				if ( $this->a === "'" || $this->a === '"' ) {
					for ( ; ; ) {
						$this->output .= $this->a;
						$this->a      = $this->ideapark_get();

						if ( $this->a === $this->b ) {
							break;
						}

						if ( ord( $this->a ) <= self::ORD_LF ) {
							throw new JSMinException( 'Unterminated string literal.' );
						}

						if ( $this->a === '\\' ) {
							$this->output .= $this->a;
							$this->a      = $this->ideapark_get();
						}
					}
				}

			case 3:
				$this->b = $this->ideapark_next();

				if ( $this->b === '/' && (
						$this->a === '(' || $this->a === ',' || $this->a === '=' ||
						$this->a === ':' || $this->a === '[' || $this->a === '!' ||
						$this->a === '&' || $this->a === '|' || $this->a === '?' ||
						$this->a === '{' || $this->a === '}' || $this->a === ';' ||
						$this->a === "\n" ) ) {

					$this->output .= $this->a . $this->b;

					for ( ; ; ) {
						$this->a = $this->ideapark_get();

						if ( $this->a === '[' ) {
							/*
							  inside a regex [...] set, which MAY contain a '/' itself. Example: mootools Form.Validator near line 460:
								return Form.Validator.getValidator('IsEmpty').test(element) || (/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]\.?){0,63}[a-z0-9!#$%&'*+/=?^_`{|}~-]@(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\])$/i).test(element.get('value'));
							*/
							for ( ; ; ) {
								$this->output .= $this->a;
								$this->a      = $this->ideapark_get();

								if ( $this->a === ']' ) {
									break;
								} elseif ( $this->a === '\\' ) {
									$this->output .= $this->a;
									$this->a      = $this->ideapark_get();
								} elseif ( ord( $this->a ) <= self::ORD_LF ) {
									throw new JSMinException( 'Unterminated regular expression set in regex literal.' );
								}
							}
						} elseif ( $this->a === '/' ) {
							break;
						} elseif ( $this->a === '\\' ) {
							$this->output .= $this->a;
							$this->a      = $this->ideapark_get();
						} elseif ( ord( $this->a ) <= self::ORD_LF ) {
							throw new JSMinException( 'Unterminated regular expression literal.' );
						}

						$this->output .= $this->a;
					}

					$this->b = $this->ideapark_next();
				}
		}
	}

	/* isAlphanum -- return true if the character is a letter, digit, underscore,
		  dollar sign, or non-ASCII character.
	*/

	protected function ideapark_get() {
		$c               = $this->lookAhead;
		$this->lookAhead = null;

		if ( $c === null ) {
			if ( $this->inputIndex < $this->inputLength ) {
				$c                = substr( $this->input, $this->inputIndex, 1 );
				$this->inputIndex += 1;
			} else {
				$c = null;
			}
		}

		if ( $c === "\r" ) {
			return "\n";
		}

		if ( $c === null || $c === "\n" || ord( $c ) >= self::ORD_SPACE ) {
			return $c;
		}

		return ' ';
	}

	protected function ideapark_next() {
		$c = $this->ideapark_get();

		if ( $c === '/' ) {
			switch ( $this->ideapark_peek() ) {
				case '/':
					for ( ; ; ) {
						$c = $this->ideapark_get();

						if ( ord( $c ) <= self::ORD_LF ) {
							return $c;
						}
					}

				case '*':
					$this->ideapark_get();

					for ( ; ; ) {
						switch ( $this->ideapark_get() ) {
							case '*':
								if ( $this->ideapark_peek() === '/' ) {
									$this->ideapark_get();

									return ' ';
								}
								break;

							case null:
								throw new JSMinException( 'Unterminated comment.' );
						}
					}

				default:
					return $c;
			}
		}

		return $c;
	}

	/* next -- get the next character, excluding comments. peek() is used to see
			   if a '/' is followed by a '/' or '*'.
	*/

	protected function ideapark_peek() {
		$this->lookAhead = $this->ideapark_get();

		return $this->lookAhead;
	}

	protected function ideapark_isAlphaNum( $c ) {
		return ord( $c ) > 126 || $c === '\\' || preg_match( '/^[\w\$]$/', $c ) === 1;
	}
}

// -- Exceptions ---------------------------------------------------------------
class JSMinException extends Exception {
}


Youez - 2016 - github.com/yon3zu
LinuXploit