亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pcre_compile.c

?? SDL文件。SDL_ERROwenjian.....
?? C
?? 第 1 頁 / 共 5 頁
字號:
/**************************************************      Perl-Compatible Regular Expressions       **************************************************//* PCRE is a library of functions to support regular expressions whose syntaxand semantics are as close as possible to those of the Perl 5 language.                       Written by Philip Hazel           Copyright (c) 1997-2007 University of Cambridge-----------------------------------------------------------------------------Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions are met:    * Redistributions of source code must retain the above copyright notice,      this list of conditions and the following disclaimer.    * Redistributions in binary form must reproduce the above copyright      notice, this list of conditions and the following disclaimer in the      documentation and/or other materials provided with the distribution.    * Neither the name of the University of Cambridge nor the names of its      contributors may be used to endorse or promote products derived from      this software without specific prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THEIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OFSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE.-----------------------------------------------------------------------------*//* This module contains the external function pcre_compile(), along withsupporting internal functions that are not used by other modules. */#ifdef HAVE_CONFIG_H#include "config.h"#endif#define NLBLOCK cd             /* Block containing newline information */#define PSSTART start_pattern  /* Field containing processed string start */#define PSEND   end_pattern    /* Field containing processed string end */#include "pcre_internal.h"/* When DEBUG is defined, we need the pcre_printint() function, which is alsoused by pcretest. DEBUG is not defined when building a production library. */#ifdef DEBUG#include "pcre_printint.src"#endif/* Macro for setting individual bits in class bitmaps. */#define SETBIT(a,b) a[b/8] |= (1 << (b%8))/* Maximum length value to check against when making sure that the integer thatholds the compiled pattern length does not overflow. We make it a bit less thanINT_MAX to allow for adding in group terminating bytes, so that we don't haveto check them every time. */#define OFLOW_MAX (INT_MAX - 20)/**************************************************      Code parameters and static tables         **************************************************//* This value specifies the size of stack workspace that is used during thefirst pre-compile phase that determines how much memory is required. The regexis partly compiled into this space, but the compiled parts are discarded assoon as they can be, so that hopefully there will never be an overrun. The codedoes, however, check for an overrun. The largest amount I've seen used is 218,so this number is very generous.The same workspace is used during the second, actual compile phase forremembering forward references to groups so that they can be filled in at theend. Each entry in this list occupies LINK_SIZE bytes, so even when LINK_SIZEis 4 there is plenty of room. */#define COMPILE_WORK_SIZE (4096)/* Table for handling escaped characters in the range '0'-'z'. Positive returnsare simple data values; negative values are for special things like \d and soon. Zero means further processing is needed (for things like \x), or the escapeis invalid. */#ifndef EBCDIC  /* This is the "normal" table for ASCII systems */static const short int escapes[] = {     0,      0,      0,      0,      0,      0,      0,      0,   /* 0 - 7 */     0,      0,    ':',    ';',    '<',    '=',    '>',    '?',   /* 8 - ? */   '@', -ESC_A, -ESC_B, -ESC_C, -ESC_D, -ESC_E,      0, -ESC_G,   /* @ - G */-ESC_H,      0,      0, -ESC_K,      0,      0,      0,      0,   /* H - O */-ESC_P, -ESC_Q, -ESC_R, -ESC_S,      0,      0, -ESC_V, -ESC_W,   /* P - W */-ESC_X,      0, -ESC_Z,    '[',   '\\',    ']',    '^',    '_',   /* X - _ */   '`',      7, -ESC_b,      0, -ESC_d,  ESC_e,  ESC_f,      0,   /* ` - g */-ESC_h,      0,      0, -ESC_k,      0,      0,  ESC_n,      0,   /* h - o */-ESC_p,      0,  ESC_r, -ESC_s,  ESC_tee,    0, -ESC_v, -ESC_w,   /* p - w */     0,      0, -ESC_z                                            /* x - z */};#else           /* This is the "abnormal" table for EBCDIC systems */static const short int escapes[] = {/*  48 */     0,     0,      0,     '.',    '<',   '(',    '+',    '|',/*  50 */   '&',     0,      0,       0,      0,     0,      0,      0,/*  58 */     0,     0,    '!',     '$',    '*',   ')',    ';',    '~',/*  60 */   '-',   '/',      0,       0,      0,     0,      0,      0,/*  68 */     0,     0,    '|',     ',',    '%',   '_',    '>',    '?',/*  70 */     0,     0,      0,       0,      0,     0,      0,      0,/*  78 */     0,   '`',    ':',     '#',    '@',  '\'',    '=',    '"',/*  80 */     0,     7, -ESC_b,       0, -ESC_d, ESC_e,  ESC_f,      0,/*  88 */-ESC_h,     0,      0,     '{',      0,     0,      0,      0,/*  90 */     0,     0, -ESC_k,     'l',      0, ESC_n,      0, -ESC_p,/*  98 */     0, ESC_r,      0,     '}',      0,     0,      0,      0,/*  A0 */     0,   '~', -ESC_s, ESC_tee,      0,-ESC_v, -ESC_w,      0,/*  A8 */     0,-ESC_z,      0,       0,      0,   '[',      0,      0,/*  B0 */     0,     0,      0,       0,      0,     0,      0,      0,/*  B8 */     0,     0,      0,       0,      0,   ']',    '=',    '-',/*  C0 */   '{',-ESC_A, -ESC_B,  -ESC_C, -ESC_D,-ESC_E,      0, -ESC_G,/*  C8 */-ESC_H,     0,      0,       0,      0,     0,      0,      0,/*  D0 */   '}',     0, -ESC_K,       0,      0,     0,      0, -ESC_P,/*  D8 */-ESC_Q,-ESC_R,      0,       0,      0,     0,      0,      0,/*  E0 */  '\\',     0, -ESC_S,       0,      0,-ESC_V, -ESC_W, -ESC_X,/*  E8 */     0,-ESC_Z,      0,       0,      0,     0,      0,      0,/*  F0 */     0,     0,      0,       0,      0,     0,      0,      0,/*  F8 */     0,     0,      0,       0,      0,     0,      0,      0};#endif/* Table of special "verbs" like (*PRUNE). This is a short table, so it issearched linearly. Put all the names into a single string, in order to reducethe number of relocations when a shared library is dynamically linked. */typedef struct verbitem {  int   len;  int   op;} verbitem;static const char verbnames[] =  "ACCEPT\0"  "COMMIT\0"  "F\0"  "FAIL\0"  "PRUNE\0"  "SKIP\0"  "THEN";static verbitem verbs[] = {  { 6, OP_ACCEPT },  { 6, OP_COMMIT },  { 1, OP_FAIL },  { 4, OP_FAIL },  { 5, OP_PRUNE },  { 4, OP_SKIP  },  { 4, OP_THEN  }};static int verbcount = sizeof(verbs)/sizeof(verbitem);/* Tables of names of POSIX character classes and their lengths. The names arenow all in a single string, to reduce the number of relocations when a sharedlibrary is dynamically loaded. The list of lengths is terminated by a zerolength entry. The first three must be alpha, lower, upper, as this is assumedfor handling case independence. */static const char posix_names[] =  "alpha\0"  "lower\0"  "upper\0"  "alnum\0"  "ascii\0"  "blank\0"  "cntrl\0"  "digit\0"  "graph\0"  "print\0"  "punct\0"  "space\0"  "word\0"   "xdigit";static const uschar posix_name_lengths[] = {  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 0 };/* Table of class bit maps for each POSIX class. Each class is formed from abase map, with an optional addition or removal of another map. Then, for someclasses, there is some additional tweaking: for [:blank:] the vertical spacecharacters are removed, and for [:alpha:] and [:alnum:] the underscorecharacter is removed. The triples in the table consist of the base map offset,second map offset or -1 if no second map, and a non-negative value for mapaddition or a negative value for map subtraction (if there are two maps). Theabsolute value of the third field has these meanings: 0 => no tweaking, 1 =>remove vertical space characters, 2 => remove underscore. */static const int posix_class_maps[] = {  cbit_word,  cbit_digit, -2,             /* alpha */  cbit_lower, -1,          0,             /* lower */  cbit_upper, -1,          0,             /* upper */  cbit_word,  -1,          2,             /* alnum - word without underscore */  cbit_print, cbit_cntrl,  0,             /* ascii */  cbit_space, -1,          1,             /* blank - a GNU extension */  cbit_cntrl, -1,          0,             /* cntrl */  cbit_digit, -1,          0,             /* digit */  cbit_graph, -1,          0,             /* graph */  cbit_print, -1,          0,             /* print */  cbit_punct, -1,          0,             /* punct */  cbit_space, -1,          0,             /* space */  cbit_word,  -1,          0,             /* word - a Perl extension */  cbit_xdigit,-1,          0              /* xdigit */};#define STRING(a)  # a#define XSTRING(s) STRING(s)/* The texts of compile-time error messages. These are "char *" because theyare passed to the outside world. Do not ever re-use any error number, becausethey are documented. Always add a new error instead. Messages marked DEAD beloware no longer used. This used to be a table of strings, but in order to reducethe number of relocations needed when a shared library is loaded dynamically,it is now one long string. We cannot use a table of offsets, because thelengths of inserts such as XSTRING(MAX_NAME_SIZE) are not known. Instead, wesimply count through to the one we want - this isn't a performance issuebecause these strings are used only when there is a compilation error. */static const char error_texts[] =  "no error\0"  "\\ at end of pattern\0"  "\\c at end of pattern\0"  "unrecognized character follows \\\0"  "numbers out of order in {} quantifier\0"  /* 5 */  "number too big in {} quantifier\0"  "missing terminating ] for character class\0"  "invalid escape sequence in character class\0"  "range out of order in character class\0"  "nothing to repeat\0"  /* 10 */  "operand of unlimited repeat could match the empty string\0"  /** DEAD **/  "internal error: unexpected repeat\0"  "unrecognized character after (?\0"  "POSIX named classes are supported only within a class\0"  "missing )\0"  /* 15 */  "reference to non-existent subpattern\0"  "erroffset passed as NULL\0"  "unknown option bit(s) set\0"  "missing ) after comment\0"  "parentheses nested too deeply\0"  /** DEAD **/  /* 20 */  "regular expression is too large\0"  "failed to get memory\0"  "unmatched parentheses\0"  "internal error: code overflow\0"  "unrecognized character after (?<\0"  /* 25 */  "lookbehind assertion is not fixed length\0"  "malformed number or name after (?(\0"  "conditional group contains more than two branches\0"  "assertion expected after (?(\0"  "(?R or (?[+-]digits must be followed by )\0"  /* 30 */  "unknown POSIX class name\0"  "POSIX collating elements are not supported\0"  "this version of PCRE is not compiled with PCRE_UTF8 support\0"  "spare error\0"  /** DEAD **/  "character value in \\x{...} sequence is too large\0"  /* 35 */  "invalid condition (?(0)\0"  "\\C not allowed in lookbehind assertion\0"  "PCRE does not support \\L, \\l, \\N, \\U, or \\u\0"  "number after (?C is > 255\0"  "closing ) for (?C expected\0"  /* 40 */  "recursive call could loop indefinitely\0"  "unrecognized character after (?P\0"  "syntax error in subpattern name (missing terminator)\0"  "two named subpatterns have the same name\0"  "invalid UTF-8 string\0"  /* 45 */  "support for \\P, \\p, and \\X has not been compiled\0"  "malformed \\P or \\p sequence\0"  "unknown property name after \\P or \\p\0"  "subpattern name is too long (maximum " XSTRING(MAX_NAME_SIZE) " characters)\0"  "too many named subpatterns (maximum " XSTRING(MAX_NAME_COUNT) ")\0"  /* 50 */  "repeated subpattern is too long\0"    /** DEAD **/  "octal value is greater than \\377 (not in UTF-8 mode)\0"  "internal error: overran compiling workspace\0"  "internal error: previously-checked referenced subpattern not found\0"  "DEFINE group contains more than one branch\0"  /* 55 */  "repeating a DEFINE group is not allowed\0"  "inconsistent NEWLINE options\0"  "\\g is not followed by a braced name or an optionally braced non-zero number\0"  "(?+ or (?- or (?(+ or (?(- must be followed by a non-zero number\0"  "(*VERB) with an argument is not supported\0"  /* 60 */  "(*VERB) not recognized\0"  "number is too big";/* Table to identify digits and hex digits. This is used when compilingpatterns. Note that the tables in chartables are dependent on the locale, andmay mark arbitrary characters as digits - but the PCRE compiling code expectsto handle only 0-9, a-z, and A-Z as digits when compiling. That is why we havea private table here. It costs 256 bytes, but it is a lot faster than doingcharacter value tests (at least in some simple cases I timed), and in someapplications one wants PCRE to compile efficiently as well as matchefficiently.For convenience, we use the same bit definitions as in chartables:  0x04   decimal digit  0x08   hexadecimal digitThen we can use ctype_digit and ctype_xdigit in the code. */#ifndef EBCDIC  /* This is the "normal" case, for ASCII systems */static const unsigned char digitab[] =  {  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   0-  7 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   8- 15 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  16- 23 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  24- 31 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*    - '  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  ( - /  */  0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, /*  0 - 7  */  0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, /*  8 - ?  */  0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /*  @ - G  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  H - O  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  P - W  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  X - _  */  0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /*  ` - g  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  h - o  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  p - w  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  x -127 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */#else           /* This is the "abnormal" case, for EBCDIC systems */static const unsigned char digitab[] =  {  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   0-  7  0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   8- 15    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  16- 23 10 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  24- 31    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  32- 39 20 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  40- 47    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  48- 55 30 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  56- 63    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*    - 71 40 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  72- |     */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  & - 87 50 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  88- 95    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  - -103 60 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 104- ?     */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 112-119 70 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 120- "     */  0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /* 128- g  80 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  h -143    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144- p  90 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  q -159    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160- x  A0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  y -175    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  ^ -183 B0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191    */  0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /*  { - G  C0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  H -207    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  } - P  D0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  Q -223    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  \ - X  E0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  Y -239    */  0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, /*  0 - 7  F0 */  0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00};/*  8 -255    */static const unsigned char ebcdic_chartab[] = { /* chartable partial dup */  0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /*   0-  7 */  0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00, /*   8- 15 */  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /*  16- 23 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  24- 31 */  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /*  32- 39 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  40- 47 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  48- 55 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  56- 63 */  0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*    - 71 */  0x00,0x00,0x00,0x80,0x00,0x80,0x80,0x80, /*  72- |  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  & - 87 */  0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00, /*  88- 95 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  - -103 */  0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x80, /* 104- ?  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 112-119 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 120- "  */  0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* 128- g  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  h -143 */  0x00,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* 144- p  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  q -159 */  0x00,0x00,0x12,0x12,0x12,0x12,0x12,0x12, /* 160- x  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  y -175 */  0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  ^ -183 */  0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00, /* 184-191 */  0x80,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /*  { - G  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  H -207 */  0x00,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  } - P  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  Q -223 */  0x00,0x00,0x12,0x12,0x12,0x12,0x12,0x12, /*  \ - X  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  Y -239 */  0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /*  0 - 7  */  0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00};/*  8 -255 */#endif/* Definition to allow mutual recursion */static BOOL  compile_regex(int, int, uschar **, const uschar **, int *, BOOL, BOOL, int,    int *, int *, branch_chain *, compile_data *, int *);/**************************************************            Find an error text                  *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡av免费在线观看| 亚洲国产精品精华液网站| 在线观看一区日韩| 国产精品88av| 国产最新精品免费| 蜜桃一区二区三区四区| 亚洲第一在线综合网站| 中文字幕一区二区三区在线观看| 精品国产三级a在线观看| 欧美日韩在线免费视频| 91久久免费观看| 91网页版在线| 99久久伊人久久99| 国产成人免费在线视频| 国内精品视频666| 蜜臀av性久久久久蜜臀aⅴ| 亚洲va国产va欧美va观看| 亚洲一区二区在线观看视频 | 日本伊人色综合网| 亚洲国产欧美日韩另类综合| 亚洲欧洲综合另类在线| 亚洲天堂免费在线观看视频| 国产精品国产自产拍在线| 国产精品色呦呦| 日本一区二区三区在线观看| 久久综合五月天婷婷伊人| 久久婷婷色综合| 国产精品三级久久久久三级| 国产精品拍天天在线| 国产精品毛片高清在线完整版| 久久久蜜桃精品| 久久色视频免费观看| www久久精品| 国产精品美女久久久久久久久| 国产精品不卡一区二区三区| 亚洲图片你懂的| 亚洲午夜精品网| 热久久一区二区| 国产激情精品久久久第一区二区 | 欧美一级片免费看| 日韩一级片在线播放| 国产欧美一区二区精品秋霞影院| 国产欧美精品一区二区色综合朱莉| 国产精品污污网站在线观看| 日韩一区在线播放| 视频一区国产视频| 国产高清不卡一区| 在线看一区二区| 欧美变态凌虐bdsm| 亚洲精选视频免费看| 日韩av不卡在线观看| 不卡大黄网站免费看| 欧美亚洲国产一区二区三区| 亚洲精品一区在线观看| 亚洲欧美中日韩| 日本不卡高清视频| 一本色道久久加勒比精品 | 欧美日韩一区 二区 三区 久久精品| av午夜一区麻豆| 在线播放国产精品二区一二区四区| 欧美特级限制片免费在线观看| 精品欧美黑人一区二区三区| 中文字幕精品一区二区三区精品| 亚洲一二三四区| 美女视频黄久久| 欧洲一区在线观看| 中文字幕第一页久久| 奇米影视一区二区三区| 91一区二区三区在线观看| 欧美大片一区二区| 亚洲精品免费一二三区| 国产传媒久久文化传媒| 91精品综合久久久久久| 国产女人水真多18毛片18精品视频| 亚洲成人av资源| 99精品国产热久久91蜜凸| 欧美成人a视频| 天堂一区二区在线免费观看| 国产69精品久久99不卡| xnxx国产精品| 日韩国产欧美一区二区三区| 91色在线porny| 国产精品青草久久| 国产精品 日产精品 欧美精品| 91精品国产综合久久福利软件 | 青青草国产成人av片免费 | 亚洲日本韩国一区| 懂色av一区二区夜夜嗨| 精品国产乱码久久久久久老虎| 亚洲一区二区三区视频在线 | 91传媒视频在线播放| 中文一区二区完整视频在线观看| 精品一区二区三区视频在线观看| 777奇米成人网| 日韩精品一卡二卡三卡四卡无卡 | 一区二区三区日韩精品视频| eeuss影院一区二区三区| 国产精品欧美经典| av亚洲精华国产精华| 日韩美女视频一区| 91原创在线视频| 亚洲视频免费在线| 欧美在线免费视屏| 日日夜夜一区二区| 91麻豆精品91久久久久久清纯| 婷婷成人综合网| 日韩欧美一级特黄在线播放| 美女精品一区二区| 久久久久九九视频| 成人高清av在线| 亚洲人成网站精品片在线观看| 99精品在线免费| 亚洲综合一区在线| 欧美日韩国产首页| 亚洲成人精品在线观看| 日韩欧美中文一区| 床上的激情91.| 亚洲精品中文字幕在线观看| 欧美日韩1区2区| 久久精品国产一区二区| 国产精品少妇自拍| 欧美日韩在线综合| 精品一区二区三区影院在线午夜| 久久久久久9999| 成人午夜激情片| 中文字幕一区在线| 日韩欧美国产精品一区| 丁香婷婷综合激情五月色| 亚洲欧美日韩中文字幕一区二区三区| 欧美日韩www| 国产精品66部| 亚洲线精品一区二区三区八戒| 欧美成人艳星乳罩| 色8久久精品久久久久久蜜| 亚洲第一在线综合网站| 精品乱人伦小说| 91视频一区二区| 蜜桃一区二区三区在线观看| 亚洲天堂久久久久久久| 久久综合久色欧美综合狠狠| 日本久久一区二区三区| 国产精品一区免费在线观看| 亚洲图片欧美视频| 欧美激情一区二区三区在线| 日本国产一区二区| 亚洲国产精品久久人人爱| 亚洲私人影院在线观看| 日韩欧美你懂的| 精品视频在线免费观看| 国产99久久久国产精品免费看| 首页综合国产亚洲丝袜| 亚洲美腿欧美偷拍| 中文字幕一区三区| 国产欧美日韩在线| 精品国产sm最大网站免费看| 欧洲国产伦久久久久久久| 国产99精品国产| 国产精品一区一区| 久久成人羞羞网站| 日本美女一区二区三区视频| 亚洲一区二区三区影院| 亚洲免费观看高清完整版在线观看| 精品粉嫩aⅴ一区二区三区四区| 欧美亚洲图片小说| 欧美在线高清视频| 成人免费高清在线| 精品在线播放午夜| 亚洲国产成人高清精品| 天天综合天天做天天综合| 亚洲品质自拍视频网站| √…a在线天堂一区| 国产精品久久久久桃色tv| 国产女主播在线一区二区| 久久精品夜夜夜夜久久| 久久亚洲免费视频| 国产日韩精品一区二区浪潮av | 色系网站成人免费| 99在线精品观看| 色呦呦日韩精品| 99vv1com这只有精品| 欧美午夜影院一区| 欧美猛男男办公室激情| 欧美一区二区视频在线观看2022| 在线观看91精品国产麻豆| 在线不卡免费av| 久久久美女毛片| 亚洲桃色在线一区| 亚洲va在线va天堂| 精品亚洲成a人| 国产成人99久久亚洲综合精品| 国产精品综合久久| 成人综合在线网站| 欧美日产国产精品| 久久久久88色偷偷免费| 亚洲欧洲av在线| 日本午夜一区二区| 国产大陆精品国产| 欧美日韩一区二区三区高清| 日韩欧美一级精品久久| 中文字幕精品在线不卡|