§
    ¤”j5O  ã                   ó‚   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ  G d	„ d
e¦  «        ZdS )é    N)ÚDecimal)ÚApps)ÚNotSupportedError)ÚBaseDatabaseSchemaEditor)Ú	Statement)Ústrip_quotes)ÚNOT_PROVIDEDÚUniqueConstraintc                   ó¬   ‡ — e Zd ZdZdZdZeZdZdZdZ	dZ
dZˆ fd„Zˆ fd„Zd	„ Zd
„ Z	 dd„Zdˆ fd„	Zˆ fd„Zˆ fd„Z	 dd„Zd„ Zˆ fd„Zˆ fd„Zd„ Zˆ xZS )ÚDatabaseSchemaEditorzDROP TABLE %(table)sNzEREFERENCES %(to_table)s (%(to_column)s) DEFERRABLE INITIALLY DEFERREDz,ALTER TABLE %(table)s DROP COLUMN %(column)sz7CREATE UNIQUE INDEX %(name)s ON %(table)s (%(columns)s)zDROP INDEX %(name)sc                 ó”   •— | j                              ¦   «         st          d¦  «        ‚t          ¦   «                              ¦   «         S )NzüSQLite schema editor cannot be used while foreign key constraint checks are enabled. Make sure to disable them before entering a transaction.atomic() context because SQLite does not support disabling them in the middle of a multi-statement transaction.)Ú
connectionÚdisable_constraint_checkingr   ÚsuperÚ	__enter__)ÚselfÚ	__class__s    €úp/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/django/db/backends/sqlite3/schema.pyr   zDatabaseSchemaEditor.__enter__   sJ   ø€ ð Œ×:Ò:Ñ<Ô<ð 	Ý#ð1ñô ð õ ‰wŒw× Ò Ñ"Ô"Ð"ó    c                 ó²   •— | j                              ¦   «          t          ¦   «                              |||¦  «         | j                              ¦   «          d S ©N)r   Úcheck_constraintsr   Ú__exit__Úenable_constraint_checking)r   Úexc_typeÚ	exc_valueÚ	tracebackr   s       €r   r   zDatabaseSchemaEditor.__exit__&   sM   ø€ ØŒ×)Ò)Ñ+Ô+Ð+Ý‰Œ×Ò˜ 9¨iÑ8Ô8Ð8ØŒ×2Ò2Ñ4Ô4Ð4Ð4Ð4r   c                 óL  — 	 dd l }|                     |¦  «        }n# t          $ r Y n|j        $ r Y nw xY wt	          |t
          ¦  «        rt          t          |¦  «        ¦  «        S t	          |t          t          t          f¦  «        rt          |¦  «        S t	          |t          ¦  «        rd| 
                    dd¦  «        z  S |€dS t	          |t          t          t          f¦  «        rd|                     ¦   «         z  S t          d|›dt!          |¦  «        ›�¦  «        ‚)	Nr   z'%s'ú'z''ÚNULLzX'%s'zCannot quote parameter value z	 of type )Úsqlite3ÚadaptÚImportErrorÚProgrammingErrorÚ
isinstanceÚboolÚstrÚintr   ÚfloatÚreplaceÚbytesÚ	bytearrayÚ
memoryviewÚhexÚ
ValueErrorÚtype)r   Úvaluer!   s      r   Úquote_valuez DatabaseSchemaEditor.quote_value+   s3  € ð	ØˆNˆNˆNà—M’M %Ñ(Ô(ˆEˆEøÝð 	ð 	ð 	ØˆDØÔ'ð 	ð 	ð 	ØˆDð	øøøõ �e�TÑ"Ô"ð 	Ý•s˜5‘z”z‘?”?Ð"Ý˜¥­µÐ4Ñ5Ô5ð 	Ý�u‘:”:ÐÝ˜�sÑ#Ô#ð 	Ø˜EŸMšM¨#¨tÑ4Ô4Ñ4Ð4Øˆ]Ø�6Ý˜¥¥yµ*Ð=Ñ>Ô>ð 	ð ˜UŸYšY™[œ[Ñ(Ð(å�*Ø@EÀÀÅtÈEÁ{Ä{À{ÐSñô ð s   ‚ œ
4¨	4³4c                 ó,   — |                       |¦  «        S r   )r2   )r   r1   s     r   Úprepare_defaultz$DatabaseSchemaEditor.prepare_defaultJ   s   € Ø×Ò Ñ&Ô&Ð&r   c                 ód
  ‡ ‡‡‡‡‡— ˆfd„Šˆfd„‰j         j        D ¦   «         }ˆ fd„‰j         j        D ¦   «         }i Šd}|pg }t          |dd¦  «        st          d„ |D ¦   «         ¦  «        rdt	          |                     ¦   «         ¦  «        D ]B\  Š}|j        r6t          ˆfd„|D ¦   «         ¦  «        sd|_        |}|j        r|‰= ||j        = ŒC|r]|||j	        <   |j
        t          u rE|j        s>|j        s7|j        r0‰                      ‰                      |¦  «        ¦  «        ||j        <   |D �]	}	|	\  }
}|                     |
j	        d¦  «         |                     |
j        d¦  «         |||j	        <   |j	        ‰|
j	        <   |j        rŒ_|
j        r�|j        sz|j
        t          u r)‰                      ‰                      |¦  «        ¦  «        }n‰                      |¦  «        \  }}d	‰                      |
j        ¦  «        |d
œz  }|||j        <   Œç‰                      |
j        ¦  «        ||j        <   �Œ‰r_|‰j	        = |                     ‰j        d¦  «         ‰j        r5‰j        j        j         j        r‰                      ‰j        j        ¦  «        S t1          ¦   «         }ˆfd„‰j         j        D ¦   «         }ˆfd„‰j         j        D ¦   «         }‰j         j        }‰rˆfd„|D ¦   «         }t	          ‰j         j        ¦  «        }t;          j        |¦  «        }‰j         j        ‰j         j         |||||dœ}tC          dd|¦  «        }||d<   ‰j"        |d<   tC          ‰j         j#        ‰j$        |¦  «         t;          j        |¦  «        }‰j         j        dtK          ‰j         j         ¦  «        z  |||||dœ}tC          dd|¦  «        }||d<   ‰j"        |d<   tC          d‰j         j#        z  ‰j$        |¦  «        }‰  &                    |¦  «         ‰  '                    d‰                      |j         j         ¦  «        ›dd (                    ˆ fd„|D ¦   «         ¦  «        ›dd (                    | )                    ¦   «         ¦  «        ›d‰                      ‰j         j         ¦  «        ›�¦  «         ‰                      ‰d¬¦  «         ‰  *                    ||j         j         ‰j         j         ¦  «         ‰ j+        D ]}‰  '                    |¦  «         Œg ‰ _+        |r	d|_        dS dS )a|  
        Shortcut to transform a model from old_model into new_model

        This follows the correct procedure to perform non-rename or column
        addition operations based on SQLite's documentation

        https://www.sqlite.org/lang_altertable.html#caution

        The essential steps are:
          1. Create a table with the updated definition called "new__app_model"
          2. Copy the data from the existing "app_model" table to the new table
          3. Drop the "app_model" table
          4. Rename the "new__app_model" table to "app_model"
          5. Restore any index of the previous "app_model" table.
        c                 ó.   •— | j         o| j        j        ‰u S r   )Úis_relationÚremote_fieldÚmodel)Úfr9   s    €r   Úis_self_referentialz?DatabaseSchemaEditor._remake_table.<locals>.is_self_referentialc   s   ø€ Ø”=ÐB Q¤^Ô%9¸UÐ%BÐBr   c                 ó^   •— i | ])}|j          ‰|¦  «        r|                     ¦   «         n|“Œ*S © )ÚnameÚclone)Ú.0r:   r;   s     €r   ú
<dictcomp>z6DatabaseSchemaEditor._remake_table.<locals>.<dictcomp>g   sJ   ø€ ð 
ð 
ð 
àð ŒFÐ!4Ð!4°QÑ!7Ô!7Ð>�A—G’G‘I”I�I¸Qð
ð 
ð 
r   c                 ób   •— i | ]+}|j         d u ¯|j        ‰                     |j        ¦  «        “Œ,S ©F)Ú	generatedÚcolumnÚ
quote_name)r@   r:   r   s     €r   rA   z6DatabaseSchemaEditor._remake_table.<locals>.<dictcomp>m   sB   ø€ ð 
ð 
ð 
àØŒ{˜eÐ#Ð#ð ŒH�d—o’o a¤hÑ/Ô/à#Ð#Ð#r   NÚprimary_keyFc              3   ó>   K  — | ]\  }}t          |d d¦  «        V — ŒdS )rG   FN)Úgetattr)r@   Ú_Ú	new_fields      r   ú	<genexpr>z5DatabaseSchemaEditor._remake_table.<locals>.<genexpr>x   sC   è è € ð >
ð >
Ù9E¸¸I�G�I˜}¨eÑ4Ô4ð>
ð >
ð >
ð >
ð >
ð >
r   c              3   ó4   •K  — | ]\  }}‰|j         k    V — Œd S r   )r>   )r@   rJ   rK   r>   s      €r   rL   z5DatabaseSchemaEditor._remake_table.<locals>.<genexpr>|   sD   øè è € ð 1ð 1ñ %˜˜9ð ˜IœNÒ*ð1ð 1ð 1ð 1ð 1ð 1r   zcoalesce(%(col)s, %(default)s))ÚcolÚdefaultc                 ó,   •— g | ]}ˆfd „|D ¦   «         ‘ŒS )c                 ó<   •— g | ]}‰                      ||¦  «        ‘ŒS r=   ©Úget©r@   ÚnÚrename_mappings     €r   ú
<listcomp>zADatabaseSchemaEditor._remake_table.<locals>.<listcomp>.<listcomp>¸   s)   ø€ Ð6Ð6Ð6¨!ˆ^×Ò  1Ñ%Ô%Ð6Ð6Ð6r   r=   )r@   ÚuniquerV   s     €r   rW   z6DatabaseSchemaEditor._remake_table.<locals>.<listcomp>·   s=   ø€ ð 
ð 
ð 
àð 7Ð6Ð6Ð6¨vÐ6Ñ6Ô6ð
ð 
ð 
r   c                 ó,   •— g | ]}ˆfd „|D ¦   «         ‘ŒS )c                 ó<   •— g | ]}‰                      ||¦  «        ‘ŒS r=   rR   rT   s     €r   rW   zADatabaseSchemaEditor._remake_table.<locals>.<listcomp>.<listcomp>À   s)   ø€ Ð5Ð5Ð5¨!ˆ^×Ò  1Ñ%Ô%Ð5Ð5Ð5r   r=   )r@   ÚindexrV   s     €r   rW   z6DatabaseSchemaEditor._remake_table.<locals>.<listcomp>¿   s=   ø€ ð 
ð 
ð 
àð 6Ð5Ð5Ð5¨uÐ5Ñ5Ô5ð
ð 
ð 
r   c                 ó0   •— g | ]}‰j         |j        v¯|‘ŒS r=   )r>   Úfields)r@   r[   Údelete_fields     €r   rW   z6DatabaseSchemaEditor._remake_table.<locals>.<listcomp>Æ   s/   ø€ ð ð ð Ø¨lÔ.?ÀuÄ|Ð.SÐ.S�Ð.SÐ.SÐ.Sr   )Ú	app_labelÚdb_tableÚunique_togetherÚindex_togetherÚindexesÚconstraintsÚappsÚMetar=   Ú
__module__znew__%szNew%súINSERT INTO ú (ú, c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S r   )rF   )r@   Úxr   s     €r   rL   z5DatabaseSchemaEditor._remake_table.<locals>.<genexpr>ü   s/   øè è € Ð>Ð>°˜$Ÿ/š/¨!Ñ,Ô,Ð>Ð>Ð>Ð>Ð>Ð>r   ú	) SELECT ú FROM )Úhandle_autom2mT),Ú_metaÚlocal_concrete_fieldsrI   ÚanyÚlistÚitemsrG   Úauto_createdrE   r>   Ú
db_defaultr	   Úmany_to_manyrD   Úconcreter4   Úeffective_defaultÚpopÚnullÚdb_default_sqlrF   r8   ÚthroughÚdelete_modelr   ra   rb   rc   rd   ÚcopyÚdeepcopyr_   r`   r0   rg   Úobject_nameÚ	__bases__r   Úcreate_modelÚexecuteÚjoinÚvaluesÚalter_db_tableÚdeferred_sql)r   r9   Úcreate_fieldr^   Úalter_fieldsÚbodyÚmappingÚrestore_pk_fieldÚfieldÚalter_fieldÚ	old_fieldrK   rO   rJ   Úcase_sqlre   ra   rb   rc   rd   Ú	body_copyÚmeta_contentsÚmetaÚ	new_modelÚsqlr;   r>   rV   s   `` `                     @@@r   Ú_remake_tablez"DatabaseSchemaEditor._remake_tableM   sˆ  øøøøøø€ ð,	Cð 	Cð 	Cð 	Cð 	Cð
ð 
ð 
ð 
à”[Ô6ð
ñ 
ô 
ˆð
ð 
ð 
ð 
à”[Ô6ð
ñ 
ô 
ˆð ˆð  ÐØ#Ð) rˆÝ�< °Ñ6Ô6ð 	2½#ð >
ð >
ØIUð>
ñ >
ô >
ñ ;
ô ;
ð 	2õ  $ D§J¢J¡L¤LÑ1Ô1ð 2ð 2‘��eØÔ$ð 
2­Sð 1ð 1ð 1ð 1ð )5ð	1ñ 1ô 1ñ .ô .ð 
2ð ).�EÔ%Ø',Ð$ØÔ)ð 2Ø  ˜JØ# E¤LÐ1øàð 
	Ø&2ˆD�Ô"Ñ#ð Ô'­<Ð7Ð7Ø%Ô2ð 8Ø6BÔ6Lð 8à Ô)ð 8ð 04×/CÒ/CØ×*Ò*¨<Ñ8Ô8ñ0ô 0�˜Ô+Ñ,ð (ð 	Nñ 	NˆKØ#.Ñ ˆI�yØ�HŠH�Y”^ TÑ*Ô*Ð*Ø�KŠK˜	Ô(¨$Ñ/Ô/Ð/Ø#,ˆD�”Ñ Ø-6¬^ˆN˜9œ>Ñ*ØÔ"ð ØØŒ~ð N i¤nð NØÔ'­<Ð7Ð7Ø"×2Ò2°4×3IÒ3IÈ)Ñ3TÔ3TÑUÔU�G�Gà!%×!4Ò!4°YÑ!?Ô!?‘J�G˜QØ;ØŸ?š?¨9Ô+;Ñ<Ô<Ø&ð?ð ?ñ �ð -5�˜	Ô(Ñ)Ð)à,0¯OªO¸IÔ<LÑ,MÔ,M�˜	Ô(Ñ)Ñ)àð 	LØ�\Ô&Ð'Ø�KŠK˜Ô+¨TÑ2Ô2Ð2ð Ô)ðLà Ô-Ô5Ô;ÔHðLð ×(Ò(¨Ô)BÔ)JÑKÔKÐKå‰vŒvˆð
ð 
ð 
ð 
àœ+Ô5ð
ñ 
ô 
ˆð
ð 
ð 
ð 
àœÔ3ð
ñ 
ô 
ˆð
 ”+Ô%ˆØð 	ðð ð ð Ø#*ðñ ô ˆGõ ˜5œ;Ô2Ñ3Ô3ˆõ
 ”M $Ñ'Ô'ˆ	ð œÔ.ØœÔ,Ø.Ø,ØØ&Øð
ð 
ˆõ �F˜B Ñ.Ô.ˆØ ˆ	�&ÑØ"'Ô"2ˆ	�,ÑÝˆUŒ[Ô$ e¤o°yÑAÔAÐAõ ”M $Ñ'Ô'ˆ	àœÔ.Ø!¥L°´Ô1EÑ$FÔ$FÑFØ.Ø,ØØ&Øð
ð 
ˆõ �F˜B Ñ.Ô.ˆØ ˆ	�&ÑØ"'Ô"2ˆ	�,ÑÝ˜ 5¤;Ô#:Ñ:¸E¼OÈYÑWÔWˆ	ð 	×Ò˜)Ñ$Ô$Ð$ð 	�Šˆð —’ 	¤Ô 8Ñ9Ô9Ð9Ð9Ø—	’	Ð>Ð>Ð>Ð>°gÐ>Ñ>Ô>Ñ>Ô>Ð>Ð>Ø—	’	˜'Ÿ.š.Ñ*Ô*Ñ+Ô+Ð+Ð+Ø—’ ¤Ô 4Ñ5Ô5Ð5ðñ	
ô 	
ð 	
ð 	×Ò˜%°ÐÑ6Ô6Ð6ð 	×ÒØØŒOÔ$ØŒKÔ ñ	
ô 	
ð 	
ð Ô$ð 	ð 	ˆCØ�LŠL˜ÑÔÐÐØˆÔàð 	0Ø+/ÐÔ(Ð(Ð(ð	0ð 	0r   Tc                 ó”  •— |r#t          ¦   «                              |¦  «         d S |                      | j        d|                      |j        j        ¦  «        iz  ¦  «         t          | j        ¦  «        D ]P}t          |t          ¦  «        r9|                     |j        j        ¦  «        r| j                             |¦  «         ŒQd S )NÚtable)r   r~   r„   Úsql_delete_tablerF   rp   r`   rs   rˆ   r%   r   Úreferences_tableÚremove)r   r9   ro   r–   r   s       €r   r~   z!DatabaseSchemaEditor.delete_model  sØ   ø€ Øð 	2Ý‰GŒG× Ò  Ñ'Ô'Ð'Ð'Ð'ð �LŠLØÔ%à˜TŸ_š_¨U¬[Ô-AÑBÔBðññô ð õ ˜DÔ-Ñ.Ô.ð 2ð 2�Ý˜c¥9Ñ-Ô-ð 2°#×2FÒ2FØ”KÔ(ñ3ô 3ð 2ð Ô%×,Ò,¨SÑ1Ô1Ð1øð	2ð 2r   c                 ó   •— ddl m} |j        r7|j        j        j        j        r!|                      |j        j        ¦  «         dS |j        sF|j	        s?|j
        r8|                      |¦  «        €#|j        t          ur.t          |j        |¦  «        s|                      ||¬¦  «         dS t!          ¦   «                              ||¦  «         dS )zCreate a field on a model.r   )ÚValueN)r‰   )Údjango.db.models.expressionsrž   rw   r8   r}   rp   ru   rƒ   rG   rX   r{   ry   rv   r	   r%   r—   r   Ú	add_field)r   r9   rŽ   rž   r   s       €r   r    zDatabaseSchemaEditor.add_field&  sö   ø€ à6Ð6Ð6Ð6Ð6Ð6ð Ôð 	, %Ô"4Ô"<Ô"BÔ"Oð 	,Ø×Ò˜eÔ0Ô8Ñ9Ô9Ð9Ð9Ð9ð Ôð	,ð Œ|ð		,ð
 ”:ð	,ð ×%Ò% eÑ,Ô,Ð8ð Ô ­Ð4Ð4Ý" 5Ô#3°UÑ;Ô;ð 5ð ×Ò˜u°5ÐÑ9Ô9Ð9Ð9Ð9å‰GŒG×Ò˜e UÑ+Ô+Ð+Ð+Ð+r   c                 ó¬  •— |j         r9|j        j        j        j        r!|                      |j        j        ¦  «         dS dS | j        j        j        rG|j	        s@|j
        s9|j        s2|j        r|j        s$t          ¦   «                              ||¦  «         dS |                     | j        ¬¦  «        d         €dS |                      ||¬¦  «         dS )z…
        Remove a field from a model. Usually involves deleting a column,
        but for M2Ms may involve deleting a table.
        )r   r0   N)r^   )rw   r8   r}   rp   ru   r~   r   ÚfeaturesÚcan_alter_table_drop_columnrG   rX   Údb_indexÚdb_constraintr   Úremove_fieldÚdb_parametersr—   )r   r9   rŽ   r   s      €r   r¦   z!DatabaseSchemaEditor.remove_fieldB  s  ø€ ð Ôð 	:àÔ!Ô)Ô/Ô<ð >Ø×!Ò! %Ô"4Ô"<Ñ=Ô=Ð=Ð=Ð=ð>ð >ð ŒOÔ$Ô@ð	:ð Ô%ð		:ð
 ”Lð	:ð ”Nð	:ð Ô'ð	:ð -2Ô,?ð	:õ ‰GŒG× Ò  ¨Ñ.Ô.Ð.Ð.Ð.ð ×"Ò"¨d¬oÐ"Ñ>Ô>¸vÔFÐNØ�Ø×Ò˜u°5ÐÑ9Ô9Ð9Ð9Ð9r   Fc	                 óÞ  — |j         |j         k    r|                      ||¦  «        |                      ||¦  «        k    rQ|j        r|j        sC|j        r|j        s5|                      |                      |j        j        |||¦  «        ¦  «        S |                      |||fg¬¦  «         | 	                    d¦  «        }	| 	                    d¦  «        }
|j
        �r||k    s|	|
k    �rt          ¦   «         }|j        j        }|j        D ]r}|j        |k    rŒ|j        s+|j        |j        k    r|                     |j        ¦  «         Œ@|j        r+|j        j        j        r|                     |j        ¦  «         Œs|j        rK|j        D ]C}|j        |k    rŒ|j        j        j        j        r|                     |j        j        ¦  «         ŒD|D ]}|                      |¦  «         ŒdS dS dS )z3Perform a "physical" (non-ManyToMany) field update.©rŠ   Ú	collationN)rE   Ú
column_sqlr8   r¥   r„   Ú_rename_field_sqlrp   r`   r—   rS   rX   Úsetr9   Úrelated_objectsÚrelated_modelrw   Ú
field_namer>   ÚaddrG   r}   ru   )r   r9   r�   rK   Úold_typeÚnew_typeÚold_db_paramsÚnew_db_paramsÚstrictÚold_collationÚnew_collationÚrelated_modelsÚoptsr8   rw   r¯   s                   r   Ú_alter_fieldz!DatabaseSchemaEditor._alter_field^  sQ  € ð Ô 	Ô 0Ò0Ð0Ø—’  yÑ1Ô1°T·_²_ÀUÈIÑ5VÔ5VÒVÐVàÔ&ð Wð Ô+ð Wð Ô)ð	 Wð
 Ô+ð Wð —<’<Ø×&Ò&Ø”KÔ(¨)°YÀñô ñô ð ð 	×Ò˜5°¸IÐ0FÐ/GÐÑHÔHÐHà%×)Ò)¨+Ñ6Ô6ˆØ%×)Ò)¨+Ñ6Ô6ˆØÔñ 	2Ø˜Ò Ð  M°]Ò$BÑ$Bå ™UœUˆNØ”?Ô(ˆDØ $Ô 4ð =ð =�àÔ-°Ò6Ð6ØØ#Ô0ð =Ø#Ô.°)´.Ò@Ð@Ø&×*Ò*¨<Ô+EÑFÔFÐFøØÔ*ð =¨|Ô/CÔ/IÔ/Vð =Ø"×&Ò& |Ô';Ñ<Ô<Ð<øØÔ$ð NØ$(Ô$5ð Nð N�Là#Ô1°UÒ:Ð:Ø Ø#Ô0Ô8Ô>ÔKð NØ&×*Ò*¨<Ô+DÔ+LÑMÔMÐMøØ!/ð 2ð 2�Ø×"Ò" =Ñ1Ô1Ð1Ð1ð-	2ð 	2Ø$BÐ$Bð(2ð 2r   c                 ó–  — |j         j        j        j        |j         j        j        j        k    rù|                      |j         j        |j         j        j                             |                     ¦   «         ¦  «        |j         j        j                             |                     ¦   «         ¦  «        f|j         j        j                             |                     ¦   «         ¦  «        |j         j        j                             |                     ¦   «         ¦  «        fg¬¦  «         dS |                      |j         j        ¦  «         |  	                    d|  
                    |j         j        j        j        ¦  «        ›dd                     d|                     ¦   «         |                     ¦   «         g¦  «        ›dd                     d|                     ¦   «         |                     ¦   «         g¦  «        ›d|  
                    |j         j        j        j        ¦  «        ›�¦  «         |                      |j         j        ¦  «         dS )	z*Alter M2Ms to repoint their to= endpoints.r©   Nrh   ri   rj   Úidrm   rn   )r8   r}   rp   r`   r—   Ú	get_fieldÚm2m_reverse_field_nameÚm2m_field_namerƒ   r„   rF   r…   Úm2m_column_nameÚm2m_reverse_namer~   )r   r9   r�   rK   r¶   s        r   Ú_alter_many_to_manyz(DatabaseSchemaEditor._alter_many_to_many˜  s@  € ð Ô"Ô*Ô0Ô9ØÔ%Ô-Ô3Ô<ò=ð =ð
 ×ÒØÔ&Ô.ð "Ô.Ô6Ô<×FÒFØ%×<Ò<Ñ>Ô>ñô ð "Ô.Ô6Ô<×FÒFØ%×<Ò<Ñ>Ô>ñô ð
ð "Ô.Ô6Ô<×FÒFØ%×4Ò4Ñ6Ô6ñô ð "Ô.Ô6Ô<×FÒFØ%×4Ò4Ñ6Ô6ñô ð
ðð ñ ô ð ð6 ˆFð 	×Ò˜)Ô0Ô8Ñ9Ô9Ð9à�Šˆð —’ 	Ô 6Ô >Ô DÔ MÑNÔNÐNÐNØ—	’	àØ!×1Ò1Ñ3Ô3Ø!×2Ò2Ñ4Ô4ðñô ð ð ð —	’	àØ!×1Ò1Ñ3Ô3Ø!×2Ò2Ñ4Ô4ðñô ð ð ð —’ 	Ô 6Ô >Ô DÔ MÑNÔNÐNð#ñ	
ô 	
ð 	
ð, 	×Ò˜)Ô0Ô8Ñ9Ô9Ð9Ð9Ð9r   c                 óÜ   •— t          |t          ¦  «        r@|j        s|j        s|j        s|j        r$t          ¦   «                              ||¦  «         d S |                      |¦  «         d S r   )	r%   r
   Ú	conditionÚcontains_expressionsÚincludeÚ
deferrabler   Úadd_constraintr—   ©r   r9   Ú
constraintr   s      €r   rÉ   z#DatabaseSchemaEditor.add_constraintØ  s‚   ø€ Ý�jÕ"2Ñ3Ô3ð 	&ØÔ ð	&àÔ.ð	&ð Ô!ð	&ð Ô$ð		&õ ‰GŒG×"Ò" 5¨*Ñ5Ô5Ð5Ð5Ð5à×Ò˜uÑ%Ô%Ð%Ð%Ð%r   c                 óÜ   •— t          |t          ¦  «        r@|j        s|j        s|j        s|j        r$t          ¦   «                              ||¦  «         d S |                      |¦  «         d S r   )	r%   r
   rÅ   rÆ   rÇ   rÈ   r   Úremove_constraintr—   rÊ   s      €r   rÍ   z&DatabaseSchemaEditor.remove_constraintã  s‚   ø€ Ý�jÕ"2Ñ3Ô3ð 	&ØÔ ð	&àÔ.ð	&ð Ô!ð	&ð Ô$ð		&õ ‰GŒG×%Ò% e¨ZÑ8Ô8Ð8Ð8Ð8à×Ò˜uÑ%Ô%Ð%Ð%Ð%r   c                 ó   — d|z   S )NzCOLLATE r=   )r   rª   s     r   Ú_collate_sqlz!DatabaseSchemaEditor._collate_sqlî  s   € Ø˜IÑ%Ð%r   )NNN)TrC   )Ú__name__rg   Ú__qualname__rš   Úsql_create_fkÚsql_create_inline_fkÚsql_create_column_inline_fkÚsql_delete_columnÚsql_create_uniqueÚsql_delete_uniqueÚsql_alter_table_commentÚsql_alter_column_commentr   r   r2   r4   r—   r~   r    r¦   r»   rÃ   rÉ   rÍ   rÏ   Ú__classcell__)r   s   @r   r   r      s„  ø€ € € € € Ø-ÐØ€MàOð ð #7ÐØFÐØQÐØ-ÐØ"ÐØ#Ðð#ð #ð #ð #ð #ð5ð 5ð 5ð 5ð 5ð
ð ð ð>'ð 'ð 'ð IMðE0ð E0ð E0ð E0ðN2ð 2ð 2ð 2ð 2ð 2ð$,ð ,ð ,ð ,ð ,ð8:ð :ð :ð :ð :ðJ ð82ð 82ð 82ð 82ðt>:ð >:ð >:ð@	&ð 	&ð 	&ð 	&ð 	&ð	&ð 	&ð 	&ð 	&ð 	&ð&ð &ð &ð &ð &ð &ð &r   r   )r   Údecimalr   Údjango.apps.registryr   Ú	django.dbr   Údjango.db.backends.base.schemar   Ú!django.db.backends.ddl_referencesr   Údjango.db.backends.utilsr   Údjango.db.modelsr	   r
   r   r=   r   r   ú<module>râ      sÑ   ðØ €€€Ø Ð Ð Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø CÐ CÐ CÐ CÐ CÐ CØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ðc&ð c&ð c&ð c&ð c&Ð3ñ c&ô c&ð c&ð c&ð c&r   