U
    Gwit                     @   s8  d Z ddlmZ ddlmZ ddlmZmZmZmZ ddl	Z	ddl
Z
ddlmZ ertddlmZmZmZmZmZmZ G d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZ G d%d& d&eZ!G d'd( d(eZ"G d)d* d*eZ#G d+d, d,eZ$G d-d. d.eZ%G d/d0 d0eZ&G d1d2 d2eZ'G d3d4 d4eZ(G d5d6 d6eZ)G d7d8 d8eZ*G d9d: d:eZ+G d;d< d<eZ,G d=d> d>eZ-G d?d@ d@eZ.dS )AzBFile generated by TLObjects' generator. All changes will be ERASED   )TLObject)	TLRequest    )OptionalListUnionTYPE_CHECKINGN)datetime)TypeInputContactTypeInputGeoPointTypeInputPeerTypeInputUserTypeTextWithEntitiesTypeTopPeerCategoryc                   @   sF   e Zd ZdZdZddddZdd Zd	d
 Zdd Ze	dd Z
dS )AcceptContactRequestl   "cp    * r   idc                 C   s
   || _ dS z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        Nr   selfr    r   B/tmp/pip-unpacked-wheel-v4xsjwr6/telethon/tl/functions/contacts.py__init__   s    zAcceptContactRequest.__init__c                    s   | || jI d H | _d S Nget_input_userget_input_entityr   r   clientutilsr   r   r   resolve   s    zAcceptContactRequest.resolvec                 C   s"   dt | jtr| j n| jdS )Nr   _r   )
isinstancer   r   to_dictr   r   r   r   r%      s    zAcceptContactRequest.to_dictc                 C   s   d d| j fS )N    s   1)joinr   _bytesr&   r   r   r   r)       s    zAcceptContactRequest._bytesc                 C   s   |  }| |dS Nr   tgread_object)clsreader_idr   r   r   from_reader&   s    z AcceptContactRequest.from_readerN__name__
__module____qualname__CONSTRUCTOR_IDSUBCLASS_OF_IDr   r!   r%   r)   classmethodr0   r   r   r   r   r      s   r   c                   @   sZ   e Zd ZdZdZddeeeee ed dddZd	d
 Z	dd Z
dd Zedd ZdS )AddContactRequestl   T.t3 r   Nr   r   r   
first_name	last_namephoneadd_phone_privacy_exceptionnotec                 C   s(   || _ || _|| _|| _|| _|| _dS r   r9   )r   r   r:   r;   r<   r=   r>   r   r   r   r   0   s    zAddContactRequest.__init__c                    s   | || jI d H | _d S r   r   r   r   r   r   r!   ;   s    zAddContactRequest.resolvec              	   C   sL   dt | jtr| j n| j| j| j| j| jt | jtrB| j n| jdS )Nr8   )r#   r   r:   r;   r<   r=   r>   )	r$   r   r   r%   r:   r;   r<   r=   r>   r&   r   r   r   r%   >   s    zAddContactRequest.to_dictc              
   C   s   d dtd| jd ks | jdkr$dnd| jd ks:| jdkr>dndB | j | | j| | j	| | j
| jd ks~| jdkrdn| j fS )Nr'   s   T.<IFr         )r(   structpackr=   r>   r   r)   serialize_bytesr:   r;   r<   r&   r   r   r   r)   I   s    >


 zAddContactRequest._bytesc           	      C   s^   |  }t|d@ }| }| }| }| }|d@ rF| }nd }| ||||||dS )Nr@   rA   r9   )read_intboolr,   tgread_string)	r-   r.   flagsZ_add_phone_privacy_exceptionr/   Z_first_nameZ
_last_name_phone_noter   r   r   r0   T   s    
zAddContactRequest.from_reader)NN)r2   r3   r4   r5   r6   strr   rF   r   r!   r%   r)   r7   r0   r   r   r   r   r8   ,   s   "r8   c                   @   sN   e Zd ZdZdZddee dddZdd	 Zd
d Z	dd Z
edd ZdS )BlockRequesti4..   gk Nr   r   my_stories_fromc                 C   s   || _ || _dS z?
        :returns Bool: This type has no constructors.
        NrN   r   r   rO   r   r   r   r   h   s    zBlockRequest.__init__c                    s   | || jI d H | _d S r   get_input_peerr   r   r   r   r   r   r!   o   s    zBlockRequest.resolvec                 C   s&   dt | jtr| j n| j| jdS )NrL   r#   r   rO   r$   r   r   r%   rO   r&   r   r   r   r%   r   s    zBlockRequest.to_dictc                 C   s6   d dtd| jd ks | jdkr$dnd| j fS )Nr'   s   4..r?   Fr   r@   r(   rB   rC   rO   r   r)   r&   r   r   r   r)   y   s
    "zBlockRequest._bytesc                 C   s(   |  }t|d@ }| }| ||dS Nr@   rN   rE   rF   r,   r-   r.   rH   _my_stories_fromr/   r   r   r   r0      s    zBlockRequest.from_reader)Nr2   r3   r4   r5   r6   r   rF   r   r!   r%   r)   r7   r0   r   r   r   r   rL   d   s   rL   c                   @   sR   e Zd ZdZdZdeee ee ee dddZdd Z	d	d
 Z
edd ZdS )BlockFromRepliesRequesti,)r   Nmsg_iddelete_messagedelete_historyreport_spamc                 C   s   || _ || _|| _|| _dS r   r]   )r   r^   r_   r`   ra   r   r   r   r      s    z BlockFromRepliesRequest.__init__c                 C   s   d| j | j| j| jdS )Nr\   )r#   r^   r_   r`   ra   r]   r&   r   r   r   r%      s    zBlockFromRepliesRequest.to_dictc              	   C   sr   d dtd| jd ks | jdkr$dnd| jd ks:| jdkr>dndB | jd ksV| jdkrZdndB td	| jfS )
Nr'   s   ,)r?   Fr   r@   rA      <i)r(   rB   rC   r_   r`   ra   r^   r&   r   r   r   r)      s
    ZzBlockFromRepliesRequest._bytesc                 C   sD   |  }t|d@ }t|d@ }t|d@ }|  }| ||||dS )Nr@   rA   rb   r]   rE   rF   )r-   r.   rH   Z_delete_messageZ_delete_historyZ_report_spamZ_msg_idr   r   r   r0      s    z#BlockFromRepliesRequest.from_reader)NNNr2   r3   r4   r5   r6   intr   rF   r   r%   r)   r7   r0   r   r   r   r   r\      s   "		r\   c                   @   sB   e Zd ZdZdZee dddZdd Zdd	 Z	e
d
d ZdS )DeleteByPhonesRequestirM   phonesc                 C   s
   || _ dS rP   rh   )r   ri   r   r   r   r      s    zDeleteByPhonesRequest.__init__c                 C   s"   d| j d krg n| j d d  dS )Nrg   )r#   ri   rh   r&   r   r   r   r%      s    zDeleteByPhonesRequest.to_dictc              
      s6   d ddtdt jd  fdd jD fS )Nr'   s      ĵrc   c                 3   s   | ]}  |V  qd S r   )rD   .0xr&   r   r   	<genexpr>   s     z/DeleteByPhonesRequest._bytes.<locals>.<genexpr>)r(   rB   rC   lenri   r&   r   r&   r   r)      s      zDeleteByPhonesRequest._bytesc                 C   s:   |   g }t|  D ]}| }|| q| |dS )Nrh   )rE   rangerG   append)r-   r.   Z_phonesr#   _xr   r   r   r0      s    z!DeleteByPhonesRequest.from_readerN)r2   r3   r4   r5   r6   r   rK   r   r%   r)   r7   r0   r   r   r   r   rg      s   rg   c                   @   sJ   e Zd ZdZdZed dddZdd Zd	d
 Zdd Z	e
dd ZdS )DeleteContactsRequesti j	r   r   r   c                 C   s
   || _ dS r   r   r   r   r   r   r      s    zDeleteContactsRequest.__init__c                    s6   g }| j D ] }||||I d H  q
|| _ d S r   )r   rq   r   r   r   r   r    Z_tmprr   r   r   r   r!      s    
zDeleteContactsRequest.resolvec                 C   s$   d| j d krg ndd | j D dS )Nrs   c                 S   s"   g | ]}t |tr| n|qS r   r$   r   r%   rk   r   r   r   
<listcomp>   s     z1DeleteContactsRequest.to_dict.<locals>.<listcomp>r"   r   r&   r   r   r   r%      s    zDeleteContactsRequest.to_dictc              	   C   s2   d ddtdt| jd dd | jD fS )Nr'   s    j	rj   rc   c                 s   s   | ]}|  V  qd S r   r)   rk   r   r   r   rn      s     z/DeleteContactsRequest._bytes.<locals>.<genexpr>r(   rB   rC   ro   r   r&   r   r   r   r)      s      zDeleteContactsRequest._bytesc                 C   s:   |   g }t|  D ]}| }|| q| |dS r*   rE   rp   r,   rq   r-   r.   r/   r#   rr   r   r   r   r0      s    z!DeleteContactsRequest.from_readerN)r2   r3   r4   r5   r6   r   r   r!   r%   r)   r7   r0   r   r   r   r   rs      s   rs   c                   @   sB   e Zd ZdZdZee dddZdd Zdd	 Z	e
d
d ZdS )EditCloseFriendsRequestl   t rM   r   c                 C   s
   || _ dS rP   r   r   r   r   r   r      s    z EditCloseFriendsRequest.__init__c                 C   s"   d| j d krg n| j d d  dS )Nr{   r"   r   r&   r   r   r   r%     s    zEditCloseFriendsRequest.to_dictc              	   C   s2   d ddtdt| jd dd | jD fS )Nr'   s   grj   rc   c                 s   s   | ]}t d |V  qdS )<qN)rB   rC   rk   r   r   r   rn     s     z1EditCloseFriendsRequest._bytes.<locals>.<genexpr>rx   r&   r   r   r   r)   
  s      zEditCloseFriendsRequest._bytesc                 C   s:   |   g }t|  D ]}| }|| q| |dS r*   )rE   rp   	read_longrq   rz   r   r   r   r0     s    z#EditCloseFriendsRequest.from_readerN)r2   r3   r4   r5   r6   r   rf   r   r%   r)   r7   r0   r   r   r   r   r{      s   r{   c                   @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
ExportContactTokenRequestl   '@p l   > c                 C   s   ddiS )Nr#   r~   r   r&   r   r   r   r%     s     z!ExportContactTokenRequest.to_dictc                 C   s
   d dS )Nr'   )s   '@er(   r&   r   r   r   r)   $  s    z ExportContactTokenRequest._bytesc                 C   s   |  S r   r   r-   r.   r   r   r   r0   )  s    z%ExportContactTokenRequest.from_readerN	r2   r3   r4   r5   r6   r%   r)   r7   r0   r   r   r   r   r~     s   r~   c                   @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
GetBirthdaysRequestl   d(5 izc                 C   s   ddiS )Nr#   r   r   r&   r   r   r   r%   2  s     zGetBirthdaysRequest.to_dictc                 C   s
   d dS )Nr'   )s   dr   r&   r   r   r   r)   7  s    zGetBirthdaysRequest._bytesc                 C   s   |  S r   r   r   r   r   r   r0   <  s    zGetBirthdaysRequest.from_readerNr   r   r   r   r   r   .  s   r   c                   @   sH   e Zd ZdZdZdeeee dddZdd Z	d	d
 Z
edd ZdS )GetBlockedRequestl   5 l   OOt NoffsetlimitrO   c                 C   s   || _ || _|| _dS )zV
        :returns contacts.Blocked: Instance of either Blocked, BlockedSlice.
        Nr   )r   r   r   rO   r   r   r   r   E  s    zGetBlockedRequest.__init__c                 C   s   d| j | j| jdS )Nr   )r#   r   r   rO   r   r&   r   r   r   r%   M  s
    zGetBlockedRequest.to_dictc              	   C   sF   d dtd| jd ks | jdkr$dndtd| jtd| jfS )Nr'   s   r?   Fr   r@   rc   )r(   rB   rC   rO   r   r   r&   r   r   r   r)   U  s    "zGetBlockedRequest._bytesc                 C   s2   |  }t|d@ }|  }|  }| |||dS )Nr@   r   rd   )r-   r.   rH   rZ   _offset_limitr   r   r   r0   ]  s
    zGetBlockedRequest.from_reader)Nre   r   r   r   r   r   A  s   r   c                   @   sJ   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
edd ZdS )GetContactIDsRequestifziq&Phashc                 C   s
   || _ dS )zF
        :returns Vector<int>: This type has no constructors.
        Nr   r   r   r   r   r   r   k  s    zGetContactIDsRequest.__init__c                 C   s   d| j dS )Nr   r#   r   r   r&   r   r   r   r%   q  s    zGetContactIDsRequest.to_dictc                 C   s   d dtd| jfS )Nr'   s   fzr|   r(   rB   rC   r   r&   r   r   r   r)   w  s    zGetContactIDsRequest._bytesc                 C   s   |  }| |dS Nr   r}   r-   r.   _hashr   r   r   r0   }  s    z GetContactIDsRequest.from_readerc                    s"        fddt   D S )Nc                    s   g | ]}   qS r   )rE   )rl   r#   r.   r   r   rv     s     z4GetContactIDsRequest.read_result.<locals>.<listcomp>)rE   rp   r   r   r   r   read_result  s    z GetContactIDsRequest.read_resultN)r2   r3   r4   r5   r6   rf   r   r%   r)   r7   r0   staticmethodr   r   r   r   r   r   g  s   
r   c                   @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )GetContactsRequesti]i%8r   c                 C   s
   || _ dS )z_
        :returns contacts.Contacts: Instance of either ContactsNotModified, Contacts.
        Nr   r   r   r   r   r     s    zGetContactsRequest.__init__c                 C   s   d| j dS )Nr   r   r   r&   r   r   r   r%     s    zGetContactsRequest.to_dictc                 C   s   d dtd| jfS )Nr'   s   ]r|   r   r&   r   r   r   r)     s    zGetContactsRequest._bytesc                 C   s   |  }| |dS r   r   r   r   r   r   r0     s    zGetContactsRequest.from_readerN)r2   r3   r4   r5   r6   rf   r   r%   r)   r7   r0   r   r   r   r   r     s   r   c                   @   sL   e Zd ZdZdZddee ee dddZdd	 Z	d
d Z
edd ZdS )GetLocatedRequestl   D<& r   Nr   	geo_point
backgroundself_expiresc                 C   s   || _ || _|| _dS r   r   )r   r   r   r   r   r   r   r     s    zGetLocatedRequest.__init__c                 C   s*   dt | jtr| j n| j| j| jdS )Nr   )r#   r   r   r   )r$   r   r   r%   r   r   r&   r   r   r   r%     s
    zGetLocatedRequest.to_dictc              	   C   sv   d dtd| jd ks | jdkr$dnd| jd ks:| jdkr>dndB | j | jd ks`| jdkrddntd| jfS )	Nr'   s   DHr?   Fr   rA   r@   rc   )r(   rB   rC   r   r   r   r)   r&   r   r   r   r)     s    >$zGetLocatedRequest._bytesc                 C   s@   |  }t|d@ }| }|d@ r.|  }nd }| |||dS )NrA   r@   r   rX   )r-   r.   rH   Z_backgroundZ
_geo_pointZ_self_expiresr   r   r   r0     s    
zGetLocatedRequest.from_reader)NN)r2   r3   r4   r5   r6   r   rF   rf   r   r%   r)   r7   r0   r   r   r   r   r     s   r   c                   @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
GetSavedRequestl   c iu	c                 C   s   ddiS )Nr#   r   r   r&   r   r   r   r%     s     zGetSavedRequest.to_dictc                 C   s
   d dS )Nr'   )s   r   r&   r   r   r   r)     s    zGetSavedRequest._bytesc                 C   s   |  S r   r   r   r   r   r   r0     s    zGetSavedRequest.from_readerNr   r   r   r   r   r     s   r   c                   @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )GetSponsoredPeersRequestl   Cm l   \h qc                 C   s
   || _ dS )zk
        :returns contacts.SponsoredPeers: Instance of either SponsoredPeersEmpty, SponsoredPeers.
        Nr   )r   r   r   r   r   r     s    z!GetSponsoredPeersRequest.__init__c                 C   s   d| j dS )Nr   )r#   r   r   r&   r   r   r   r%     s    z GetSponsoredPeersRequest.to_dictc                 C   s   d d| | jfS )Nr'   s   ȶ)r(   rD   r   r&   r   r   r   r)     s    
zGetSponsoredPeersRequest._bytesc                 C   s   |  }| |dS )Nr   rG   )r-   r.   _qr   r   r   r0     s    z$GetSponsoredPeersRequest.from_readerNr2   r3   r4   r5   r6   rK   r   r%   r)   r7   r0   r   r   r   r   r     s   r   c                   @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
GetStatusesRequestl   SF	 l   \? c                 C   s   ddiS )Nr#   r   r   r&   r   r   r   r%      s     zGetStatusesRequest.to_dictc                 C   s
   d dS )Nr'   )s   Sr   r&   r   r   r   r)     s    zGetStatusesRequest._bytesc                 C   s   |  S r   r   r   r   r   r   r0   
  s    zGetStatusesRequest.from_readerNr   r   r   r   r   r     s   r   c                   @   sz   e Zd ZdZdZdeeeee ee ee ee ee ee ee ee ee dddZdd Z	d	d
 Z
edd ZdS )GetTopPeersRequestl   xh. l   ;= Nr   r   r   correspondentsbots_pmbots_inlinephone_callsforward_usersforward_chatsgroupschannelsbots_appc                 C   sL   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _dS )zq
        :returns contacts.TopPeers: Instance of either TopPeersNotModified, TopPeers, TopPeersDisabled.
        Nr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s    zGetTopPeersRequest.__init__c                 C   s8   d| j | j| j| j| j| j| j| j| j| j	| j
| jdS )Nr   )r#   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   r   r   r   r%   $  s    zGetTopPeersRequest.to_dictc              
   C   s6  d dtd| jd ks | jdkr$dnd| jd ks:| jdkr>dndB | jd ksV| jdkrZdndB | jd ksr| jdkrvdnd	B | jd ks| jdkrdnd
B | jd ks| jdkrdndB | j	d ks| j	dkrdndB | j
d ks| j
dkrdndB | jd ks| jdkrdndB td| jtd| jtd| jfS )Nr'   s   x4r?   Fr   r@   rA   rb                      rc   r|   )r(   rB   rC   r   r   r   r   r   r   r   r   r   r   r   r   r&   r   r   r   r)   5  s     zGetTopPeersRequest._bytesc                 C   s   |  }t|d@ }t|d@ }t|d@ }t|d@ }t|d@ }t|d@ }t|d@ }	t|d@ }
t|d	@ }|  }|  }| }| ||||||||||	|
|d
S )Nr@   rA   rb   r   r   r   r   r   r   r   )rE   rF   r}   )r-   r.   rH   Z_correspondentsZ_bots_pmZ_bots_inlineZ_phone_callsZ_forward_usersZ_forward_chatsZ_groupsZ	_channelsZ	_bots_appr   r   r   r   r   r   r0   >  s    zGetTopPeersRequest.from_reader)	NNNNNNNNNre   r   r   r   r   r     s   J	r   c                   @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )ImportContactTokenRequestiW iwy-tokenc                 C   s
   || _ dS )zD
        :returns User: Instance of either UserEmpty, User.
        Nr   )r   r   r   r   r   r   U  s    z"ImportContactTokenRequest.__init__c                 C   s   d| j dS )Nr   )r#   r   r   r&   r   r   r   r%   [  s    z!ImportContactTokenRequest.to_dictc                 C   s   d d| | jfS )Nr'   s   W )r(   rD   r   r&   r   r   r   r)   a  s    
z ImportContactTokenRequest._bytesc                 C   s   |  }| |dS )Nr   r   )r-   r.   _tokenr   r   r   r0   g  s    z%ImportContactTokenRequest.from_readerNr   r   r   r   r   r   Q  s   r   c                   @   sB   e Zd ZdZdZed dddZdd Zd	d
 Ze	dd Z
dS )ImportContactsRequesti,l   - r
   contactsc                 C   s
   || _ dS )zS
        :returns contacts.ImportedContacts: Instance of ImportedContacts.
        Nr   )r   r   r   r   r   r   q  s    zImportContactsRequest.__init__c                 C   s$   d| j d krg ndd | j D dS )Nr   c                 S   s"   g | ]}t |tr| n|qS r   ru   rk   r   r   r   rv   z  s     z1ImportContactsRequest.to_dict.<locals>.<listcomp>)r#   r   r   r&   r   r   r   r%   w  s    zImportContactsRequest.to_dictc              	   C   s2   d ddtdt| jd dd | jD fS )Nr'   s   ,rj   rc   c                 s   s   | ]}|  V  qd S r   rw   rk   r   r   r   rn     s     z/ImportContactsRequest._bytes.<locals>.<genexpr>)r(   rB   rC   ro   r   r&   r   r   r   r)   }  s      zImportContactsRequest._bytesc                 C   s:   |   g }t|  D ]}| }|| q| |dS )Nr   ry   )r-   r.   Z	_contactsr#   rr   r   r   r   r0     s    z!ImportContactsRequest.from_readerN)r2   r3   r4   r5   r6   r   r   r%   r)   r7   r0   r   r   r   r   r   m  s   r   c                   @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
ResetSavedRequestl   7* rM   c                 C   s   ddiS )Nr#   r   r   r&   r   r   r   r%     s     zResetSavedRequest.to_dictc                 C   s
   d dS )Nr'   )s   7r   r&   r   r   r   r)     s    zResetSavedRequest._bytesc                 C   s   |  S r   r   r   r   r   r   r0     s    zResetSavedRequest.from_readerNr   r   r   r   r   r     s   r   c                   @   sH   e Zd ZdZdZdddddZdd	 Zd
d Zdd Ze	dd Z
dS )ResetTopPeerRatingRequestisrM   r   r   categorypeerc                 C   s   || _ || _dS rP   r   )r   r   r   r   r   r   r     s    z"ResetTopPeerRatingRequest.__init__c                    s   | || jI d H | _d S r   )rS   r   r   r   r   r   r   r!     s    z!ResetTopPeerRatingRequest.resolvec                 C   s<   dt | jtr| j n| jt | jtr2| j n| jdS )Nr   )r#   r   r   )r$   r   r   r%   r   r&   r   r   r   r%     s    z!ResetTopPeerRatingRequest.to_dictc                 C   s   d d| j | j fS )Nr'   s   s)r(   r   r)   r   r&   r   r   r   r)     s
    z ResetTopPeerRatingRequest._bytesc                 C   s   |  }|  }| ||dS )Nr   r+   )r-   r.   Z	_categoryZ_peerr   r   r   r0     s    z%ResetTopPeerRatingRequest.from_readerNr1   r   r   r   r   r     s   r   c                   @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )ResolvePhoneRequestl   DC    3` r<   c                 C   s
   || _ dS zK
        :returns contacts.ResolvedPeer: Instance of ResolvedPeer.
        Nr   )r   r<   r   r   r   r     s    zResolvePhoneRequest.__init__c                 C   s   d| j dS )Nr   )r#   r<   r   r&   r   r   r   r%     s    zResolvePhoneRequest.to_dictc                 C   s   d d| | jfS )Nr'   s   DC)r(   rD   r<   r&   r   r   r   r)     s    
zResolvePhoneRequest._bytesc                 C   s   |  }| |dS )Nr   r   )r-   r.   rI   r   r   r   r0     s    zResolvePhoneRequest.from_readerNr   r   r   r   r   r     s   r   c                   @   sF   e Zd ZdZdZdeee dddZdd Zd	d
 Z	e
dd ZdS )ResolveUsernameRequestiZrr   Nusernamerefererc                 C   s   || _ || _dS r   r   )r   r   r   r   r   r   r     s    zResolveUsernameRequest.__init__c                 C   s   d| j | jdS )Nr   )r#   r   r   r   r&   r   r   r   r%     s    zResolveUsernameRequest.to_dictc                 C   sZ   d dtd| jd ks | jdkr$dnd| | j| jd ksF| jdkrJdn
| | jfS )Nr'   s   Zrr?   Fr   r@   )r(   rB   rC   r   rD   r   r&   r   r   r   r)     s    "
"zResolveUsernameRequest._bytesc                 C   s2   |  }| }|d@ r"| }nd }| ||dS )Nr@   r   )rE   rG   )r-   r.   rH   Z	_usernameZ_refererr   r   r   r0     s    
z"ResolveUsernameRequest.from_reader)N)r2   r3   r4   r5   r6   rK   r   r   r%   r)   r7   r0   r   r   r   r   r     s   r   c                   @   s@   e Zd ZdZdZeedddZdd Zdd	 Z	e
d
d ZdS )SearchRequestii㢆Cr   r   c                 C   s   || _ || _dS )z=
        :returns contacts.Found: Instance of Found.
        Nr   )r   r   r   r   r   r   r   
  s    zSearchRequest.__init__c                 C   s   d| j | jdS )Nr   )r#   r   r   r   r&   r   r   r   r%     s    zSearchRequest.to_dictc                 C   s"   d d| | jtd| jfS )Nr'   s   rc   )r(   rD   r   rB   rC   r   r&   r   r   r   r)     s
    
zSearchRequest._bytesc                 C   s   |  }| }| ||dS )Nr   )rG   rE   )r-   r.   r   r   r   r   r   r0     s    zSearchRequest.from_readerN)r2   r3   r4   r5   r6   rK   rf   r   r%   r)   r7   r0   r   r   r   r   r     s   r   c                   @   sT   e Zd ZdZdZded eee dddZ	dd	 Z
d
d Zdd Zedd ZdS )SetBlockedRequestl   v\) rM   Nr   r   r   rO   c                 C   s   || _ || _|| _dS rP   r   )r   r   r   rO   r   r   r   r   *  s    zSetBlockedRequest.__init__c                    s6   g }| j D ] }||||I d H  q
|| _ d S r   )r   rq   rS   r   rt   r   r   r   r!   2  s    
zSetBlockedRequest.resolvec                 C   s,   d| j d krg ndd | j D | j| jdS )Nr   c                 S   s"   g | ]}t |tr| n|qS r   ru   rk   r   r   r   rv   <  s     z-SetBlockedRequest.to_dict.<locals>.<listcomp>)r#   r   r   rO   r   r&   r   r   r   r%   9  s
    zSetBlockedRequest.to_dictc                 C   s`   d dtd| jd ks | jdkr$dnddtdt| jd d	d
 | jD td| jfS )Nr'   s   v\Ɣr?   Fr   r@   rj   rc   c                 s   s   | ]}|  V  qd S r   rw   rk   r   r   r   rn   E  s     z+SetBlockedRequest._bytes.<locals>.<genexpr>)r(   rB   rC   rO   ro   r   r   r&   r   r   r   r)   A  s    "  zSetBlockedRequest._bytesc                 C   sZ   |  }t|d@ }|   g }t|  D ]}| }|| q,|  }| |||dS )Nr@   r   )rE   rF   rp   r,   rq   )r-   r.   rH   rZ   r/   r#   rr   r   r   r   r   r0   I  s    zSetBlockedRequest.from_reader)N)r2   r3   r4   r5   r6   r   rf   r   rF   r   r!   r%   r)   r7   r0   r   r   r   r   r   &  s   r   c                   @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )ToggleTopPeersRequestl   =)
 rM   enabledc                 C   s
   || _ dS rP   r   )r   r   r   r   r   r   \  s    zToggleTopPeersRequest.__init__c                 C   s   d| j dS )Nr   )r#   r   r   r&   r   r   r   r%   b  s    zToggleTopPeersRequest.to_dictc                 C   s   d d| jrdndfS )Nr'   s   ڽs   urs   7y)r(   r   r&   r   r   r   r)   h  s    zToggleTopPeersRequest._bytesc                 C   s   |  }| |dS )Nr   )Ztgread_bool)r-   r.   Z_enabledr   r   r   r0   n  s    z!ToggleTopPeersRequest.from_readerN)r2   r3   r4   r5   r6   rF   r   r%   r)   r7   r0   r   r   r   r   r   X  s   r   c                   @   sN   e Zd ZdZdZddee dddZdd	 Zd
d Z	dd Z
edd ZdS )UnblockRequestl   (Sj rM   Nr   rN   c                 C   s   || _ || _dS rP   rN   rQ   r   r   r   r   x  s    zUnblockRequest.__init__c                    s   | || jI d H | _d S r   rR   r   r   r   r   r!     s    zUnblockRequest.resolvec                 C   s&   dt | jtr| j n| j| jdS )Nr   rT   rU   r&   r   r   r   r%     s    zUnblockRequest.to_dictc                 C   s6   d dtd| jd ks | jdkr$dnd| j fS )Nr'   s   (Pr?   Fr   r@   rV   r&   r   r   r   r)     s
    "zUnblockRequest._bytesc                 C   s(   |  }t|d@ }| }| ||dS rW   rX   rY   r   r   r   r0     s    zUnblockRequest.from_reader)Nr[   r   r   r   r   r   t  s   r   c                   @   sH   e Zd ZdZdZdddddZdd	 Zd
d Zdd Ze	dd Z
dS )UpdateContactNoteRequesticrM   r   r   r   r>   c                 C   s   || _ || _dS rP   r   )r   r   r>   r   r   r   r     s    z!UpdateContactNoteRequest.__init__c                    s   | || jI d H | _d S r   r   r   r   r   r   r!     s    z UpdateContactNoteRequest.resolvec                 C   s<   dt | jtr| j n| jt | jtr2| j n| jdS )Nr   )r#   r   r>   )r$   r   r   r%   r>   r&   r   r   r   r%     s    z UpdateContactNoteRequest.to_dictc                 C   s   d d| j | j fS )Nr'   s   c)r(   r   r)   r>   r&   r   r   r   r)     s
    zUpdateContactNoteRequest._bytesc                 C   s   |  }|  }| ||dS )Nr   r+   )r-   r.   r/   rJ   r   r   r   r0     s    z$UpdateContactNoteRequest.from_readerNr1   r   r   r   r   r     s   r   )/__doc__Ztl.tlobjectr   r   typingr   r   r   r   osrB   r	   Ztl.typesr
   r   r   r   r   r   r   r8   rL   r\   rg   rs   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sH    8%(!(!&!)B!#& 2%