!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache. PHP/5.3.29 

uname -a: Linux tardis23.nocplanet.net 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024
x86_64
 

 

Safe-mode: OFF (not secure)

/opt/cpanel/ea-libxml2/include/libxml2/libxml/   drwxr-xr-x
Free 1007.77 GB of 1859.98 GB (54.18%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     xpathInternals.h (17.36 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/**
 * @file
 * 
 * @brief internal interfaces for XML Path Language implementation
 * 
 * internal interfaces for XML Path Language implementation
 *              used to build new modules on top of XPath like XPointer and
 *              XSLT
 *
 * @copyright See Copyright for the status of this software.
 *
 * @author Daniel Veillard
 */

#ifndef __XML_XPATH_INTERNALS_H__
#define __XML_XPATH_INTERNALS_H__

#include <stdio.h>
#include <libxml/xmlversion.h>
#include <libxml/xpath.h>

#ifdef LIBXML_XPATH_ENABLED

#ifdef __cplusplus
extern "C" {
#endif

/**
 * Push a value on the stack
 *
 * @deprecated Use #xmlXPathValuePush
 */
#define valuePush xmlXPathValuePush
/**
 * Pop a value from the stack
 *
 * @deprecated Use #xmlXPathValuePop
 */
#define valuePop xmlXPathValuePop

/************************************************************************
 *                                    *
 *            Helpers                        *
 *                                    *
 ************************************************************************/

/*
 * Many of these macros may later turn into functions. They
 * shouldn't be used in \#ifdef's preprocessor instructions.
 */
/**
 * Raises an error.
 *
 * @param ctxt  an XPath parser context
 * @param err  an xmlXPathError code
 */
#define xmlXPathSetError(ctxt, err)                    \
    { xmlXPatherror((ctxt), __FILE__, __LINE__, (err));            \
      if ((ctxt) != NULL) (ctxt)->error = (err); }

/**
 * Raises an XPATH_INVALID_ARITY error.
 *
 * @param ctxt  an XPath parser context
 */
#define xmlXPathSetArityError(ctxt)                    \
    xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)

/**
 * Raises an XPATH_INVALID_TYPE error.
 *
 * @param ctxt  an XPath parser context
 */
#define xmlXPathSetTypeError(ctxt)                    \
    xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)

/**
 * Get the error code of an XPath context.
 *
 * @param ctxt  an XPath parser context
 * @returns the context error.
 */
#define xmlXPathGetError(ctxt)      ((ctxt)->error)

/**
 * Check if an XPath error was raised.
 *
 * @param ctxt  an XPath parser context
 * @returns true if an error has been raised, false otherwise.
 */
#define xmlXPathCheckError(ctxt)  ((ctxt)->error != XPATH_EXPRESSION_OK)

/**
 * Get the document of an XPath context.
 *
 * @param ctxt  an XPath parser context
 * @returns the context document.
 */
#define xmlXPathGetDocument(ctxt)    ((ctxt)->context->doc)

/**
 * Get the context node of an XPath context.
 *
 * @param ctxt  an XPath parser context
 * @returns the context node.
 */
#define xmlXPathGetContextNode(ctxt)    ((ctxt)->context->node)

XMLPUBFUN int
        xmlXPathPopBoolean    (xmlXPathParserContext *ctxt);
XMLPUBFUN double
        xmlXPathPopNumber    (xmlXPathParserContext *ctxt);
XMLPUBFUN xmlChar *
        xmlXPathPopString    (xmlXPathParserContext *ctxt);
XMLPUBFUN xmlNodeSet *
        xmlXPathPopNodeSet    (xmlXPathParserContext *ctxt);
XMLPUBFUN void *
        xmlXPathPopExternal    (xmlXPathParserContext *ctxt);

/**
 * Pushes the boolean `val` on the context stack.
 *
 * @param ctxt  an XPath parser context
 * @param val  a boolean
 */
#define xmlXPathReturnBoolean(ctxt, val)                \
    valuePush((ctxt), xmlXPathNewBoolean(val))

/**
 * Pushes true on the context stack.
 *
 * @param ctxt  an XPath parser context
 */
#define xmlXPathReturnTrue(ctxt)   xmlXPathReturnBoolean((ctxt), 1)

/**
 * Pushes false on the context stack.
 *
 * @param ctxt  an XPath parser context
 */
#define xmlXPathReturnFalse(ctxt)  xmlXPathReturnBoolean((ctxt), 0)

/**
 * Pushes the double `val` on the context stack.
 *
 * @param ctxt  an XPath parser context
 * @param val  a double
 */
#define xmlXPathReturnNumber(ctxt, val)                    \
    valuePush((ctxt), xmlXPathNewFloat(val))

/**
 * Pushes the string `str` on the context stack.
 *
 * @param ctxt  an XPath parser context
 * @param str  a string
 */
#define xmlXPathReturnString(ctxt, str)                    \
    valuePush((ctxt), xmlXPathWrapString(str))

/**
 * Pushes an empty string on the stack.
 *
 * @param ctxt  an XPath parser context
 */
#define xmlXPathReturnEmptyString(ctxt)                    \
    valuePush((ctxt), xmlXPathNewCString(""))

/**
 * Pushes the node-set `ns` on the context stack.
 *
 * @param ctxt  an XPath parser context
 * @param ns  a node-set
 */
#define xmlXPathReturnNodeSet(ctxt, ns)                    \
    valuePush((ctxt), xmlXPathWrapNodeSet(ns))

/**
 * Pushes an empty node-set on the context stack.
 *
 * @param ctxt  an XPath parser context
 */
#define xmlXPathReturnEmptyNodeSet(ctxt)                \
    valuePush((ctxt), xmlXPathNewNodeSet(NULL))

/**
 * Pushes user data on the context stack.
 *
 * @param ctxt  an XPath parser context
 * @param val  user data
 */
#define xmlXPathReturnExternal(ctxt, val)                \
    valuePush((ctxt), xmlXPathWrapExternal(val))

/**
 * Check if the current value on the XPath stack is a node set or
 * an XSLT value tree.
 *
 * @param ctxt  an XPath parser context
 * @returns true if the current object on the stack is a node-set.
 */
#define xmlXPathStackIsNodeSet(ctxt)                    \
    (((ctxt)->value != NULL)                        \
     && (((ctxt)->value->type == XPATH_NODESET)                \
         || ((ctxt)->value->type == XPATH_XSLT_TREE)))

/**
 * Checks if the current value on the XPath stack is an external
 * object.
 *
 * @param ctxt  an XPath parser context
 * @returns true if the current object on the stack is an external
 * object.
 */
#define xmlXPathStackIsExternal(ctxt)                    \
    ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))

/**
 * Empties a node-set.
 *
 * @param ns  a node-set
 */
#define xmlXPathEmptyNodeSet(ns)                    \
    { while ((ns)->nodeNr > 0) (ns)->nodeTab[--(ns)->nodeNr] = NULL; }

/**
 * Macro to return from the function if an XPath error was detected.
 */
#define CHECK_ERROR                            \
    if (ctxt->error != XPATH_EXPRESSION_OK) return

/**
 * Macro to return 0 from the function if an XPath error was detected.
 */
#define CHECK_ERROR0                            \
    if (ctxt->error != XPATH_EXPRESSION_OK) return(0)

/**
 * Macro to raise an XPath error and return.
 *
 * @param X  the error code
 */
#define XP_ERROR(X)                            \
    { xmlXPathErr(ctxt, X); return; }

/**
 * Macro to raise an XPath error and return 0.
 *
 * @param X  the error code
 */
#define XP_ERROR0(X)                            \
    { xmlXPathErr(ctxt, X); return(0); }

/**
 * Macro to check that the value on top of the XPath stack is of a given
 * type.
 *
 * @param typeval  the XPath type
 */
#define CHECK_TYPE(typeval)                        \
    if ((ctxt->value == NULL) || (ctxt->value->type != typeval))    \
        XP_ERROR(XPATH_INVALID_TYPE)

/**
 * Macro to check that the value on top of the XPath stack is of a given
 * type. Return(0) in case of failure
 *
 * @param typeval  the XPath type
 */
#define CHECK_TYPE0(typeval)                        \
    if ((ctxt->value == NULL) || (ctxt->value->type != typeval))    \
        XP_ERROR0(XPATH_INVALID_TYPE)

/**
 * Macro to check that the number of args passed to an XPath function matches.
 *
 * @param x  the number of expected args
 */
#define CHECK_ARITY(x)                            \
    if (ctxt == NULL) return;                        \
    if (nargs != (x))                            \
        XP_ERROR(XPATH_INVALID_ARITY);                    \
    if (ctxt->valueNr < (x))                        \
        XP_ERROR(XPATH_STACK_ERROR);

/**
 * Macro to try to cast the value on the top of the XPath stack to a string.
 */
#define CAST_TO_STRING                            \
    if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING))    \
        xmlXPathStringFunction(ctxt, 1);

/**
 * Macro to try to cast the value on the top of the XPath stack to a number.
 */
#define CAST_TO_NUMBER                            \
    if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER))    \
        xmlXPathNumberFunction(ctxt, 1);

/**
 * Macro to try to cast the value on the top of the XPath stack to a boolean.
 */
#define CAST_TO_BOOLEAN                            \
    if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN))    \
        xmlXPathBooleanFunction(ctxt, 1);

/*
 * Variable Lookup forwarding.
 */

XMLPUBFUN void
    xmlXPathRegisterVariableLookup    (xmlXPathContext *ctxt,
                     xmlXPathVariableLookupFunc f,
                     void *data);

/*
 * Function Lookup forwarding.
 */

XMLPUBFUN void
        xmlXPathRegisterFuncLookup    (xmlXPathContext *ctxt,
                     xmlXPathFuncLookupFunc f,
                     void *funcCtxt);

/*
 * Error reporting.
 */
XMLPUBFUN void
        xmlXPatherror    (xmlXPathParserContext *ctxt,
                 const char *file,
                 int line,
                 int no);

XMLPUBFUN void
        xmlXPathErr    (xmlXPathParserContext *ctxt,
                 int error);

#ifdef LIBXML_DEBUG_ENABLED
XMLPUBFUN void
        xmlXPathDebugDumpObject    (FILE *output,
                     xmlXPathObject *cur,
                     int depth);
XMLPUBFUN void
        xmlXPathDebugDumpCompExpr(FILE *output,
                     xmlXPathCompExpr *comp,
                     int depth);
#endif
/**
 * NodeSet handling.
 */
XMLPUBFUN int
        xmlXPathNodeSetContains        (xmlNodeSet *cur,
                         xmlNode *val);
XMLPUBFUN xmlNodeSet *
        xmlXPathDifference        (xmlNodeSet *nodes1,
                         xmlNodeSet *nodes2);
XMLPUBFUN xmlNodeSet *
        xmlXPathIntersection        (xmlNodeSet *nodes1,
                         xmlNodeSet *nodes2);

XMLPUBFUN xmlNodeSet *
        xmlXPathDistinctSorted        (xmlNodeSet *nodes);
XMLPUBFUN xmlNodeSet *
        xmlXPathDistinct        (xmlNodeSet *nodes);

XMLPUBFUN int
        xmlXPathHasSameNodes        (xmlNodeSet *nodes1,
                         xmlNodeSet *nodes2);

XMLPUBFUN xmlNodeSet *
        xmlXPathNodeLeadingSorted    (xmlNodeSet *nodes,
                         xmlNode *node);
XMLPUBFUN xmlNodeSet *
        xmlXPathLeadingSorted        (xmlNodeSet *nodes1,
                         xmlNodeSet *nodes2);
XMLPUBFUN xmlNodeSet *
        xmlXPathNodeLeading        (xmlNodeSet *nodes,
                         xmlNode *node);
XMLPUBFUN xmlNodeSet *
        xmlXPathLeading            (xmlNodeSet *nodes1,
                         xmlNodeSet *nodes2);

XMLPUBFUN xmlNodeSet *
        xmlXPathNodeTrailingSorted    (xmlNodeSet *nodes,
                         xmlNode *node);
XMLPUBFUN xmlNodeSet *
        xmlXPathTrailingSorted        (xmlNodeSet *nodes1,
                         xmlNodeSet *nodes2);
XMLPUBFUN xmlNodeSet *
        xmlXPathNodeTrailing        (xmlNodeSet *nodes,
                         xmlNode *node);
XMLPUBFUN xmlNodeSet *
        xmlXPathTrailing        (xmlNodeSet *nodes1,
                         xmlNodeSet *nodes2);


/**
 * Extending a context.
 */

XMLPUBFUN int
        xmlXPathRegisterNs        (xmlXPathContext *ctxt,
                         const xmlChar *prefix,
                         const xmlChar *ns_uri);
XMLPUBFUN const xmlChar *
        xmlXPathNsLookup        (xmlXPathContext *ctxt,
                         const xmlChar *prefix);
XMLPUBFUN void
        xmlXPathRegisteredNsCleanup    (xmlXPathContext *ctxt);

XMLPUBFUN int
        xmlXPathRegisterFunc        (xmlXPathContext *ctxt,
                         const xmlChar *name,
                         xmlXPathFunction f);
XMLPUBFUN int
        xmlXPathRegisterFuncNS        (xmlXPathContext *ctxt,
                         const xmlChar *name,
                         const xmlChar *ns_uri,
                         xmlXPathFunction f);
XMLPUBFUN int
        xmlXPathRegisterVariable    (xmlXPathContext *ctxt,
                         const xmlChar *name,
                         xmlXPathObject *value);
XMLPUBFUN int
        xmlXPathRegisterVariableNS    (xmlXPathContext *ctxt,
                         const xmlChar *name,
                         const xmlChar *ns_uri,
                         xmlXPathObject *value);
XMLPUBFUN xmlXPathFunction
        xmlXPathFunctionLookup        (xmlXPathContext *ctxt,
                         const xmlChar *name);
XMLPUBFUN xmlXPathFunction
        xmlXPathFunctionLookupNS    (xmlXPathContext *ctxt,
                         const xmlChar *name,
                         const xmlChar *ns_uri);
XMLPUBFUN void
        xmlXPathRegisteredFuncsCleanup    (xmlXPathContext *ctxt);
XMLPUBFUN xmlXPathObject *
        xmlXPathVariableLookup        (xmlXPathContext *ctxt,
                         const xmlChar *name);
XMLPUBFUN xmlXPathObject *
        xmlXPathVariableLookupNS    (xmlXPathContext *ctxt,
                         const xmlChar *name,
                         const xmlChar *ns_uri);
XMLPUBFUN void
        xmlXPathRegisteredVariablesCleanup(xmlXPathContext *ctxt);

/**
 * Utilities to extend XPath.
 */
XMLPUBFUN xmlXPathParserContext *
          xmlXPathNewParserContext    (const xmlChar *str,
                         xmlXPathContext *ctxt);
XMLPUBFUN void
        xmlXPathFreeParserContext    (xmlXPathParserContext *ctxt);

XMLPUBFUN xmlXPathObject *
        xmlXPathValuePop        (xmlXPathParserContext *ctxt);
XMLPUBFUN int
        xmlXPathValuePush        (xmlXPathParserContext *ctxt,
                         xmlXPathObject *value);

XMLPUBFUN xmlXPathObject *
        xmlXPathNewString        (const xmlChar *val);
XMLPUBFUN xmlXPathObject *
        xmlXPathNewCString        (const char *val);
XMLPUBFUN xmlXPathObject *
        xmlXPathWrapString        (xmlChar *val);
XMLPUBFUN xmlXPathObject *
        xmlXPathWrapCString        (char * val);
XMLPUBFUN xmlXPathObject *
        xmlXPathNewFloat        (double val);
XMLPUBFUN xmlXPathObject *
        xmlXPathNewBoolean        (int val);
XMLPUBFUN xmlXPathObject *
        xmlXPathNewNodeSet        (xmlNode *val);
XMLPUBFUN xmlXPathObject *
        xmlXPathNewValueTree        (xmlNode *val);
XMLPUBFUN int
        xmlXPathNodeSetAdd        (xmlNodeSet *cur,
                         xmlNode *val);
XMLPUBFUN int
        xmlXPathNodeSetAddUnique    (xmlNodeSet *cur,
                         xmlNode *val);
XMLPUBFUN int
        xmlXPathNodeSetAddNs        (xmlNodeSet *cur,
                         xmlNode *node,
                         xmlNs *ns);
XMLPUBFUN void
        xmlXPathNodeSetSort        (xmlNodeSet *set);

XMLPUBFUN void
        xmlXPathRoot            (xmlXPathParserContext *ctxt);
XML_DEPRECATED
XMLPUBFUN void
        xmlXPathEvalExpr        (xmlXPathParserContext *ctxt);
XMLPUBFUN xmlChar *
        xmlXPathParseName        (xmlXPathParserContext *ctxt);
XMLPUBFUN xmlChar *
        xmlXPathParseNCName        (xmlXPathParserContext *ctxt);

/*
 * Existing functions.
 */
XMLPUBFUN double
        xmlXPathStringEvalNumber    (const xmlChar *str);
XMLPUBFUN int
        xmlXPathEvaluatePredicateResult (xmlXPathParserContext *ctxt,
                         xmlXPathObject *res);
XMLPUBFUN void
        xmlXPathRegisterAllFunctions    (xmlXPathContext *ctxt);
XMLPUBFUN xmlNodeSet *
        xmlXPathNodeSetMerge        (xmlNodeSet *val1,
                         xmlNodeSet *val2);
XMLPUBFUN void
        xmlXPathNodeSetDel        (xmlNodeSet *cur,
                         xmlNode *val);
XMLPUBFUN void
        xmlXPathNodeSetRemove        (xmlNodeSet *cur,
                         int val);
XMLPUBFUN xmlXPathObject *
        xmlXPathNewNodeSetList        (xmlNodeSet *val);
XMLPUBFUN xmlXPathObject *
        xmlXPathWrapNodeSet        (xmlNodeSet *val);
XMLPUBFUN xmlXPathObject *
        xmlXPathWrapExternal        (void *val);

XMLPUBFUN int xmlXPathEqualValues(xmlXPathParserContext *ctxt);
XMLPUBFUN int xmlXPathNotEqualValues(xmlXPathParserContext *ctxt);
XMLPUBFUN int xmlXPathCompareValues(xmlXPathParserContext *ctxt, int inf, int strict);
XMLPUBFUN void xmlXPathValueFlipSign(xmlXPathParserContext *ctxt);
XMLPUBFUN void xmlXPathAddValues(xmlXPathParserContext *ctxt);
XMLPUBFUN void xmlXPathSubValues(xmlXPathParserContext *ctxt);
XMLPUBFUN void xmlXPathMultValues(xmlXPathParserContext *ctxt);
XMLPUBFUN void xmlXPathDivValues(xmlXPathParserContext *ctxt);
XMLPUBFUN void xmlXPathModValues(xmlXPathParserContext *ctxt);

XMLPUBFUN int xmlXPathIsNodeType(const xmlChar *name);

/*
 * Some of the axis navigation routines.
 */
XMLPUBFUN xmlNode *xmlXPathNextSelf(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextChild(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextDescendant(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextDescendantOrSelf(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextParent(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextAncestorOrSelf(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextFollowingSibling(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextFollowing(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextNamespace(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextAttribute(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextPreceding(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextAncestor(xmlXPathParserContext *ctxt,
            xmlNode *cur);
XMLPUBFUN xmlNode *xmlXPathNextPrecedingSibling(xmlXPathParserContext *ctxt,
            xmlNode *cur);
/*
 * The official core of XPath functions.
 */
XMLPUBFUN void xmlXPathLastFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathPositionFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathCountFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathIdFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathLocalNameFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathNamespaceURIFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathStringFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathStringLengthFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathConcatFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathContainsFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathStartsWithFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathSubstringFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathSubstringBeforeFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathSubstringAfterFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathNormalizeFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathTranslateFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathNotFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathTrueFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathFalseFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathLangFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathNumberFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathSumFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathFloorFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathCeilingFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathRoundFunction(xmlXPathParserContext *ctxt, int nargs);
XMLPUBFUN void xmlXPathBooleanFunction(xmlXPathParserContext *ctxt, int nargs);

/**
 * Really internal functions
 */
XMLPUBFUN void xmlXPathNodeSetFreeNs(xmlNs *ns);

#ifdef __cplusplus
}
#endif

#endif /* LIBXML_XPATH_ENABLED */
#endif /* ! __XML_XPATH_INTERNALS_H__ */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0223 ]--