ó
    j¦j   ã                  ó&   • S r SSKJr  S rS rS rg)z;Visible deterministic rules for MKN-031 synthetic fixtures.é    )Úannotationsc                óN  • [        U R                  S0 5      R                  S5      =(       d    / 5      nU R                  S5      =(       d    0 R                  S5      =(       d    / n[        5       n[        U5      n[        U5      nU(       a�  UR                  5       nU Hp  nUR                  S5      U:X  d  M  UR                  S5      (       d  M2  US   oƒR	                  U5        X…;  d  MN  UR	                  U5        UR                  U5        Mr     U(       a  M�  [        U5      $ )NÚrequestÚtarget_node_idsÚdependency_graphÚedgesÚfromÚto)ÚsetÚgetÚlistÚpopÚaddÚappendÚsorted)	ÚfixtureÚtargetsr   ÚoutÚfrontierÚseenÚcurÚeÚnxts	            ÚZ/mnt/data/mkn031_build/MAKNOW_LESSON_MKN-031_v1.0.0/lab/MKN-031-LAB1/learner/gate_rules.pyÚdependency_closurer      sÖ   € Ü�—‘˜I bÓ)×-Ñ-Ð.?Ó@×FÀBÓG€GØ�;‰;Ð)Ó*×0¨b×
5Ñ
5°gÓ
>×
DÀ"€EÜ‹€Cœ˜W›ˆx¬C°«L tÞ
Ø�L‰L‹NˆÛˆAØ�u‰u�V‹}˜cÕ! a§e¡e¨D§k£kØ�d‘G�ŸW™W Sœ\Ø•?Ø—H‘H˜S”M 8§?¡?°3Ö#7ñ	 ÷ ˆ(ô �#‹;Ðó    c                ó
  • / n[        U [        5      (       d  S/$ U R                  S5      =(       d    0 o R                  S5      =(       d    0 o0R                  S5      =(       d    0 o@R                  S5      =(       d    0 n[        UR                  S5      =(       d    / 5      n[        UR                  S5      =(       d    / 5      nXg-  (       a  UR	                  S5        UR                  S	5      UR                  S
5      :w  d$  UR                  S5      UR                  S5      :w  a  UR	                  S5        U R                  S5      (       aB  U R                  S5      (       a,  UR                  S5      (       a  UR                  S5      (       d  UR	                  S5        [        UR                  S5      =(       d    / 5      nUR                  U5      (       d  UR	                  S5        UR                  S5      =(       d    0 n	UR                  S5      =(       d    0 n
U HT  nU	R                  U5      =(       d    0 nU
R                  U5      UR                  S5      :w  d  MC  UR	                  S5          O   UR                  S5      =(       d    0 R                  5        Hƒ  u  p½U	R                  U5      =(       d    0 nU(       d  M(  UR                  S5      UR                  S5      :w  d&  UR                  S5      UR                  S5      :w  d  Mr  UR	                  S5          O   UR                  S5      =(       d    / nSnSnSnU Hº  nUR                  S5      S;   nU(       a  S nUR                  S5      S!:X  d  M7  U(       a  M@  UR                  S"5      S#:X  a&  UR                  S$5      UR                  S
5      :X  a  S nUR                  S"5      S%:X  d  M’  UR                  S$5      UR                  S5      :X  d  M¸  S nM¼     U(       a  U(       d  UR	                  S&5        [        [        U 5      5      n[        UR                  S'5      =(       d    / 5      nUU:w  a  UR	                  S(5        UR                  S)5      (       a,  UR                  S*5      (       a  UR                  S+5      (       d  UR	                  S,5        UR                  S-5      S.:w  a  UR	                  S/5        [        [        U5      5      $ )0NÚINPUT_INVALIDÚ	canonicalr   Ú	candidateÚdiffr   Úprotected_node_idsÚSCOPE_CONFLICTÚgenerated_from_revision_idÚrevision_idÚbase_digestÚdigestÚ
STALE_BASEÚsource_snapshotÚevidence_snapshotÚsource_snapshot_refÚevidence_snapshot_refÚEVIDENCE_MISSINGÚchanged_node_idsÚUNAUTHORIZED_CANONICAL_CHANGEÚnodesÚprotected_digest_mapÚPROTECTED_NODE_CHANGEDÚnode_snapshotsÚ	node_typeÚsemantic_keyÚNODE_ID_SEMANTIC_REUSEÚpatchFÚop>   r   ÚcopyÚmoveÚremoveÚreplaceTÚtestÚpathz/canonical/revision_idÚvaluez/canonical/digestÚPRECONDITION_FAILUREÚaffected_derived_artifactsÚDEPENDENCY_IMPACT_MISMATCHÚprovenance_activity_refÚgenerator_refÚgeneration_policy_versionÚPROVENANCE_MISSINGÚstructural_validation_stateÚPASSÚSTRUCTURAL_VALIDATION_FAILURE)	Ú
isinstanceÚdictr   r   r   ÚissubsetÚitemsr   r   )ÚfÚissuesr   r   Úcandr!   r   Ú	protectedÚchangedr0   ÚpdÚnidÚnodeÚsnapÚbaser7   Úseen_mutationÚhave_revÚhave_digestr8   ÚmutÚexpectedÚdeclareds                          r   Úinspectr^      sß  € Ø€FÜ�aœ×Ñ Ð&7Ð7Ø�e‰e�KÓ ×& B€I·±°iÓ0@×0FÀB¨ÏUÉUÐS^ÓM_×MeÐceÈ×lqÑlqÐrxÓly×lÐ}ÐgkÜ�—‘Ð-Ó.×4°"Ó5€GÄÀWÇ[Á[ÐQeÓEf×ElÐjlÓAm°yØ×˜FŸM™MÐ*:Ô;Ø‡x�xÐ,Ó-¨y¯}©}¸]Ó/KÓKÈtÏxÉxÐXeÓOfÐhq×huÑhuÐv~ÓhÓOØ�‰�lÔ#Ø�5‰5Ð"×#Ñ#¨1¯5©5Ð1D×+EÑ+EÈTÏXÉXÐVk×MlÑMlÐtx×t|Ñt|ð  ~U÷  uVñ  uVØ�‰Ð(Ô)Ü�—‘Ð+Ó,×2°Ó3€GØ×Ñ˜G×$Ñ$ f§m¡mÐ4SÔ&TØ
�-‰-˜Ó
 ×
& B€EØ‡x�xÐ&Ó'×-¨2€BÛˆØ�Y‰Y�s‹^×!˜rˆØ�6‰6�#‹;˜Ÿ™ Ó*Õ*Ø�M‰MÐ2Ô3±Uñ ð —X‘XÐ.Ó/×5°2×<Ñ<Ö>‰ˆØ�Y‰Y�s‹^×!˜rˆßˆ4�T—X‘X˜kÓ*¨D¯H©H°[Ó,AÓAÀTÇXÁXÈnÓE]Ð_c×_gÑ_gÐhvÓ_wÕEwØ�M‰MÐ2Ô3±Uñ ?ð �(‰(�7Ó
×
!˜r€EØ€M %˜°U¨ÛˆØ�F‰F�4‹LÐDÑDˆÞ˜d�Ø�6‰6�$‹<˜Õ¯¨Ø�v‰v�f‹~Ð7Ó7¸B¿F¹FÀ7»OÈYÏ]É]Ð[hÓMiÓ<iÐtxÐksØ�v‰v�f‹~Ð2Õ2°r·v±v¸g³È	ÏÉÐV^ÓH_Õ7_ÐmqÒalñ ö ž v§}¡}Ð5KÔ'LÜÔ# AÓ&Ó'€H´#°d·h±hÐ?[Ó6\×6bÐ`bÓ2c¨Ø�Ó˜6Ÿ=™=Ð)EÔFØ�8‰8Ð-×.Ñ.°d·h±h¸×6OÑ6OÐW^×WbÑWbÐc~×WÑWØ�‰Ð*Ô+Ø‡x�xÐ-Ó.°Ó6¸¿¹ÐFeÔ8fÜ”#�f“+ÓÐr   c                óÖ   • [        U 5      n1 SknU[        U5      -  (       a  gU R                  S5      =(       d    0 nUR                  S5      (       a  UR                  S5      S:w  a  gg)	N>   r(   r   r#   r-   rF   r@   r6   r2   rB   rI   r/   ÚHOLDÚreviewÚconsequentialÚstateÚAPPROVEDÚREVIEW_REQUIREDÚPROMOTE_ELIGIBLE_AFTER_REVIEW)r^   r   r   )rN   rO   Úblockingra   s       r   Úexpected_decisionrh   7   sX   € Ü�1‹:€Fò K€HØ”#�f“+× fØ�5‰5�‹?× ˜b€FØ‡z�z�/×"Ñ" v§z¡z°'Ó':¸JÓ'FÐO`Ø*r   N)Ú__doc__Ú
__future__r   r   r^   rh   © r   r   Ú<module>rl      s   ðÙ AÝ "òò$óL+r   