Ë
    ¦#ij½P  ã                   ó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)ÚCompositePrimaryKeyÚUniqueConstraintc                   ó¨   ‡ — e Zd ZdZdZdZe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 DEFERREDz7CREATE 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    €ú[/var/www/html/office/venv/lib/python3.12/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_defaultI   s   € Ø×Ñ Ó&Ð&r   c                 ó„  ‡ ‡‡ — ˆfd„}‰j                   j                  D �ci c]'  }|j                   ||«      r|j                  «       n|“Œ) }}‰j                   j                  }t        |t        «      r|j                  «       ||j                  <   ‰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 |rd|||j                  <   |j!                  «       sE|j                  s9|j"                  r-‰ j%                  ‰ j'                  |«      «      |	|j                  <   |D �],  }|\  }}|j)                  |j                  d«       |	j)                  |j                  d«       |||j                  <   |j                  |
|j                  <   |j                  rŒv|j*                  rƒ|j*                  sw|j!                  «       s!‰ j%                  ‰ j'                  |«      «      }n‰ j-                  |«      \  }}d‰ j                  |j                  «      |dœz  }||	|j                  <   �Œ‰ j                  |j                  «      |	|j                  <   �Œ/ |r„||j                  = |	j)                  |j                  d«       |j.                  rO|j0                  j2                  j                   j                  r%‰ j5                  |j0                  j2                  «      S t7        «       }‰j                   j8                  D ��cg c]"  }|D �cg c]  }|
j;                  ||«      ‘Œ c}‘Œ$ }}}‰j                   j<                  }|r(|D �cg c]  }|j                  |j>                  vsŒ|‘Œ }}t        ‰j                   j@                  «      }tC        jD                  |«      }‰j                   jF                  ‰j                   jH                  ||||d	œ}tK        d
d|«      }||d
<   ‰jL                  |d<   tK        ‰j                   jN                  ‰jP                  |«       tC        jD                  |«      }‰j                   jF                  dtS        ‰j                   jH                  «      z  ||||d	œ}tK        d
d|«      }||d
<   ‰jL                  |d<   tK        d‰j                   jN                  z  ‰jP                  |«      }|r…|jT                  |j                   j                  jT                  k(  rX|j                   j                  }tW        ||jT                  «       |j                   jX                  j[                  |«       d|_        ‰ j]                  |«       ‰ j_                  d‰ j                  |j                   jH                  «      ›ddja                  ˆ fd„|	D «       «      ›ddja                  |	jc                  «       «      ›d‰ j                  ‰j                   jH                  «      ›�«       ‰ j5                  ‰d¬«       ‰ je                  ||j                   jH                  ‰j                   jH                  «       ‰ jf                  D ]  }‰ j_                  |«       Œ g ‰ _3        |rd|_        yy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_referentialb   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>~   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Ú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)4Ú_metaÚlocal_concrete_fieldsrD   ÚcloneÚpkr%   r	   Ú	generatedÚcolumnrT   r>   ÚanyÚlistÚitemsr<   Úauto_createdÚhas_db_defaultÚconcreter4   Úeffective_defaultÚpopÚnullÚdb_default_sqlÚmany_to_manyr8   ÚthroughÚdelete_modelr   rI   ÚgetrJ   ÚfieldsrK   ÚcopyÚdeepcopyrG   rH   r0   rO   Úobject_nameÚ	__bases__r   ÚattnameÚdelattrÚlocal_fieldsÚremoveÚcreate_modelÚexecuteÚjoinÚvaluesÚalter_db_tableÚdeferred_sql)!r   r9   Úcreate_fieldÚdelete_fieldÚalter_fieldsr;   r:   Úbodyr\   ÚmappingÚrename_mappingÚrestore_pk_fieldÚfieldÚalter_fieldÚ	old_fieldrA   rF   r@   Úcase_sqlrL   ÚuniqueÚnrI   rJ   ÚindexrK   Ú	body_copyÚmeta_contentsÚmetaÚ	new_modelÚauto_pkÚsqlrD   s!   ``                              @r   Ú_remake_tablez"DatabaseSchemaEditor._remake_tableL   sZ  ú€ ô,	Cð —[‘[×6Ñ6ö
àð �F‰FÑ!4°QÔ!7�A—G‘G”I¸QÑ>ð
ˆð 
ð �[‰[�^‰^ˆÜ�bÔ-Ô.ØŸH™H›JˆD�—‘‰Mð —[‘[×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�×"Ñ"Ñ#ð !×/Ñ/Ô1Ø$×.Ò.Ø ×)Ò)à/3×/CÑ/CØ×*Ñ*¨<Ó8ó0�˜×+Ñ+Ñ,ð (ó 	NˆKØ#.Ñ ˆI�yØ�H‰H�Y—^‘^ TÔ*Ø�K‰K˜	×(Ñ(¨$Ô/Ø#,ˆD�—‘Ñ Ø-6¯^©^ˆN˜9Ÿ>™>Ñ*Ø×"Ò"ØØ�~Š~ i§n¢nØ ×/Ñ/Ô1Ø"×2Ñ2°4×3IÑ3IÈ)Ó3TÓU‘Gà!%×!4Ñ!4°YÓ!?‘J�G˜QØ;ØŸ?™?¨9×+;Ñ+;Ó<Ø&ñ?ñ �ð -5�˜	×(Ñ(Ó)à,0¯O©O¸I×<LÑ<LÓ,M�˜	×(Ñ(Ó)ð'	Nñ* Ø�\×&Ñ&Ð'Ø�K‰K˜×+Ñ+¨TÔ2ð ×)Ò)Ø ×-Ñ-×5Ñ5×;Ñ;×HÒHà×(Ñ(¨×)BÑ)B×)JÑ)JÓKÐKä‹vˆð  Ÿ+™+×5Ñ5÷
àð 06Ö6¨!ˆ^×Ñ  1Õ%Ô6ð
ˆñ 
ð
 —+‘+×%Ñ%ˆÙà#*öØ¨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ˆ	ñ ˜L×0Ñ0°I·O±O×4FÑ4F×4NÑ4NÒNØ—o‘o×(Ñ(ˆGÜ�I˜wŸ™Ô/Ø�O‰O×(Ñ(×/Ñ/°Ô8ØˆIŒLð 	×Ñ˜)Ô$ð 	�Šð —‘ 	§¡× 8Ñ 8Õ9Ø—	‘	Ó>°gÔ>Õ>Ø—	‘	˜'Ÿ.™.Ó*Õ+Ø—‘ §¡× 4Ñ 4Ô5ðô	
ð 	×Ñ˜%°ÐÔ6ð 	×ÑØØ�O‰O×$Ñ$Ø�K‰K× Ñ ô	
ð ×$Ñ$ò 	ˆCØ�L‰L˜Õð	àˆÔáØ+/ÐÕ(ð ùò_
ùò
ùòV 7ùó
ùòs/   ¡,\(Â*;\-Î:	\7Ï\2Ï\7Ð \=Ð\=Ü2\7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   rw   Úsql_delete_tablerT   rY   rH   r`   r{   r%   r   Úreferences_tableru   )r   r9   rX   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t        |t        «      ry|j                  sO|j                  sC|j                  r7| j                  |«      €&|j                  «       r*t        |j                  |«      s| j!                  ||¬«       yt"        ‰| �I  ||«       y)zCreate a field on a model.r   )ÚValueN)r|   )Údjango.db.models.expressionsr–   ri   r8   rj   rY   rb   rv   r%   r	   r<   r‡   rg   re   rc   Ú
db_defaultr�   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Ü˜Ô2Ô3ð
 ð ×ÒØ�|Š|Ø—:’:ð ×%Ñ% eÓ,Ð8ð ×$Ñ$Ô&¬z¸%×:JÑ:JÈEÔ/Rà×Ñ˜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)r}   )ri   r8   rj   rY   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_fieldI  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.©r~   Ú	collationN)r^   Ú
column_sqlr8   rž   rw   Ú_rename_field_sqlrY   rH   r�   rl   r‡   Úsetr9   Úrelated_objectsÚrelated_modelri   Ú
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   ri   r¨   s                   r   Ú_alter_fieldz!DatabaseSchemaEditor._alter_fielde  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¢   NrP   rQ   rR   ÚidrV   rW   )r8   rj   rY   rH   r�   Ú	get_fieldÚm2m_reverse_field_nameÚm2m_field_namerv   rw   rT   rx   Ú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 rN   )r   r£   s     r   Ú_collate_sqlz!DatabaseSchemaEditor._collate_sqlö  s   € Ø˜IÑ%Ð%r   )NNN)T)F)Ú__name__rO   Ú__qualname__r“   Úsql_create_fkÚsql_create_inline_fkÚsql_create_column_inline_fkÚ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ÐØQÐØ-ÐØ"ÐØ#Ðô#ô5ò
ò>'ð IMóJ0õX2ô$,ô>:ðJ ó92òv>:ô@	&ô	&ö&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   rN   r   r   ú<module>rÚ      s,   ðÛ Ý å %Ý 'Ý CÝ 7Ý 1ß Bôk&Ð3õ k&r   