Ë
    ùi¯eøN  ã                   óz   — 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y)é    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   •— | j                   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    €úJE:\TRUCKING_PROJECT\Lib\site-packages\django/db/backends/sqlite3/schema.pyr   zDatabaseSchemaEditor.__enter__   s7   ø€ ð �‰×:Ñ:Ô<Ü#ð1óð ô ‰wÑ Ó"Ð"ó    c                 ó�   •— | j                   j                  «        t        ‰| �  |||«       | j                   j	                  «        y ©N)r   Úcheck_constraintsr   Ú__exit__Úenable_constraint_checking)r   Úexc_typeÚ	exc_valueÚ	tracebackr   s       €r   r   zDatabaseSchemaEditor.__exit__&   s4   ø€ Ø�‰×)Ñ)Ô+Ü‰Ñ˜ 9¨iÔ8Ø�‰×2Ñ2Õ4r   c                 óà  — 	 dd l }|j                  |«      }t	        |t
        «      rt        t        |«      «      S t	        |t        t        t        f«      rt        |«      S t	        |t        «      rd|j                  dd«      z  S |€yt	        |t        t        t        f«      rd|j                  «       z  S t        d|›dt!        |«      ›�«      ‚# t        $ r Y ŒÅj                  $ r Y ŒÕw xY w)	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+   s×   € ð	Ûà—M‘M %Ó(ˆEô �eœTÔ"Ü”s˜5“z“?Ð"Ü˜¤¬´Ð4Ô5Ü�u“:ÐÜ˜œsÔ#Ø˜EŸM™M¨#¨tÓ4Ñ4Ð4Øˆ]ØÜ˜¤¤y´*Ð=Ô>ð ˜UŸY™Y›[Ñ(Ð(åÚ@EÄtÈEÄ{ÐSóð øô' ò 	ÙØ×'Ñ'ò 	Ùð	ús   ‚C Ã	C-ÃC-Ã,C-c                 ó$   — | j                  |«      S r   )r2   )r   r1   s     r   Úprepare_defaultz$DatabaseSchemaEditor.prepare_defaultJ   s   € Ø×Ñ Ó&Ð&r   c                 ó”  ‡ ‡‡— ˆfd„}‰j                   j                  D �ci c]'  }|j                   ||«      r|j                  «       n|“Œ) }}‰j                   j                  D �ci c]6  }|j                  du r&|j
                  ‰ j                  |j
                  «      “Œ8 }}i }	d}
|xs g }t        |dd«      st        d„ |D «       «      rit        |j                  «       «      D ]M  \  Š}|j                  sŒt        ˆfd„|D «       «      rŒ(d|_        |}
|j                  sŒ>|‰= ||j
                  = ŒO |rr|||j                  <   |j                  t        u rQ|j                  sE|j                  s9|j                   r-‰ j#                  ‰ j%                  |«      «      ||j
                  <   |D �]   }|\  }}|j'                  |j                  d«       |j'                  |j
                  d«       |||j                  <   |j(                  r„|j(                  sx|j                  t        u r!‰ j#                  ‰ j%                  |«      «      }n‰ j+                  |«      \  }}d‰ j                  |j
                  «      |dœz  }|||j
                  <   n(‰ j                  |j
                  «      ||j
                  <   |j                  |	|j                  <   �Œ# |r„||j                  = |j'                  |j
                  d«       |j                  rO|j,                  j.                  j                   j                  r%‰ j1                  |j,                  j.                  «      S t3        «       }‰j                   j4                  D ��cg c]"  }|D �cg c]  }|	j7                  ||«      ‘Œ c}‘Œ$ }}}‰j                   j8                  D ��cg c]"  }|D �cg c]  }|	j7                  ||«      ‘Œ c}‘Œ$ }}}‰j                   j:                  }|r(|D �cg c]  }|j                  |j<                  vsŒ|‘Œ }}t        ‰j                   j>                  «      }tA        jB                  |«      }‰j                   jD                  ‰j                   jF                  |||||d	œ}tI        d
d|«      }||d
<   ‰jJ                  |d<   tI        ‰j                   jL                  ‰jN                  |«       tA        jB                  |«      }‰j                   jD                  dtQ        ‰j                   jF                  «      z  |||||d	œ}tI        d
d|«      }||d
<   ‰jJ                  |d<   tI        d‰j                   jL                  z  ‰jN                  |«      }‰ jS                  |«       ‰ jU                  d‰ j                  |j                   jF                  «      ›ddjW                  ˆ fd„|D «       «      ›ddjW                  |jY                  «       «      ›d‰ j                  ‰j                   jF                  «      ›�«       ‰ j1                  ‰d¬«       ‰ j[                  ||j                   jF                  ‰j                   jF                  «       ‰ j\                  D ]  }‰ jU                  |«       Œ g ‰ _.        |
rd|
_        yyc c}w c c}w c c}w c c}}w c c}w c c}}w c c}w )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                 óP   •— | j                   xr | 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Ñ%9¸UÐ%BÐBr   FNÚprimary_keyc              3   ó<   K  — | ]  \  }}t        |d d«      –— Œ y­w)r<   FN)Úgetattr)Ú.0Ú_Ú	new_fields      r   ú	<genexpr>z5DatabaseSchemaEditor._remake_table.<locals>.<genexpr>x   s"   è ø€ ò >
Ù9E¸¸IŒG�I˜}¨e×4ñ>
ùs   ‚c              3   óB   •K  — | ]  \  }}‰|j                   k(  –— Œ y ­wr   )Úname)r?   r@   rA   rD   s      €r   rB   z5DatabaseSchemaEditor._remake_table.<locals>.<genexpr>|   s(   øè ø€ ò 1ñ %˜˜9ð ˜IŸN™NÕ*ñ1ùs   ƒzcoalesce(%(col)s, %(default)s))ÚcolÚdefault)Ú	app_labelÚdb_tableÚunique_togetherÚindex_togetherÚindexesÚconstraintsÚappsÚMeta© Ú
__module__znew__%szNew%súINSERT INTO ú (ú, c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr   )Ú
quote_name)r?   Úxr   s     €r   rB   z5DatabaseSchemaEditor._remake_table.<locals>.<genexpr>ú   s   øè ø€ Ò>°˜$Ÿ/™/¨!×,Ñ>ùs   ƒú	) SELECT ú FROM )Úhandle_autom2mT)/Ú_metaÚlocal_concrete_fieldsrD   ÚcloneÚ	generatedÚcolumnrU   r>   ÚanyÚlistÚitemsr<   Úauto_createdÚ
db_defaultr	   Úmany_to_manyÚconcreter4   Úeffective_defaultÚpopÚnullÚdb_default_sqlr8   ÚthroughÚdelete_modelr   rI   ÚgetrJ   rK   ÚfieldsrL   ÚcopyÚdeepcopyrG   rH   r0   rP   Úobject_nameÚ	__bases__r   Úcreate_modelÚexecuteÚjoinÚvaluesÚalter_db_tableÚdeferred_sql) r   r9   Úcreate_fieldÚdelete_fieldÚalter_fieldsr;   r:   ÚbodyÚmappingÚrename_mappingÚrestore_pk_fieldÚfieldÚalter_fieldÚ	old_fieldrA   rF   r@   Úcase_sqlrM   ÚuniqueÚnrI   ÚindexrJ   rK   rL   Ú	body_copyÚmeta_contentsÚmetaÚ	new_modelÚsqlrD   s    ``                             @r   Ú_remake_tablez"DatabaseSchemaEditor._remake_tableM   s  ú€ ô,	Cð —[‘[×6Ñ6ö
àð �F‰FÑ!4°QÔ!7�A—G‘G”I¸QÑ>ð
ˆð 
ð —[‘[×6Ñ6ö
àØ�{‰{˜eÑ#ð �H‰H�d—o‘o a§h¡hÓ/Ñ/ð
ˆð 
ð ˆð  ÐØ#Ò) rˆÜ�< °Ô6¼#ñ >
ØIUô>
ô ;
ô  $ D§J¡J£LÓ1ò 2‘��eØ×$Ó$¬Só 1ð )5ô	1õ .ð ).�EÔ%Ø',Ð$Ø×)Ó)Ø  ˜JØ# E§L¡LÑ1ð2ñ Ø&2ˆD�×"Ñ"Ñ#ð ×'Ñ'¬<Ñ7Ø%×2Ò2°l×6LÒ6LØ ×)Ò)à/3×/CÑ/CØ×*Ñ*¨<Ó8ó0�˜×+Ñ+Ñ,ð (ó 	<ˆKØ#.Ñ ˆI�yØ�H‰H�Y—^‘^ TÔ*Ø�K‰K˜	×(Ñ(¨$Ô/Ø#,ˆD�—‘Ñ Ø�~Š~ i§n¢nØ×'Ñ'¬<Ñ7Ø"×2Ñ2°4×3IÑ3IÈ)Ó3TÓU‘Gà!%×!4Ñ!4°YÓ!?‘J�G˜QØ;ØŸ?™?¨9×+;Ñ+;Ó<Ø&ñ?ñ �ð -5�˜	×(Ñ(Ò)à,0¯O©O¸I×<LÑ<LÓ,M�˜	×(Ñ(Ñ)Ø-6¯^©^ˆN˜9Ÿ>™>Ó*ð#	<ñ& Ø�\×&Ñ&Ð'Ø�K‰K˜×+Ñ+¨TÔ2ð ×)Ò)Ø ×-Ñ-×5Ñ5×;Ñ;×HÒHà×(Ñ(¨×)BÑ)B×)JÑ)JÓKÐKä‹vˆð  Ÿ+™+×5Ñ5÷
àð 06Ö6¨!ˆ^×Ñ  1Õ%Ô6ð
ˆñ 
ð Ÿ™×3Ñ3÷
àð 05Ö5¨!ˆ^×Ñ  1Õ%Ô5ð
ˆñ 
ð
 —+‘+×%Ñ%ˆÙà#*öØ¨l×.?Ñ.?ÀuÇ|Á|Ò.S’ðˆGð ô ˜5Ÿ;™;×2Ñ2Ó3ˆô
 —M‘M $Ó'ˆ	ð Ÿ™×.Ñ.ØŸ™×,Ñ,Ø.Ø,ØØ&Øñ
ˆô �F˜B Ó.ˆØ ˆ	�&ÑØ"'×"2Ñ"2ˆ	�,ÑÜˆU�[‰[×$Ñ$ e§o¡o°yÔAô —M‘M $Ó'ˆ	àŸ™×.Ñ.Ø!¤L°·±×1EÑ1EÓ$FÑFØ.Ø,ØØ&Øñ
ˆô �F˜B Ó.ˆØ ˆ	�&ÑØ"'×"2Ñ"2ˆ	�,ÑÜ˜ 5§;¡;×#:Ñ#:Ñ:¸E¿O¹OÈYÓWˆ	ð 	×Ñ˜)Ô$ð 	�Šð —‘ 	§¡× 8Ñ 8Õ9Ø—	‘	Ó>°gÔ>Õ>Ø—	‘	˜'Ÿ.™.Ó*Õ+Ø—‘ §¡× 4Ñ 4Ô5ðô	
ð 	×Ñ˜%°ÐÔ6ð 	×ÑØØ�O‰O×$Ñ$Ø�K‰K× Ñ ô	
ð ×$Ñ$ò 	ˆCØ�L‰L˜Õð	àˆÔáØ+/ÐÕ(ð ùòQ
ùò
ùòR 7ùó
ùò 6ùó
ùòsG   ¡,Z%Á';Z*Í9	Z4ÎZ/ÎZ4Î<	Z?ÏZ:ÏZ?Ð[Ð [Ú/Z4Ú:Z?c                 óˆ  •— |rt         ‰| �  |«       y | j                  | j                  d| j	                  |j
                  j                  «      iz  «       t        | j                  «      D ]T  }t        |t        «      sŒ|j                  |j
                  j                  «      sŒ:| j                  j                  |«       ŒV y )NÚtable)r   rk   rs   Úsql_delete_tablerU   rZ   rH   r`   rw   r%   r   Úreferences_tableÚremove)r   r9   rY   rŠ   r   s       €r   rk   z!DatabaseSchemaEditor.delete_model  s¢   ø€ ÙÜ‰GÑ  Õ'ð �L‰LØ×%Ñ%à˜TŸ_™_¨U¯[©[×-AÑ-AÓBðñôô ˜D×-Ñ-Ó.ò 2�Ü˜c¤9Õ-°#×2FÑ2FØ—K‘K×(Ñ(õ3ð ×%Ñ%×,Ñ,¨SÕ1ñ	2r   c                 óÌ  •— ddl m} |j                  rP|j                  j                  j
                  j                  r&| j                  |j                  j                  «       y|j                  sQ|j                  sE|j                  r9| j                  |«      €(|j                  t        ur*t        |j                  |«      s| j                  ||¬«       yt         ‰| �E  ||«       y)zCreate a field on a model.r   )ÚValueN)rx   )Údjango.db.models.expressionsr’   rd   r8   rj   rZ   rb   rr   r<   rƒ   rh   rf   rc   r	   r%   r‹   r   Ú	add_field)r   r9   r   r’   r   s       €r   r”   zDatabaseSchemaEditor.add_field$  sµ   ø€ å6ð ×Ò %×"4Ñ"4×"<Ñ"<×"BÑ"B×"OÒ"OØ×Ñ˜e×0Ñ0×8Ñ8Õ9ð ×ÒØ�|Š|Ø—:’:ð ×%Ñ% eÓ,Ð8ð × Ñ ¬Ñ4Ü" 5×#3Ñ#3°UÔ;ð ×Ñ˜u°5ÐÕ9ä‰GÑ˜e UÕ+r   c                 ó   •— |j                   rQ|j                  j                  j                  j                  r&| j                  |j                  j                  «       yy| j                  j                  j                  rM|j                  sA|j                  s5|j                  s)|j                  r|j                  st        ‰| �9  ||«       y|j                  | j                  ¬«      d   €y| j!                  ||¬«       y)z…
        Remove a field from a model. Usually involves deleting a column,
        but for M2Ms may involve deleting a table.
        )r   r0   N)ry   )rd   r8   rj   rZ   rb   rk   r   ÚfeaturesÚcan_alter_table_drop_columnr<   rƒ   Údb_indexÚdb_constraintr   Úremove_fieldÚdb_parametersr‹   )r   r9   r   r   s      €r   rš   z!DatabaseSchemaEditor.remove_field@  sË   ø€ ð ×Òà×!Ñ!×)Ñ)×/Ñ/×<Ò<Ø×!Ñ! %×"4Ñ"4×"<Ñ"<Õ=ð =ð �O‰O×$Ñ$×@Ò@ð ×%Ò%Ø—L’LØ—N’NØ×'Ò'¨E×,?Ò,?ä‰GÑ  ¨Õ.ð ×"Ñ"¨d¯o©oÐ"Ó>¸vÑFÐNØØ×Ñ˜u°5ÐÕ9r   c	                 ó´  — |j                   |j                   k7  rŒ| j                  ||«      | j                  ||«      k(  rg|j                  r|j                  sO|j                  r|j                  s7| j	                  | j                  |j                  j                  |||«      «      S | j                  |||fg¬«       |j                  d«      }	|j                  d«      }
|j                  �rn||k7  s|	|
k7  �rbt        «       }|j                  j                  }|j                  D ]�  }|j                  |k(  rŒ|j                  s6|j                   |j"                  k(  sŒ9|j%                  |j                  «       ŒU|j&                  sŒb|j(                  j                  j*                  sŒƒ|j%                  |j(                  «       ŒŸ |j&                  rq|j                  D ]b  }|j                  |k(  rŒ|j                  j(                  j                  j*                  sŒ>|j%                  |j                  j(                  «       Œd |D ]  }| j                  |«       Œ yyy)z3Perform a "physical" (non-ManyToMany) field update.©rz   Ú	collationN)r^   Ú
column_sqlr8   r™   rs   Ú_rename_field_sqlrZ   rH   r‹   rl   rƒ   Úsetr9   Úrelated_objectsÚrelated_modelrd   Ú
field_namerD   Úaddr<   rj   rb   )r   r9   r�   rA   Úold_typeÚnew_typeÚold_db_paramsÚnew_db_paramsÚstrictÚold_collationÚnew_collationÚrelated_modelsÚoptsr8   rd   r£   s                   r   Ú_alter_fieldz!DatabaseSchemaEditor._alter_field\  s  € ð ×Ñ 	× 0Ñ 0Ò0Ø—‘  yÓ1°T·_±_ÀUÈIÓ5VÒVà×&Ò&Ø×+Ò+Ø×)Ò)Ø×+Ò+ð —<‘<Ø×&Ñ&Ø—K‘K×(Ñ(¨)°YÀóóð ð 	×Ñ˜5°¸IÐ0FÐ/GÐÔHà%×)Ñ)¨+Ó6ˆØ%×)Ñ)¨+Ó6ˆØ×ÓØ˜Ò  M°]Ó$Bä ›UˆNØ—?‘?×(Ñ(ˆDØ $× 4Ñ 4ò =�à×-Ñ-°Ò6ØØ#×0Ò0Ø#×.Ñ.°)·.±.Ó@Ø&×*Ñ*¨<×+EÑ+EÕFØ×*Ó*¨|×/CÑ/C×/IÑ/I×/VÓ/VØ"×&Ñ& |×';Ñ';Õ<ð=ð ×$Ò$Ø$(×$5Ñ$5ò N�Là#×1Ñ1°UÒ:Ø Ø#×0Ñ0×8Ñ8×>Ñ>×KÓKØ&×*Ñ*¨<×+DÑ+D×+LÑ+LÕMðNð "0ò 2�Ø×"Ñ" =Õ1ñ2ð) %Cð r   c                 óF  — |j                   j                  j                  j                  |j                   j                  j                  j                  k(  �r| j	                  |j                   j                  |j                   j                  j                  j                  |j                  «       «      |j                   j                  j                  j                  |j                  «       «      f|j                   j                  j                  j                  |j                  «       «      |j                   j                  j                  j                  |j                  «       «      fg¬«       y| j                  |j                   j                  «       | j                  d| j                  |j                   j                  j                  j                  «      ›ddj                  d|j                  «       |j                  «       g«      ›ddj                  d|j                  «       |j                  «       g«      ›d| j                  |j                   j                  j                  j                  «      ›�«       | j                  |j                   j                  «       y)	z*Alter M2Ms to repoint their to= endpoints.r�   NrQ   rR   rS   ÚidrW   rX   )r8   rj   rZ   rH   r‹   Ú	get_fieldÚm2m_reverse_field_nameÚm2m_field_namerr   rs   rU   rt   Úm2m_column_nameÚm2m_reverse_namerk   )r   r9   r�   rA   rª   s        r   Ú_alter_many_to_manyz(DatabaseSchemaEditor._alter_many_to_many–  s  € ð ×"Ñ"×*Ñ*×0Ñ0×9Ñ9Ø×%Ñ%×-Ñ-×3Ñ3×<Ñ<ó=ð
 ×ÑØ×&Ñ&×.Ñ.ð "×.Ñ.×6Ñ6×<Ñ<×FÑFØ%×<Ñ<Ó>óð "×.Ñ.×6Ñ6×<Ñ<×FÑFØ%×<Ñ<Ó>óð
ð "×.Ñ.×6Ñ6×<Ñ<×FÑFØ%×4Ñ4Ó6óð "×.Ñ.×6Ñ6×<Ñ<×FÑFØ%×4Ñ4Ó6óð
ðð ô ð6 ð 	×Ñ˜)×0Ñ0×8Ñ8Ô9à�Šð —‘ 	× 6Ñ 6× >Ñ >× DÑ D× MÑ MÕNØ—	‘	àØ!×1Ñ1Ó3Ø!×2Ñ2Ó4ðõð —	‘	àØ!×1Ñ1Ó3Ø!×2Ñ2Ó4ðõð —‘ 	× 6Ñ 6× >Ñ >× DÑ D× MÑ MÔNð#ô	
ð, 	×Ñ˜)×0Ñ0×8Ñ8Õ9r   c                 óÊ   •— t        |t        «      rA|j                  s$|j                  s|j                  s|j
                  rt        ‰| �  ||«       y | j                  |«       y r   )	r%   r
   Ú	conditionÚcontains_expressionsÚincludeÚ
deferrabler   Úadd_constraintr‹   ©r   r9   Ú
constraintr   s      €r   r½   z#DatabaseSchemaEditor.add_constraintÖ  sO   ø€ Ü�jÔ"2Ô3Ø× Ò Ø×.Ò.Ø×!Ò!Ø×$Ò$ä‰GÑ" 5¨*Õ5à×Ñ˜uÕ%r   c                 óÊ   •— t        |t        «      rA|j                  s$|j                  s|j                  s|j
                  rt        ‰| �  ||«       y | j                  |«       y r   )	r%   r
   r¹   rº   r»   r¼   r   Úremove_constraintr‹   r¾   s      €r   rÁ   z&DatabaseSchemaEditor.remove_constraintá  sO   ø€ Ü�jÔ"2Ô3Ø× Ò Ø×.Ò.Ø×!Ò!Ø×$Ò$ä‰GÑ% e¨ZÕ8à×Ñ˜uÕ%r   c                 ó   — d|z   S )NzCOLLATE rO   )r   rž   s     r   Ú_collate_sqlz!DatabaseSchemaEditor._collate_sqlì  s   € Ø˜IÑ%Ð%r   )NNN)T)F)Ú__name__rP   Ú__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‹   rk   r”   rš   r¯   r·   r½   rÁ   rÃ   Ú__classcell__)r   s   @r   r   r      sŽ   ø„ Ø-ÐØ€MàOð ð #7ÐØFÐØQÐØ-ÐØ"ÐØ#Ðô#ô5ò
ò>'ð IMóC0õJ2ô$,ô8:ðJ ó82òt>:ô@	&ô	&ö&r   r   )rn   Ú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   rO   r   r   ú<module>rÖ      s,   ðÛ Ý å %Ý 'Ý CÝ 7Ý 1ß ;ôa&Ð3õ a&r   