�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%szAu_write.__del__cCs|Sr5rr9rrrr;CszAu_write.__enter__cGs |dSr5r<r=rrrr?FszAu_write.__exit__cCsF||_d|_d|_d|_d|_t|_d|_d|_d|_ d|_ d|_ dS)NrrBra) r7rQrRrKrLrF_nframes_nframeswritten _datawritten _datalengthrS _comptyperxrrrr0IszAu_write.initfpcCs(|jrtd|dkrtd||_dS)N0cannot change parameters after starting to write)rrrz"only 1, 2, or 4 channels supported)r|rrR)r2 nchannelsrrr setnchannelsVs zAu_write.setnchannelscCs|jstd|jS)Nznumber of channels not set)rRrr9rrrr\]szAu_write.getnchannelscCs(|jrtd|dkrtd||_dS)Nr)rrrrzbad sample width)r|rrK)r2 sampwidthrrr setsampwidthbs zAu_write.setsampwidthcCs|jstd|jS)Nsample width not specified)rQrrKr9rrrr]iszAu_write.getsampwidthcCs|jrtd||_dS)Nr)r|rrQ)r2 frameraterrr setframeratenszAu_write.setframeratecCs|jstd|jS)Nzframe rate not set)rQrr9rrrr^sszAu_write.getframeratecCs(|jrtd|dkrtd||_dS)Nrrz# of frames cannot be negative)r|rr{)r2rqrrr setnframesxs zAu_write.setnframescCs|jSr5r|r9rrrr`szAu_write.getnframescCs|dkr||_ntddS)N)rcrazunknown compression type)rr)r2r,namerrr setcomptypeszAu_write.setcomptypecCs|jSr5rr9rrrreszAu_write.getcomptypecCs$|jdkrdS|jdkrdSdSdS)Nrarfrbrgrhrr9rrrris   zAu_write.getcompnamecCsH|\}}}}}}|||||||||||dSr5)rrrrr)r2ZparamsrrrrqZcomptypeZcompnamerrr setparamss     zAu_write.setparamscCs*t||||||Sr5rjr9rrrrks zAu_write.getparamscCs|jSr5rr9rrrrUsz Au_write.tellcCs~t|ttfst|d}||jdkrDddl}|||j }t ||j }|j ||j||_|jt ||_dS)NBrar) isinstancer# bytearray memoryviewcast_ensure_header_writtenrrpZlin2ulawrKrorLr7r"r|r})r2r$rprqrrrwriteframesraws   zAu_write.writeframesrawcCs.|||j|jks"|j|jkr*|dSr5)rr|r{r~r} _patchheader)r2r$rrr writeframess    zAu_write.writeframescCs^|jrZz6||j|jks(|j|jkr0||j W5|j}d|_|jrX|XdSr5) r7r/r8rr|r{r~r}rflushrxrrrr8s  zAu_write.closecCs<|js8|jstd|js"td|js0td|dS)Nz# of channels not specifiedrzframe rate not specified)r|rRrrKrQ _write_headerr9rrrrszAu_write._ensure_header_writtenc Cs|jdkrl|jdkr t}d|_q|jdkr6t}d|_q|jdkrLt}d|_q|jdkrbt}d|_qtdn|jdkrt}d|_ntd|j|j |_t |j t dt |j}|d d @}t |j ||jtkrt}n |j|j}z|j |_Wn ttfk rd|_YnXt |j |||_t |j |t |j |jt |j |j |j |j|j d |t |jd dS) Nrcrrrrzinternal errorrar r irAr )rrKrMrLrNrOrPrrIrRr'r7rDrorSr{rFrU_form_length_posrWrXr~rQr")r2encoding header_sizeZlengthrrrrsJ               zAu_write._write_headercCsH|jdkrtd|j|jt|j|j|j|_|jdddS)Nrsrr)rrXr7rtr'r}r~r9rrrrs  zAu_write._patchheaderN)rrrr4r:r;r?r0rr\rr]rr^rr`rrerirrkrUrrr8rrrrrrrry3s2    *rycCsJ|dkrt|dr|j}nd}|dkr.t|S|dkr>t|StddS)Nmoder*)rr*)wrzz$mode must be 'r', 'rb', 'w', or 'wb')hasattrrr(ryrr3rrrrr.s r.cCstjdtddt||dS)NzDsunau.openfp is deprecated since Python 3.7. Use sunau.open instead.r) stacklevel)r)warningswarnDeprecationWarningr.rrrropenfps r)N)N) collectionsrrrrDrIrMrNrOrPZAUDIO_FILE_ENCODING_FLOATZAUDIO_FILE_ENCODING_DOUBLEZAUDIO_FILE_ENCODING_ADPCM_G721ZAUDIO_FILE_ENCODING_ADPCM_G722Z AUDIO_FILE_ENCODING_ADPCM_G723_3Z AUDIO_FILE_ENCODING_ADPCM_G723_5rJrFrH Exceptionrrr'r(ryr.rrrrrjsD  Q