
    UHjtO                       d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	  ee
      j                         j                  d   Zedz  ZdZd	Zd
Zg dZg dZdg dddg dddg dddg ddgZd%dZd&dZd'dZd(dZd)dZd*dZd+dZd,dZd-dZ	 	 	 	 	 	 	 	 	 	 d.dZd/d Zd/d!Z efd0d"Z!d1d#Z"e#d$k(  r e"        yy)2z6Summarize the current frontier reader branch outcomes.    )annotationsN)Path)Any   outmap1_01amap2_02d
0x00542b0c)znormal-runtime-reader-executionzresource-payload-strict-hotspotz&independent-strict-transition-evidence)zVnormal runtime selector/root execution reaches reader 0x00542b0c with real route statezEselected resource payload decodes to a strict map1_01a source hotspotzEindependent strict event/coordinate evidence for map1_01a -> map2_02dz)out/save_selector_scene_list_context.json)currentFrontierbranchStepsevidenceRefsevidenceRefCount)pathfieldsz/out/save_selector_branch_selector_equation.json)predecessorFillHypothesisactiveFlagEffectreaderHandlerVaHexz'out/map1_01a_scene_payload_context.json)payloadsclassificationpromotionEvidencez2out/save_selector_opcode2c_route_pair_context.json) correctedTraceReachesReaderCountroutePairDescriptorCount
proofFoundc                p    | j                         s|S t        j                  | j                  d            S )Nutf-8encoding)existsjsonloads	read_text)r   fallbacks     S/home/exedev/hwanse/tools/summarize_save_selector_frontier_reader_branch_context.py	load_jsonr$   /   s*    ;;=::dnngn677    c                <    t        | t              sy t        | d      S )N   )
isinstancestrint)values    r#   u32_from_hexr,   5   s    eS!ub>r%   c                *    t        |       }||dz  S d S )N   r,   )	value_hexr+   s     r#   low_byter1   ;   s     #E ,54<6$6r%   c                4    t        |       }|y ||dz  z	  dz  S )N   r.   r/   )r0   offsetr+   s      r#   stream_byter5   @   s(    #E}fqj!T))r%   c                    | xs i } | j                  d      xs( | j                  d      xs | j                  d      xs dS )NcnstargetVaHexkind-get)r9   s    r#   
kind_labelr=   G   s:    :2D88E?Pdhh}5P&9IPSPr%   c                    | j                  d      xs g D ci c]%  }|j                  d      r|j                  d      |' c}S c c}w )Nr   payloadVaHexr;   )scene_payload_contextrows     r#   payload_by_varB   L   sN     ),,Z8>B77>" 	$  s   *Ac                    | j                  d      xs i }|j                  d      xs g D ci c]%  }|j                  d      r|j                  d      |' c}S c c}w )Nr   windowvaHexr;   )scene_list_contextcurrentrA   s      r#   window_by_varH   T   sb     $$%67=2G ;;x(.B777 	#  s   *Ac                0    t        |       }|y d||z   dS )N0x08xr/   )r0   deltar+   s      r#   add_hexrM   ]   s(    #E}c"##r%   c                   | j                  d      xs i }|j                  d      xs g }t        |       }|j                  d      xs i gd   j                  d      xs i j                  d      }t        |      }g }|D ]  }|j                  d      }t        |      }	|	||	|k\  r*t        |j                  d            d	k7  rH|j                  t	        |d
      xs d      }
|j                  t	        |d      xs d      }|j                  d      }t        |d      xs ddk7  rdnd}t        |d      }|j                  ||||d|dnd |
r|
j                  d      nd |
r|
j                  d      ni |
r&|
j                  d      xs i j                  d      du nd|
r&|
j                  d      xs i j                  d      du nd|r|j                  d      nd |r|j                  d      nd |r|j                  d      ni |xs i j                  d      xs i j                  d      |xs i j                  d      xs i j                  d      du d        |S )Nr   rD   r   r   nearestSourceRecordAfterBranchrecordVaHexrE   valueHex       r3   r   secondaryBranchStateprimaryBranchState   rJ   02x	valueKind
isFieldMapTF
isResourcehandlerCandidatehandlerSectionisCodeHandler)branchVaHexrQ   
stateTableselectionBufferOffsetHexfalseTargetVaHexfalseTargetKindfalseTargetIsFieldMapfalseTargetIsResourcetrueFallthroughVaHextrueFallthroughValueHextrueFallthroughKindtrueFallthroughHandlerSectiontrueFallthroughLooksExecutable)r<   rH   r,   r1   rM   r5   append)rF   rG   rD   by_vafirst_sourcefirst_source_varowsrA   va_hexvatargetfallthroughr0   tabler4   s                  r#   sibling_gate_rowsru   d   sc    $$%67=2G[["(bF+,E[[/7B4;??@`agegllmz{L"<0OD !&!:/5":OCGGJ'(D0761-34ii 2 8b9GGJ'	+6y!+D+Ia*O&UiY*!!=C=O"VCL(9UY:@

: 6d:@vzz+6bbhfjj&=&C%H%H%VZ^%^nsbhfjj&=&C%H%H%VZ^%^ns@KKOOG$<QUFQ{z'BW[CN;??;#?TV/:/@b.E.EFX.Y._]_-d-deu-v0;0Ar/F/FGY/Z/`^`.e.efu.vz~.~
 	6 Kr%   c                &   | j                  d      xs i }t        d |j                  d      xs g D        |j                  d      xs i gd         }t        |      }|j                  |j                  d            xs i }|j                  d      xs i }|j                  d      xs i }	|j                  d      d	u }
d
d|j                  d      |j                  d      |j                  d      xs i |j                  d      xs i j                  d      |j                  d      d	u |j                  d      |j                  d      |j                  d      xs i j                  d      |j                  d      d}dd|j                  d      |j                  d      xs i |j                  d      d	u |j                  d      xs i j                  d      d	u d}t        |       }d}i dt        d t
        d!t        d"|j                  d#      d$|j                  d$      d%|j                  d%      d&|j                  d&      d'|j                  d'      d(|j                  d)      d*|j                  d*      d+|j                  d,      d-|j                  d.      d/|j                  d      d0|	j                  d1      d2|
rdnd3d4|d5|i d6t        |      d7t        d8 |D              d9t        d: |D              d;t        d< |D              d=|d>|j                  d?      d@|j                  dA      d|j                  d      dBdCdDdCdEdCdFt        dGt        dHt        dIt        t              dJdCdKdCdL|g dMdNS )ONr   c              3  R   K   | ]  }|j                  d       t        k(  s| ! yw)streamVaHexN)r<   
READER_HEX.0rA   s     r#   	<genexpr>z build_summary.<locals>.<genexpr>   s!     aCGGM<RV`<`as   ''r   r   fallthroughValueHexr   r   allStartsPassReaderTr   rs   fallthroughVaHexfallthroughValueKindfallthroughHandlerCandidater]   fallthroughLooksExecutabler   r   	pointScaninBoundsPointCountrangeTextRefCount)conditionValueoutcomenextStreamVaHexrQ   rY   r]   looksExecutablepayloadClassificationpayloadPromotionEvidencepayloadInBoundsPointCountpayloadRangeTextRefCountznot-1jumpbranchTargetHexbranchTargetValueKindbranchTargetIsResourcerZ   )r   r   r8   rY   targetIsResourcetargetIsFieldMapaa  The corrected route-pair descriptor trace reaches the 0x00542b0c reader, but the reader does not directly select map2_02d. If the inherited predecessor-fill hypothesis is true, opcode 0x11 falls through to 0x00542b14, whose value points at a sprite/rect-like payload with no in-bounds source hotspot evidence. If the condition is false, it jumps to the character resource cara_01.cns. The nearby sibling 0x11 gates likewise select character resources or payload descriptors before the source/target scene records. This keeps the frontier as resource/scene-list evidence, not a confirmed normal map transition.sourcerr   readerVaHexreaderValueHexrQ   r   	conditionra   r`   )routePairCorrectedTraceReachesReaderCountr   r   predecessorHypothesisSelectorpredecessorSelectorpredecessorHypothesisFillHexfillValueHexpredecessorAllStartsPassReader'priorSelectionBufferStillPrimaryBlockerApriorSelectionBufferStillPrimaryBlockerUnderPredecessorHypothesispredecessorHypothesisOutcomeunprovenpassOutcomefailOutcome"siblingGateCountBeforeSourceRecordsiblingResourceGateCountc              3  D   K   | ]  }|j                  d       sd  yw)re   r   Nr;   rz   s     r#   r|   z build_summary.<locals>.<genexpr>   s     'bcI`Aa'b     siblingFieldMapTargetCountc              3  D   K   | ]  }|j                  d       sd  yw)rd   r   Nr;   rz   s     r#   r|   z build_summary.<locals>.<genexpr>   s     )d377KbCc!)dr   !siblingExecutableFallthroughCountc              3  D   K   | ]  }|j                  d       sd  yw)rj   r   Nr;   rz   s     r#   r|   z build_summary.<locals>.<genexpr>   s     0ts#''RrJs0tr   siblingGatesnearestSourceRecordAfterReaderrO   nearestTargetRecordAfterReadernearestTargetRecordAfterBranchr   FfrontierReaderRuntimeProofFound%frontierReaderStrictHotspotProofFoundfailedFrontierReaderGateIdsmissingEvidencer   r   strictHotspotFoundruntimeSelectionProvenblocked)zVprove normal runtime selector/root execution reaches this reader with real route statezYdecode the selected resource payload into a strict map1_01a source hotspot, if one existszMor find independent strict event/coordinate evidence for map1_01a -> map2_02d)promotionStatus
conclusionremainingProofs)r<   nextrB   ru   SOURCETARGETry   lensumFAILED_FRONTIER_READER_GATE_IDS FRONTIER_READER_MISSING_EVIDENCEFRONTIER_READER_EVIDENCE_REFS)rF   branch_selector_equationr@   opcode2c_contextrG   branchr   fallthrough_payloadpredecessoractivepredecessor_selects_fallthroughpass_outcomefail_outcomesiblingsr   s                  r#   build_summaryr      sq    !$$%67=2GaM28ba	]	#	+tQ/F 23H",,vzz2G'HIOR*../JKQrK%))*<=CF&1oo6K&LPT&T# !::&89JJ45ZZ 67=2!::&CDJOOP`a!::&BCtK!4!8!89I!J$7$;$;<O$P&9&=&=k&J&Pb%U%UVj%k$7$;$;<O$PL "zz"34ZZ 78>B"JJ'?@DH#ZZ(?@FBKKLY]aaL !!34H	+ *&*&* 	z* 	&**Z0	*
 	6::;OP* 	VZZ,* 	#FJJ/I$J* 	fjj.* 	45E5I5IJl5m* 	#$4$8$89S$T* 	(9N)O* 	'(G* 	)+//:O*P* 	26::  ?B  4C* 	'9X^h*  	|!*" 	|#*$ 	-c(m%*& 	#C'bX'b$b'*( 	%c)dx)d&d)** 	,S0th0t-t+*, 	-*. 	)&**5U*V/*0 	)&**5U*V1*2 	&**%563*4 	e5*6 	*57*8 	09*: 	&'F;*< 	;=*> 	5?*@ 	C =>A*B 	eC*D 	!%E*F % 
K* *r%   c                	   | j                  d      xs i }| j                  d      xs i }g ddd| j                  d       d| j                  d       d	d
| j                  d       d| j                  d       d| j                  d       d	d| j                  d       d	d| j                  d       d| j                  d       d| j                  d       d| j                  d       d| j                  d       d| j                  d       d	d| j                  d       d | j                  d!       d"| j                  d#       d$d%j                  | j                  d&      xs g       xs d' d(t        | j                  d)      xs g        d*| j                  d+       d,| j                  d-       d.| j                  d/       d0| j                  d1       d	d| j                  d2      xs ddd3dd4d5d6|j                  d7       d8|j                  d9       d:|j                  d;       d<t        |j                  d=             d>|j                  d?       d>|j                  d@      xs d' d>|j                  dA       dBdC|j                  d7       d8|j                  dD       d<t        |j                  d=             dE|j                  dF       dG|j                  dH       dIddJddK| j                  dL       dM| j                  dN       dO| j                  dP       dQ| j                  dR       ddSd5}| j                  dT      xs g D ]  }|j	                  dU|j                  dV       dW|j                  dX       dW|j                  dY       d<t        |j                  dZ             d8|j                  d[       d:|j                  d\       d<t        |j                  d]             d>|j                  d^       dB        |j                  g d_       |j                  d` | j                  da      xs g D               |j                  g db       |j                  dc | j                  d)      xs g D               |j	                  d       ddj                  |      S )eNr   r   z.# Save Selector Frontier Reader Branch ContextrT   z
- route: `r   z -> rr   `z- reader: `r   z` `r   z` via `r   z- condition: `r   z/- corrected route-pair traces reaching reader: r   /r   z- predecessor hypothesis: `r   z` fill `r   z` all starts pass=r   z#- predecessor hypothesis outcome: `r   z- proof found: r   z'- frontier reader runtime proof found: r   z.- frontier reader strict hotspot proof found: r   z - failed frontier reader gates: z, r   r:   z- missing evidence count: r   z- evidence refs: r   z- strict hotspot found: r   z- runtime selection proven: r   z- promotion status: `r   r   z## Reader Outcomesze| condition value | outcome | target/value | kind | executable | payload class | promotion evidence |z+| --- | --- | --- | --- | --- | --- | --- |z| 1 | r   z | `r   z` -> `rQ   z` | rY   z | r   r   r   z |z
| not 1 | r8   z | - | resource=r   
 fieldMap=r   z
 | False |z%## Sibling Gates Before Source Recordz- gate count: r   z- resource target count: r   z- field-map target count: r   z - executable fallthrough count: r   z`| branch | offset | false target | false kind | true fallthrough | true kind | true executable |r   z| `r_   z` | `ra   rb   rc   rf   rg   rh   rj   )rT   z## Remaining ProofsrT   c              3  &   K   | ]	  }d |   ywz- N r{   items     r#   r|   zmarkdown.<locals>.<genexpr>       N2dVN   r   )rT   z## Missing EvidencerT   c              3  &   K   | ]	  }d |   ywr   r   r   s     r#   r|   zmarkdown.<locals>.<genexpr>  r   r   
)r<   joinr   r=   rk   extend)summaryr   r   linesrA   s        r#   markdownr      s
   ;;}-3L;;}-3L%8%
% W[[*+4H0E/FaH% gkk-01W[[AQ5R4SSZ[b[f[fg{[|Z}}~	%
 [12!4% :'++Fq:r9sstu|  vA  vA  B\  v]  u^  	_% &gkk2Q&R%SS[\c\g\g  iG  ]H  \I  I[  \c  \g  \g  hH  \I  [J  	K% .gkk:X.Y-ZZ[\% '++l345% 2'++>_2`1ab% 9El9m8no% +499W[[A^5_5ece+f+mjm*no% %S5F)G)M2%N$OP% GKK(:;<=% #7;;/C#D"EF%  'w{{3K'L&MN!%"  ,= >?qA#%$ 	%%& 	L!'R'%( 	)%* 	+%, 	-%. 	p/%0 	61%2 !!),-T,2B2BCT2U1VV\]i]m]mnx]y\zz~  @J  KW  K[  K[  \g  Kh  @i  j  jm  nz  n~  n~  P  nQ  mR  RU  Vb  Vf  Vf  g~  V  VF  CF  UG  GJ  KW  K[  K[  \v  Kw  Jx  xz  	{3%4 \%%i01l6F6F}6U5VVZ[efrfvfv  xC  gD  \E  [F  FV  Wc  Wg  Wg  hz  W{  V|  |F  GS  GW  GW  Xj  Gk  Fl  lv  	w5%6 	7%8 	09%: 	;%< %IJKL=%> $GKK0J$K#LM?%@ %W[[1M%N$OPA%B +7;;7Z+[*\]C%D 	E%F 	kG%H 	6I%EL {{>*0b 
#''-()sww7Q/R.S T*+,DCGGDU<V1W0X Y./0sww?X7Y6ZZ^#''"789:#cggFf>g=hhjl	

 
LL01	LLN5F)G)M2NN	LL01	LLN5F)G)M2NN	LL99Ur%   c           &     D   | j                  d      xs i }| j                  d      xs i }g }| j                  d      xs g D ]i  }|j                  dt        j                  t	        |j                  d                   dt        j                  t	        |j                  d                   dt        j                  t	        |j                  d                   d	t        j                  t        |j                  d
                   dt        j                  t	        |j                  d                   dt        j                  t	        |j                  d                   d	t        j                  t        |j                  d                   d|j                  d       d       l dj                  d | j                  d      xs g D              }dj                  d | j                  d      xs g D              }dj                  d | j                  d      xs g D              }dj                  dddddd d!d"d#d$d%t        j                  t	        | j                  d&                   d't        j                  t	        | j                  d(                   d)t        j                  t	        | j                  d*                   d+| j                  d,       d-| j                  d.       d/t        j                  t	        | j                  d0                   d1t        j                  t	        | j                  d2                   d3d4| j                  d5       d6| j                  d7       d8| j                  d9       d:t        | j                  d      xs g        d;| j                  d<       d3d=t        j                  | j                  d>      xs d       d?d@| dAdB| dAdCdDdEdFt        j                  t	        |j                  dG                   dt        j                  t	        |j                  dH                   dt        j                  t	        |j                  dI                   d	t        j                  t        |j                  dJ                   d|j                  dK       dt        j                  t	        |j                  dL      xs dM             d|j                  dN       ddOt        j                  t	        |j                  dG                   dt        j                  t	        |j                  dP                   d	t        j                  t        |j                  dJ                   dQ|j                  dR       dS|j                  dT       dUdVdWdX| j                  dY       dZ| j                  d[       d\| j                  d]       d^| j                  d_       d3	d`dEdj                  |       dadbdc| dAdddedg      S )fNr   r   r   z<tr><td><code>r_   z</code></td><td><code>ra   rb   z</code></td><td>rc   z</td><td><code>rf   z</code> -> <code>rg   rh   z	</td><td>rj   z
</td></tr>rT   c              3  N   K   | ]  }d t        j                  |       d  ywz<li>z</li>Nhtmlescaper   s     r#   r|   zhtml_page.<locals>.<genexpr>-  s#     ftDKK-.e4f   #%r   c              3  N   K   | ]  }d t        j                  |       d  ywr   r   r   s     r#   r|   zhtml_page.<locals>.<genexpr>.  s(      ,0$t{{4 !'r   r   c              3  N   K   | ]  }d t        j                  |       d  ywr   r   r   s     r#   r|   zhtml_page.<locals>.<genexpr>1  s#     g$T[[./u5gr   r   r   z<!doctype html>z<html lang="en">z<head>z  <meta charset="utf-8">zF  <meta name="viewport" content="width=device-width, initial-scale=1">z=  <title>Save Selector Frontier Reader Branch Context</title>a$    <style>body{font-family:system-ui,sans-serif;background:#111;color:#eee;margin:24px}table{border-collapse:collapse;width:100%;max-width:1280px;margin-bottom:24px}td,th{border:1px solid #333;padding:6px 8px;text-align:left;vertical-align:top}th{background:#1f1f1f}code{color:#9bd4ff}</style>z</head>z<body>z7  <h1>Save Selector Frontier Reader Branch Context</h1>z  <p>route <code>r   z -&gt; rr   z</code>; reader <code>r   z;</code>; corrected route-pair traces reaching reader <code>r   r   r   z.</code>; predecessor hypothesis outcome <code>r   z </code>; promotion status <code>r   z</code>.</p>z  <p>proofFound <code>r   z/</code>; frontierReaderRuntimeProofFound <code>r   z5</code>; frontierReaderStrictHotspotProofFound <code>r   z$</code>; missingEvidenceCount <code>z</code>; evidence refs <code>r   z  <p>r   z</p>z+  <h2>Failed Frontier Reader Gates</h2><ul>z</ul>z  <h2>Missing Evidence</h2><ul>z  <h2>Reader Outcomes</h2>z  <table><thead><tr><th>condition</th><th>outcome</th><th>target/value</th><th>kind</th><th>executable</th><th>payload class</th><th>promotion evidence</th></tr></thead>z	  <tbody>z    <tr><td>1</td><td>r   r   rQ   rY   r   r   r:   r   z    <tr><td>not 1</td><td>r8   z</td><td>-</td><td>resource=r   r   r   z</td><td>False</td></tr>z  </tbody></table>z-  <h2>Sibling Gates Before Source Record</h2>z  <p>gate count: <code>r   z&</code>; resource target count: <code>r   z'</code>; field-map target count: <code>r   z-</code>; executable fallthrough count: <code>r   z  <table><thead><tr><th>branch</th><th>offset</th><th>false target</th><th>false kind</th><th>true fallthrough</th><th>true kind</th><th>true executable</th></tr></thead>z</tbody></table>z  <h2>Remaining Proofs</h2>z  <ul>z</body>z</html>)r<   rk   r   r   r)   r=   r   r   )r   r   r   sibling_rowsrA   proofsfailed_gatesmissings           r#   	html_pager     s/	   ;;}-3L;;}-3LL{{>*0b 
S)?%@AB CS1K)L%MNO PS1C)D%EFG H;;z#''2C*DEFG HS1G)H%IJKK\]a]h]hilmpmtmt  vO  nP  jQ  ^R  ]S S;;z#''2G*HIJK L77;<= >
	

 WWfM^A_AeceffF77 4;KK@]4^4dbd L ggg'++N_B`BfdfggG99"PG 	oA
DKKGKK,A(BCDGDKKX[\c\g\ghp\qXrLsKt  uK  LP  LW  LW  X[  \c  \g  \g  hu  \v  Xw  Lx  Ky  yt  u|  u@  u@  Al  um  tn  no  pw  p{  p{  |V  pW  oX  XF  GK  GR  GR  SV  W^  Wb  Wb  cA  WB  SC  GD  FE  Ee  fj  fq  fq  ru  v}  vA  vA  BS  vT  rU  fV  eW  Wc  	d
 \!: ;;jkrkvkv  xY  lZ  k[  [P  QX  Q\  Q\  ]D  QE  PF  Fj  kn  ov  oz  oz  {L  oM  oS  QS  kT  jU  Ur  sz  s~  s~  Q  sR  rS  S_  	`
GKK5;<=TB
5l^5I
)'%8$ 	t
 S1A1A)1L-M!N O_c_j_jkno{oo  AR  pS  lT  `U  _V  Vg  hl  hs  hs  tw  xD  xH  xH  IS  xT  tU  hV  gW  Wg  hl  hs  hs  t~  K  O  O  P[  \  t]  h^  g_  _h  iu  iy  iy  zK  iL  hM  MV  W[  Wb  Wb  cf  gs  gw  gw  xO  gP  gW  TW  cX  WY  VZ  Zc  dp  dt  dt  uO  dP  cQ  Q[  	\
$T[[\5E5Ei5P1Q%R$SSbcgcncnors  tD  tD  ER  tS  pT  dU  cV  Vf  gk  gr  gr  s}  ~J  ~N  ~N  OZ  ~[  s\  g]  f^  ^z  {G  {K  {K  L^  {_  z`  `j  kw  k{  k{  |N  kO  jP  Ph  	i7
!'++.R"S!TTz  |C  |G  |G  Hb  |c  {d  dK  LS  LW  LW  Xt  Lu  Kv  vc  dk  do  do  pS  dT  cU  Ua  	b 	u
BGGL)**:;%

=  r%   c                    |j                  dd       |dz  j                  t        j                  | dd      dz   d	       y )
NT)parentsexist_ok1save_selector_frontier_reader_branch_context.jsonFrW   )ensure_asciiindentr   r   r   )mkdir
write_textr   dumps)r   out_dirs     r#   write_outputsr   T  sD    MM$M.BBNN

7q9D@ O r%   c            	        t        j                  t              } | j                  dt        t
               | j                         }t        t        |j                  dz  i       t        |j                  dz  i       t        |j                  dz  i       t        |j                  dz  i             }t        ||j                         t        d|j                  d	z          y )
N)descriptionz	--out-dir)typedefaultz%save_selector_scene_list_context.jsonz+save_selector_branch_selector_equation.jsonz#map1_01a_scene_payload_context.jsonz.save_selector_opcode2c_route_pair_context.jsonz(wrote frontier reader branch context -> r   )argparseArgumentParser__doc__add_argumentr   OUT
parse_argsr   r$   r   r   print)parserargsr   s      r#   mainr  \  s    $$9F
$<D$,,!HH"M$,,!NNPRS$,,!FFK$,,!QQSUV	G '4<<(	4T\\Dw5w4x
yzr%   __main__)r   r   r"   r   returnr   )r+   
str | Noner  
int | None)r0   r  r  r	  )r0   r  r4   r*   r  r	  )r9   zdict | Noner  r)   )r@   dictr  dict[str, dict])rF   r
  r  r  )r0   r  rL   r*   r  r  )rF   r
  r  z
list[dict])
rF   r
  r   r
  r@   r
  r   r
  r  r
  )r   r
  r  r)   )r   r
  r   r   r  None)r  r  )$r   
__future__r   r   r   r   pathlibr   typingr   __file__resolver   ROOTr   r   r   ry   r   r   r   r$   r,   r1   r5   r=   rB   rH   rM   ru   r   r   r   r   r  __name__r   r%   r#   <module>r     s8   < "      H~''*
Ul		
# 
$   <X
 BY
 :E
 E`! (87
*Q
$"JYY"Y  Y 	Y
 
Yx5p4n 25 { zF r%   