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

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

?? docdecoder.cpp

?? 此文件為Word 格式文件.DOC轉換為TXT文件的源代碼。
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
#include "StdAfx.h"
#include ".\docdecoder.h"


CDocDecoder::CDocDecoder(CPublicResource *ps):
		CDecoderBase(ps)
{
	reset();
}

CDocDecoder::~CDocDecoder(void)
{
}

void
CDocDecoder::vDestroyTextBlockList(void)
{
	list_mem_type	*apAnchor[5];
	list_mem_type	*pCurr, *pNext;
	int	iIndex;

	apAnchor[0] = pTextAnchor;
	apAnchor[1] = pFootAnchor;
	apAnchor[2] = pUnused1Anchor;
	apAnchor[3] = pEndAnchor;
	apAnchor[4] = pUnused2Anchor;

	for (iIndex = 0; iIndex < 5; iIndex++) {
		pCurr = apAnchor[iIndex];
		while (pCurr != NULL) {
			pNext = pCurr->pNext;
			pCurr = (list_mem_type *)xfree(pCurr);
			pCurr = pNext;
		}
	}
	/* Show that there are no lists any more */
	pTextAnchor = NULL;
	pFootAnchor = NULL;
	pUnused1Anchor = NULL;
	pEndAnchor = NULL;
	pUnused2Anchor = NULL;
	/* Reset all the controle variables */
	pBlockLast = NULL;
	pTextBlockCurrent = NULL;
	pFootBlockCurrent = NULL;
} /* end of vDestroyTextBlockList */


bool
CDocDecoder::bAdd2TextBlockList(text_block_type *pTextBlock)
{
	list_mem_type	*pListMember;

	if (pTextBlock->iFileOffset < 0 ||
		pTextBlock->iTextOffset < 0 ||
		pTextBlock->iLength <= 0) {
//			werr(0, "Software (textblock) error");
			return false;
		}
		/* Check for continuous blocks of the same character size */
		if (pBlockLast != NULL &&
			pBlockLast->tInfo.iFileOffset +
			pBlockLast->tInfo.iLength == pTextBlock->iFileOffset &&
			pBlockLast->tInfo.iTextOffset +
			pBlockLast->tInfo.iLength == pTextBlock->iTextOffset &&
			pBlockLast->tInfo.bUsesUnicode == pTextBlock->bUsesUnicode) {
				/* These are continous blocks */
				pBlockLast->tInfo.iLength += pTextBlock->iLength;
				return TRUE;
			}
			/* Make a new block */
			pListMember = (list_mem_type *)xmalloc(sizeof(list_mem_type));
			/* Add the block to the list */
			pListMember->tInfo = *pTextBlock;
			pListMember->pNext = NULL;
			if (pTextAnchor == NULL) {
				pTextAnchor = pListMember;
			} else {
				pBlockLast->pNext = pListMember;
			}
			pBlockLast = pListMember;
			return TRUE;
} /* end of bAdd2TextBlockList */



void
CDocDecoder::vSplitBlockList(int iTextLen, int iFootnoteLen,
				int iUnused1Len, int iEndnoteLen, int iUnused2Len,
				bool bMustExtend)
{
	list_mem_type	*apAnchors[5];
	list_mem_type	*pGarbageAnchor, *pCurr, *pNext;
	int		iIndex, iCharsToGo, iBytesTooFar;

	/* Text block list */
	if (iTextLen > 0) {
		iCharsToGo = iTextLen;
		iBytesTooFar = -1;
		for (pCurr = pTextAnchor;
			pCurr != NULL;
			pCurr = pCurr->pNext) {
				if (pCurr->tInfo.bUsesUnicode) {
					iCharsToGo -= pCurr->tInfo.iLength / 2;
					if (iCharsToGo < 0) {
						iBytesTooFar = -2 * iCharsToGo;
					}
				} else {
					iCharsToGo -= pCurr->tInfo.iLength;
					if (iCharsToGo < 0) {
						iBytesTooFar = -iCharsToGo;
					}
				}
				if (iCharsToGo <= 0) {
					break;
				}
			}
	}
	/* Split the list */
	if (iTextLen <= 0) {
		/* Empty text blocks list */
		pFootAnchor = pTextAnchor;
		pTextAnchor = NULL;
	} else if (pCurr == NULL) {
		/* No footnote blocks */
		pFootAnchor = NULL;
	} else if (iCharsToGo == 0) {
		/* Move the integral number of footnote blocks */
		pFootAnchor = pCurr->pNext;
		pCurr->pNext = NULL;
	} else {
		/* Split the part-text block, part-footnote block */
		pFootAnchor = (list_mem_type *)xmalloc(sizeof(list_mem_type));
		pFootAnchor->tInfo.iFileOffset =
			pCurr->tInfo.iFileOffset +
			pCurr->tInfo.iLength -
			iBytesTooFar;
		pFootAnchor->tInfo.iTextOffset =
			pCurr->tInfo.iTextOffset +
			pCurr->tInfo.iLength -
			iBytesTooFar;
		pFootAnchor->tInfo.iLength = iBytesTooFar;
		pCurr->tInfo.iLength -= iBytesTooFar;
		pFootAnchor->tInfo.bUsesUnicode = pCurr->tInfo.bUsesUnicode;
		/* Move the integral number of footnote blocks */
		pFootAnchor->pNext = pCurr->pNext;
		pCurr->pNext = NULL;
	}
	/* Footnote block list */
	if (iFootnoteLen > 0) {
		iCharsToGo = iFootnoteLen;
		iBytesTooFar = -1;
		for (pCurr = pFootAnchor;
			pCurr != NULL;
			pCurr = pCurr->pNext) {
				if (pCurr->tInfo.bUsesUnicode) {
					iCharsToGo -= pCurr->tInfo.iLength / 2;
					if (iCharsToGo < 0) {
						iBytesTooFar = -2 * iCharsToGo;
					}
				} else {
					iCharsToGo -= pCurr->tInfo.iLength;
					if (iCharsToGo < 0) {
						iBytesTooFar = -iCharsToGo;
					}
				}
				if (iCharsToGo <= 0) {
					break;
				}
			}
	}
	/* Split the list */
	if (iFootnoteLen <= 0) {
		/* Empty footnote list */
		pUnused1Anchor = pFootAnchor;
		pFootAnchor = NULL;
	} else if (pCurr == NULL) {
		/* No unused1 blocks */
		pUnused1Anchor = NULL;
	} else if (iCharsToGo == 0) {
		/* Move the integral number of unused1-list blocks */
		pUnused1Anchor = pCurr->pNext;
		pCurr->pNext = NULL;
	} else {
		/* Split the part-footnote block, part-unused1 block */
		pUnused1Anchor = (list_mem_type *)xmalloc(sizeof(list_mem_type));
		pUnused1Anchor->tInfo.iFileOffset =
			pCurr->tInfo.iFileOffset +
			pCurr->tInfo.iLength -
			iBytesTooFar;
		pUnused1Anchor->tInfo.iTextOffset =
			pCurr->tInfo.iTextOffset +
			pCurr->tInfo.iLength -
			iBytesTooFar;
		pUnused1Anchor->tInfo.iLength = iBytesTooFar;
		pCurr->tInfo.iLength -= iBytesTooFar;
		pUnused1Anchor->tInfo.bUsesUnicode =
			pCurr->tInfo.bUsesUnicode;
		/* Move the integral number of unused1 blocks */
		pUnused1Anchor->pNext = pCurr->pNext;
		pCurr->pNext = NULL;
	}
	/* Unused1 block list */
	if (iUnused1Len > 0) {
		iCharsToGo = iUnused1Len;
		iBytesTooFar = -1;
		for (pCurr = pUnused1Anchor;
			pCurr != NULL;
			pCurr = pCurr->pNext) {
				if (pCurr->tInfo.bUsesUnicode) {
					iCharsToGo -= pCurr->tInfo.iLength / 2;
					if (iCharsToGo < 0) {
						iBytesTooFar = -2 * iCharsToGo;
					}
				} else {
					iCharsToGo -= pCurr->tInfo.iLength;
					if (iCharsToGo < 0) {
						iBytesTooFar = -iCharsToGo;
					}
				}
				if (iCharsToGo <= 0) {
					break;
				}
			}
	}
	/* Split the list */
	if (iUnused1Len <= 0) {
		/* Empty unused1 list */
		pEndAnchor = pUnused1Anchor;
		pUnused1Anchor = NULL;
	} else if (pCurr == NULL) {
		/* No endnote blocks */
		pEndAnchor = NULL;
	} else if (iCharsToGo == 0) {
		/* Move the intergral number of endnote blocks */
		pEndAnchor = pCurr->pNext;
		pCurr->pNext = NULL;
	} else {
		/* Split the part-unused1-list block, part-endnote block */
		pEndAnchor = (list_mem_type *)xmalloc(sizeof(list_mem_type));
		pEndAnchor->tInfo.iFileOffset =
			pCurr->tInfo.iFileOffset +
			pCurr->tInfo.iLength -
			iBytesTooFar;
		pEndAnchor->tInfo.iTextOffset =
			pCurr->tInfo.iTextOffset +
			pCurr->tInfo.iLength -
			iBytesTooFar;
		pEndAnchor->tInfo.iLength = iBytesTooFar;
		pCurr->tInfo.iLength -= iBytesTooFar;
		pEndAnchor->tInfo.bUsesUnicode = pCurr->tInfo.bUsesUnicode;
		/* Move the integral number of endnote blocks */
		pEndAnchor->pNext = pCurr->pNext;
		pCurr->pNext = NULL;
	}
	/* Endnote block list */
	if (iEndnoteLen > 0) {
		iCharsToGo = iEndnoteLen;
		iBytesTooFar = -1;
		for (pCurr = pEndAnchor;
			pCurr != NULL;
			pCurr = pCurr->pNext) {
				if (pCurr->tInfo.bUsesUnicode) {
					iCharsToGo -= pCurr->tInfo.iLength / 2;
					if (iCharsToGo <= 0) {
						iBytesTooFar = -2 * iCharsToGo;
					}
				} else {
					iCharsToGo -= pCurr->tInfo.iLength;
					if (iCharsToGo <= 0) {
						iBytesTooFar = -iCharsToGo;
					}
				}
				if (iCharsToGo <= 0) {
					break;
				}
			}
	}
	/* Split the list */
	if (iEndnoteLen <= 0) {
		/* Empty endnote list */
		pUnused2Anchor = pEndAnchor;
		pEndAnchor = NULL;
	} else if (pCurr == NULL) {
		/* No unused2 blocks */
		pUnused2Anchor = NULL;
	} else if (iCharsToGo == 0) {
		/* Move the intergral number of unused2 blocks */
		pUnused2Anchor = pCurr->pNext;
		pCurr->pNext = NULL;
	} else {
		/* Split the part-endnote block, part-unused2 block */
		pUnused2Anchor = (list_mem_type *)xmalloc(sizeof(list_mem_type));
		pUnused2Anchor->tInfo.iFileOffset =
			pCurr->tInfo.iFileOffset +
			pCurr->tInfo.iLength -
			iBytesTooFar;
		pUnused2Anchor->tInfo.iTextOffset =
			pCurr->tInfo.iTextOffset +
			pCurr->tInfo.iLength -
			iBytesTooFar;
		pUnused2Anchor->tInfo.iLength = iBytesTooFar;
		pCurr->tInfo.iLength -= iBytesTooFar;
		pUnused2Anchor->tInfo.bUsesUnicode =
			pCurr->tInfo.bUsesUnicode;
		/* Move the integral number of unused2 blocks */
		pUnused2Anchor->pNext = pCurr->pNext;
		pCurr->pNext = NULL;
	}
	/* Unused2 block list */
	if (iUnused2Len > 0) {
		iCharsToGo = iUnused2Len;
		iBytesTooFar = -1;
		for (pCurr = pUnused2Anchor;
			pCurr != NULL;
			pCurr = pCurr->pNext) {
				if (pCurr->tInfo.bUsesUnicode) {
					iCharsToGo -= pCurr->tInfo.iLength / 2;
					if (iCharsToGo < 0) {
						iBytesTooFar = -2 * iCharsToGo;
					}
				} else {
					iCharsToGo -= pCurr->tInfo.iLength;
					if (iCharsToGo < 0) {
						iBytesTooFar = -iCharsToGo;
					}
				}
				if (iCharsToGo <= 0) {
					break;
				}
			}
	}
	if (iUnused2Len <= 0) {
		/* Empty unused2 list */
		pGarbageAnchor = pUnused2Anchor;
		pUnused2Anchor = NULL;
	} else if (pCurr == NULL) {
		/* No garbage block list */
		pGarbageAnchor = NULL;
	} else if (iCharsToGo == 0) {
		/* Move the intergral number of garbage blocks */
		pGarbageAnchor = pCurr->pNext;
	} else {
		/* Reduce the part-endnote block */
		pCurr->tInfo.iLength -= iBytesTooFar;
		/* Move the integral number of garbage blocks */
		pGarbageAnchor = pCurr->pNext;
		pCurr->pNext = NULL;
	}
	/* Free the garbage block list, this should never be needed */
	pCurr = pGarbageAnchor;
	while (pCurr != NULL) {
		pNext = pCurr->pNext;
		pCurr = (list_mem_type *)xfree(pCurr);
		pCurr = pNext;
	}


	if (!bMustExtend) {
		return;
	}
	/*
	* All blocks (except the last one) must have a length that
	* is a multiple of the Big Block Size
	*/

	apAnchors[0] = pTextAnchor;
	apAnchors[1] = pFootAnchor;
	apAnchors[2] = pUnused1Anchor;
	apAnchors[3] = pEndAnchor;
	apAnchors[4] = pUnused2Anchor;

	for (iIndex = 0; iIndex < 5; iIndex++) {
		for (pCurr = apAnchors[iIndex];
			pCurr != NULL;
			pCurr = pCurr->pNext) {
				if (pCurr->pNext != NULL &&
					pCurr->tInfo.iLength % BIG_BLOCK_SIZE != 0) {
						pCurr->tInfo.iLength /= BIG_BLOCK_SIZE;
						pCurr->tInfo.iLength++;
						pCurr->tInfo.iLength *= BIG_BLOCK_SIZE;
					}
			}
	}
} /* end of vSplitBlockList */


unsigned int
CDocDecoder::uiGetDocumentLength(void)
{
	list_mem_type	*apAnchors[3];
	list_mem_type	*pCurr;
	int	iTotal, iIndex;

	apAnchors[0] = pTextAnchor;
	apAnchors[1] = pFootAnchor;
	apAnchors[2] = pEndAnchor;

	iTotal = 0;
	for (iIndex = 0; iIndex < 3; iIndex++) {
		for (pCurr = apAnchors[iIndex];
			pCurr != NULL;
			pCurr = pCurr->pNext) {
				if (pCurr->tInfo.bUsesUnicode) {
					iTotal += pCurr->tInfo.iLength / 2;
				} else {
					iTotal += pCurr->tInfo.iLength;
				}
			}
	}
	return iTotal;
} /* end of uiGetDocumentLength */


int
CDocDecoder::iNextTextByte(unsigned char *pFile, int *piOffset)
{
	static int	iByteNext = 0;
	static int	iBlockOffset = 0;
	int	iReadLen, iReadOff;

	if (pTextBlockCurrent == NULL ||
		iByteNext >= sizeof(aucBlock) ||
		iBlockOffset + iByteNext >= pTextBlockCurrent->tInfo.iLength) {
			if (pTextBlockCurrent == NULL) {
				/* First block, first part */
				pTextBlockCurrent = pTextAnchor;
				iBlockOffset = 0;
			} else if ((iBlockOffset + (signed)sizeof(aucBlock)) <
				pTextBlockCurrent->tInfo.iLength) {
					/* Same block, next part */
					iBlockOffset += sizeof(aucBlock);
				} else {
					/* Next block, first part */
					pTextBlockCurrent = pTextBlockCurrent->pNext;
					iBlockOffset = 0;
				}
				if (pTextBlockCurrent == NULL) {
					/* Past the last part of the last block */
					return EOF;
				}
				iReadLen = pTextBlockCurrent->tInfo.iLength - iBlockOffset;
				if (iReadLen > sizeof(aucBlock)) {
					iReadLen = sizeof(aucBlock);
				}
				iReadOff = pTextBlockCurrent->tInfo.iFileOffset +
					iBlockOffset;
				if (!bReadBytes(aucBlock, iReadLen, iReadOff, pFile)) {
					return EOF;
				}
				iByteNext = 0;
		}
		if (piOffset != NULL) {
			*piOffset = pTextBlockCurrent->tInfo.iFileOffset +
				iBlockOffset +
				iByteNext;
		}
		return aucBlock[iByteNext++];
} /* end of iNextTextByte */


int
CDocDecoder::iNextFootByte(unsigned char *pFile, int *piOffset)
{
	static int	iByteNext = 0;
	static int	iBlockOffset = 0;
	int	iReadLen, iReadOff;

	if (pFootBlockCurrent == NULL ||
		iByteNext >= sizeof(aucBlock) ||
		iBlockOffset + iByteNext >= pFootBlockCurrent->tInfo.iLength) {
			if (pFootBlockCurrent == NULL) {
				/* First block, first part */
				pFootBlockCurrent = pFootAnchor;
				iBlockOffset = 0;
			} else if (iBlockOffset + (signed)sizeof(aucBlock) <
				pFootBlockCurrent->tInfo.iLength) {
					/* Same block, next part */
					iBlockOffset += sizeof(aucBlock);
				} else {
					/* Next block, first part */
					pFootBlockCurrent = pFootBlockCurrent->pNext;
					iBlockOffset = 0;
				}
				if (pFootBlockCurrent == NULL) {
					/* Past the last part of the last block */
					return EOF;
				}
				iReadLen = pFootBlockCurrent->tInfo.iLength - iBlockOffset;
				if (iReadLen > sizeof(aucBlock)) {
					iReadLen = sizeof(aucBlock);
				}
				iReadOff = pFootBlockCurrent->tInfo.iFileOffset +
					iBlockOffset;
				if (!bReadBytes(aucBlock, iReadLen, iReadOff, pFile)) {
					return EOF;
				}
				iByteNext = 0;
		}
		if (piOffset != NULL) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品亲子伦对白| 激情综合色丁香一区二区| 午夜日韩在线电影| 国产在线视频一区二区| 91久久一区二区| 久久人人爽爽爽人久久久| 综合亚洲深深色噜噜狠狠网站| 美女尤物国产一区| 91麻豆蜜桃一区二区三区| 久久久久亚洲综合| 秋霞电影网一区二区| 欧美在线高清视频| 国产精品区一区二区三区| 精品中文字幕一区二区| 欧美精品日韩综合在线| 依依成人综合视频| av一区二区不卡| 国产农村妇女毛片精品久久麻豆 | 欧美日韩国产小视频在线观看| 久久久99免费| 美女脱光内衣内裤视频久久网站 | 国产大陆a不卡| 欧美浪妇xxxx高跟鞋交| 亚洲小说欧美激情另类| 色综合久久88色综合天天免费| 亚洲国产精品精华液ab| 国产高清一区日本| 国产亚洲成aⅴ人片在线观看| 美女被吸乳得到大胸91| 在线综合视频播放| 亚洲高清视频在线| 欧美三级日本三级少妇99| 亚洲黄色免费电影| 91啪九色porn原创视频在线观看| 国产精品久久久久婷婷二区次| 国产一区视频网站| 久久精品亚洲国产奇米99| 国产一区二区h| 国产亚洲欧洲997久久综合 | 国产拍揄自揄精品视频麻豆| 国产综合久久久久久鬼色| 日韩片之四级片| 精品无码三级在线观看视频| 久久久美女毛片| 成人中文字幕在线| 中文字幕一区二区不卡 | 国产精品69久久久久水密桃| 久久久久国产精品厨房| 成人天堂资源www在线| 最新热久久免费视频| 一本久久精品一区二区| 亚洲午夜久久久久久久久电影网 | 麻豆久久久久久| 亚洲精品在线三区| 国产成人福利片| 亚洲欧美一区二区三区孕妇| 欧美三级电影一区| 日本不卡一区二区| 久久久久久一二三区| 成人午夜激情在线| 亚洲午夜久久久久| 欧美成人精品二区三区99精品| 国产精品99久久久| 亚洲精品一二三区| 日韩三级视频在线看| 成人国产亚洲欧美成人综合网| 亚洲激情在线激情| 日韩午夜小视频| 国产成人精品影视| 亚洲一区二区av在线| 欧美成人精品福利| 91视频在线观看| 美女久久久精品| 亚洲色图视频网站| 欧美白人最猛性xxxxx69交| 99视频在线精品| 日韩av在线播放中文字幕| 综合激情成人伊人| 欧美成人艳星乳罩| 在线精品视频免费观看| 国内精品视频一区二区三区八戒| 亚洲图片欧美激情| 欧美电影精品一区二区| 色琪琪一区二区三区亚洲区| 国产一区二区三区免费看| 一区二区三区四区蜜桃| 国产亚洲欧美日韩日本| 51久久夜色精品国产麻豆| aaa亚洲精品一二三区| 日本aⅴ精品一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品天干天干在线综合| 欧美一区二区久久| 91免费观看视频在线| 国产麻豆精品久久一二三| 亚洲成人福利片| 亚洲特级片在线| 国产情人综合久久777777| 777久久久精品| 欧美视频在线播放| 91在线免费播放| 成人丝袜高跟foot| 国产99精品国产| 韩国av一区二区三区在线观看| 亚洲va天堂va国产va久| 亚洲六月丁香色婷婷综合久久 | xfplay精品久久| 91精品国产综合久久久蜜臀粉嫩| 91蜜桃免费观看视频| eeuss鲁片一区二区三区| 欧美三级午夜理伦三级中视频| 洋洋成人永久网站入口| 色吊一区二区三区| 亚洲一区中文日韩| 九一久久久久久| 国产高清无密码一区二区三区| 激情文学综合网| 国产九九视频一区二区三区| 成人成人成人在线视频| 日韩国产欧美在线播放| 国产一区二区在线影院| 99国产一区二区三精品乱码| 欧美一区二区视频在线观看2020| 久久综合九色综合97婷婷女人| 中文字幕一区视频| 午夜欧美视频在线观看| 国产.欧美.日韩| 欧美顶级少妇做爰| 国产精品免费人成网站| 日韩激情av在线| 成人av资源网站| 欧美大片国产精品| 亚洲综合色噜噜狠狠| 国产一区二区三区在线看麻豆| 色先锋资源久久综合| 国产视频一区在线播放| 亚洲丶国产丶欧美一区二区三区| 国产精品538一区二区在线| 欧美日韩第一区日日骚| 亚洲日本乱码在线观看| 国产成人在线电影| 欧美一级精品在线| 亚洲一区av在线| 成人高清免费观看| 欧美不卡激情三级在线观看| 亚洲一区二区三区不卡国产欧美| 国产福利91精品一区二区三区| 91.xcao| 椎名由奈av一区二区三区| 国产精品白丝jk黑袜喷水| 日韩欧美www| 亚洲福利视频三区| 96av麻豆蜜桃一区二区| 久久免费视频一区| 麻豆极品一区二区三区| 91精品久久久久久久99蜜桃| 亚洲一区二区三区影院| 91欧美一区二区| 日韩一区有码在线| 丁香天五香天堂综合| 2017欧美狠狠色| 久久99精品久久久久久国产越南| 欧美日韩成人综合在线一区二区| 亚洲欧美经典视频| 色屁屁一区二区| 亚洲黄色尤物视频| 91丨九色丨黑人外教| 亚洲视频1区2区| 99精品在线免费| 亚洲欧美日韩国产另类专区| av在线一区二区| 亚洲色图在线看| 色天天综合色天天久久| 亚洲一区日韩精品中文字幕| 欧洲精品一区二区| 亚洲无人区一区| 欧美日韩亚洲国产综合| 天天av天天翘天天综合网色鬼国产 | 国产真实精品久久二三区| 日韩精品中文字幕在线不卡尤物 | 国产蜜臀av在线一区二区三区| 麻豆91在线看| 久久久综合九色合综国产精品| 国产成人三级在线观看| 国产欧美精品一区aⅴ影院| 成人福利在线看| 亚洲免费成人av| 欧美日韩一本到| 免费观看30秒视频久久| 久久久99免费| 99精品1区2区| 日韩影视精彩在线| 久久噜噜亚洲综合| 一本久久精品一区二区| 婷婷中文字幕综合| 国产人成亚洲第一网站在线播放| 99国产精品久久久久| 亚洲成人av资源| 久久噜噜亚洲综合| 欧美综合一区二区|