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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

细说ReactiveCocoa的冷信号与热信号(三):怎么处理冷信号与热信号

發布時間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 细说ReactiveCocoa的冷信号与热信号(三):怎么处理冷信号与热信号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一篇文章中我們介紹了冷信號與熱信號的概念,前一篇文章我們也討論了為什么要區分冷信號與熱信號,下面我會先為大家揭曉熱信號的本質,再給出冷信號轉換成熱信號的方法。

揭示熱信號的本質

在ReactiveCocoa中,究竟什么才是熱信號呢?冷信號是比較常見的,map一下就會得到一個冷信號。但在RAC中,好像并沒有“hot signal”這個單獨的說法。原來在RAC的世界中,所有的熱信號都屬于一個類——RACSubject。接下來我們來看看究竟它為什么這么“神奇”。

在RAC2.5文檔的框架概述中,有著這樣一段描述:

A subject, represented by the RACSubject class, is a signal that can be manually controlled.

Subjects can be thought of as the “mutable” variant of a signal, much like NSMutableArray is for NSArray. They are extremely useful for bridging non-RAC code into the world of signals.

For example, instead of handling application logic in block callbacks, the blocks can simply send events to a shared subject instead. The subject can then be returned as a RACSignal, hiding the implementation detail of the callbacks.

Some subjects offer additional behaviors as well. In particular, RACReplaySubject can be used to buffer events for future subscribers, like when a network request finishes before anything is ready to handle the result.

從這段描述中,我們可以發現Subject具備如下三個特點:

  • Subject是“可變”的。
  • Subject是非RAC到RAC的一個橋梁。
  • Subject可以附加行為,例如RACReplaySubject具備為未來訂閱者緩沖事件的能力。
  • 從第三個特點來看,Subject具備為未來訂閱者緩沖事件的能力,那也就說明它是自身是有狀態的。根據上文的介紹,Subject是符合熱信號的特點的。為了驗證它,我們再來做個簡單實驗:

    RACSubject *subject = [RACSubject subject];RACSubject *replaySubject = [RACReplaySubject subject];[[RACScheduler mainThreadScheduler] afterDelay:0.1 schedule:^{// Subscriber 1[subject subscribeNext:^(id x) {NSLog(@"Subscriber 1 get a next value: %@ from subject", x);}];[replaySubject subscribeNext:^(id x) {NSLog(@"Subscriber 1 get a next value: %@ from replay subject", x);}];// Subscriber 2[subject subscribeNext:^(id x) {NSLog(@"Subscriber 2 get a next value: %@ from subject", x);}];[replaySubject subscribeNext:^(id x) {NSLog(@"Subscriber 2 get a next value: %@ from replay subject", x);}];}];[[RACScheduler mainThreadScheduler] afterDelay:1 schedule:^{[subject sendNext:@"send package 1"];[replaySubject sendNext:@"send package 1"];}];[[RACScheduler mainThreadScheduler] afterDelay:1.1 schedule:^{// Subscriber 3[subject subscribeNext:^(id x) {NSLog(@"Subscriber 3 get a next value: %@ from subject", x);}];[replaySubject subscribeNext:^(id x) {NSLog(@"Subscriber 3 get a next value: %@ from replay subject", x);}];// Subscriber 4[subject subscribeNext:^(id x) {NSLog(@"Subscriber 4 get a next value: %@ from subject", x);}];[replaySubject subscribeNext:^(id x) {NSLog(@"Subscriber 4 get a next value: %@ from replay subject", x);}];}];[[RACScheduler mainThreadScheduler] afterDelay:2 schedule:^{[subject sendNext:@"send package 2"];[replaySubject sendNext:@"send package 2"];}];

    按照時間線來解讀一下上述代碼:

  • 0s時創建subject與replaySubject這兩個subject。
  • 0.1s時Subscriber 1分別訂閱了subject與replaySubject。
  • 0.1s時Subscriber 2也分別訂閱了subject與replaySubject。
  • 1s時分別向subject與replaySubject發送了"send package 1"這個字符串作為
  • 1.1s時Subscriber 3分別訂閱了subject與replaySubject。
  • 1.1s時Subscriber 4也分別訂閱了subject與replaySubject。
  • 2s時再分別向subject與replaySubject發送了"send package 2"這個字符串作為
  • 接下來看一下輸出的結果:

    2015-09-28 13:35:22.855 RACDemos[13646:1269269] Start 2015-09-28 13:35:23.856 RACDemos[13646:1269269] Subscriber 1 get a next value: send package 1 from subject 2015-09-28 13:35:23.856 RACDemos[13646:1269269] Subscriber 2 get a next value: send package 1 from subject 2015-09-28 13:35:23.857 RACDemos[13646:1269269] Subscriber 1 get a next value: send package 1 from replay subject 2015-09-28 13:35:23.857 RACDemos[13646:1269269] Subscriber 2 get a next value: send package 1 from replay subject 2015-09-28 13:35:24.059 RACDemos[13646:1269269] Subscriber 3 get a next value: send package 1 from replay subject 2015-09-28 13:35:24.059 RACDemos[13646:1269269] Subscriber 4 get a next value: send package 1 from replay subject 2015-09-28 13:35:25.039 RACDemos[13646:1269269] Subscriber 1 get a next value: send package 2 from subject 2015-09-28 13:35:25.039 RACDemos[13646:1269269] Subscriber 2 get a next value: send package 2 from subject 2015-09-28 13:35:25.039 RACDemos[13646:1269269] Subscriber 3 get a next value: send package 2 from subject 2015-09-28 13:35:25.040 RACDemos[13646:1269269] Subscriber 4 get a next value: send package 2 from subject 2015-09-28 13:35:25.040 RACDemos[13646:1269269] Subscriber 1 get a next value: send package 2 from replay subject 2015-09-28 13:35:25.040 RACDemos[13646:1269269] Subscriber 2 get a next value: send package 2 from replay subject 2015-09-28 13:35:25.040 RACDemos[13646:1269269] Subscriber 3 get a next value: send package 2 from replay subject 2015-09-28 13:35:25.040 RACDemos[13646:1269269] Subscriber 4 get a next value: send package 2 from replay subject

    結合結果可以分析出如下內容:

  • 22.855s時,測試啟動,subject與replaySubject創建完畢。
  • 23.856s時,距離啟動大約1s后,Subscriber 1和Subscriber 2同時從subject接收到了"send package 1"這個值。
  • 23.857s時,也是距離啟動大約1s后,Subscriber 1和Subscriber 2同時從replaySubject接收到了"send package 1"這個值。
  • 24.059s時,距離啟動大約1.2s后,Subscriber 3和Subscriber 4同時從replaySubject接收到了"send package 1"這個值。注意Subscriber 3和Subscriber 4并沒有從subject接收"send package 1"這個值。
  • 25.039s時,距離啟動大約2.1s后,Subscriber 1、Subscriber 2、Subscriber 3、Subscriber 4同時從subject接收到了"send package 2"這個值。
  • 25.040s時,距離啟動大約2.1s后,Subscriber 1、Subscriber 2、Subscriber 3、Subscriber 4同時從replaySubject接收到了"send package 2"這個值。
  • 只關注subject,根據時間線,我們可以得到下圖:

    經過觀察不難發現,4個訂閱者實際上是共享subject的,一旦這個subject發送了值,當前的訂閱者就會同時接收到。由于Subscriber 3與Subscriber 4的訂閱時間稍晚,所以錯過了第一次值的發送。這與冷信號是截然不同的反應。冷信號的圖類似下圖:

    對比上面兩張圖,是不是可以發現,subject類似“直播”,錯過了就不再處理。而signal類似“點播”,每次訂閱都會從頭開始。所以我們有理由認定subject天然就是熱信號。

    下面再來看看replaySubject,根據時間線,我們能得到另一張圖:

    將圖3與圖1對比會發現,Subscriber 3與Subscriber 4在訂閱后馬上接收到了“歷史值”。對于Subscriber 3和Subscriber 4來說,它們只關心“歷史的值”而不關心“歷史的時間線”,因為實際上1與2是間隔1s發送的,但是它們接收到的顯然不是。舉個生動的例子,就好像科幻電影里面主人公穿越時間線后會先把所有的回憶快速閃過再來到現實一樣。(見《X戰警:逆轉未來》、《蝴蝶效應》)所以我們也有理由認定replaySubject天然也是熱信號。

    看到這里,我們終于揭開了熱信號的面紗,結論就是:

  • RACSubject及其子類是熱信號
  • RACSignal排除RACSubject類以外的是冷信號
  • 如何將一個冷信號轉化成熱信號——廣播

    冷信號與熱信號的本質區別在于是否保持狀態,冷信號的多次訂閱是不保持狀態的,而熱信號的多次訂閱可以保持狀態。所以一種將冷信號轉換為熱信號的方法就是,將冷信號訂閱,訂閱到的每一個時間通過RACSbuject發送出去,其他訂閱者只訂閱這個RACSubject。

    觀察下面的代碼:

    RACSignal *coldSignal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {NSLog(@"Cold signal be subscribed.");[[RACScheduler mainThreadScheduler] afterDelay:1.5 schedule:^{[subscriber sendNext:@"A"];}];[[RACScheduler mainThreadScheduler] afterDelay:3 schedule:^{[subscriber sendNext:@"B"];}];[[RACScheduler mainThreadScheduler] afterDelay:5 schedule:^{[subscriber sendCompleted];}];return nil;}];RACSubject *subject = [RACSubject subject];NSLog(@"Subject created.");[[RACScheduler mainThreadScheduler] afterDelay:2 schedule:^{[coldSignal subscribe:subject];}];[subject subscribeNext:^(id x) {NSLog(@"Subscriber 1 recieve value:%@.", x);}];[[RACScheduler mainThreadScheduler] afterDelay:4 schedule:^{[subject subscribeNext:^(id x) {NSLog(@"Subscriber 2 recieve value:%@.", x);}];

    執行順序是這樣的:

  • 創建一個冷信號:coldSignal。該信號聲明了“訂閱后1.5秒發送‘A’,3秒發送’B’,5秒發送完成事件”。
  • 創建一個RACSubject:subject。
  • 在2秒后使用這個subject訂閱coldSignal。
  • 立即訂閱這個subject。
  • 4秒后訂閱這個subject。
  • 如果所料不錯的話,通過訂閱這個subject并不會引起coldSignal重復執行block的內容。我們來看下結果:

    2015-09-28 19:36:45.703 RACDemos[14110:1556061] Subject created. 2015-09-28 19:36:47.705 RACDemos[14110:1556061] Cold signal be subscribed. 2015-09-28 19:36:49.331 RACDemos[14110:1556061] Subscriber 1 recieve value:A. 2015-09-28 19:36:50.999 RACDemos[14110:1556061] Subscriber 1 recieve value:B. 2015-09-28 19:36:50.999 RACDemos[14110:1556061] Subscriber 2 recieve value:B.

    參考時間線,會得到下圖:

    不難發現其中的幾個重點: 1. subject是從一開始就創建好的,等到2s后便開始訂閱coldSignal。 2. Subscriber 1是subject創建后就開始訂閱的,但是第一個接收時間與subject接收coldSignal第一個值的時間是一樣的。 3. Subscriber 2是subject創建4s后開始訂閱的,所以只能接收到第二個值。

    通過觀察可以確定,subject就是coldSignal轉化的熱信號。所以使用RACSubject來將冷信號轉化為熱信號是可行的。

    當然,使用這種RACSubject來訂閱冷信號得到熱信號的方式仍有一些小的瑕疵。例如subject的訂閱者提前終止了訂閱,而subject并不能終止對coldSignal的訂閱。(RACDisposable是一個比較大的話題,我計劃在其他的文章中詳細闡述它,也希望感興趣的同學自己來理解。)所以在RAC庫中對于冷信號轉化成熱信號有如下標準的封裝:

    - (RACMulticastConnection *)publish; - (RACMulticastConnection *)multicast:(RACSubject *)subject; - (RACSignal *)replay; - (RACSignal *)replayLast; - (RACSignal *)replayLazily;

    這5個方法中,最為重要的就是- (RACMulticastConnection *)multicast:(RACSubject *)subject;這個方法了,其他幾個方法也是間接調用它的。我們來看看它的實現:

    /// implementation RACSignal (Operations) - (RACMulticastConnection *)multicast:(RACSubject *)subject {[subject setNameWithFormat:@"[%@] -multicast: %@", self.name, subject.name];RACMulticastConnection *connection = [[RACMulticastConnection alloc] initWithSourceSignal:self subject:subject];return connection; }/// implementation RACMulticastConnection- (id)initWithSourceSignal:(RACSignal *)source subject:(RACSubject *)subject {NSCParameterAssert(source != nil);NSCParameterAssert(subject != nil);self = [super init];if (self == nil) return nil;_sourceSignal = source;_serialDisposable = [[RACSerialDisposable alloc] init];_signal = subject;return self; }#pragma mark Connecting- (RACDisposable *)connect {BOOL shouldConnect = OSAtomicCompareAndSwap32Barrier(0, 1, &_hasConnected);if (shouldConnect) {self.serialDisposable.disposable = [self.sourceSignal subscribe:_signal];}return self.serialDisposable; }- (RACSignal *)autoconnect {__block volatile int32_t subscriberCount = 0;return [[RACSignalcreateSignal:^(id<RACSubscriber> subscriber) {OSAtomicIncrement32Barrier(&subscriberCount);RACDisposable *subscriptionDisposable = [self.signal subscribe:subscriber];RACDisposable *connectionDisposable = [self connect];return [RACDisposable disposableWithBlock:^{[subscriptionDisposable dispose];if (OSAtomicDecrement32Barrier(&subscriberCount) == 0) {[connectionDisposable dispose];}}];}]setNameWithFormat:@"[%@] -autoconnect", self.signal.name]; }

    雖然代碼比較短但不是很好懂,大概來說明一下:

  • 當RACSignal類的實例調用- (RACMulticastConnection *)multicast:(RACSubject *)subject時,以self和subject作為構造參數創建一個RACMulticastConnection實例。
  • RACMulticastConnection構造的時候,保存source和subject作為成員變量,創建一個RACSerialDisposable對象,用于取消訂閱。
  • 當RACMulticastConnection類的實例調用- (RACDisposable *)connect這個方法的時候,判斷是否是第一次。如果是的話用_signal這個成員變量來訂閱sourceSignal之后返回self.serialDisposable;否則直接返回self.serialDisposable。這里面訂閱sourceSignal是重點。
  • RACMulticastConnection的signal只讀屬性,就是一個熱信號,訂閱這個熱信號就避免了各種副作用的問題。它會在- (RACDisposable *)connect第一次調用后,根據sourceSignal的訂閱結果來傳遞事件。
  • 想要確保第一次訂閱就能成功訂閱sourceSignal,可以使用- (RACSignal *)autoconnect這個方法,它保證了第一個訂閱者觸發sourceSignal的訂閱,也保證了當返回的信號所有訂閱者都關閉連接后sourceSignal被正確關閉連接。
  • 由于RAC是一個線程安全的框架,所以好奇的同學可以了解下“OSAtomic*”這一系列的原子操作。拋開這些應該不難理解上述代碼。

    了解源碼之后,這個方法的正確使用就清楚了,應該像這樣:

    RACSignal *coldSignal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {NSLog(@"Cold signal be subscribed.");[[RACScheduler mainThreadScheduler] afterDelay:1.5 schedule:^{[subscriber sendNext:@"A"];}];[[RACScheduler mainThreadScheduler] afterDelay:3 schedule:^{[subscriber sendNext:@"B"];}];[[RACScheduler mainThreadScheduler] afterDelay:5 schedule:^{[subscriber sendCompleted];}];return nil;}];RACSubject *subject = [RACSubject subject];NSLog(@"Subject created.");RACMulticastConnection *multicastConnection = [coldSignal multicast:subject];RACSignal *hotSignal = multicastConnection.signal;[[RACScheduler mainThreadScheduler] afterDelay:2 schedule:^{[multicastConnection connect];}];[hotSignal subscribeNext:^(id x) {NSLog(@"Subscribe 1 recieve value:%@.", x);}];[[RACScheduler mainThreadScheduler] afterDelay:4 schedule:^{[hotSignal subscribeNext:^(id x) {NSLog(@"Subscribe 2 recieve value:%@.", x);}];}];

    或者這樣:

    RACSignal *coldSignal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {NSLog(@"Cold signal be subscribed.");[[RACScheduler mainThreadScheduler] afterDelay:1.5 schedule:^{[subscriber sendNext:@"A"];}];[[RACScheduler mainThreadScheduler] afterDelay:3 schedule:^{[subscriber sendNext:@"B"];}];[[RACScheduler mainThreadScheduler] afterDelay:5 schedule:^{[subscriber sendCompleted];}];return nil;}];RACSubject *subject = [RACSubject subject];NSLog(@"Subject created.");RACMulticastConnection *multicastConnection = [coldSignal multicast:subject];RACSignal *hotSignal = multicastConnection.autoconnect;[[RACScheduler mainThreadScheduler] afterDelay:2 schedule:^{[hotSignal subscribeNext:^(id x) {NSLog(@"Subscribe 1 recieve value:%@.", x);}];}];[[RACScheduler mainThreadScheduler] afterDelay:4 schedule:^{[hotSignal subscribeNext:^(id x) {NSLog(@"Subscribe 2 recieve value:%@.", x);}];}];

    以上的兩種寫法和之前用Subject來傳遞的例子都可以得到相同的結果。

    下面再來看看其他幾個方法的實現:

    /// implementation RACSignal (Operations) - (RACMulticastConnection *)publish {RACSubject *subject = [[RACSubject subject] setNameWithFormat:@"[%@] -publish", self.name];RACMulticastConnection *connection = [self multicast:subject];return connection; }- (RACSignal *)replay {RACReplaySubject *subject = [[RACReplaySubject subject] setNameWithFormat:@"[%@] -replay", self.name];RACMulticastConnection *connection = [self multicast:subject];[connection connect];return connection.signal; }- (RACSignal *)replayLast {RACReplaySubject *subject = [[RACReplaySubject replaySubjectWithCapacity:1] setNameWithFormat:@"[%@] -replayLast", self.name];RACMulticastConnection *connection = [self multicast:subject];[connection connect];return connection.signal; }- (RACSignal *)replayLazily {RACMulticastConnection *connection = [self multicast:[RACReplaySubject subject]];return [[RACSignaldefer:^{[connection connect];return connection.signal;}]setNameWithFormat:@"[%@] -replayLazily", self.name]; }

    這幾個方法的實現都相當簡單,只是為了簡化而封裝,具體說明一下:

  • - (RACMulticastConnection *)publish就是幫忙創建了RACSubject。
  • - (RACSignal *)replay就是用RACReplaySubject來作為subject,并立即執行connect操作,返回connection.signal。其作用是上面提到的replay功能,即后來的訂閱者可以收到歷史值。
  • - (RACSignal *)replayLast就是用Capacity為1的RACReplaySubject來替換- (RACSignal *)replay的`subject。其作用是使后來訂閱者只收到最后的歷史值。
  • - (RACSignal *)replayLazily和- (RACSignal *)replay的區別就是replayLazily會在第一次訂閱的時候才訂閱sourceSignal。
  • 所以,其實本質仍然是

    使用一個Subject來訂閱原始信號,并讓其他訂閱者訂閱這個Subject,這個Subject就是熱信號。

    現在再回過來看下之前系列文章第二篇中那個業務場景的例子,其實修改的方法很簡單,就是在網絡獲取的fetchData這個信號后面,增加一個replayLazily變換,就不會出現網絡請求重發6次的問題了。

    修改后的代碼如下,大家可以試試:

    self.sessionManager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://api.xxxx.com"]];self.sessionManager.requestSerializer = [AFJSONRequestSerializer serializer];self.sessionManager.responseSerializer = [AFJSONResponseSerializer serializer];@weakify(self)RACSignal *fetchData = [[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {@strongify(self)NSURLSessionDataTask *task = [self.sessionManager GET:@"fetchData" parameters:@{@"someParameter": @"someValue"} success:^(NSURLSessionDataTask *task, id responseObject) {[subscriber sendNext:responseObject];[subscriber sendCompleted];} failure:^(NSURLSessionDataTask *task, NSError *error) {[subscriber sendError:error];}];return [RACDisposable disposableWithBlock:^{if (task.state != NSURLSessionTaskStateCompleted) {[task cancel];}}];}] replayLazily]; // modify here!!RACSignal *title = [fetchData flattenMap:^RACSignal *(NSDictionary *value) {if ([value[@"title"] isKindOfClass:[NSString class]]) {return [RACSignal return:value[@"title"]];} else {return [RACSignal error:[NSError errorWithDomain:@"some error" code:400 userInfo:@{@"originData": value}]];}}];RACSignal *desc = [fetchData flattenMap:^RACSignal *(NSDictionary *value) {if ([value[@"desc"] isKindOfClass:[NSString class]]) {return [RACSignal return:value[@"desc"]];} else {return [RACSignal error:[NSError errorWithDomain:@"some error" code:400 userInfo:@{@"originData": value}]];}}];RACSignal *renderedDesc = [desc flattenMap:^RACStream *(NSString *value) {NSError *error = nil;RenderManager *renderManager = [[RenderManager alloc] init];NSAttributedString *rendered = [renderManager renderText:value error:&error];if (error) {return [RACSignal error:error];} else {return [RACSignal return:rendered];}}];RAC(self.someLablel, text) = [[title catchTo:[RACSignal return:@"Error"]] startWith:@"Loading..."];RAC(self.originTextView, text) = [[desc catchTo:[RACSignal return:@"Error"]] startWith:@"Loading..."];RAC(self.renderedTextView, attributedText) = [[renderedDesc catchTo:[RACSignal return:[[NSAttributedString alloc] initWithString:@"Error"]]] startWith:[[NSAttributedString alloc] initWithString:@"Loading..."]];[[RACSignal merge:@[title, desc, renderedDesc]] subscribeError:^(NSError *error) {UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:error.domain delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];[alertView show];}];

    當然,細心的同學會發現這樣修改,仍然有許多計算上的浪費,例如將fetchData轉換為title的block會執行多次,將fetchData轉換為desc的block也會執行多次。但是由于這些block都是無副作用的,計算量并不大,可以忽略不計。如果計算量大的,也需要對中間的信號進行熱信號的轉換。不過請不要忽略冷熱信號的轉換本身也是有計算代價的。

    好的,寫到這里,我們終于揭開RAC中冷信號與熱信號的全部面紗,也知道如何使用了。希望這個系列文章可以讓大家更好地了解RAC,避免使用RAC遇到的誤區。謝謝大家。

    美團iOS組有很多志同道合的小伙伴,對于各種技術都有著深入的了解,我們熱忱地歡迎一切牛掰的小伙伴加入,共同學習,共同進步。(簡歷請發送到郵箱 liangsi02@meituan.com)

    總結

    以上是生活随笔為你收集整理的细说ReactiveCocoa的冷信号与热信号(三):怎么处理冷信号与热信号的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    欧美色图亚洲图片 | 欧美日韩国产区 | 六月婷婷久香在线视频 | 国产日韩欧美在线影视 | 亚洲国产人午在线一二区 | 五月婷婷激情五月 | 久久 亚洲视频 | 在线观看免费高清视频大全追剧 | 最新成人在线 | 亚洲国产wwwccc36天堂 | 久久经典国产视频 | 一级a性色生活片久久毛片波多野 | av天天色| 日日干日日操 | 欧洲一区二区在线观看 | 日韩国产欧美在线视频 | 91热爆视频 | 久插视频| 国产成人免费观看 | 国产一级三级 | 伊人狠狠色 | 91麻豆精品国产91久久久更新时间 | 98超碰人人 | 久久九九九九 | 亚洲黄色激情小说 | 日韩一区正在播放 | 9久久精品| 久草观看视频 | 国产一级免费av | 777奇米四色 | 操操综合网| 欧美日韩精品电影 | 九九一级片 | 在线日韩中文 | 欧美精品一区二区免费 | 日本中文字幕在线看 | 夜夜高潮夜夜爽国产伦精品 | 成人久久| 精品国产色 | 日本激情视频中文字幕 | 在线影院中文字幕 | 国产精品麻豆果冻传媒在线播放 | 91精品国产综合久久福利不卡 | 99视频在线免费播放 | 天天干天天干天天色 | 青青久视频 | 日韩在线免费看 | 日韩精品一区电影 | 天天干天天干天天干 | 深爱激情五月婷婷 | 欧美aa级| 手机看片久久 | 日韩视频一区二区三区 | 最新av在线播放 | 日本爽妇网| 免费看三级网站 | 中文字幕传媒 | 久久艹中文字幕 | 激情网色| 国产剧情亚洲 | 丁香婷婷色综合亚洲电影 | 欧美久久久久久久久久 | 正在播放一区 | 亚洲视频一区二区三区在线观看 | 99精品视频播放 | 中文字幕人成不卡一区 | 欧美成人手机版 | 久久免费视频网 | 91视频 - 114av | 日本成人免费在线观看 | 91精品一区国产高清在线gif | 欧美综合干 | 国产一区影院 | 一级淫片a | 91视频在线国产 | 狠狠精品 | 欧美老人xxxx18 | 国产精品久久电影观看 | 国产精品久久久99 | 色久av| 欧美成人xxx | 视频精品一区二区三区 | 国产成人1区| 久久综合久久久久88 | 黄色小视频在线观看免费 | 就要色综合 | www激情com| 久久精品国产久精国产 | 一区二区三区在线免费播放 | 婷婷综合五月天 | 日韩一区二区三区高清在线观看 | 久久在线免费观看 | 国产91av视频在线观看 | 中文字幕频道 | 免费国产一区二区视频 | 精品国产诱惑 | 69精品视频在线观看 | 麻豆一二三精选视频 | 久久夜色精品国产欧美乱 | 中文字幕在线播放第一页 | 国产中文在线观看 | av片子在线观看 | 激情丁香5月 | 国产福利精品在线观看 | 国产精品一区二区久久国产 | 天天干天天做天天爱 | 91丨精品丨蝌蚪丨白丝jk | 91网在线看 | www.黄色网.com | 天天插综合| 成人a v视频 | 欧美一区影院 | 亚洲天堂网站视频 | 亚洲人在线7777777精品 | 在线亚洲成人 | 麻豆视频免费网站 | 久久久久日本精品一区二区三区 | 精品亚洲视频在线观看 | 人人狠| 国产在线视频在线观看 | 色欲综合视频天天天 | 天天色棕合合合合合合 | 欧美 亚洲 另类 激情 另类 | 97在线视频观看 | 欧美日韩高清在线观看 | 在线一级片 | 色插综合| 在线电影91| 国产精品久久久久久久久久久免费 | 免费高清在线一区 | 国产精品一区免费看8c0m | 97网| 国产又粗又猛又黄视频 | 天天草天天爽 | 亚洲国产中文在线观看 | 日日摸日日添夜夜爽97 | 超碰免费av| 天天操天天干天天综合网 | 伊人亚洲精品 | 高清av网站 | 麻花豆传媒mv在线观看网站 | 久久久九色精品国产一区二区三区 | 91精品视频观看 | 免费在线观看成人av | 91免费观看 | 91一区二区在线 | 久久精品亚洲综合专区 | 欧美日韩观看 | 超碰伊人网| 久久免费a | 色婷婷激婷婷情综天天 | 久久成人精品电影 | 成人精品在线 | 免费在线观看成人 | 人人爽人人澡人人添人人人人 | 欧美一区二区日韩一区二区 | 国产亚洲精品久久久久秋 | 91麻豆看国产在线紧急地址 | 色婷婷综合久久久久 | 91毛片在线观看 | 日韩精品无码一区二区三区 | 久久久久美女 | 久久久久免费精品视频 | 日本视频高清 | 国产成人精品av在线观 | 亚洲欧美国产精品 | 国产免费人成xvideos视频 | 亚洲资源在线 | 精品国产一区二区三区日日嗨 | 久久精品专区 | 天天操天天射天天插 | 日韩欧美91 | 中文在线最新版天堂 | 免费av片在线 | 91麻豆看国产在线紧急地址 | 四虎国产精品成人免费4hu | 亚洲精品无 | 热久久免费视频精品 | 国产精品手机在线 | 日本 在线 视频 中文 有码 | 日b视频国产 | 日日精品 | 免费电影播放 | 欧洲精品亚洲精品 | 最近中文字幕完整高清 | 久久蜜臀一区二区三区av | a色视频 | 免费在线观看午夜视频 | 亚洲精品乱码久久久久久9色 | 在线免费观看黄 | 天天天色 | 亚洲天天做| 久碰视频在线观看 | 日韩av在线网站 | 午夜久久福利 | 国产成人99av超碰超爽 | 99r在线视频 | 成人h电影在线观看 | 亚洲男男gⅴgay双龙 | 成人中文字幕+乱码+中文字幕 | 欧美性生活一级片 | 国产伦精品一区二区三区在线 | 91天天操| 在线看日韩 | 欧美日本中文字幕 | 国产69熟 | 99热这里只有精品1 av中文字幕日韩 | 日韩在线 一区二区 | 亚洲视频在线视频 | 中文字幕视频一区 | 在线观影网站 | 中文字幕视频网站 | 综合色影院 | 四虎永久国产精品 | 亚洲精品男人的天堂 | 日韩有码第一页 | 国产精品一区二区你懂的 | 91精品秘密在线观看 | 日韩免费网址 | 国产午夜一级毛片 | 麻豆91精品| 亚洲黄在线观看 | 欧美黄色成人 | 精品国产免费人成在线观看 | 人人爽人人插 | 在线观看亚洲电影 | 夜夜操天天干, | 中文字幕精 | 精品一区二区亚洲 | 亚洲视频 在线观看 | 99免费在线视频观看 | 国产麻豆果冻传媒在线观看 | 久久看看 | 久久久国产精品电影 | 欧美午夜a | 9ⅰ精品久久久久久久久中文字幕 | 日韩色综合 | 亚洲欧美综合 | 天天射成人| 成人免费xxxxxx视频 | 91精品国产成人观看 | 夜夜干天天操 | 成人毛片在线视频 | 国产特级毛片aaaaaa高清 | 黄色电影网站在线观看 | 久草在线综合网 | 成年人精品 | 黄色亚洲免费 | 日韩免费电影在线观看 | 91av免费观看| 国产在线观看xxx | 96精品高清视频在线观看软件特色 | 国产在线精品区 | 娇妻呻吟一区二区三区 | 国产亚洲一区二区三区 | 黄色片网站大全 | 亚洲成人xxx | 顶级欧美色妇4khd | 伊人干综合 | 久久午夜网 | 黄色小网站在线观看 | 性色av免费观看 | 日韩免费在线观看 | 香蕉视频免费看 | 福利久久| 久草视频在线观 | 五月婷婷在线播放 | 在线免费观看av网站 | 欧美福利久久 | 欧美日韩精品在线免费观看 | 国产成人精品一区二区三区 | 国产中文a| 免费a网站| 一级黄色片在线观看 | 在线一二三区 | 精品超碰| 成人欧美一区二区三区在线观看 | 噜噜色官网 | 精品欧美一区二区三区久久久 | 国产专区免费 | 亚洲精品99久久久久中文字幕 | 成人在线播放av | 国产成人精品一二三区 | 欧美综合国产 | 91久久久久久国产精品 | 亚洲毛片视频 | 在线观看免费成人av | 亚洲精品黄| 91成人精品一区在线播放69 | 色婷婷www| 国产群p视频 | 亚洲国产成人在线播放 | 91成人免费观看视频 | 91精品久久久久久粉嫩 | 国产馆在线播放 | 亚洲成人av在线电影 | 东方av免费在线观看 | 国产精品黑丝在线观看 | 麻豆视频免费入口 | 国产精品国产三级国产 | 成人小视频在线观看免费 | 亚洲一区欧美精品 | 日韩精品免费一区二区在线观看 | 国产亚洲精品中文字幕 | 免费a v在线 | 免费麻豆 | 欧美精品午夜 | 成人动漫视频在线 | 国产精彩视频一区二区 | 午夜在线看片 | 天天干天天射天天操 | 国产精品小视频网站 | 免费看片黄色 | 国产成人精品av在线观 | 亚洲日本精品视频 | 免费看亚洲毛片 | 免费色婷婷 | 丁香婷婷久久 | 99在线精品视频 | 国产一区二区三区午夜 | 午夜精品久久久久久久久久久久久久 | 精品国产一区二区三区久久久蜜月 | 在线日韩精品视频 | 在线观看免费日韩 | 久久久国产精品人人片99精片欧美一 | 美女在线免费视频 | 亚洲人片在线观看 | 成年人在线观看免费视频 | av中文在线观看 | 久久人人97超碰com | 狠狠天天 | 国产精品视频内 | 国产亚洲视频在线观看 | 欧美一级性生活片 | 丁香六月天 | 亚洲成aⅴ人在线观看 | 亚洲 欧美日韩 国产 中文 | 亚洲天堂网站视频 | 草久久久久久久 | 亚洲国产97在线精品一区 | 国产精品黄色在线观看 | 婷婷在线网 | 欧美日韩一区二区在线观看 | 深爱激情亚洲 | 国产伦精品一区二区三区免费 | 国产在线观看二区 | 国产中文在线观看 | 国产亚洲精品福利 | 免费黄色激情视频 | 一区二区视频在线观看免费 | 成人小视频免费在线观看 | 夜夜爽天天爽 | 4hu视频| 超碰免费观看 | 欧美一级电影 | av青草| 久草在线视频网站 | 五月天中文字幕mv在线 | 五月天伊人 | 亚洲精品中文在线 | 91看片成人 | 99视频国产精品 | 一区中文字幕 | 久久久免费观看视频 | 亚洲最新av网址 | 日韩在线免费视频 | 欧美在线观看视频免费 | 久久av免费| 午夜丁香视频在线观看 | 欧美日韩不卡一区 | 欧美另类交在线观看 | 久久这里有精品 | 成人在线视 | 一区二区三区免费在线 | 日韩免费av片 | 免费av一级电影 | 久久综合亚洲鲁鲁五月久久 | 97夜夜澡人人双人人人喊 | 亚洲日韩中文字幕在线播放 | 丁香午夜婷婷 | 国产黄色片在线免费观看 | 人人插人人艹 | 国产精品视频资源 | а天堂中文最新一区二区三区 | 国产精品v欧美精品v日韩 | 久久久黄视频 | 久久精品视频一 | 韩国一区二区在线观看 | 久久精品国亚洲 | 97精品国产 | 成人黄色片免费看 | 超碰在线人人草 | 国产黄色精品在线 | 午夜精品一区二区三区在线观看 | 91丨九色丨勾搭 | 三上悠亚在线免费 | 国产中文字幕一区二区三区 | 狠狠综合久久av | 三级av免费 | 综合网在线视频 | 国产成人av电影 | 天天操天天玩 | 最新真实国产在线视频 | 91夜夜夜| 天天操天天操天天操天天操天天操天天操 | 97精品一区二区三区 | 中文字幕在线看人 | 999久久久 | 狠狠狠狠狠狠狠狠干 | 99久久精品免费看国产四区 | 91精品久 | 91网页版在线观看 | 日韩高清在线观看 | 黄色app网站在线观看 | 亚洲欧美激情精品一区二区 | 久久新视频 | 久久社区视频 | 91av观看| 欧美极品久久 | 亚洲视频精品 | 久久九九视频 | 国产成人黄色网址 | 免费网站在线观看成人 | 日韩av免费在线电影 | 亚洲欧美婷婷六月色综合 | 三级黄色大片在线观看 | 日本超碰在线 | 国产麻豆精品一区二区 | 国产精品正在播放 | 欧美日韩网址 | 超碰在线cao| 久久一区二区三区超碰国产精品 | 日韩精品网址 | 成片视频免费观看 | 国产精品久久久久久久久费观看 | 日本精品一 | 伊人网av| 中文字幕精品三级久久久 | 99久久婷婷国产综合精品 | 人人爱天天操 | 成人电影毛片 | 精品视频久久久 | 99热精品视 | 色婷婷婷 | 亚洲视频第一页 | 久久综合在线 | 免费高清看电视网站 | 综合五月| 久草久热 | 亚洲黄色一级大片 | 国产又粗又猛又黄视频 | 插综合网 | 狠狠操电影网 | 久草精品视频 | 欧美巨大荫蒂茸毛毛人妖 | 97超碰影视 | 日韩欧美69| www黄色| 西西www4444大胆在线 | 国产麻豆剧传媒免费观看 | 九九九九热精品免费视频点播观看 | 最新在线你懂的 | 九九免费在线观看 | 人人爱人人舔 | 97精品一区二区三区 | 亚洲成人黄色网址 | 午夜视频一区二区三区 | 一区二区欧美日韩 | 色婷婷在线观看视频 | 啪嗒啪嗒免费观看完整版 | 天天色综合久久 | 久久久噜噜噜久久久 | 国产精品高潮在线观看 | 亚洲国产理论片 | 久久er99热精品一区二区 | 狠狠色丁香婷综合久久 | 天天爽综合网 | 夜夜骑首页 | 免费看v片| 亚洲aⅴ免费在线观看 | 国产理论一区二区三区 | 蜜臀aⅴ国产精品久久久国产 | 久久综合狠狠综合久久狠狠色综合 | 国产日韩欧美中文 | 久草免费色站 | 99九九视频 | 久久99久国产精品黄毛片入口 | 特级西西人体444是什么意思 | 成年人app网址 | 亚洲一区美女视频在线观看免费 | 六月丁香综合 | 99久久er热在这里只有精品15 | 中文字幕资源网在线观看 | 精品九九九 | 久久夜夜操 | 国产精品视频永久免费播放 | 成人午夜剧场在线观看 | 在线观看91久久久久久 | 欧美专区日韩专区 | 色精品视频 | 狠狠干五月天 | 日本少妇高清做爰视频 | 国产91aaa | 国产精品久久久久四虎 | 天天色天天射综合网 | www免费视频com━ | 中文字幕亚洲不卡 | 永久免费毛片在线观看 | 五月天色综合 | 日韩成人高清在线 | 欧美怡红院 | 亚洲永久精品在线观看 | 夜夜高潮夜夜爽国产伦精品 | 夜夜躁狠狠躁日日躁 | 91精品国产自产91精品 | 天天干夜夜夜 | 999一区二区三区 | 国产在线观看中文字幕 | 91九色视频网站 | 欧美性超爽 | 久久免费视频在线观看 | 日本三级国产 | 香蕉精品视频在线观看 | 中文免费在线观看 | 中文字幕亚洲在线观看 | 成人在线观看影院 | 在线中文字幕一区二区 | 91福利区一区二区三区 | 日韩视频在线播放 | 精品久久九九 | 18性欧美xxxⅹ性满足 | 久久久久久蜜av免费网站 | 久久国产精品系列 | 国产色啪 | 天天操夜夜看 | www.伊人网| 欧美日韩国产一区二区在线观看 | 久草免费福利在线观看 | 黄色成人av| 亚州性色 | 91精品一区国产高清在线gif | 久久久99精品免费观看乱色 | 国产自产在线视频 | 成人久久亚洲 | 国产精品色在线 | 久久免费国产视频 | 色综合色综合色综合 | 欧美在线观看视频 | 草久视频在线观看 | 久久观看免费视频 | 亚洲欧洲日韩 | 天天爱天天舔 | 97在线观看免费高清完整版在线观看 | 欧美不卡视频在线 | 草久草久| 亚洲精品国偷拍自产在线观看蜜桃 | 五月婷婷丁香激情 | 亚洲欧美视频在线观看 | 婷婷视频导航 | 亚洲国产精品资源 | 五月婷婷六月丁香 | 亚洲影视九九影院在线观看 | 日本视频网 | 丝袜美腿在线视频 | 97超碰中文字幕 | www在线观看视频 | 免费av电影网站 | 国产91精品久久久久 | 五月天久久精品 | 国产黄色大全 | 亚洲在线不卡 | av在线专区 | 欧美孕妇与黑人孕交 | 黄色精品国产 | 九九影视理伦片 | 在线观看mv的中文字幕网站 | 免费亚洲片 | 操操爽 | 欧美一二三四在线 | 亚洲精品综合在线观看 | 在线免费观看黄 | 五月婷婷丁香六月 | 99精品在线免费观看 | 国产视频久久久久 | 国产精品久久久久四虎 | 欧美男同网站 | av成人动漫在线观看 | 久久久久9999亚洲精品 | 一二三区av | 免费亚洲黄色 | 成人xxxx | 99热官网 | 四虎精品成人免费网站 | 国产资源在线播放 | 久久久久久久久久久久av | 高清日韩一区二区 | 91视频最新网址 | 精品国产片 | 久久激情电影 | aaa日本高清在线播放免费观看 | 美女在线黄 | 日本精品一区二区三区在线观看 | 91豆花在线观看 | 久久午夜网 | 国产精品女视频 | 精品国产乱码久久久久久1区2匹 | 免费一级黄色 | 欧美一区二区伦理片 | 国产精品美女在线观看 | 国产精品毛片一区二区在线看 | 久草在线播放视频 | 尤物九九久久国产精品的分类 | 亚洲视频在线免费看 | 亚洲精品视频在线观看网站 | 免费网站黄色 | 日本精品在线视频 | 国产精品破处视频 | 亚洲视频1 | 国产亚洲精品美女 | 狠狠成人 | 麻豆视频91 | 亚洲四虎影院 | 欧美一区二区三区不卡 | 国产视频18 | 麻豆视频观看 | 中文字幕视频三区 | 日本丶国产丶欧美色综合 | 久草在在线| 免费成人av在线看 | 亚洲一级电影视频 | 91精品啪在线观看国产81旧版 | 欧美日韩在线视频观看 | 91色影院| 久久精品一区二区三区视频 | 日韩中文字幕免费 | 久久精品草 | 丁香五月亚洲综合在线 | 欧美电影在线观看 | 黄色三级免费 | www.xxxx变态.com| 91视频在线免费下载 | 国产精彩视频 | 国产在线免费观看 | 最新av电影网址 | 在线a亚洲视频播放在线观看 | 国产亚洲视频在线观看 | 超碰精品在线 | 久久国产精品99久久久久久老狼 | 久久成人一区二区 | 久久成人亚洲欧美电影 | 麻豆精品传媒视频 | 国产午夜一区二区 | 中文字幕在线免费观看视频 | 国产精品久久一 | 欧美小视频在线 | 婷婷免费在线视频 | 亚洲国产中文在线 | 中文字幕永久在线 | 国产韩国日本高清视频 | 狠狠干夜夜| 一区二区三区免费在线观看视频 | 中文字幕影片免费在线观看 | av品善网| 国产91影院 | 天天躁日日躁狠狠躁 | 99精品国产99久久久久久福利 | 一级黄色片网站 | 婷婷精品在线视频 | 亚洲性视频 | 国产成人777777 | 97精品国产97久久久久久久久久久久 | 在线视频在线观看 | 91麻豆看国产在线紧急地址 | 91精品在线看 | 中午字幕在线 | 国产 欧美 日韩 | 日韩精品免费一区二区在线观看 | 粉嫩av一区二区三区免费 | 色av男人的天堂免费在线 | 在线免费中文字幕 | 国产色综合 | 成人高清av在线 | 精品毛片一区二区免费看 | 综合五月 | 国产精品一区二区在线观看 | 69国产精品视频 | 美女视频久久 | 天天射天天艹 | 91视频免费网址 | 国产精品人人做人人爽人人添 | 激情网婷婷 | 97超碰人人 | 精品国产诱惑 | 热久久电影 | 免费精品国产va自在自线 | 伊人看片 | 国产人成一区二区三区影院 | 亚洲精品日韩av | 国内精品视频免费 | 国产精品欧美久久久久三级 | 国产视频精品久久 | 国内精品一区二区 | 黄色小说网站在线 | 色偷偷88888欧美精品久久 | 成人app在线免费观看 | 国产精品久久久av久久久 | 久久精品79国产精品 | 天天干天天综合 | 久草97| 日韩欧美精品在线观看视频 | 久久国产精品免费观看 | 97精品视频在线 | 视频1区2区 | 91视频大全 | 欧美精品视 | 特级毛片网 | 久久精品国产亚洲a | 亚洲国产欧美在线看片xxoo | 九九视频免费观看视频精品 | 国产婷婷久久 | 亚洲一级特黄 | 黄色国产大片 | 亚洲国产一二三 | 精品久久1 | 999久久久久久久久 69av视频在线观看 | 伊人电影在线观看 | 黄色一级动作片 | 国产手机在线观看 | 中文字幕在线高清 | 国产一级久久久 | 一区二区精品在线视频 | 丁香婷婷深情五月亚洲 | 韩国中文三级 | 97在线公开视频 | 丁香花在线观看免费完整版视频 | 亚洲精品美女在线观看 | 91精品国产99久久久久 | 天天插狠狠干 | 国产精品www | 成年人在线观看 | 99热都是精品 | 亚洲国产高清在线 | 久久69精品久久久久久久电影好 | 嫩小bbbb摸bbb摸bbb | 伊人婷婷激情 | 国内揄拍国产精品 | 亚洲四虎 | 九色91在线| 国偷自产中文字幕亚洲手机在线 | 中文字幕久久网 | 深爱激情五月综合 | 色丁香综合 | 91av视频在线播放 | 欧美黑吊大战白妞欧美 | 狠狠操操| 超碰97免费 | 网址你懂的在线观看 | japanesefreesex中国少妇 | 精品免费 | 国产成人精品亚洲 | 黄色片毛片 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 免费午夜网站 | 91在线精品秘密一区二区 | 国产一级免费在线 | 国产精品免费观看网站 | 亚洲人成人天堂h久久 | 成人精品国产 | 久草在线最新视频 | 欧美日韩亚洲在线观看 | 精品无人国产偷自产在线 | 91精品第一页 | 日韩精品你懂的 | 亚洲国产欧美在线看片xxoo | 69久久99精品久久久久婷婷 | 草久久久久久 | 蜜臀久久99静品久久久久久 | 欧美一区二区在线 | 三级黄色三级 | 成人精品国产免费网站 | 免费看一级特黄a大片 | 免费在线观看av网址 | av福利超碰网站 | 久久综合色影院 | 久草在线手机观看 | 成人免费观看电影 | 在线视频91| 欧美在线18 | 色a综合| 国产精品久久久久久久久久久久久久 | 五月丁色 | 精品久久久久久亚洲综合网站 | 免费亚洲视频在线观看 | 国产高清久久久 | 国产a级片免费观看 | 国内精品久久久久国产 | 国产精品久久久久久久久久不蜜月 | 国产探花视频在线播放 | 久草精品视频 | 波多野结衣精品 | 一区二区三区在线观看中文字幕 | 亚洲在线高清 | 久久精品视频在线看 | 精品欧美一区二区精品久久 | 国产福利精品一区二区 | 色网免费观看 | 国产最新精品视频 | 精品国产伦一区二区三区免费 | 天堂在线视频中文网 | 亚洲精品观看 | 色婷婷丁香 | 天天操天天干天天操天天干 | 国内毛片毛片 | 亚洲精品国产精品国 | 韩国精品福利一区二区三区 | 中文字幕国产一区 | 国产精品一区二区在线观看免费 | 国产精品久久影院 | 久产久精国产品 | 人人天天夜夜 | 亚洲欧洲日韩在线观看 | 国产精品一区二区av日韩在线 | 91最新视频 | 欧美日韩国产成人 | 中文字幕乱码亚洲精品一区 | 免费黄色小网站 | 中文字幕在线影院 | 免费在线观看毛片网站 | 韩国精品一区二区三区六区色诱 | 最新中文字幕在线播放 | 国产成人免费在线观看 | 国产成人一区二区三区在线观看 | 欧美日韩免费一区二区 | 成年人在线播放视频 | av黄色免费在线观看 | 久久99视频免费观看 | 中文资源在线官网 | 久草在线资源视频 | 天堂入口网站 | 色婷婷综合久久久久 | 黄色免费网站 | 五月天丁香视频 | 久草a在线 | 日产av在线播放 | 久久久久亚洲精品成人网小说 | 日韩精品中文字幕一区二区 | 亚欧日韩成人h片 | 国产又黄又爽又猛视频日本 | 久久精品这里都是精品 | 国产精品免费av | 日韩高清不卡在线 | 97超级碰碰| 欧美美女激情18p | 波多野结衣在线播放一区 | 色姑娘综合 | 国产精品18久久久久久久 | 亚洲国产精品第一区二区 | 国产91aaa| 亚洲电影毛片 | 69亚洲视频 | 免费特级黄毛片 | 成年人网站免费在线观看 | 国产最顶级的黄色片在线免费观看 | 亚洲乱亚洲乱亚洲 | jizz18欧美18 | 狠狠激情中文字幕 | www.黄色片网站 | 看av免费网站 | 在线国产不卡 | 成人啊 v | 成人在线你懂得 | 国产成人精品综合久久久久99 | 亚洲一区二区精品3399 | 国产精品久久毛片 | 国产高清视频免费 | 成人三级黄色 | 在线观看成人一级片 | 91色蜜桃 | 亚洲精品视频免费在线 | 国产亚洲午夜高清国产拍精品 | 91香蕉视频 mp4 | 日韩av看片 | 日韩欧美高清一区二区 | 国产高清区 | 一级大片在线观看 | 日韩乱理 | 日韩免费在线视频观看 | 国产视频一区二区在线观看 | 五月婷婷中文字幕 | 国产成人av免费在线观看 | 日日夜夜综合网 | 中文高清av | 久久99免费 | 国产麻豆精品传媒av国产下载 | 狠狠操电影网 | 国产淫a | 久久久久高清毛片一级 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 午夜18视频在线观看 | 国产午夜精品一区 | 国产第一二区 | 国产一区网 | 亚洲aⅴ在线 | 日韩一区在线免费观看 | 91精品久久久久久久久久入口 | 久久久精品久久日韩一区综合 | 97在线视频免费 | 午夜一级免费电影 | 久草在线免费电影 | 一区精品在线 | 欧美性精品 | 精品欧美乱码久久久久久 | 日日操日日 | 蜜桃视频在线视频 | 日韩欧美有码在线 | 国产麻豆果冻传媒在线观看 | 亚洲一区久久久 | 精品久久国产精品 | 青草视频在线 | 2023av在线 | 亚洲黄色网络 | 日韩网站中文字幕 | 91影视成人 | 人人澡人摸人人添学生av | 深爱婷婷久久综合 | 在线黄av | 国产精品第2页 | 成人av电影免费在线观看 | 精品国产91亚洲一区二区三区www | 91免费网 | 日韩精品久久久久久久电影竹菊 | 国产精品久久久久久欧美 | 久久精品这里都是精品 | 91麻豆精品国产自产在线游戏 | 人人舔人人舔 | 久久最新网址 | 亚洲精品综合在线观看 | 91中文字幕在线播放 | 丁香花中文在线免费观看 | 激情综合网婷婷 | 久久久久亚洲精品男人的天堂 | 成人在线观看资源 | 久久99深爱久久99精品 | 国产永久免费 | 日日碰狠狠躁久久躁综合网 | 国产91对白在线播 | 麻豆播放| 国产一区免费在线 | 成人免费在线网 | 国产亚洲成人网 | 在线观看色网 | 国产va在线观看免费 | 日韩午夜在线 | 午夜在线观看 | 97精品国产97久久久久久 | 亚洲久久视频 | 亚洲视频综合 | 亚洲污视频| 91探花系列在线播放 | 天堂av一区二区 | 美女免费电影 | 色婷婷国产精品 | 免费精品在线视频 | 久久天天躁 | 亚洲国产资源 | 国产群p | 四虎影视精品永久在线观看 | 日韩毛片在线一区二区毛片 | 天天草天天插 | 久久dvd| 国产精品9区 | 波多野结依在线观看 | 欧美精品免费在线 | 国产精品对白一区二区三区 | 中文字幕欧美日韩va免费视频 | 999久久久免费视频 午夜国产在线观看 | 色综合久久五月 | 96国产在线 | av中文字幕网站 | 国产午夜精品一区二区三区 | 国产又粗又猛又黄视频 | 天天爽人人爽夜夜爽 | 青草视频在线播放 | 黄色小说视频在线 | 亚洲免费在线 | 日韩av免费一区二区 | 国产91国语对白在线 | 国产亚州精品视频 | 久久av电影 | 91精品入口 | 色福利网站 | 最近的中文字幕大全免费版 | av三级av| 亚洲欧美日韩精品久久奇米一区 | 欧美一区日韩一区 | 色婷婷狠狠干 | 丁香花在线观看免费完整版视频 | 91麻豆精品国产91久久久使用方法 |