| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1056,12 +1056,20 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    for (NSDictionary *deviceMessage in deviceMessages) {
 | 
					 | 
					 | 
					 | 
					    for (NSDictionary *deviceMessage in deviceMessages) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        NSNumber *_Nullable messageType = deviceMessage[@"type"];
 | 
					 | 
					 | 
					 | 
					        NSNumber *_Nullable messageType = deviceMessage[@"type"];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        OWSAssertDebug(messageType);
 | 
					 | 
					 | 
					 | 
					        OWSAssertDebug(messageType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        BOOL hasValidMessageType;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (messageSend.isUDSend) {
 | 
					 | 
					 | 
					 | 
					        if (messageSend.isUDSend) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            OWSAssertDebug([messageType isEqualToNumber:@(TSUnidentifiedSenderMessageType)]);
 | 
					 | 
					 | 
					 | 
					            hasValidMessageType = [messageType isEqualToNumber:@(TSUnidentifiedSenderMessageType)];
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } else {
 | 
					 | 
					 | 
					 | 
					        } else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            OWSAssertDebug([messageType isEqualToNumber:@(TSEncryptedWhisperMessageType)] ||
 | 
					 | 
					 | 
					 | 
					            hasValidMessageType = ([messageType isEqualToNumber:@(TSEncryptedWhisperMessageType)] ||
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                [messageType isEqualToNumber:@(TSPreKeyWhisperMessageType)]);
 | 
					 | 
					 | 
					 | 
					                [messageType isEqualToNumber:@(TSPreKeyWhisperMessageType)]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if (!hasValidMessageType) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            OWSFailDebug(@"Invalid message type: %@", messageType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            NSError *error = OWSErrorMakeFailedToSendOutgoingMessageError();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            [error setIsRetryable:NO];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return messageSend.failure(error);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (deviceMessages.count == 0) {
 | 
					 | 
					 | 
					 | 
					    if (deviceMessages.count == 0) {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |