日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

剥开比原看代码(八):比原的Dashboard是怎么做出来的?

發布時間:2023/12/20 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 剥开比原看代码(八):比原的Dashboard是怎么做出来的? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:freewind

比原項目倉庫:

Github地址:https://github.com/Bytom/bytom

Gitee地址:https://gitee.com/BytomBlockchain/bytom

在前面的幾篇文章中,我們一直在研究如何與一個比原節點建立連接,并且從它那里請求區塊數據。然而我很快就遇到了瓶頸。

因為當我處理拿到的區塊數據時,發現我已經觸及到了比原鏈的核心,即區塊鏈的數據結構以及分叉的處理。如果不能完全理解這一塊,就沒有辦法正確的處理區塊數據。然而它涉及的內容太多了,在短時間之內把它理解透徹是一件非常困難的事情。

之前我的做法就好像我想了解一個城市,于是沿著一條路從外圍向市中心進發。前面一直很順利,但等到了市中心時,發現這里人多路雜,有點迷失了。在這種情況下,我覺得我應該暫停研究核心,而是從另外一條路開始,由外向內再來一遍。因為在行進的過程中,我可以慢慢的積累更多的知識,讓自己處于學習區而非恐慌區。這條路的終點也將是觸及到核心,但是不深入進去。這樣的話,等我多走了幾條路之后,積累的知識夠了,再研究核心就不會覺得迷茫了。

所以本文本來是想去研究一下,當別的節點把區塊數據發給我們之后,我們應該怎么處理,現在換成研究比原的Dashboard是怎么做出來的。為什么選擇這個呢?因為它非常以一種非常直觀的方式,展示了比原向我們提供的各種信息和功能。在本文中,我們并不過多的講解它上面的功能,而是把關注點放在比原到底是如何在代碼層面上實現了這樣的一個Dashboard。它上面的功能,將會在以后慢慢研究。

我們今天的問題是“比原的Dashboard是怎么做出來的”,但是這個問題有點大,并且不夠具體,所以我們還是跟以前一樣,先來把它細分一下:

  • 我們怎樣在比原中啟用Dashboard功能?
  • Dashboard中提供了哪些信息和功能?
  • 比原是如何實現了http服務器?
  • Dashboard使用了什么樣的前端框架?
  • Dashboard上面的數據,是以什么樣的方式從后臺拿到的?
  • 我們下面開始一一探討。

    我們怎樣在比原中啟用Dashboard功能?

    當我們使用bytomd node啟動比原節點的時候,不需要任何配置,它就會自動啟用Dashboard功能,并且會在瀏覽器中打開頁面,非常方便。

    如果是第一次運行,還沒有創建過帳戶,它會提示我們創建一個帳戶及相關的私鑰:

    我們可以通過填寫帳戶別名、密鑰別名和相應的密碼來創建,或者點擊下面的"Restore wallet"來恢復之前的帳號(如果之前備份過的話):

    點擊"Register"后,就會創建成功,并進入管理頁面:

    注意它的地址是:http://127.0.0.1:9888/dashboard

    如果我們查看配置文件config.toml,可以在其中看到它的身影:

    fast_sync = true db_backend = "leveldb" api_addr = "0.0.0.0:9888" chain_id = "solonet" [p2p] laddr = "tcp://0.0.0.0:46658" seeds = "" 復制代碼

    注意其中的api_addr,就是dashboard以及web-api的地址。比原在啟動之后,其BaseConfig.ApiAddress會從配置文件中取到相應的值:

    config/config.go#L41-L85

    type BaseConfig struct {// ...ApiAddress string `mapstructure:"api_addr"`// ... } 復制代碼

    然后在啟動時,比原的web api以及dashboard會使用該地址,并且在瀏覽器中打開dashboard。

    然而此處有一個奇怪的問題,就是不論這里的值是什么,瀏覽器總是打開http://localhost:9888這個地址。為什么呢?因為它寫死在了代碼中。

    在代碼中,http://localhost:9888一共出現在了三個地方,一個是用來表示dashboard的訪問地址,位于node/node.go中:

    node/node.go#L33-L37

    const (webAddress = "http://127.0.0.1:9888"expireReservationsPeriod = time.SecondmaxNewBlockChSize = 1024 ) 復制代碼

    這里的webAddress,只在從代碼中打開瀏覽器顯示dashboard時使用:

    node/node.go#L153-L159

    func lanchWebBroser() {log.Info("Launching System Browser with :", webAddress)if err := browser.Open(webAddress); err != nil {log.Error(err.Error())return} } 復制代碼

    比原通過"github.com/toqueteos/webbrowser"這個第三方的庫,可以在節點啟動的時候,調用系統默認的瀏覽器,并打開指定的網址,方便了用戶。(注意這段代碼中有不少錯別字,比如lanch、broser,已在后續版本中修正了)

    另一個地方,是用于bytomcli這個命令行工具的,只是奇怪的是它放在了util/util.go下面:

    util/util.go#L26-L28

    var (coreURL = env.String("BYTOM_URL", "http://localhost:9888") ) 復制代碼

    為什么說它是屬于bytomcli的呢?因為這個coreURL最終被用在util包下的一個ClientCall(...)函數中,用于從代碼中向指定的web api發送請求,并使用其回復信息。但是這個方法在bytomcli所在的包使用。如果是這樣的話,coreURL及相關的函數,應該移到bytomcli包里才對。

    第三個地方,跟第二個非常像,但是位于tools/sendbulktx/core/util.go中,它是用于另一個命令行工具sendbulktx的:

    tools/sendbulktx/core/util.go#L26-L28

    var (coreURL = env.String("BYTOM_URL", "http://localhost:9888") ) 復制代碼

    一模一樣,對吧。其實不光是這里,還有一堆相關的方法和函數,也是一模一樣的,一看就是跟第二處互相復制過來的。

    關于這里的問題,我提了兩個issue:

    • dashboard和web api的地址寫在配置文件config.toml中,但是同時寫死在代碼中:這里在實現上的確是有一定難度的,原因是在配置文件中,寫的是0.0.0.0:9998,但是從瀏覽器或者命令行工具中去訪問時,需要使用一個具體的ip(而不是0.0.0.0),否則某些功能會不正常。另外,在后面的代碼分析處會看到,除了配置文件中的這個地址,比原還會優先從環境變量中取得LISTEN所對應的地址web api的地址。所以這里需要更多的研究才能正確修復。

    • 與讀取webapi相關的代碼出現大量重復:官方解釋說sendbulktx這個工具在未來將從bytom項目中獨立出去,所以代碼是重復的,如果是這樣的話,可以接受。

    Dashboard中提供了哪些信息和功能?

    下面我們快速過一遍比原的Dashboard提供了哪些信息和功能。由于在本文中,我們關注的重點不是這些具體的功能,所以會不會細究。另外,前面剛創建好的帳號里,很多數據都是沒有的,為了展示方便,我事先做了一些數據。

    首先是密鑰:

    這里顯示了當前有幾個密鑰,其別名是什么,并且顯示出來了主公鑰。我們可以點擊右上角的“新建”按鈕創建多個密鑰,但是這里不再展示。

    帳戶:

    資產:

    默認只定義了BTM這一種資產,可以通過“新建”按鈕增加多種資產。

    余額:

    看起來我還是相當有錢的(可惜不能用)。

    交易:

    展示了多筆交易,實際上是在本機挖礦挖出來的。由于挖礦出來的BTM是由系統直接轉到我們的帳戶上的,所以也可以看作是一種交易。

    創建交易:

    我們也可以像這樣自己創建交易,把我們持有的某種資產(比如BTM)轉到另一個地址。

    未花費輸出:

    簡單的理解就是與我相關的每一筆交易都被記錄下來,有輸入和輸出部分,其中的輸出可能又是另一個交易的輸入。這里顯示的是還沒有花費掉的輸出(可以根據它來計算我當前到底還剩下多少余額)

    查看核心狀態:

    定義訪問控制:

    備份和還原操作:

    ![dashboard-backup]((https://i.loli.net/2018/07/23/5b552b742b739.png)

    另外每個頁面左側欄的下面,還有關于連接的鏈的類型(此處為solonet),以及同步情況和與當前節點連接的其它節點數。

    這里展示的信息和功能我們還不需要細究,但是這里出現的名詞卻是要留意的,因為它們都是比原的核心概念。等我們以后研究比原內部區塊鏈核心功能的時候,實際上都是圍繞著它們來的。這里的每一個概念,可能都需要一到多篇文章專門討論。

    我們在今天關注的是技術實現層面,下面我們要開始進入代碼時間了。

    比原是如何實現了http服務器?

    首先讓我們從比原節點啟動開始,一直找到啟動http服務的地方:

    cmd/bytomd/main.go#L54-L57

    func main() {cmd := cli.PrepareBaseCmd(commands.RootCmd, "TM", os.ExpandEnv(config.DefaultDataDir()))cmd.Execute() } 復制代碼

    cmd/bytomd/commands/run_node.go#L41-L54

    func runNode(cmd *cobra.Command, args []string) error {// Create & start noden := node.NewNode(config)if _, err := n.Start(); err != nil {// .. } 復制代碼

    node/node.go#L169-L180

    func (n *Node) OnStart() error {// ...n.initAndstartApiServer()// ... } 復制代碼

    很快找到了,initAndstartApiServer:

    node/node.go#L161-L167

    func (n *Node) initAndstartApiServer() {// 1.n.api = api.NewAPI(n.syncManager, n.wallet, n.txfeed, n.cpuMiner, n.miningPool, n.chain, n.config, n.accessTokens)// 2. listenAddr := env.String("LISTEN", n.config.ApiAddress)env.Parse()// 3.n.api.StartServer(*listenAddr) } 復制代碼

    可以看到,該方法分成了三部分:

  • 通過傳入大量的參數,來構造一個API對象。進去后會看到大量的與url相關的配置。
  • 先從環境中取得LISTEN對應的值,如果沒有的話,再使用config.toml中指定的api_addr值,作為api服務的入口地址
  • 真正啟動服務
  • 由于2比較簡單,所以我們下面將仔細分析1和3.

    先找到1處所對應的api.NewAPI方法:

    api/api.go#L143-L157

    func NewAPI(sync *netsync.SyncManager, wallet *wallet.Wallet, txfeeds *txfeed.Tracker, cpuMiner *cpuminer.CPUMiner, miningPool *miningpool.MiningPool, chain *protocol.Chain, config *cfg.Config, token *accesstoken.CredentialStore) *API {api := &API{sync: sync,wallet: wallet,chain: chain,accessTokens: token,txFeedTracker: txfeeds,cpuMiner: cpuMiner,miningPool: miningPool,}api.buildHandler()api.initServer(config)return api } 復制代碼

    它主要就是把傳進來的各參數拿住,供后面使用。然后就是api.buildHandler來配置各個功能點的路徑和處理函數,以及用api.initServer來初始化服務。

    進入api.buildHandler()。這個方法有點長,把它分成幾部分來講解:

    api/api.go#L164-L244

    func (a *API) buildHandler() {walletEnable := falsem := http.NewServeMux() 復制代碼

    看來http服務使用的是Go自帶的http包。

    向下是,當用戶的錢包功能沒有禁用的話,就會配置與錢包相關的各功能點(比如帳號、交易、密鑰等):

    if a.wallet != nil {walletEnable = truem.Handle("/create-account", jsonHandler(a.createAccount))m.Handle("/list-accounts", jsonHandler(a.listAccounts))m.Handle("/delete-account", jsonHandler(a.deleteAccount))m.Handle("/create-account-receiver", jsonHandler(a.createAccountReceiver))m.Handle("/list-addresses", jsonHandler(a.listAddresses))m.Handle("/validate-address", jsonHandler(a.validateAddress))m.Handle("/create-asset", jsonHandler(a.createAsset))m.Handle("/update-asset-alias", jsonHandler(a.updateAssetAlias))m.Handle("/get-asset", jsonHandler(a.getAsset))m.Handle("/list-assets", jsonHandler(a.listAssets))m.Handle("/create-key", jsonHandler(a.pseudohsmCreateKey))m.Handle("/list-keys", jsonHandler(a.pseudohsmListKeys))m.Handle("/delete-key", jsonHandler(a.pseudohsmDeleteKey))m.Handle("/reset-key-password", jsonHandler(a.pseudohsmResetPassword))m.Handle("/build-transaction", jsonHandler(a.build))m.Handle("/sign-transaction", jsonHandler(a.pseudohsmSignTemplates))m.Handle("/submit-transaction", jsonHandler(a.submit))m.Handle("/estimate-transaction-gas", jsonHandler(a.estimateTxGas))m.Handle("/get-transaction", jsonHandler(a.getTransaction))m.Handle("/list-transactions", jsonHandler(a.listTransactions))m.Handle("/list-balances", jsonHandler(a.listBalances))m.Handle("/list-unspent-outputs", jsonHandler(a.listUnspentOutputs))m.Handle("/backup-wallet", jsonHandler(a.backupWalletImage))m.Handle("/restore-wallet", jsonHandler(a.restoreWalletImage))} else {log.Warn("Please enable wallet")} 復制代碼

    錢包功能默認是啟用的,用戶如何才能禁用它呢?方法是在配置文件config.toml中,加上這一節代碼:

    [wallet] disable = true 復制代碼

    在前面的代碼中,在配置功能點時,使用了大量的m.Handle("/create-account", jsonHandler(a.createAccount))這樣的代碼,它是什么意思呢?

  • /create-account:該功能的路徑,比如對于這個,用戶需要在瀏覽器或者命令行中,使用地址http://localhost:9888/create-account來訪問
  • a.createAccount:用于處理用戶的訪問,比如拿到用戶提供的數據,處理完后再返回某個數據給用戶,會在下面詳解
  • jsonHandler:是一個中間層,把用戶發送的JSON數據轉成第2步handler需要的Go類型參數,或者把2返回的Go數據轉成JSON給用戶
  • m.Handle(path, handler):用來把功能點路徑和相應的處理函數對應起來
  • 這里先看第3步中的jsonHandler的代碼:

    api/api.go#L259-L265

    func jsonHandler(f interface{}) http.Handler {h, err := httpjson.Handler(f, errorFormatter.Write)if err != nil {panic(err)}return h } 復制代碼

    它里面用到了httpjson,它是比原代碼中提供的一個包,位于net/http/httpjson 。它的功能主要是為了在http訪問與Go的函數之間增加了一層轉換。通常用戶通過http與api交互的時候,發送和接收的都是JSON數據,而我們在第2步的handler中定義的是Go函數,通過httpjson,可以在兩者之間自動轉換,使得我們在寫Go代碼的時候,不需要考慮JSON以及http協議相關的問題。相應的,為了與jsonhttp配合使用,第2步中的handler在格式上也會有一些要求,詳情可參見這里的詳細注釋:net/http/httpjson/doc.go#L3-L40 。由于httpjson所涉及的代碼還比較多,這里就不詳述,以后有機會專開一篇。

    然后我們再看第2步的a.createAccount的代碼:

    api/accounts.go#L16-L30

    func (a *API) createAccount(ctx context.Context, ins struct {RootXPubs []chainkd.XPub `json:"root_xpubs"`Quorum int `json:"quorum"`Alias string `json:"alias"` }) Response {acc, err := a.wallet.AccountMgr.Create(ctx, ins.RootXPubs, ins.Quorum, ins.Alias)if err != nil {return NewErrorResponse(err)}annotatedAccount := account.Annotated(acc)log.WithField("account ID", annotatedAccount.ID).Info("Created account")return NewSuccessResponse(annotatedAccount) } 復制代碼

    這個函數的內容我們在這里不細究,需要注意的反而是它的格式,因為前面說了,它需要跟jsonHandler配合使用。格式的要求大概就是,第一個參數是Context,第二個參數是可以從JSON數據轉換過來的參數,返回值是一個Response以及一個Error,但是這四個又全部是可選的。

    讓我們回到api.buildHandler(),繼續往下:

    m.Handle("/", alwaysError(errors.New("not Found")))m.Handle("/error", jsonHandler(a.walletError))m.Handle("/create-access-token", jsonHandler(a.createAccessToken))m.Handle("/list-access-tokens", jsonHandler(a.listAccessTokens))m.Handle("/delete-access-token", jsonHandler(a.deleteAccessToken))m.Handle("/check-access-token", jsonHandler(a.checkAccessToken))m.Handle("/create-transaction-feed", jsonHandler(a.createTxFeed))m.Handle("/get-transaction-feed", jsonHandler(a.getTxFeed))m.Handle("/update-transaction-feed", jsonHandler(a.updateTxFeed))m.Handle("/delete-transaction-feed", jsonHandler(a.deleteTxFeed))m.Handle("/list-transaction-feeds", jsonHandler(a.listTxFeeds))m.Handle("/get-unconfirmed-transaction", jsonHandler(a.getUnconfirmedTx))m.Handle("/list-unconfirmed-transactions", jsonHandler(a.listUnconfirmedTxs))m.Handle("/get-block-hash", jsonHandler(a.getBestBlockHash))m.Handle("/get-block-header", jsonHandler(a.getBlockHeader))m.Handle("/get-block", jsonHandler(a.getBlock))m.Handle("/get-block-count", jsonHandler(a.getBlockCount))m.Handle("/get-difficulty", jsonHandler(a.getDifficulty))m.Handle("/get-hash-rate", jsonHandler(a.getHashRate))m.Handle("/is-mining", jsonHandler(a.isMining))m.Handle("/set-mining", jsonHandler(a.setMining))m.Handle("/get-work", jsonHandler(a.getWork))m.Handle("/submit-work", jsonHandler(a.submitWork))m.Handle("/gas-rate", jsonHandler(a.gasRate))m.Handle("/net-info", jsonHandler(a.getNetInfo)) 復制代碼

    可以看到還是各種功能的定義,主要是跟區塊數據、挖礦、訪問控制等相關的功能,這里就不詳述了。

    再繼續:

    handler := latencyHandler(m, walletEnable)handler = maxBytesHandler(handler)handler = webAssetsHandler(handler)handler = gzip.Handler{Handler: handler}a.handler = handler } 復制代碼

    這里是把前面定義的功能點配置包成了一個handler,然后在它外面包了一層又一層,添加上了更多的功能:

  • latencyHandler:我目前還不能準確說出它的作用,留待以后補充
  • maxBytesHandler:防止用戶提交的數據過大,目前值約為10MB。對于除signer/sign-block以外的url有效
  • webAssetsHandler:向用戶提供dashboard相關的前端頁面資源(比如網頁、圖片等等)。可能是為了性能和方便性方面的考慮,前端文件都經過混淆后,以字符串形式嵌入在dashboard/dashboard.go中,真正的代碼在另一個項目中 github.com/Bytom/dashb…,我們在后面會看一下
  • gzip.Handler:對http客戶端進行是否支持gzip的檢測,并且在支持的情況下,傳輸數據時使用gzip壓縮
  • 然后讓我們回到主線,看看前面的NewAPI中最后調用的api.initServer(config):

    api/api.go#L89-L122

    func (a *API) initServer(config *cfg.Config) {// The waitHandler accepts incoming requests, but blocks until its underlying// handler is set, when the second phase is complete.var coreHandler waitHandlervar handler http.HandlercoreHandler.wg.Add(1)mux := http.NewServeMux()mux.Handle("/", &coreHandler)handler = muxif config.Auth.Disable == false {handler = AuthHandler(handler, a.accessTokens)}handler = RedirectHandler(handler)secureheader.DefaultConfig.PermitClearLoopback = truesecureheader.DefaultConfig.HTTPSRedirect = falsesecureheader.DefaultConfig.Next = handlera.server = &http.Server{// Note: we should not set TLSConfig here;// we took care of TLS with the listener in maybeUseTLS.Handler: secureheader.DefaultConfig,ReadTimeout: httpReadTimeout,WriteTimeout: httpWriteTimeout,// Disable HTTP/2 for now until the Go implementation is more stable.// https://github.com/golang/go/issues/16450// https://github.com/golang/go/issues/17071TLSNextProto: map[string]func(*http.Server, *tls.Conn, http.Handler){},}coreHandler.Set(a) } 復制代碼

    這個方法在本文不適合細講,因為它更多的是涉及到http層面的一些東西,不是本文的重點。值得關注的地方是,方法創建了一個Go提供的http.Server,把前面我們辛苦配置好的handler塞進去,萬事俱備,只欠啟動。

    下面就是啟動啦。我們終于可以回到最新的initAndstartApiServer方法了,還記得它的第3塊內容嗎?主要就是調用了n.api.StartServer(*listenAddr):

    api/api.go#L125-L140

    func (a *API) StartServer(address string) {// ...listener, err := net.Listen("tcp", address)// ...go func() {if err := a.server.Serve(listener); err != nil {log.WithField("error", errors.Wrap(err, "Serve")).Error("Rpc server")}}() } 復制代碼

    這塊比較簡單,就是使用Go的net.Listen來監聽傳入的web api地址,得到相應的listener之后,把它傳給我們在前面創建的http.Server的Serve方法,就大功告成了。

    這一塊代碼分析寫得十分痛苦,主要原因是它的web api這里幾乎涉及到了所有比原提供的功能,很龐雜。還有不少跟http協議相關的東西。同時,因為暴露出了接口,這里就容易出現安全風險,所以代碼里面還有不少涉及到用戶輸入、安全檢查等。這些東西當然是非常重要的,但是從代碼閱讀的角度上來講又難免枯燥,除非我們就是為了研究安全性。

    本文的任務主要是研究比原是如何提供http服務的,關于比原在安全性方面做了哪些事情,以后會有專門的分析。

    Dashboard使用了什么樣的前端框架?

    比原的前端代碼是在另一個獨立的項目中:https://github.com/Bytom/dashboard

    本文我們并不去探討代碼細節,而僅僅去看一下它使用了哪些前端框架,有個大概印象即可。

    通過github.com/Bytom/dashb…我們就可以大概了解到,比原前端使用了:

  • 構建工具:直接利用npm的Scripts
  • 前端框架:React + Redux
  • CSS方面:bootstrap
  • JavaScript:ES6
  • http請求:fetch-ponyfill
  • 資源打包:webpack
  • 測試:mocha
  • Dashboard上面的數據,是以什么樣的方式從后臺拿到的?

    以Account相關的代碼為例:

    src/sdk/api/accounts.js#L16

    const accountsAPI = (client) => {return {create: (params, cb) => shared.create(client, '/create-account', params, {cb, skipArray: true}),createBatch: (params, cb) => shared.createBatch(client, '/create-account', params, {cb}),// ...listAddresses: (accountId) => shared.query(client, 'accounts', '/list-addresses', {account_id: accountId}),} } 復制代碼

    這些函數主要是通過fetch-ponyfill庫中提供的方法,向向前面使用go創建的web api接口發送http請求,并且拿到相應的回復數據。而它們又將在React組件中被調用,拿回來的數據用于填充頁面。

    同樣,更細節的內容在本文就不講啦。

    終于,經過這一大篇的分析,我覺得我對于比原的Dashboard是怎么做出來的,有了一些基本的印象。剩下的,就是在以后,針對其中的功能進行細致的研究。

    總結

    以上是生活随笔為你收集整理的剥开比原看代码(八):比原的Dashboard是怎么做出来的?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产午夜精品一区二区三区在线观看 | 园产精品久久久久久久7电影 | 亚洲成人av影片 | 91麻豆精品国产91久久久久久久久 | 国产日韩欧美自拍 | 玖玖视频国产 | 国内精品久久久久久中文字幕 | 91在线视频免费91 | 在线视频你懂得 | 国产中文字幕在线看 | 青春草视频在线播放 | 在线看小早川怜子av | 国产一区电影在线观看 | 91色偷偷 | 久久免费视频8 | 91最新在线 | 91超在线 | 天天拍天天操 | 中文字幕网站视频在线 | 成人免费观看在线视频 | 久久黄色美女 | 西西4444www大胆无视频 | 中文字幕一区二区三区在线播放 | 久久久综合色 | 日本中文字幕网 | 免费在线一区二区三区 | 激情亚洲综合在线 | 成人av久久 | 久久综合九色欧美综合狠狠 | 中文字幕视频播放 | 欧美亚洲成人免费 | 国产一级免费av | 午夜黄色大片 | 国内精品久久久久久久影视麻豆 | www.日日日.com | 99免费看片 | 日韩av在线不卡 | 九九欧美 | 色播五月激情五月 | 亚洲一区二区麻豆 | 欧洲成人免费 | 欧美亚洲成人免费 | 亚洲视频专区在线 | 黄色官网在线观看 | 在线观看亚洲免费视频 | av网站地址 | 成人av电影在线观看 | 人人添人人 | 欧美看片| 国产美女主播精品一区二区三区 | 日韩视频一区二区在线观看 | 久人人 | 国产一二三精品 | 人人狠狠综合久久亚洲 | 中文字幕在线观看免费高清完整版 | 综合色站导航 | 日日碰夜夜爽 | 亚洲午夜精品久久久久久久久久久久 | 午夜黄色 | 免费视频一区二区 | 岛国片在线 | 欧美一区二区日韩一区二区 | 开心激情婷婷 | 亚洲综合色站 | 日韩一区二区三区不卡 | 欧美精品一级视频 | 青草视频免费观看 | 日韩精品免费专区 | 国产婷婷精品 | www91在线 | 天天曰天天射 | 99精品黄色片免费大全 | 激情文学综合丁香 | 国产一级做a爱片久久毛片a | 69热国产视频 | 日韩一区二区三区高清在线观看 | 999视频在线观看 | 日韩免费视频线观看 | 日日操操操 | 国产在线精品二区 | 一级欧美日韩 | 中文字幕在线观看一区 | 久国产在线播放 | 黄色网www| 久久久久福利视频 | 日韩免费电影网 | 狠狠躁天天躁综合网 | 久草在线综合网 | 粉嫩av一区二区三区免费 | 99热这里只有精品国产首页 | 日韩免费观看高清 | 国产在线播放观看 | 久久黄色免费视频 | 日韩精品免费在线观看视频 | 99精品视频在线观看 | 日韩精品视频在线观看免费 | 天天天干天天天操 | 四虎国产| 曰韩精品 | 国产精品日韩欧美 | 国产91影视 | 美女在线免费视频 | 国产精品va在线观看入 | 久草在线资源网 | 国产色在线视频 | 丁香高清视频在线看看 | 麻豆传媒在线免费看 | 久久在线 | 国产精品免费观看久久 | 天堂在线视频免费观看 | 日韩成人免费观看 | 五月婷婷中文字幕 | 日日摸日日碰 | 欧美日韩大片在线观看 | 一级淫片在线观看 | 精品国产亚洲一区二区麻豆 | 日日日操操 | 天天操天天干天天爽 | 欧美资源| 极品久久久 | 午夜精品久久久久 | www.狠狠操.com | 国产一级片网站 | 免费亚洲黄色 | www.五月天婷婷 | 亚洲日本一区二区在线 | 蜜臀av一区| 久久精品首页 | 国产精品免费久久久久影院仙踪林 | a级片久久| 成人欧美一区二区三区黑人麻豆 | 99精品欧美一区二区蜜桃免费 | 91精品国自产在线偷拍蜜桃 | 热99在线视频 | 91在线看免费 | 一区二区三区四区五区在线 | 黄色在线观看网站 | 中文字幕一区二区三区在线播放 | 国产精品久久久久毛片大屁完整版 | 2021国产在线视频 | 国产丝袜高跟 | 久久综合婷婷国产二区高清 | 91热视频在线观看 | 久久超 | 丁香婷婷激情 | 最新av网址在线观看 | 久久伊人精品一区二区三区 | 日本h视频在线观看 | 黄色片网站 | 99久久99久国产黄毛片 | 久草91视频 | 探花视频在线版播放免费观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 99久久电影 | 干亚洲少妇| 夜夜骑天天操 | 免费人成在线观看网站 | 欧美性极品xxxx做受 | 国产精品不卡一区 | 国产精品一区二区吃奶在线观看 | 亚洲国产资源 | 在线观看av小说 | 亚洲黄色精品 | 日韩在线视频免费观看 | 午夜精品一区二区三区四区 | 午夜色性片 | 最新日韩在线观看视频 | 操碰av| www免费视频com━ | 国产精品完整版 | 91一区啪爱嗯打偷拍欧美 | 国产.精品.日韩.另类.中文.在线.播放 | 久草在线久草在线2 | 精品自拍av | 福利视频区 | 日韩美在线 | 香蕉色综合 | 一区二区三区日韩在线 | 成人xxxx| 亚洲一区二区精品3399 | 色视频网址 | 精品久久网站 | 亚洲国产手机在线 | 精品av网站 | 中文字幕一区二区三区四区久久 | 午夜精品一区二区三区视频免费看 | 97在线公开视频 | 精品99免费视频 | 国产一线天在线观看 | 日韩欧美高清在线观看 | 毛片随便看 | 欧美日韩一二三四区 | 天天操人人要 | 在线成人观看 | 中文字幕在线观看亚洲 | 亚洲欧美视屏 | av成人在线观看 | 精品国产欧美一区二区三区不卡 | 日韩一区正在播放 | av黄色免费在线观看 | 不卡电影一区二区三区 | 久久免费黄色网址 | 久草精品网| 亚洲aⅴ一区二区三区 | 91九色在线观看视频 | 午夜在线日韩 | 日韩无在线 | 午夜一级免费电影 | 国产精彩视频一区 | 国产精品免费久久 | 日韩精品不卡在线 | 亚洲影院天堂 | 亚洲天堂网视频在线观看 | 91丨九色丨丝袜 | 精品视频免费播放 | 丁香婷婷激情 | 国产精品黄色在线观看 | 亚洲成人在线免费 | www.色五月.com | 九九热在线免费观看 | 久久爱综合 | 国产精品精品国产色婷婷 | 在线亚州 | 亚洲在线综合 | 国产精品成人品 | 日本三级大片 | 碰碰影院| 国产高清视频色在线www | 日韩av女优视频 | 亚洲精品av中文字幕在线在线 | 五月婷婷毛片 | 欧美精品久久久久久久久久白贞 | 亚洲黄色精品 | 亚洲 成人 一区 | 国产午夜精品视频 | 亚洲精品综合在线观看 | 亚洲无在线 | 就操操久久 | 中文字幕91在线 | 欧洲性视频| 成人综合婷婷国产精品久久免费 | 97超碰国产精品女人人人爽 | 国产91在线免费视频 | 蜜臀av网址 | 国产色视频一区二区三区qq号 | 在线看的毛片 | 亚洲精品麻豆 | av黄色在线播放 | 久久久www成人免费精品张筱雨 | 国产做a爱一级久久 | 99免费在线播放99久久免费 | 亚洲国产精品成人av | 麻豆传媒视频在线 | av电影 一区二区 | 日韩系列在线观看 | 国产91免费观看 | 欧美性网站 | 欧美日韩免费一区 | 欧美一级片免费 | 成人免费看黄 | 美女网站一区 | 五月婷激情 | 三上悠亚一区二区在线观看 | 精品视频99| 午夜精品久久久久久久99无限制 | 亚洲精品中文在线观看 | 国产高清 不卡 | 国产精品视频你懂的 | 国产一区二区免费在线观看 | 麻豆综合网| 99久久久国产精品免费观看 | 久久精品视频免费 | 深夜免费福利 | 久久久久五月天 | 丁香婷婷久久久综合精品国产 | 国产精品午夜久久 | 久久久国产一区 | 三级免费黄 | 91免费版成人 | 黄色成人在线 | 丁香免费视频 | 视频在线精品 | 欧美做受高潮 | 99热99re6国产在线播放 | 日本成人免费在线观看 | 亚洲成成品网站 | 嫩草av在线 | 伊人狠狠色丁香婷婷综合 | 园产精品久久久久久久7电影 | 色婷婷导航 | 亚洲成av人片在线观看香蕉 | 欧美淫视频 | 中文字幕在线观看完整 | 午夜久久视频 | 国产精品永久久久久久久www | 国产精品男女视频 | 精品96久久久久久中文字幕无 | 999久久久免费视频 午夜国产在线观看 | 婷婷午夜天 | 欧美激情第八页 | 96精品视频 | 国产不卡免费 | 98福利在线| 国产亚洲精品久久久久久网站 | av高清网站在线观看 | 日本黄区免费视频观看 | 久久久久久国产精品 | 国产成人综合在线观看 | 在线国产中文 | 99久久99久久综合 | 一区二区av| 欧美另类v| 亚洲天堂精品视频在线观看 | 国产99一区视频免费 | 久久精品中文 | 最近在线中文字幕 | 奇米777777| 国产精品永久免费视频 | 永久免费精品视频网站 | 久久久香蕉视频 | 久草视频观看 | 97色在线观看免费视频 | 色成人亚洲| 手机在线看片日韩 | 日日摸日日碰 | 国产精品日韩精品 | 久久99精品国产麻豆婷婷 | 久久国产亚洲精品 | 黄色三级在线看 | 欧美成人亚洲成人 | 三上悠亚一区二区在线观看 | 亚洲国产无 | 日韩精品一区二区在线 | 久久精品三级 | 国产午夜精品一区二区三区嫩草 | 亚洲综合视频在线 | 国产成人精品国内自产拍免费看 | 久久精品一区八戒影视 | 最近中文字幕在线中文高清版 | 天天综合网 天天综合色 | 亚洲成人av电影 | 99热精品久久| 五月天中文字幕mv在线 | 国产美女精品视频 | 欧美国产不卡 | 亚洲成人免费观看 | 中文字幕一区二区在线播放 | 91在线免费视频 | 国产精品久久一 | av一区二区三区在线播放 | 久久国产精品免费一区二区三区 | 国产精品露脸在线 | 一区二区中文字幕在线观看 | 国产精品久久久久久高潮 | 亚洲爱爱视频 | 视频一区二区国产 | 欧美大jb | 久久av一区二区三区亚洲 | 久久精品91久久久久久再现 | 97福利在线观看 | 日韩av伦理片 | www在线免费观看 | 久久99久久99免费视频 | 成人免费视频在线观看 | 波多野结衣电影一区 | 日韩免费av网址 | 久久与婷婷 | 久久综合视频网 | 国产成人免费 | 国产美女视频 | 97视频在线免费播放 | 国产精品嫩草影院99网站 | 国产高清视频免费最新在线 | 国产视频精品久久 | 欧美日韩高清一区二区 国产亚洲免费看 | 亚洲三级在线免费观看 | 精品视频国产一区 | 9i看片成人免费看片 | 亚洲激情精品 | 日日夜夜精品免费视频 | 一级免费黄视频 | 久久精品3 | www.天天干 | 久久久久久久久网站 | 国产一区 在线播放 | 日韩极品视频在线观看 | 韩国一区二区在线观看 | 色婷婷久久久综合中文字幕 | 国产精品久久久久久久久久99 | h动漫中文字幕 | 在线免费观看涩涩 | 欧美激情精品久久久久久 | 欧美色图视频一区 | 91伊人影院 | 久久久蜜桃一区二区 | 青青河边草观看完整版高清 | 亚洲人人精品 | 99久久精品免费 | 精品一区二区在线播放 | 成人在线黄色 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 午夜精选视频 | 高清视频一区 | 国产精品入口66mio女同 | 999日韩 | 国产aa免费视频 | 一区三区视频在线观看 | 亚洲日韩欧美一区二区在线 | 国精产品一二三线999 | 香蕉网站在线观看 | 免费在线观看黄色网 | 国产精品久久久区三区天天噜 | 亚洲女人天堂成人av在线 | 成人黄视频 | 综合网色 | 欧美日韩一区二区视频在线观看 | 日韩高清在线一区二区三区 | 日本精品视频在线观看 | 国产人成在线观看 | 99精品视频在线播放免费 | 国产精品久久久久av免费 | 国产视频 久久久 | 中文字幕视频播放 | 亚洲精品88欧美一区二区 | 免费色视频网站 | 成人精品一区二区三区电影免费 | 国产人成看黄久久久久久久久 | 五月婷婷视频在线观看 | 日韩有码第一页 | 在线不卡a | 中中文字幕av在线 | 国产99久久久国产精品免费看 | 极品久久久 | 国产 精品 资源 | 久草视频看看 | 久久激情视频 久久 | 国产成人精品999在线观看 | 欧美成人黄色片 | 在线观看 国产 | 日日草夜夜操 | 美女黄频网站 | 特级毛片aaa | 国产精品久久久久久久久免费 | 99se视频在线观看 | 亚洲黄色大片 | 成年人app网址 | 精品亚洲免a | av手机版 | 久久亚洲二区 | 久久精品亚洲综合专区 | 久久蜜臀av | 久爱精品在线 | 欧美精品中文字幕亚洲专区 | 久久国产精品网站 | 激情综合国产 | 中文字幕在线专区 | 国产中文字幕网 | 国产69精品久久99不卡的观看体验 | 日韩区欠美精品av视频 | 国产欧美日韩一区 | 日韩av影视在线观看 | 欧美性生交大片免网 | 欧美日韩调教 | 欧洲色综合 | 久久久久99精品国产片 | 91福利视频久久久久 | 国产亚洲欧美一区 | 国产香蕉久久 | 精品在线一区二区三区 | 亚洲免费av一区二区 | 精品91在线 | 成人午夜在线观看 | 九九热在线视频 | 超级av在线| 麻豆久久久久 | 成人午夜性影院 | 色婷婷综合五月 | 国产精品视频全国免费观看 | 成人在线免费视频 | 曰韩精品 | 福利电影一区二区 | 国产另类av | 91av久久| 特级毛片爽www免费版 | 看国产黄色大片 | 超碰人人草人人 | 最近高清中文在线字幕在线观看 | 亚洲国产成人在线 | av在线com| 91精品视频在线看 | 久久久久久久久影视 | 亚洲男女精品 | 免费看三级 | 成人黄色在线观看视频 | 最新日本中文字幕 | 色婷婷丁香 | 天天操天天操天天操天天操天天操天天操 | 麻花豆传媒一二三产区 | 成人精品亚洲 | 国产精品理论视频 | 久久午夜国产精品 | 四虎国产精品永久在线国在线 | 国产成人一区二区啪在线观看 | 久久a v视频 | 日韩一区在线免费观看 | 亚洲国产中文字幕 | 国产精品24小时在线观看 | 日韩一级理论片 | av免费观看网站 | 天堂av在线中文在线 | 国产麻豆精品久久一二三 | 欧美激情在线网站 | 蜜臀久久99精品久久久无需会员 | 久久久久国产a免费观看rela | 91精品国产综合久久福利 | 国产精品系列在线播放 | 97超碰国产精品女人人人爽 | 一区二区欧美激情 | 亚洲精品乱码久久久久久久久久 | 久操97| 少妇bbb好爽| 在线免费色视频 | 欧美日韩国产mv | 久久激情电影 | 一区二区在线影院 | 激情 一区二区 | 国产精品九九视频 | 久久精品免费播放 | 在线观看免费av网 | 日韩av手机在线观看 | 又黄又爽又刺激 | 亚洲美女免费视频 | 中文字幕精品一区 | 99精品国产福利在线观看免费 | 国产一区二区久久精品 | 黄色一级大片在线免费看国产一 | 国产麻豆剧传媒免费观看 | 园产精品久久久久久久7电影 | 日韩在线网址 | 色91av| 国产精品久久久久久久99 | 久久成人一区二区 | 日韩视频 一区 | 日产乱码一二三区别在线 | 在线观看mv的中文字幕网站 | 国产精品成久久久久 | 色婷婷国产精品 | 天天在线操 | 日韩精品免费一线在线观看 | 午夜色影院 | 国产精品久久久久久久久久久久久久 | 国产男女爽爽爽免费视频 | 九九九九色 | 九九免费在线观看 | 日本在线观看一区二区 | 天天插日日射 | 日本99热 | 国产一级不卡毛片 | 国产福利av | 狠狠狠色丁香综合久久天下网 | 久久久久久国产精品免费 | 日韩精品一区二区不卡 | 日韩理论片| 二区三区精品 | 高清不卡毛片 | 成人黄色小说在线观看 | 久久精品最新 | 久久手机免费视频 | 午夜影院在线观看18 | 色婷婷综合久久久 | 精品国产一区二区三区免费 | 亚洲精品高清视频 | 中文字幕专区高清在线观看 | 久久久精品久久 | 国产韩国日本高清视频 | 亚洲国产精品成人精品 | 中文字幕人成不卡一区 | 免费日韩在线 | 久久天天拍 | 成年美女黄网站色大片免费看 | 亚洲aⅴ一区二区三区 | 999成人国产 | 成人午夜电影在线 | 亚洲精选视频免费看 | 丁香九月婷婷综合 | 国语精品免费视频 | 亚洲国产精品人久久电影 | 日韩视频一区二区在线观看 | 色综合天天爱 | 久久精品免费观看 | 国产视频2 | 精品国产一区二区三区免费 | 欧美日韩xx | 麻豆mv在线观看 | 日韩精品免费一区二区在线观看 | 日韩免费观看视频 | 中文字幕一区二区三区久久蜜桃 | 在线视频一区二区 | 天天插夜夜操 | 久久午夜精品 | 国产一区二区三区高清播放 | 久久久www成人免费毛片麻豆 | 香蕉影视在线观看 | 免费在线观看中文字幕 | 黄色一级免费网站 | 色偷偷888欧美精品久久久 | 中文字幕一区二区三区四区在线视频 | 在线观看视频国产 | 亚洲色视频 | 久久国产精品久久w女人spa | 国产一区二区综合 | 国产一二三区av | 91香蕉国产在线观看软件 | 天天干,天天射,天天操,天天摸 | 亚洲综合爱| 午夜123| 日韩三级视频在线看 | www亚洲一区 | 在线国产欧美 | 精品国产自| 日日草视频 | 五月婷婷导航 | 99精品国产兔费观看久久99 | 午夜精品三区 | 国产成人亚洲在线观看 | 99视频国产精品 | 综合网天天 | 狠狠色噜噜狠狠狠狠2021天天 | 久久综合久久综合九色 | 日韩精品91偷拍在线观看 | 婷婷色在线 | 久久这里只有精品久久 | 日韩欧美一区二区三区在线观看 | 亚洲一区二区三区精品在线观看 | 一二三区高清 | 久久97久久 | 中文区中文字幕免费看 | 欧美一级久久 | 黄色免费网站大全 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 91精品视频观看 | 久久91网 | 国产99久久久精品 | 亚洲精品国 | av经典在线| 不卡国产视频 | 色综合久久久久综合体 | 高清中文字幕av | 国产精品成人自产拍在线观看 | 四虎国产精品永久在线国在线 | 国产第一页在线播放 | 黄色网址在线播放 | 69国产成人综合久久精品欧美 | 精品国产99国产精品 | 色综合久久88色综合天天 | 91精品网站在线观看 | 香蕉视频18 | 激情五月婷婷网 | 一区精品在线 | 日韩啪啪小视频 | 亚洲视频在线观看网站 | www.狠狠| 九色最新网址 | 日韩在线观看一区二区 | 日本动漫做毛片一区二区 | 欧美日韩在线观看一区 | 亚洲午夜精品电影 | 婷婷夜夜 | 中国美女一级看片 | 亚洲一区日韩精品 | 久久综合射 | 亚洲网站在线看 | 96国产在线| 国产97碰免费视频 | 久久中文网 | 视频在线观看入口黄最新永久免费国产 | 国产免费一区二区三区最新6 | 国产不卡高清 | 亚洲最大的av网站 | 国产精品无 | 欧美激情视频一二三区 | 99r在线观看 | 国产69久久| 久久精品系列 | 91精选| 伊人狠狠干 | 国产五码一区 | 视频在线日韩 | 色激情五月 | 豆豆色资源网xfplay | 国产精品永久久久久久久www | 久久久亚洲成人 | 成人黄色免费在线观看 | 永久免费看av | 在线成人一区二区 | 国产精品一区在线观看你懂的 | 国产不卡高清 | 国产婷婷精品 | 免费看特级毛片 | 精品福利视频在线观看 | 免费毛片一区二区三区久久久 | 天天综合入口 | 国产精品久久久久一区二区 | 黄色1级毛片 | 久久久国产99久久国产一 | 九九热在线精品 | 黄色三级免费网址 | 久久久国内精品 | 国产精品永久免费视频 | 福利视频一区二区 | 久久福利影视 | 福利视频| 日本韩国精品在线 | 久久a视频 | 四季av综合网站 | bbb搡bbb爽爽爽 | 色香蕉在线视频 | 五月天久久激情 | 欧美大荫蒂xxx | 人人舔人人爱 | 国产不卡视频在线播放 | 国产在线一区观看 | 高清免费在线视频 | 91成版人在线观看入口 | 狠狠色丁香婷婷综合视频 | av黄色影院| 一级大片在线观看 | 国产精品资源网 | 一区在线观看视频 | 91原创在线观看 | 99精品在线视频观看 | 免费国产ww | 黄色片网站av | 91大神电影 | 黄色www | 96看片 | 中文字幕免费一区二区 | 久久福利小视频 | 三级av在线播放 | 97国产大学生情侣白嫩酒店 | 久久国产精品二国产精品中国洋人 | 精品久久一| 日韩色一区二区三区 | 三级av在线免费观看 | 亚洲男男gaygay无套 | 精品久久久99 | 日日精品 | 黄网站色成年免费观看 | 国产欧美综合在线观看 | 亚洲成人一区 | 色www. | 久久久久一区二区三区四区 | 在线国产日韩 | 久久再线视频 | 伊人婷婷久久 | 日韩欧美视频在线观看免费 | 新版资源中文在线观看 | 久久国产精品久久w女人spa | 999在线精品 | 久草网站在线 | 欧美中文字幕久久 | 久久日韩精品 | 午夜视频免费 | 日本精a在线观看 | 久久久久久久久网站 | 激情婷婷综合 | 日韩电影在线观看中文字幕 | 精品久久在线 | 日日干av| 久久91网 | 久久久精品国产一区二区电影四季 | 香蕉97视频观看在线观看 | av大全在线免费观看 | av中文字幕第一页 | 99精品免费网 | 在线免费色 | 亚洲精品网站在线 | 五月天色婷婷丁香 | 久久久一本精品99久久精品 | 很污的网站 | 日韩二区在线观看 | 日韩激情免费视频 | 午夜精品av | 超碰人人草人人 | 99热 精品在线 | 国模一区二区三区四区 | 三级视频日韩 | 999久久久国产精品 高清av免费观看 | 欧美 另类 交 | 亚洲天天在线日亚洲洲精 | 99久久电影 | www.五月婷婷.com | 国产午夜精品一区二区三区嫩草 | 国产精品久久久久久久久久不蜜月 | 麻豆影视网站 | 国产亚洲一级高清 | 高清免费av在线 | 福利二区视频 | 日本性xxx | 久久色视频 | 亚洲综合在线观看视频 | 成人97视频一区二区 | 亚洲人成网站精品片在线观看 | 国产精品系列在线播放 | 欧美在线视频二区 | 亚洲永久精品国产 | 开心丁香婷婷深爱五月 | 性色视频在线 | 国产韩国精品一区二区三区 | 又黄又刺激视频 | 免费情趣视频 | 91成人国产| 亚洲午夜精品久久久 | 久久久久久久看片 | 最新中文字幕在线播放 | av在线看网站 | 日韩欧美精品一区 | 久久一视频 | 狠狠操狠狠 | 国产伦精品一区二区三区免费 | 国内精品久久久久久久久 | 婷婷综合导航 | 一级黄色片毛片 | 中国一级片在线 | 日韩成人免费在线 | 亚洲国产中文字幕在线观看 | 亚洲精品国产精品久久99热 | 日韩精品一区二区三区中文字幕 | 国产欧美日韩精品一区二区免费 | 午夜国产一区二区三区四区 | 日韩二区三区在线观看 | 色亚洲网| 激情九九 | 国产精品国产三级国产专区53 | 在线观看国产www | 久久久久久久久久影视 | 欧美另类网站 | 亚洲视频大全 | 成人app在线免费观看 | 久久精品直播 | 日韩在线欧美在线 | 日韩在线观看视频一区二区三区 | 伊人亚洲综合 | 国产一区av在线 | 视频一区二区国产 | av成人资源 | 久久精品www人人爽人人 | 中文字幕一区二 | 天天操欧美 | 亚洲年轻女教师毛茸茸 | 日韩中文字幕免费电影 | 人人爱爱 | 久久九九九九 | 日日夜夜国产 | 久久久久成人精品 | 欧美色精品天天在线观看视频 | 国产伦理一区二区 | 人人澡人人爽 | 欧美日韩精品影院 | 91综合久久一区二区 | 国产在线精品二区 | 日韩免费一二三区 | 在线看v片 | aaa毛片视频 | 91在线精品一区二区 | 国产高h视频 | 综合中文字幕 | 欧美精品一区二区三区四区在线 | 日韩精品一区二区免费视频 | 久久婷婷一区二区三区 | 免费在线播放av电影 | 成人一级电影在线观看 | avove黑丝 | 国产精品乱码久久久久 | www.午夜色.com | 99精品福利视频 | 中文字幕丰满人伦在线 | 在线观看 亚洲 | 黄色a一级片 | 激情图片qvod | 五月天婷亚洲天综合网精品偷 | 97超碰人人澡人人爱学生 | 三级av网站| 99视频网站 | 亚洲资源在线 | 欧美日视频 | 久久国产三级 | 欧美色图亚洲图片 | 精品免费一区二区三区 | 亚洲经典在线 | 97超碰人人模人人人爽人人爱 | 欧洲精品久久久久毛片完整版 | 日日夜夜免费精品 | 激情在线五月天 | 久久观看最新视频 | 久久老司机精品视频 | 91在线观看黄 | 亚洲黄色片一级 | 国产精品大尺度 | 免费视频一二三 | av中文字幕在线电影 | 国产精品黄色在线观看 | 三级av网站| 成人在线播放视频 | 96av视频| 国产剧情一区二区在线观看 | 在线一区电影 | 日韩女同一区二区三区在线观看 | 一区二区精 | 日韩免费电影网 | 成年人黄色免费网站 | 国产精品久久久久久久久久三级 | 久久久久久99精品 | 国产剧情在线一区 | 豆豆色资源网xfplay | 狠狠色综合欧美激情 | 免费看黄色毛片 | 天天射天天操天天 | 国产又粗又猛又爽又黄的视频免费 | 高潮毛片无遮挡高清免费 | 最近免费中文字幕mv在线视频3 | 99这里精品| 日韩理论在线观看 | 成人h动漫在线看 | 成人资源在线 | 黄色片网站av | av天天在线观看 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 日韩精品aaa | 久久综合狠狠综合 | 国内免费久久久久久久久久久 | 5月丁香婷婷综合 | 亚洲精品日韩在线观看 | 国产伦理久久 | 国产 欧美 日本 | 久久久精品国产免费观看一区二区 | 公开超碰在线 | 国产成人精品av在线观 | 日韩午夜电影院 | 亚洲成人精品在线观看 | www.成人sex| 久久黄色网页 | 国产麻豆精品一区二区 | av观看免费在线 | 91色偷偷| 午夜视频免费 | 四虎影视成人精品国库在线观看 | 奇人奇案qvod | 精品久久久久久亚洲综合网 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 天天干天天爽 | 亚洲码国产日韩欧美高潮在线播放 | 中文字幕在线日本 | 国产精品免费久久久久久久久久中文 | 在线观看韩日电影免费 | 99久久精品视频免费 | 国内精品福利视频 | 国产福利小视频在线 | 亚洲精品在线观看免费 | 久久久www成人免费毛片麻豆 | 性色视频在线 | 亚洲午夜精 | 国产精品久久久久久久久久东京 | 日韩成人av在线 | 久久精品一二区 | 国产精品美女久久久久久2018 | 国产手机在线 | 国产精品一区二区三区视频免费 | 国产精品久久久久久吹潮天美传媒 | 中文字幕美女免费在线 | 国产无遮挡又黄又爽在线观看 | 久久精品综合网 | 99热手机在线观看 | 九色精品免费永久在线 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 久久不射电影网 | 亚洲第一久久久 | 超碰免费观看 | 久久免费a| 国产在线不卡一区 | 在线观看精品一区 | 国产午夜一区二区 | 久久精品精品 | 国产精品一区二区三区免费视频 | 亚洲www天堂com| www.久久久.cum | 久久黄色网 | 久久国产精品99久久人人澡 | 国产在线v | 91精品网站 | 热久久电影 | 四虎在线免费观看视频 | 成人在线免费观看网站 | 免费观看黄色12片一级视频 | 国产精品久久精品国产 | 欧美精品免费在线观看 | 久草在线综合网 | 久久久亚洲成人 |