精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我掌握了少數(shù)人才知道持續(xù)集成系統(tǒng)的日志密碼

安全 應(yīng)用安全
前段時(shí)間在使用 Travis CI 的時(shí)候發(fā)現(xiàn)它的部署日志包含了很多帶色彩的日志。

[[429062]]

前言

前段時(shí)間在使用 Travis CI 的時(shí)候發(fā)現(xiàn)它的部署日志包含了很多帶色彩的日志。

并且我們知道,在使用命令行終端的時(shí)候也會(huì)出現(xiàn)這些可愛的色彩。

當(dāng)然我不是為了吹它而吹它,它是有實(shí)際的作用的,能夠幫助我們快速定位問(wèn)題!

對(duì)此我就產(chǎn)生了好奇,Travis CI 是怎么把這些彩色日志搬到瀏覽器的?

我猜想肯定不是通過(guò)對(duì)關(guān)鍵字詞特征識(shí)別來(lái)做的,因?yàn)槟菢犹?low 了。

進(jìn)行了查詢后,查到了一個(gè)終于查到了關(guān)鍵詞,它就是 ANSI escape sequences。

ANSI轉(zhuǎn)義序列是帶內(nèi)信令的標(biāo)準(zhǔn),用于控制終端和終端仿真器上的光標(biāo)位置,顏色和一些其他選項(xiàng)。--維基百科

通俗地講,就是那些在終端輸出彩色的文字中包含了一些轉(zhuǎn)義序列字符,只不過(guò)我們看不到,被終端進(jìn)行了解析。然后終端將這些字符解析成了我們現(xiàn)在看到的形形色色多彩的日志(包括一些顏色、下劃線、粗體等)。

例如,我們?cè)诮K端進(jìn)行npm 的安裝,git 分支的切換,包括運(yùn)行報(bào)錯(cuò)的時(shí)候都能看到。

正是有了這些色彩,讓我們的調(diào)試工作效率大大提高,一眼便能看到哪些命令出錯(cuò)了,以及如何解決的方案。

現(xiàn)在我們要做的就是如何將這些色彩日志輸出到瀏覽器端。而進(jìn)行這個(gè)步驟之前,我們得先知道,這些ANSI轉(zhuǎn)義序列的形態(tài)是什么樣子的?

根據(jù)wiki我們可以知道 ANSI 轉(zhuǎn)義序列可以操作很多功能,例如光標(biāo)位置、顏色、下劃線和其他選項(xiàng)。下面我們就 顏色部分 來(lái)進(jìn)行講解。

ANSI 轉(zhuǎn)義序列

ANSI 轉(zhuǎn)義序列 也是跟隨著終端的發(fā)展而發(fā)展,顏色的規(guī)范也是隨著設(shè)備的不同有所區(qū)別。例如在早期的設(shè)備只支持 3 / 4 Bit ,支持的顏色分別為 8 / 16 種。

ANSI 轉(zhuǎn)義序列大多數(shù)以 ESC 和'['開頭嵌入到文本中,終端會(huì)查找并解釋為命令,而不是字符串。

ESC 的 ANSI 值為 27 ,8進(jìn)制表示為 \033 ,16進(jìn)制表示為 \u001B。

3/4 bit

原始規(guī)格只有 8/16 種顏色。

比如ESC[30;47m 它是以 ESC[ 開頭 m 結(jié)束,中間為code碼,以分號(hào)進(jìn)行分割。

color 取值為30-37,background 取值為 40-47。例如 :

  1. echo -e "\u001B[31m hello" 

(如果想要清除顏色就需要使用 ESC [39;49m(某些終端不支持) 或者ESC[0m )

后來(lái)的終端增加了直接指定 90-97 和 100-107 的“明亮”顏色的能力。

效果如下:

以下是其色彩對(duì)照表:

8-bit

后來(lái)由于256色在顯卡上很常見,因此添加了轉(zhuǎn)義序列以從預(yù)定義的256種顏色中進(jìn)行選擇,也就是說(shuō)在原來(lái)的書寫方式上增加了新的一位來(lái)代表更多的顏色。

  1. ESC[ 38;5;<n> m // 設(shè)置字體顏色 
  2. ESC[ 48;5;<n> m // 設(shè)置背景顏色 
  3.     0-7:  standard colors (as in ESC [ 30–37 m) 
  4.     8-15:  high intensity colors (as in ESC [ 90–97 m) 
  5.     16-231:  6 × 6 × 6 cube (216 colors): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5) 
  6.    232-255:  grayscale from black to white in 24 steps 

在支持更多色彩的終端中,例如:

  1. echo -e "\u001B[38;5;11m hello" 

代表輸出黃色字體。

  1. echo -e "\u001B[48;5;14;38;5;13m hello" 

代表輸出藍(lán)色背景,粉紅色字體。

以下是其色彩對(duì)照表:

24-bit

再往后發(fā)展就是支持 24 位真彩的顯卡,Xterm, KDE 的Konsole,以及所有基于 libvte 的終端(包括GNOME終端)支持24位前景和背景顏色設(shè)置。

  1. ESC[ 38;2;<r>;<g>;<b>m // 前景色 
  2. ESC[ 48;2;<r>;<g>;<b>m // 背景色 

例如:

  1. echo -e "\u001B[38;2;100;228;75m hello" 

輸出綠色的字體代表 rgb(100,228,75)。

解析工具

我們知道了轉(zhuǎn)義的規(guī)范后,那么我們需要將 ANSI 字符進(jìn)行解析。

由于規(guī)范比較多,因此我們先調(diào)研一下在 js 中常用的色彩庫(kù),來(lái)進(jìn)行一個(gè)小小的探索。

由于 3 / 4bit 的兼容性更好,大多數(shù)工具(如chalk)會(huì)采用這 8 / 16 色來(lái)做高亮,因此我們先實(shí)現(xiàn)一個(gè) 8 / 16 色的解析。

這里參考了 ansiparse 這個(gè)解析庫(kù):

核心思路為:

  1. const ansiparse = require('ansiparse'
  2.  
  3. const ansiStr = "\u001B[34mHello \u001B[39m World \u001B[31m! \u001B[39m" 
  4.  
  5. const json = ansiparse(ansiStr) 
  6. console.log(json) 
  7.  
  8. // json輸出如下: 
  9.   { foreground: 'blue', text: 'Hello ' }, 
  10.   { text: ' World ' }, 
  11.   { foreground: 'red', text: '! ' } 

然后我們可以寫一個(gè)函數(shù)來(lái)遍歷上面解析得到的 JSON數(shù)組,輸出 HTML。

  1. function createHtml(ansiList, wrap = '') { 
  2.     let html = ''
  3.     for (let i = 0; i < ansiList.length; i++) { 
  4.         const htmlFrame = ansiList[i]; 
  5.  
  6.         const {background = '', text, foreground = ''} = htmlFrame; 
  7.         if(background && foreground) { 
  8.             if(text.includes('\n')) { 
  9.                 html += wrap; 
  10.                 continue
  11.             } 
  12.             html += fontBgCode(text, foreground, background); 
  13.             continue
  14.         } 
  15.         if (background || foreground) { 
  16.             const color = background ? `bg-${background}` : foreground; 
  17.             let textColor = bgCode(text, color); 
  18.  
  19.             textColor = textColor.replace(/\n/g, wrap); 
  20.              
  21.             html += textColor; 
  22.             continue
  23.         } 
  24.         if (text.includes('\n')) { 
  25.             const textColor = text.replace(/\n/g, wrap); 
  26.             html += textColor; 
  27.             continue
  28.         } 
  29.         html += singleCode(text); 
  30.     } 
  31.     html += '' 
  32.     return html; 
  33.  
  34. function fontBgCode(value, color, bgColor) { 
  35.     return `<span class="${color} bg-${bgColor}">${value}</span>` 
  36.  
  37. function bgCode(value, color) { 
  38.     return `<span class="${color}">${value}</span>` 
  39.  
  40. function singleCode(value) { 
  41.     return `<span>${value}</span>` 

使用示例如下:

  1. const str = "\u001B[34mHello \u001B[39m World \u001B[31m! \u001B[39m"
  2.  
  3. console.log(createHtml(parseAnsi(str))); 
  4.  
  5. // <span class="blue">Hello</span><span> World</span><span class="red">!</span> 

部署實(shí)戰(zhàn)

有了上面的部分我們就來(lái)用一個(gè)簡(jiǎn)單的demo實(shí)際演示一下部署日志吧!

  1. // 項(xiàng)目目錄結(jié)構(gòu) 
  2. demo 
  3.  |- package.json 
  4.  |- index.html 
  5.  |- webpack.config.js 
  6.  |- /src 
  7.    |- index.js 
  8. index.js 
  9. build.sh 

我們?cè)?index.js 中啟動(dòng)一個(gè) build 腳本,來(lái)模擬一下我們真實(shí)的部署場(chǎng)景。

  1. const { spawn } = require('child_process'); 
  2. const cmd = spawn('sh', ['build.sh']); 
  3.  
  4. cmd.stdout.on('data', (data) => { 
  5.   console.log(`stdout: ${data}`); 
  6. }); 
  7.  
  8. cmd.stderr.on('data', (data) => { 
  9.   console.log(`stderr: ${data}`); 
  10. }); 
  11.  
  12. cmd.on('close', (code) => { 
  13.   console.log(`child process exited with code ${code}`); 
  14. }); 
  15. // build.sh 
  16.  
  17. cd demo 
  18.  
  19. npx webpack 

我們?cè)诮K端嘗試一下,控制臺(tái)輸入 node index.js

發(fā)現(xiàn)在輸出的日志中,并沒有看到對(duì)應(yīng)的色彩。

為什么從 child_process 為什么無(wú)法輸出色彩,而我們?nèi)绻诮K端中直接打包項(xiàng)目卻能夠輸出色彩呢?

Why?

第一反應(yīng)就是去查找根源,也就是使用頻率最高的幾個(gè)色彩輸出的庫(kù)。

以簡(jiǎn)單的方式給控制臺(tái)的輸出標(biāo)記顏色。

https://github.com/Marak/colors.js

https://github.com/chalk/chalk

在看了webpack-cli的源碼后,查到它是用了colorette作為色彩輸出庫(kù)的。

那么我們就來(lái)查看一下colorette的源碼一探究竟。

在入口文件的開頭就看到一個(gè)變量isColorSupported來(lái)判斷是否支持色彩輸出。

https://github.com/jorgebucaran/colorette/blob/main/index.js#L17

  1. // colorette/index.js 
  2. import * as tty from "tty" 
  3.  
  4. const env = process.env || {} 
  5. const argv = process.argv || [] 
  6.  
  7. const isDisabled = "NO_COLOR" in env || argv.includes("--no-color"
  8.  
  9. const isForced = "FORCE_COLOR" in env || argv.includes("--color"
  10. const isWindows = process.platform === "win32" 
  11. const isCompatibleTerminal = tty && tty.isatty && tty.isatty(1) && env.TERM && env.TERM !== "dumb" 
  12. const isCI = "CI" in env && ("GITHUB_ACTIONS" in env || "GITLAB_CI" in env || "CIRCLECI" in env) 
  13.  
  14. export const isColorSupported = !isDisabled && (isForced || isWindows || isCompatibleTerminal || isCI) 

可以看到這種工具判斷了很多條件,來(lái)對(duì)我們的輸出流進(jìn)行處理。

在以上條件成立下,才會(huì)輸出 ANSI 日志。在不滿足以上情況的條件下,就會(huì)切換輸出更容易解析的方式。

const isWindows = process.platform === "win32"

參考:https://stackoverflow.com/questions/8683895/how-do-i-determine-the-current-operating-system-with-node-js

dumb: "啞終端"

啞終端指不能執(zhí)行諸如“刪行”、“清屏”或“控制光標(biāo)位置”的一些特殊ANSI轉(zhuǎn)義序列的計(jì)算機(jī)終端

參考:https://zh.wikipedia.org/wiki/%E5%93%91%E7%BB%88%E7%AB%AF

也就是說(shuō)我們的 child_process 的輸出流關(guān)閉了終端模式(TTY),上面的四種情況都不滿足。所以我們得不到帶有 ANSI 的色彩日志。

How?

我們可以顯示傳入環(huán)境變量 FORCE_COLOR=1 或者命令帶上參數(shù) --color 強(qiáng)制啟動(dòng)顏色來(lái)解決這個(gè)問(wèn)題。

這樣我們就拿到了帶有 ANSI 顏色信息的輸出文本,最終解析得到 HTML。

  1. <div>asset <span class="green">main.js</span><span> 132 bytes </span><span class="yellow">[compared for emit]</span><span> </span><span class="green">[minimized]</span> (name: main)</div><div><span>./src/index.js</span><span> 289 bytes </span><span class="yellow">[built]</span><span> </span><span class="yellow">[code generated]</span></div><div></div><div><span class="yellow">WARNING</span><span> in </span>configuration</div><div>The <span class="red">'mode' option has not been set</span>, webpack will fallback to 'production' for this value.</div><div><span class="green">Set 'mode' option to 'development' or 'production'</span> to enable defaults for each environment.</div><div>You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/</div><div></div><div>webpack 5.53.0 compiled with <span class="yellow">1 warning</span> in 201 ms</div><div></div> 

然后就可以在瀏覽器中展示我們彩色的輸出日志了,與在終端里輸出的一致。

參考

https://www.twilio.com/blog/guide-node-js-logging

https://github.com/jorgebucaran/colorette/blob/main/index.js#L17

https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

https://stackoverflow.com/questions/4842424/list-of-ansi-color-escape-sequences

https://stackoverflow.com/questions/15011478/ansi-questions-x1b25h-and-x1be

https://bluesock.org/~willg/dev/ansi.html

https://www.cnblogs.com/gamesky/archive/2012/07/28/2613264.html

https://github.com/mmalecki/ansiparse

 

責(zé)任編輯:武曉燕 來(lái)源: 秋風(fēng)的筆記
相關(guān)推薦

2025-02-12 08:27:49

CSS選擇器ID

2012-11-20 09:57:14

2017-02-27 18:35:23

集成交付部署

2016-08-05 17:19:37

持續(xù)集成持續(xù)交付系統(tǒng)運(yùn)維

2017-10-19 09:47:55

容器化微服務(wù)集成

2023-03-19 11:47:57

Taro小程序持續(xù)集

2021-03-31 09:00:00

管道集成工具

2019-04-18 10:35:30

持續(xù)集成工具Buddy

2023-09-15 09:27:35

英偉達(dá)

2015-09-29 10:08:26

DockerJava持續(xù)集成

2015-07-22 14:59:30

OpenStac持續(xù)集成持續(xù)交付

2009-06-14 18:05:58

ibmdwWebSphere

2015-07-27 11:32:24

Docker持續(xù)集成Docker部署

2015-09-24 09:43:08

阮一峰持續(xù)集成

2021-09-03 11:33:38

Jenkins 微服務(wù)集成

2021-06-18 09:00:00

云計(jì)算開發(fā)存儲(chǔ)庫(kù)

2011-09-15 09:21:46

持續(xù)集成

2017-03-01 08:56:28

VSTSTFSiOS

2012-02-23 10:22:03

JavaTeamCity

2018-01-08 14:18:14

代碼互聯(lián)網(wǎng)持續(xù)集成
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

成人a在线观看高清电影| 高清av电影在线观看| 亚洲黄色在线| 这里只有精品丝袜| 日韩av影视大全| 欧美亚洲日本精品| 中文字幕一区二区三区在线不卡| 国产高清精品一区二区三区| 无码人妻精品一区二区三区9厂| 我不卡伦不卡影院| 亚洲精选一区二区| 91在线第一页| 97久久香蕉国产线看观看| 日韩理论片一区二区| 男男视频亚洲欧美| 色综合中文综合网| 最新av网址在线观看| 蝌蚪视频在线播放| 高清成人免费视频| 成人福利视频网| 丁香六月婷婷综合| 亚洲午夜一区| 久青草国产97香蕉在线视频| 精品人妻无码一区| 麻豆国产欧美一区二区三区r| 欧美日韩三级一区| 欧美精品色婷婷五月综合| 伊人影院在线视频| 中文字幕中文字幕中文字幕亚洲无线| 国产一区二区久久久| 91久久精品国产91性色69 | 中文字幕色一区二区| 午夜在线视频观看| 高清在线观看日韩| 亚洲a级在线观看| 中文字幕第315页| 久久一区精品| 欧美在线观看视频| 你懂的国产视频| 亚洲一级一区| 色与欲影视天天看综合网| 国产精品一区二区亚洲| 精品产国自在拍| 亚洲欧美日韩天堂| 国产呦小j女精品视频| 欧美aaaaa级| 亚洲国产欧美一区二区丝袜黑人 | 99久精品国产| 国产精品一区二区三区四区五区| 国产黄色免费大片| 国产麻豆9l精品三级站| 国产日韩在线精品av| 中国黄色一级视频| 男女男精品视频| 国产精品一区=区| 一级黄色免费片| 激情成人综合网| 成人在线视频福利| 国产露脸91国语对白| 国产一区高清在线| 91精品久久久久久蜜桃| 亚洲成人av综合| 粉嫩av一区二区三区粉嫩| 国产精品久久久久久免费观看| www视频在线| 成人激情黄色小说| 久久精品国产一区二区三区日韩 | 一色桃子一区二区| 岛国片在线免费观看| 欧美大黑bbbbbbbbb在线| 久久久99免费视频| 曰本女人与公拘交酡| 欧美精品自拍| 日本精品久久久久久久| 伊人久久中文字幕| 韩国av一区二区三区四区 | 777视频在线| 国产精品免费精品自在线观看| 日韩一级片在线播放| 亚洲婷婷在线观看| 亚洲精品国产动漫| 色七七影院综合| 国产探花在线免费观看| 亚洲伦伦在线| 国产精品极品美女在线观看免费| 97在线播放免费观看| 成人午夜伦理影院| 日韩欧美亚洲日产国产| 中文字幕在线观看播放| 富二代精品短视频| 国产成人综合亚洲| 欧美一级做a爰片免费视频| 国产一区三区三区| 农村寡妇一区二区三区| 黄网页免费在线观看| 亚洲一区二区三区四区在线免费观看| 波多野结衣家庭教师视频| 巨大黑人极品videos精品| 亚洲爱爱爱爱爱| 九九热久久免费视频| 亚洲欧洲一级| 91在线观看免费高清完整版在线观看| 四虎在线观看| 亚洲美女少妇撒尿| 日本美女高潮视频| 久久久伦理片| 欧美精品亚州精品| 国产情侣呻吟对白高潮| a美女胸又www黄视频久久| 亚洲成人a**址| 婷婷电影在线观看| 日韩欧美国产综合在线一区二区三区| 亚洲性猛交xxxx乱大交| 精品9999| http;//www.99re视频| 91伦理视频在线观看| 亚洲成人高清在线| 三日本三级少妇三级99| 大色综合视频网站在线播放| 98视频在线噜噜噜国产| 成人福利小视频| 亚洲视频 欧洲视频| 男人的天堂日韩| 香蕉一区二区| 性色av一区二区三区红粉影视| 91美女精品网站| 欧美激情一区二区三区在线| 国产午夜伦鲁鲁| 成人三级毛片| 欧美肥婆姓交大片| 国产高潮在线观看| 亚洲色图欧洲色图| 午夜啪啪小视频| 三上亚洲一区二区| 国产日韩欧美影视| 三区四区电影在线观看| 欧美在线你懂的| 中文字幕在线观看免费高清| 亚洲免费网站| 久久精品五月婷婷| 日韩电影免费看| 精品无人区乱码1区2区3区在线| 日本少妇久久久| 成人精品鲁一区一区二区| 欧洲精品在线播放| 风间由美性色一区二区三区四区 | 麻豆91av| 日本蜜桃在线观看视频| 亚洲欧美国产精品| 无码人妻久久一区二区三区| 2020国产精品| 久久久久免费精品| 日韩精品一区二区久久| 国产精品手机播放| 精品视频在线导航| 看黄色一级大片| 国产精品视频第一区| 亚洲欧美日韩三级| 欧美激情视频一区二区三区免费| 97久久精品午夜一区二区| 国模雨婷捆绑高清在线| 精品久久久久久久人人人人传媒| 国产无码精品在线观看| 2024国产精品视频| 九九视频精品在线观看| 偷拍欧美精品| 精品国产免费人成电影在线观... 精品国产免费久久久久久尖叫 | 亚洲性视频在线| 91精品国产精品| 国产女主播在线直播| 欧美日本精品一区二区三区| 免费视频一二三区| 久久这里只有精品6| 欧美成人黄色网址| 中文字幕一区二区av | 欧美大片aaa| 欧美视频在线播放| 外国一级黄色片| 91蜜桃视频在线| www亚洲成人| 午夜天堂精品久久久久| 欧美主播一区二区三区美女 久久精品人| 99亚洲伊人久久精品影院| 久久伊人精品天天| 天天在线女人的天堂视频| 欧美综合亚洲图片综合区| 福利所第一导航| 久久女同互慰一区二区三区| 亚洲国产成人va在线观看麻豆| 欧美日韩网址| 天堂资源在线亚洲资源| 99精品在免费线中文字幕网站一区| 88xx成人精品| 成人video亚洲精品| 亚洲欧美中文日韩在线| 精品国精品国产自在久不卡| 欧美性69xxxx肥| 国产三级国产精品国产国在线观看| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产wwwwxxxx| 99国产精品99久久久久久| 免费黄频在线观看| 久久久久综合| 日韩久久久久久久久久久久| 欧美日韩在线观看视频小说| 91青青草免费观看| 成人看片网站| 91国产中文字幕| 在线视频国产区| 中文字幕日韩免费视频| 婷婷丁香花五月天| 91精品婷婷国产综合久久 | 麻豆精品网站| 国产一区二区片| 国产精品久久久久久久免费观看 | 在线免费观看日韩av| 国产成人免费视频| 天天操天天干天天做| 日韩高清欧美激情| 男女av免费观看| 亚洲国内自拍| 97久久国产亚洲精品超碰热| 99久久99久久精品国产片桃花 | 欧美激情1区2区| 中文字幕黄色大片| 日本大胆欧美| 水蜜桃一区二区| 国产99久久| 欧美一区二区视频17c| 欧美电影完整版在线观看| 成人自拍偷拍| 秋霞一区二区| 4444kk亚洲人成电影在线| 久久精品黄色| 国产欧美一区二区三区久久人妖| 日韩在线影院| 国产91色在线|免| 午夜日韩成人影院| 日本在线精品视频| 巨茎人妖videos另类| 欧美一级bbbbb性bbbb喷潮片| 国产粉嫩在线观看| 97精品国产aⅴ7777| 麻豆蜜桃在线观看| 久久久这里只有精品视频| 91破解版在线观看| 国模视频一区二区| 黄毛片在线观看| 91精品国产成人www| 天堂中文在线播放| 国产91九色视频| 国产a亚洲精品| 成人黄色av网| 亚洲国产一区二区三区网站| 岛国一区二区三区高清视频| 风间由美性色一区二区三区四区| 国产精品制服诱惑| 日韩欧美ww| 视频一区二区在线| 91精品国产成人观看| 青青草免费在线视频观看| 欧美日韩亚洲一区在线观看| 欧美精品一区二区三区三州| 国产精品久久国产愉拍| 欧美综合在线观看视频| 理论片日本一区| 在线观看视频在线观看| bt欧美亚洲午夜电影天堂| 黄色正能量网站| 国产精品美女www爽爽爽| 国产黄色小视频网站| 亚洲一区二区av在线| 国产一级淫片a视频免费观看| 色综合久久88色综合天天6| 中文在线观看av| 精品免费日韩av| 国产人成在线观看| 久久99精品久久久久久青青91| 国产资源在线观看入口av| 国产精品久久综合av爱欲tv| 日韩欧美中文在线观看| 精品综合久久久| 欧美黄色录像片| jizzjizz国产精品喷水| 日本欧美在线看| 四虎永久免费观看| 国产欧美日韩另类一区| 久久久一二三区| 欧美中文字幕一二三区视频| 99久久一区二区| 亚洲桃花岛网站| 亚洲婷婷噜噜| 国产精品美女视频网站| 国产图片一区| 综合一区中文字幕| 日韩av中文字幕一区二区三区| 激情 小说 亚洲 图片: 伦| 大陆成人av片| 超碰人人人人人人人| 亚洲成人精品一区二区| 国产一区二区三区在线观看| 日韩精品高清视频| 国内外激情在线| 欧美一二三视频| 亚洲综合网狠久久| 亚洲精品一区二| 国产精品久久久久久久久久妞妞 | 2021狠狠干| 老司机午夜精品视频在线观看| 国产麻豆剧传媒精品国产| 中文字幕高清一区| 亚洲免费黄色网址| 717成人午夜免费福利电影| 免费人成在线观看网站| 久久久久久久久91| 激情不卡一区二区三区视频在线| 欧美大香线蕉线伊人久久| 黄色成人91| 在线观看中文av| 日本一区二区免费在线 | 欧美日本一区二区三区四区| 你懂的在线观看| 97香蕉超级碰碰久久免费的优势| 久久99精品久久久野外观看| 亚洲 国产 日韩 综合一区| 久久久久久一区二区| 免费的av网站| 亚洲第一福利视频在线| 成人福利小视频| 欧美激情按摩在线| 日本一区二区三区电影免费观看| 亚洲精品中文字幕乱码三区不卡| 视频一区免费在线观看| 三上悠亚ssⅰn939无码播放| 欧美日韩裸体免费视频| 天堂网av在线播放| 午夜精品蜜臀一区二区三区免费| ady日本映画久久精品一区二区| 最新av网址在线观看| 国产一区二区三区久久悠悠色av| av最新在线观看| 欧美一区二区精品久久911| 久草中文在线观看| 亚洲aa中文字幕| 欧美日韩91| 天天躁日日躁狠狠躁av麻豆男男| 亚洲午夜av在线| 少妇人妻一区二区| 91产国在线观看动作片喷水| 日韩成人午夜| 可以免费在线看黄的网站| 国产蜜臀av在线一区二区三区| 天堂免费在线视频| 最近日韩中文字幕中文| av在线精品| 国产黄色片免费在线观看| 99视频有精品| 无码人妻一区二区三区线| 一区二区成人精品| 亚洲精品三区| 国产在线视频在线| av电影在线观看一区| 亚洲影院在线播放| 色777狠狠综合秋免鲁丝 | 欧美成人欧美edvon| а√在线中文网新版地址在线| 蜜桃传媒视频第一区入口在线看| 日韩电影一二三区| 国产极品国产极品| 日韩精品久久久久久久玫瑰园| 国产一区一一区高清不卡| 国产又粗又爽又黄的视频| 99久久国产免费看| 久操视频在线免费观看| 久久久精品在线观看| 国产精品欧美大片| 99视频在线视频| 亚洲在线中文字幕| 国产视频二区在线观看| 亚洲xxxxx电影| 亚洲综合国产| 国产性xxxx| 一区三区二区视频| 91久久偷偷做嫩草影院电| 国产成人无码av在线播放dvd| 亚洲欧美自拍偷拍| 欧美在线观看在线观看| 成人信息集中地欧美| 99国产精品| 成人免费精品动漫网站| 国产网站欧美日韩免费精品在线观看| 亚洲三级在线| 男人天堂999| 一区二区三区四区乱视频| 国产一区电影| 国产亚洲欧美一区二区三区| 蜜桃精品视频在线| 可以在线观看av的网站| 久久视频在线播放| 国际精品欧美精品|