Ë
    œùÀj‰4  ã                   óH  — d Z ddlZddlZddlZddlZddlZddlZddlZddl	Zddl
ZdddœZ ej                   ej                  d¬«      «      Zd„ Zed	fd
„Zdd„Zd„ Zdd„Zedk(  r; eej,                  d    eej,                  «      dkD  rej,                  d   nd«       yy)a�  BUY FRAMEWORK v3.2 (3 Oct 2026: silence-at-80% STRONG BUY removed, it failed on 679 new events). Usage: python3 buyscore.py <contract> [chain]   (key: env TWAPI_KEY or /opt/common/twitterapi_key or ~/.twapi_key)
All X calls go through xsafe (the shared scam/bot filter + credit guard): http://159.223.88.168/hx-c9ois/fw/xsafe.py
Sentiment rules from the 3 Oct stage study (606 coins, ATH then 20/40/60/70/80/90% under it, mood READ by meaning on
1,514 windows, plus a 12h time grid on 189 deep coins; both time halves, both chains, every size band):
  * At every depth, coins where NO real person posted in the last 12-24h did 20 to 40 points better over 7 days
    than coins where people were talking. Euphoric, frustrated and hopeful talk after a dump = worst.
  * Nobody posts "I give up": resigned posts are under 1%. Giving up = going silent.
  * 90%+ under ATH + silent 24h + trade volume dried (<=20% of peak day): median +8% / mean +21% in 7d, 2x before -50% 71%.
  * People RETURNING after silence while price pops 15%+ = fake bounce (median -32%).
Mood is never scored with keywords: real posts are printed and the reader judges the feeling.
é    NzXMozilla/5.0 (Macintosh; Intel Mac OS X 14_0) AppleWebKit/537.36 Chrome/128 Safari/537.36zapplication/json)z
User-AgentÚAccepté   )Úhoursc                  ó  — dd l } dt        j                  j                  d«      fD ]ˆ  }t        j                  j	                  |«      sŒ#|j                  d«      sTt        j                  «       t        j                  j                  |«      z
  dk  sŒldt        |«      j                  «       v sŒˆ nt t        j                  j                  d«      }t        j                  t        j                  j                  |«      d¬«       t        j                  j                  d	|«       | j                  j!                  d
|«      }| j                  j#                  |«      }|j$                  j'                  |«       |j)                  d«       |S )Nr   z/opt/common/xsafe/xsafe.pyz~/.xsafe/xsafe.pyz/opti`T  zdef ensure_latestT)Úexist_okz*http://159.223.88.168/hx-c9ois/fw/xsafe.pyÚxsafe)Úimportlib.utilÚosÚpathÚ
expanduserÚexistsÚ
startswithÚtimeÚgetmtimeÚopenÚreadÚmakedirsÚdirnameÚurllibÚrequestÚurlretrieveÚutilÚspec_from_file_locationÚmodule_from_specÚloaderÚexec_moduleÚensure_latest)Ú	importlibÚpÚspÚms       ú,/opt/launchwatch/pub/hx-c9ois/fw/buyscore.pyÚ
load_xsafer#      s=  € ÛØ*¬B¯G©G×,>Ñ,>Ð?RÓ,SÐTò TˆÜ�7‰7�>‰>˜!Õ !§,¡,¨vÔ"6¼4¿9¹9»;ÌÏÉ×IYÑIYÐZ[ÓI\Ñ;\Ð_gÓ;gÐlô  DHð  IJó  DK÷  DPñ  DPó  DRò  mRñ  V[ðTô �G‰G×ÑÐ2Ó3ˆ´R·[±[ÄÇÁÇÁÐQRÓASÐ^bÕ5cÜ�‰×"Ñ"Ð#OÐQRÔSØ	�‰×	/Ñ	/°¸Ó	;€BÀÇÁ×A`ÑA`ÐacÓAd¸QÐfh×foÑfo×f{Ñf{Ð|}Ôf~Ø‡O�O�AÔØ€Hó    é   c                 óð  — t        |«      D ]c  }	 t        j                  j                  t        j                  j	                  | |¬«      d¬«      5 }t        j                  |«      cd d d «       c S  y # 1 sw Y   nxY wŒt# t        j                  j                  $ r9}|j                  dv rY d }~ y t        j                  dd|z  z   «       Y d }~ŒÅd }~wt        $ r t        j                  d«       Y Œèw xY w)N)Úheadersé(   )Útimeout)i‘  i’  i“  i”  r%   é   é   )Úranger   r   ÚurlopenÚRequestÚjsonÚloadÚerrorÚ	HTTPErrorÚcoder   ÚsleepÚ	Exception)ÚuÚhÚtriesÚiÚrÚes         r"   Úgetr<      sÁ   € Ü�5‹\ò (ˆð	(Ü—‘×'Ñ'¬¯©×(>Ñ(>¸qÈ!Ð(>Ó(LÐVXÐ'ÓYÐsÐ]^Ôgk×gpÑgpÐqrÓgs×sÓsð(ð ÷ tÐsúÐsøÜ�|‰|×%Ñ%ò 	"Ø�v‰vÐ-Ñ-µdÜ�J‰J�q˜1˜q™5‘y×!Ñ!ûÜÒ'œ$Ÿ*™* Qž-Ð'ús<   �A B ÁA3Á%	B Á3A<	Á8B Â C5ÂCÂ1CÃ!C5Ã4C5c                 óÎ   ‡ — t        ‰ «      |dz   k  ry t        ˆ fd„t        | d«      D «       «      }t        ˆ fd„t        | d«      D «       «      }|dk(  rdS ddd||z  z   z  z
  S )Né   c              3   óN   •K  — | ]  }t        ‰|   ‰|d z
     z
  d«      –— Œ y­w©r>   r   N©Úmax©Ú.0r9   Úcls     €r"   ú	<genexpr>zrsi.<locals>.<genexpr>*   s)   øè ø€ Ò<¨!ŒC��1‘˜˜1˜q™5™	Ñ! 1×%Ñ<ùó   ƒ"%r   c              3   óN   •K  — | ]  }t        ‰|d z
     ‰|   z
  d«      –— Œ y­wr@   rA   rC   s     €r"   rF   zrsi.<locals>.<genexpr>*   s/   øè ø€ ÒEvÐdeÄcÈ"ÈQÐQRÉUÉ)ÐVXÐYZÑV[ÑJ[Ð]^×F_ÑEvùrG   g      Y@éd   )ÚlenÚsumr,   )rE   ÚnÚgÚls   `   r"   ÚrsirO   (   sk   ø€ Ü
ˆ2ƒw��Q‘‚˜tÜÓ<¬u°a°R¸«|Ô<Ó<€AÄ#ÓEvÔinÐpqÐoqÐstÓiuÔEvÓBv¸aØ˜’Fˆ5Ð7  c¨Q°°Q±©YÑ&7Ñ 7Ð7r$   c                 ó4   — | dk\  r
d| dz  d›d�S d| dz  d›d�S )Ng    €„.Aú$ú.2fÚMg     @�@ú.0fÚk© )Úxs    r"   rU   rU   -   s0   €  Q¨#¢X�1�Q�s‘U˜3�K˜qÐ!Ð
C°Q°q¸±u¸S°kÀÐ3CÐ
Cr$   c                 óH  ‡(‡P‡Q‡R‡S‡T‡U‡V‡W‡X‡Y‡Z‡[‡\‡]— t        d| › �«      }|xs i j                  d«      xs g D �cg c]>  }|d   d   j                  «       | j                  «       k(  sŒ+|j                  d«      sŒ=|‘Œ@ }}|r|D �cg c]  }|d   |k(  sŒ|‘Œ c}xs |}|st        d«       y t        |d„ ¬	«      }d
ddœj                  |d   |d   «      }|d   }t	        |d   «      }||z  }|d   }	t        j
                  «       ŠZd|› d|	› d�}
t        |
› d| › �«      xs i }t        |
› d| › �«      xs i }t        |j                  d«      xs i j                  di «      j                  dg «      «      ŠPt        |j                  d«      xs i j                  di «      j                  dg «      «      ŠQt        ‰Q«      dk  rN‰Z|j                  d‰Zdz  «      dz  z
  dz  }t        |d   d   › d|d›dt        |«      › d|d   › d |	› d!| › �«       y t        ‰PD �cg c]  }|d"   ‘Œ	 c}‰QD �cg c]  }|d"   ‘Œ	 c}z   «      }t        ˆQfd#„‰QD «       d$„ ¬	«      d%   }‰Pr?t        d&„ ‰PD «       «      t        d'„ ‰QD «       «      d(z  kD  rt        ˆPfd)„‰PD «       «      d%   }‰QD �cg c]  }|d*   ‘Œ	 c}ŠU‰QD �cg c]  }|d+   ‘Œ	 c}Š\d,||z  z
  }‰Z|z
  dz  }t        d-„ ‰Qd.d  D «       «      }||z  }t        ‰U«      }t        ‰U«      d/kD  r|‰Ud0   z  d,z
  nd%}t        ‰\d1d  «      }t        ˆ\fd2„t        d3t        ‰\«      d,z   «      D «       «      }|r||z  nd,}|d   d   }	 t        «       Š]‰]j                  | ‰Zd4z
  ‰Zd5¬6«      }‰]j                  | ‰Zd7z
  ‰Zd4z
  ¬8«      }d9d:d;œj                  |d   d<«      }t        |«      d=kD  rd>|› �nd?|› d@|› dA�}‰]j                  |‰Zd4z
  ‰Z¬8«      }‰]j"                  ŠT|dH   }!|dI   }"|dH   }#ˆZˆ]fdJ„}$|!}%|!D �&cg c]  }& |$|&«      sŒ|&‘Œ }!}&|#D �&cg c]  }& |$|&«      sŒ|&‘Œ }#}&|dK    }'t        d+dLdL«      D �(‡(cg c]  Š(t        ˆTˆZˆ(fdM„|!D «       «      ‘Œ })}(|'xr t        |!«      d%k(  }*|'xr t        |)dNd  «      d%k(  }+t        |#«      d%k(  xr |)dL   d%kD  },|%D �&ch c]  }&|&j                  dO«      ’Œ }-}&|dH   D �&cg c]  }&|&j                  dO«      |-vsŒ|&‘Œ }.}&t        |%|.z   ‰TdP¬Q«      }/|dRk\  xr t        |!«      d%k(  xr t        |"«      d5k\  }0t        dS«      xs i }1‰QD �cg c]  }|d"   ‘Œ	 c}ŠV‰QD �cg c]  }|d=   ‘Œ	 c}ŠX‰QD �cg c]  }|d,   ‘Œ	 c}Š[t        t        t        ‰Q«      «      ˆVfdT„¬	«      }2t        ‰Xd |2d,z    «      ŠS‰V|2   ŠRd }3‰R‰Sz  d=k\  �rí|2t        ‰Q«      d,z
  k  �rÛˆRˆSfdU„ŠY‰R|z
  ‰R‰Sz
  z  }4t%        ˆUˆYfdV„t        |2d,z   t        ‰Q«      «      D «       «      }5 ‰YdW«       ‰YdX«      }7}6t        t        t        d%|2dYz
  «      |2d,z   «      ˆUˆ[fdZ„¬	«      }8t'        ˆUˆXˆ[fd[„t        |8d,z
  dLdL«      D «       d «      }9|9d uxr |9d%   |7d\z  k  xr |9d,   |6d]z  k\  }:t        ˆUˆ[ˆ\fd^„t        t        ‰Q«      d_z
  t        ‰Q«      «      D «       «      };t        ˆUˆ[ˆ\fd`„t        t        ‰Q«      d_z
  t        ‰Q«      «      D «       «      }<t        ˆUˆ[ˆ\fda„t        t        ‰Q«      d3z
  t        ‰Q«      «      D «       «      }=t        ˆUˆ[ˆ\fdb„t        t        ‰Q«      d3z
  t        ‰Q«      «      D «       «      }>|;|;|<z   dcz   z  |=|=|>z   dcz   z  z
  }?t)        |4dd|4cxk  xr dek  nc xr |5 |5|:|? ‰Yde«      |z  |7|z  f‰R‰Sz  ¬f«      }3|dgk\  xr |dhk\  }@|dik\  xr |dhk\  }A|djk  }Bt        t        t        ‰U«      «      ˆUfdk„¬	«      ŠWt'        ˆUˆWfdl„t        ‰Wd,z   t        ‰U«      «      D «       d «      }C|C�t        ‰U«      d,z
  Cz
  nd }D|Dd uxr Dd=k  }E|dmkD  }F|,xr |dnkD  }Gt        |!«      d%kD  xs t        |.«      d=k\  }HFrdodp|dFz  d›dq�}J}In¤Grdr\  }I}Jnœ|0rds\  }I}Jn”Ar
|+rErdt\  }I}JnˆAr|+r	dudvD› dw�}J}In{|3r|3dx   r|�|d/k  rdy\  }I}Jng|3r|3dx   rHs|3dz   s|3d{   d|kD  rd}\  }I}JnK|3r|3dx   r|3dz   s|3d{   d|kD  rd~\  }I}Jn1|ddk\  r|+rd\  }I}Jn$Hr|dRk\  rd€\  }I}Jn|dik  rd�d‚|dFz  d›dƒ�}J}Ind„\  }I}Jt*        j,                  j/                  t0        «      j3                  d…«      }&t        |› d†I› d‡J› d‡�«       t        dˆ|&› d‰|d   › dŠt        |«      › d‹t        ||z  «      › dŒ|dFz  d›d�|d3z  dŽ›d��«       t        d�|d‘›d’|xs d%d›d“|dFz  d”›d•|dFz  d›d–�	«       t        d+dLdL«      D �(cg c];  }(t        ‰\t        d%t        ‰\«      |(d,z   d*z  z
  «      t        ‰\«      |(d*z  z
   «      ‘Œ= }K}(t        d—«       t        d˜d™j5                  dš„ |)D «       «      z   |'rd<nd›z   «       t        dœd™j5                  d�„ KD «       «      z   «       t        džt        |#«      › dŸt        |"«      › d |› d†t        |dH   «      › d¡t        |«      d=k  rd¢nd<› �
«       |/r²t        d£«       |/d d¤ D ]ž  }Lt*        j,                  j7                   ‰T|L«      t0        «      j3                  d¥«      }Mt9        j:                  d¦d@|Lj                  d§d<«      «      d d¨ }N|Lj                  d©«      xs i j                  dªd««      }Ot        d¬M› d­|O› d†N› �«       Œ  nt        d®«       |1r2t        d¯|1j                  d°«      › dŒ|1j                  d±d%«      d²›d³�«       |3r[t        d´|3dµ   dFz  d›d¶|3d·   dŽ›d¸t        |3d¹   d%   «      › dºt        |3d¹   d,   «      › d»|3d¼   rd½nd¾› d¿|3dz   rd½nd¾› dÀ|3d{   dÁ›�«       t        dÂ|d   › d |	› d!| › �«       y c c}w c c}w c c}w c c}w c c}w c c}w # t        $ rE} t        |› dBt!        | «      d dC › dDt        |«      › dE|dFz  d›dG|d   › d |	› d!| › �«       Y d } ~ y d } ~ ww xY wc c}&w c c}&w c c}(w c c}&w c c}&w c c}w c c}w c c}w c c}(w )ÃNz.https://api.dexscreener.com/latest/dex/tokens/ÚpairsÚ	baseTokenÚaddressÚ	marketCapÚchainIdz3NO DATA: DexScreener has no pool for this contract.c                 óL   — | j                  di «      j                  d«      xs dS )NÚvolumeÚh24r   )r<   )r   s    r"   ú<lambda>zmain.<locals>.<lambda>4   s!   €  !§%¡%¨°"Ó"5×"9Ñ"9¸%Ó"@Ò"EÀA€ r$   )ÚkeyÚsolanaÚ	robinhood)rc   rd   ÚpriceUsdÚpairAddressz.https://api.geckoterminal.com/api/v2/networks/z/pools/z/ohlcvz"/day?limit=180&currency=usd&token=z$/hour?limit=1000&currency=usd&token=ÚdataÚ
attributesÚ
ohlcv_listé   ÚpairCreatedAtiè  é  Úsymbolz: WAIT (TOO YOUNG)
Only rT   z€ hours old. This framework buys coins 70%+ under a top that is 3+ days old, with X gone quiet. Nothing to score yet.
Market cap z" | Chart: https://dexscreener.com/ú/z
CA: é   c              3   óT   •K  — | ]  }|d    t        d„ ‰D «       «      k(  sŒ|–— Œ! y­w)ro   c              3   ó&   K  — | ]	  }|d    –— Œ y­w©ro   NrV   ©rD   rW   s     r"   rF   z!main.<locals>.<genexpr>.<genexpr>B   s   è ø€ Ò,=°a¨Q¨q­TÑ,=ùó   ‚NrA   )rD   r:   ÚHs     €r"   rF   zmain.<locals>.<genexpr>B   s'   øè ø€ Ò>�q  1¡¬Ñ,=¸1Ô,=Ó)=Ó!=”Ñ>ùó   ƒ(¡(c                 ó   — | d   S )Nr   rV   )r:   s    r"   ra   zmain.<locals>.<lambda>B   s   € ÈaÐPQÉd€ r$   r   c              3   ó&   K  — | ]	  }|d    –— Œ y­wrr   rV   ©rD   r:   s     r"   rF   zmain.<locals>.<genexpr>C   s   è ø€ Ò!˜!��1•Ñ!ùrt   c              3   ó&   K  — | ]	  }|d    –— Œ y­wrr   rV   ry   s     r"   rF   zmain.<locals>.<genexpr>C   s   è ø€ Ò'8°¨¨!­Ñ'8ùrt   gR¸…ëQð?c              3   óT   •K  — | ]  }|d    t        d„ ‰D «       «      k(  sŒ|–— Œ! y­w)ro   c              3   ó&   K  — | ]	  }|d    –— Œ y­wrr   rV   rs   s     r"   rF   z!main.<locals>.<genexpr>.<genexpr>D   s   è ø€ Ò/@¸°°!µÑ/@ùrt   NrA   )rD   r:   ÚDs     €r"   rF   zmain.<locals>.<genexpr>D   s'   øè ø€ ÒA˜! A a¡D¬CÑ/@¸aÔ/@Ó,@Ó$@”AÑAùrv   r%   é   r>   c              3   ó&   K  — | ]	  }|d    –— Œ y­w)r+   NrV   ry   s     r"   rF   zmain.<locals>.<genexpr>G   s   è ø€ Ò$�qˆa��dÑ$ùrt   i¸ÿÿÿé   içÿÿÿièÿÿÿc              3   ó@   •K  — | ]  }t        ‰|d z
  | «      –— Œ y­w)é   N)rK   )rD   r9   Úvos     €r"   rF   zmain.<locals>.<genexpr>I   s    øè ø€ Ò$W¸1¤S¨¨A°©F°1¨×%6Ñ$Wùs   ƒr‚   i€Q é
   )ÚsinceÚuntilÚpagesi £ )r…   r†   z!(robinhood OR rh OR long OR pons)z(solana OR sol OR pump))rd   rc   Ú r+   rQ   z($ú ú)z:: NO VERDICT (X DATA MISSING)
X search refused or failed: é    z$. No buy call without X.
Market cap z | rI   z1% under the top | Chart: https://dexscreener.com/ÚrealÚspamc                 ó”   •— | j                  d«      xs d‰j                  k\  xs$ ‰‰j                  | «      z
  ‰j                  dz  k  S )NÚ	likeCountr   rl   )r<   ÚCOMPARABLE_LIKESÚtsÚSETTLE_H)ÚtÚnowÚxss    €€r"   ra   zmain.<locals>.<lambda>[   sD   ø€ �Q—U‘U˜;Ó'Ò,¨1°×1DÑ1DÑDÒkÈÈbÏeÉeÐTUËhÉÐY[×YdÑYdÐgkÑYkÑHk€ r$   Úhas_moreéÿÿÿÿc              3   óv   •K  — | ]0  }‰‰d z   dz  dz  z
   ‰|«      cxk  r‰‰dz  dz  z
  k  sŒ*n nd –— Œ2 y­w)r>   r%   rl   NrV   )rD   r“   ÚTSr”   Úqs     €€€r"   rF   zmain.<locals>.<genexpr>^   sB   øè ø€ Ò[�Q C¨1¨q©5°A©+¸Ñ*<Ñ$<ÁÀ1ÃÔ$ZÈÈaÐRSÉeÐVZÉlÑHZÖ$ZŒqÑ[ùs   ƒ+9¯
9éýÿÿÿÚidT)rb   Úreverseg      à?z#http://159.223.88.168/rotation.jsonc                 ó   •— ‰|    S ©NrV   )rš   Úhis    €r"   ra   zmain.<locals>.<lambda>i   s   ø€ ¨"¨Q©%€ r$   c                 ó   •— ‰| ‰‰z
  z  z
  S rŸ   rV   )r:   ÚHtopÚLtops    €€r"   ra   zmain.<locals>.<lambda>l   s   ø€ ˜˜q D¨4¡KÑ0Ñ0€ r$   c              3   ó:   •K  — | ]  }‰|    ‰d «      k  –— Œ y­w)ç      è?NrV   )rD   rš   rE   Úlvls     €€r"   rF   zmain.<locals>.<genexpr>n   s   øè ø€ ÒE¨!�B�q‘E™C ›IÕ%ÑEùs   ƒgZd;ßOå?g-²�ï§Æã?éÈ   c                 ó4   •— ‰|    ‰|    kD  r‰|    ‰|    z
  S dS )Nr—   rV   )rš   rE   Úops    €€r"   ra   zmain.<locals>.<lambda>p   s-   ø€ ÐSUÐVWÑSXÐ[]Ð^_Ñ[`ÒS`ÀÀAÁÈÈAÉÁ€ Ðfh€ r$   c              3   óJ   •K  — | ]  }‰|   ‰|   k  sŒ‰|   ‰|   f–— Œ y ­wrŸ   rV   )rD   rš   rE   Úlor©   s     €€€r"   rF   zmain.<locals>.<genexpr>q   s+   øè ø€ ÒR aÀBÀqÁEÈBÈqÉEÃM�B�q‘E˜2˜a™5”>ÑRùs   ƒ#”#g{®Gázð?g
×£p=
ï?c              3   ó@   •K  — | ]  }‰|   ‰|   k\  sŒ‰|   –— Œ y ­wrŸ   rV   ©rD   rš   rE   r©   rƒ   s     €€€r"   rF   zmain.<locals>.<genexpr>s   s#   øè ø€ ÒL˜1¸RÀ¹UÀbÈÁe»^��A•ÑLùó   ƒ”
r*   c              3   ó@   •K  — | ]  }‰|   ‰|   k  sŒ‰|   –— Œ y ­wrŸ   rV   r­   s     €€€r"   rF   zmain.<locals>.<genexpr>s   sR   øè ø€ ò  WRÐabð  DFð  GHñ  DIð  LNð  OPñ  LQó  DQÐWYÐZ[ÕW\ñ  WRùr®   c              3   ó@   •K  — | ]  }‰|   ‰|   k\  sŒ‰|   –— Œ y ­wrŸ   rV   r­   s     €€€r"   rF   zmain.<locals>.<genexpr>t   s#   øè ø€ ÒN˜A¸rÀ!¹uÈÈ1É»~�"�Q•%ÑNùr®   c              3   ó@   •K  — | ]  }‰|   ‰|   k  sŒ‰|   –— Œ y ­wrŸ   rV   r­   s     €€€r"   rF   zmain.<locals>.<genexpr>t   sR   øè ø€ ò  ZVÐdeð  HJð  KLñ  HMð  PRð  STñ  PUó  HUÐZ\Ð]^ÕZ_ñ  ZVùr®   g•Ö&è.>g333333ã?r¥   )ÚretrÚinzoneÚbrokeÚobÚshiftÚzoneÚpumpgÍÌÌÌÌÌì?éH   gš™™™™™é?çš™™™™™É?c                 ó   •— ‰|    S rŸ   rV   )rš   rE   s    €r"   ra   zmain.<locals>.<lambda>|   s   ø€ ¨2¨a©5€ r$   c              3   ó@   •K  — | ]  }‰|   ‰‰   d z  k  sŒ|–— Œ y­w)rº   NrV   )rD   rš   rE   ÚiAs     €€r"   rF   zmain.<locals>.<genexpr>|   s,   øè ø€ ÒB~ÈÐhjÐklÑhmÐqsÐtvÑqwÐz}Ñq}Óh}Ä1ÑB~ùs   ƒ—gR¸…ëQØ?g333333Ã?zNO BUY (CHASING)zup z/% in 24h. Buying after a pump loses on average.)zNO BUY (FAKE BOUNCE)zopeople came back after a silent day while price popped. In the study that bounce faded (median -32% in 7 days).)zNO BUY (SPAM-DRIVEN)zXreal people are silent but bots and scam links keep it loud. That did worse than random.)ú#WAIT (SHORT-TERM BOUNCE NOT PROVEN)zçjust fell 80%+ under the top and nobody real is posting. The first test said +23% per trade, but on 679 NEW events (425 coins) it failed: silent -6% vs talking -7% per trade. All 1,060 events: +1% vs 0%. Silence alone is not a buy.r¾   z780%+ under the top and nobody real posting (first drop zMh ago). Re-test on 1,060 events: silence gives no edge (+1% vs 0% per trade).r³   )zWAIT (KNIFE IN POCKET)zbin the golden pocket but RSI 1h under 25. Oversold at the pocket did worse, wait for it to settle.rµ   r¶   gš™™™™™¹?)zBUY (GOLDEN POCKET)zin the 0.618 to 0.75 zone with an order block or buyers stepping in, and nobody hyping it. Stop: 1h close under the 0.75 level.)zBUY small (GOLDEN POCKET)z~in the 0.618 to 0.75 zone with an order block or buy shift, but people are still talking. Stop: 1h close under the 0.75 level.)zWAIT (CLOSE)zŽ60 to 80% under the top and people went silent. Better than when people talk (-3% vs -15% per trade) but not profitable yet. Buy zone is 80%+.)zWAIT (PEOPLE STILL TALKING)zkdipped, but real people are still posting. Read the mood below: hopeful, excited or angry = not the bottom.ÚWAITzonly z0% under the top. Silence only paid at 80%+ down.)r¿   zKdeep, but the top is under 3 days old or X data is incomplete. Let it base.z%d %b %H:%M Bangkokz: ú
zTime z	 | chain z | market cap z | top z (z% under, top z.1fz
 days ago)zPrice vs 72h low: rR   zx | RSI 1h: z | 24h: z+.0fz)% | trading volume last 24h vs peak day: ú%z$Per 4h, oldest to newest (last 24h):z$  real people posting the contract: z > c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrŸ   )Ústrrs   s     r"   rF   zmain.<locals>.<genexpr>–   s   è ø€ Ò=RÈ¼cÀ!¿fÑ=Rùó   ‚z  (busy: more posts than read)z  trading volume: c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrŸ   )rU   rs   s     r"   rF   zmain.<locals>.<genexpr>—   s   è ø€ Ò+?°Q¬A¨a¯DÑ+?ùrÄ   z  day before: z# real people | spam removed today: z | ticker $z real people in 24hz$ (short ticker, may mix other coins)z–READ THE MOOD by meaning (not keywords): hopeful, excited or angry = not the bottom. Silence = bottom. Nobody posts that they gave up; they just stop.é   z%d %b %H:%Mz\s+Útextéª   ÚauthorÚuserNameú?z  z @z6Real people posting in 24h: none (contract or ticker).zMarket: BTC ÚbtcÚbtc_r7z+.1fz3% 7d). Check the 5-state macro light before sizing.zGolden pocket: pullback r²   z	% of the r¸   zx leg | zone r·   z to z | 1h closed under 0.75: r´   ÚyesÚnoz | order block in zone: z | buy shift z+.2fzChart: https://dexscreener.com/)r<   ÚlowerÚprintrB   Úfloatr   ÚsortedrJ   rU   ÚminrO   rK   r,   r#   Úsearchr5   rÃ   r‘   ÚanyÚnextÚdictÚdtÚdatetimer”   ÚBKKÚstrftimeÚjoinÚfromtimestampÚreÚsub)^ÚcaÚchainÚdsr   rY   ÚnetÚmcÚpriceÚsupÚpoolÚbaseÚdlyÚhrÚager:   ÚathÚath_tÚddÚ	ath_age_hÚl72Únear_lowÚr1Úret24Úv24Úv24pkÚvdecayÚsymÚcnowÚcprevÚchain_wordsÚtqÚtickr;   Úreal24Úspam24Ú	real_prevÚokcÚ
real24_allr“   Úcompleterš   ÚwinÚsilent24Úsilent12Ú	returningÚseenÚ	tick_realÚmoodÚspam_drivenÚrotÚiTÚgpr²   r´   ÚzlÚzhÚgirµ   Úob_inÚg6Úr6Úg24Úr24r¶   Údeep90Údeep80ÚdriedÚfirst80Úfresh_hÚfreshÚchasingÚfake_bounceÚtalkingÚwordÚwhyÚvol4Útwr‘   ÚbodyÚwhor}   ru   r¢   r£   r™   rE   r    r½   r«   r¦   r”   r©   rƒ   r•   s^                                           `                                       @@@@@@@@@@@@@@r"   Úmainr&  /   së  ÿþ€ Ü	Ð=¸b¸TÐBÓ	C€BØš˜rŸ™ wÓ/Ò5°2ö  A�1¸¸;¹È	Ñ9R×9XÑ9XÓ9ZÐ^`×^fÑ^fÓ^hÓ9hÐmn×mrÑmrÐs~ÕmŠQð  A€Eð  AÙ %ÖA˜Q¨1¨Y©<¸5Ó+@’qÒAÒJÀUˆeÙ”%ÐMÔNÐPVÜˆEÑFÔG€AØ¨KÑ
8×
<Ñ
<¸Q¸y¹\È1ÈYÉ<Ó
X€CØ	
ˆ;‰€B¤ q¨¡}Ó!5˜¸RÀ%¹Z°sÐPQÐR_ÑP`ÈÜ
�)‰)‹+€CØ;¸C¸5ÀÈÀvÈVÐT€DÜ
��Ð8¸¸Ð=Ó
>Ò
DÀ"€CÜ	�ˆvÐ9¸"¸Ð>Ó	?Ò	EÀ2€BÜ�—‘˜“Ò% 2×*Ñ*¨<¸Ó<×@Ñ@ÀÈrÓRÓS€AÜ�—‘�v“Ò$ "×)Ñ)¨,¸Ó;×?Ñ?ÀÈbÓQÓR€AÜ
ˆ1ƒv�‚{Ø�Q—U‘U˜?¨C°$©JÓ7¸$Ñ>Ñ>À$ÑFˆÜ��;‘ Ñ)Ð*Ð*CÀCÈÀ9ð  MNô  OPð  QSó  OTð  NUð  Uwð  xyð  zCñ  xDð  wEð  EFð  GKð  FLð  LRð  SUð  RVð  Wô  	XØÜ
˜QÖ˜ˆq�‹tÒ°Ö"3¨A 1 Q£4Ò"3Ñ3Ó
4€CÜÓ>˜AÔ>ÁNÔSÐTUÑV€EÙŒSÑ!˜qÔ!Ó!¤CÑ'8°aÔ'8Ó$8¸4Ñ$?Ò?ÜÓA˜qÔAÓAÀ!ÑDˆØÖ	�1ˆ!ˆA‹$Ò	€B°Ö!2¨1 ! A£$Ò!2˜BØ	
ˆU�S‰[‰€B s¨U¡{°dÑ&:˜)Ü
Ñ$˜A˜c˜d˜GÔ$Ó
$€C°¸± hÜ	ˆR‹€B´°R³¸2²˜% " S¡'™/¨AÒ-À1�%Ü
ˆb��ˆh‹-€C¤Ó$WÄÀbÌ#ÈbË'ÐTUÉ+Ó@VÔ$WÓ!W˜Ù!ˆS�5Š[ q€FØ
ˆK‰.˜Ñ
"€Cð	Ü‹\ˆØ�y‰y˜ 3¨¡?¸#ÀRˆyÓHˆØ—	‘	˜" C¨)¡O¸3À¹?�	ÓKˆØ$GÐSlÑm×qÑqÐrsÐt}Ñr~ð  ACó  DˆÜ˜c›( Qš,ˆq��‰Y¨b°°°Q°{°mÀ1Ð,EˆØ�y‰y˜ 3¨¡?¸#ˆyÓ>ˆð 
�‰€BØ�&‰\€F D¨¡L˜6¸eÀF¹m°)ô l€CØ€J¨fÖ"?¨¹¸A½¢1Ð"?˜Ð"?ÐYbÖMmÐTUÑfiÐjkÕflÊaÐMmÀÐMmØ˜
Ñ#Ð#€HÜejÐklÐnpÐrtÓeu×
vÐ`aŒ3Õ[˜&Ô[Õ[Ð
v€CÐ
vØÒ,œC ›K¨1Ñ,€HØÒ.œC  B C ›M¨QÑ.€HÜ�I“ !Ñ#Ò3¨¨B©°!©€IØ!+Ö,˜AˆA�E‰E�$�KÐ,€DÐ,Ø  ™LÖD�q¨A¯E©E°$«K¸tÒ,C’ÐD€IÐDÜ�*˜yÑ(¨b¸$Ô?€DØ˜‘)ÒF¤ F£¨qÑ 0ÒF´S¸³[ÀBÑ5F€KÜ
Ð3Ó
4Ò
:¸€CàÖ	�1ˆ!ˆA‹$Ò	€B°Ö!2¨1 ! A£$Ò!2˜BÈÖ9JÀ1¸!¸A»$Ò9J°BÜ	ŒU”3�q“6‹]£Ô	0€B¼¸RÀÀÀaÁ¸[Ó9I°$ÐRTÐUWÑRXÈ4Ø	€BØˆd�{�aÓ˜B¤ Q£¨!¡›OÜ0ˆØ�u‘ ¨¡Ñ-ˆÜÔE¬u°R¸!±V¼SÀ»VÓ/DÔEÓEˆÙ�U“™S ›ZˆBˆÜ””s˜1˜b 3™hÓ'¨¨a©Ó0Ô6hÔiˆÜÕR¬5°°a±¸¸RÓ+@ÔRÐTXÓYˆØ˜$�ÒL 2 a¡5¨B°©IÑ#5ÒL¸"¸Q¹%À2ÈÁ9Ñ:LˆÜÕL¤¤c¨!£f¨q¡j´#°a³&Ó 9ÔLÓLˆÔSVõ  WRÔfkÔloÐpqÓlrÐuvÑlvÔx{Ð|}Óx~Ófô  WRó  TRÈbÜÕN¤¤s¨1£v°¡{´C¸³FÓ!;ÔNÓNˆÔVYõ  ZVÔinÔorÐstÓouÐxzÑozÔ|ð  ABó  }Có  jDô  ZVó  WVÐPSØ�b˜2‘g ‘nÑ%¨¨s°S©y¸4Ñ/?Ñ(@Ñ@ˆÜ�t C¨4Ö$7°4Ô$7Ò$EÀ¸IÈUÐW\ÐdiÑqtÐuyÓqzð  ~Añ  rAð  CEð  HKñ  CKð  qLð  SWð  Z^ñ  S^ô  _ˆà�4‰ZÒ+˜I¨™O€FØ�4‰ZÒ+˜I¨™O€FØ�d‰N€Eä	ŒU”3�r“7‹^£Ô	1€B¼TÔB~ÌeÐTVÐYZÑTZÔ\_Ð`bÓ\cÓNdÔB~ð  AEó  >F°7Ø)0Ð)<Œs�2‹w˜‰{˜WÒ$À$€GØ˜4ÐÒ0 G¨q¡L€EØ�d‰l€GØÒ, ¨¡€KÜ�&‹k˜A‰oÒ4¤ Y£°1Ñ!4€GáÐ.°#°e¸C±iÀ°_ÐDsÐ0t�c‘Ù	ð  #l‘i�d™CÙ	ð  #U‘i�d™CÙ	‘H¡ð  5E©	¨©cÙ	‘HÐ*Oð  TKð  LSð  KTð  Tað  Rb C™dÙ	��8’ " .°R¸"²Wð  LJ¹y¸tÁSÙ	��8’¡W°"°T²(¸bÀ¹kÈCÒ>Oð  _wÑR[ÐRVÑX[Ù	��8’ " T¢(¨b°©k¸CÒ.?ð  OlÁ)À$ÉØ	ˆsŠ‘xð  .N¡ ¡sÙ	�R˜3’Yð  -y¡	 ¡cØ	ˆdŠ ¨%°°3±°s¨|Ð;kÐ(l˜#‘DØk‰)ˆ$�ä
�‰�‰œÓ×%Ñ%Ð&;Ó<€AÜ	ˆSˆE��D�6˜˜C˜5 Ð
#Ô$Ü	ˆE�!��I˜a 	™l˜^¨>¼!¸B»%¸ÀÌÈ#ÈcÉ'Ë
À|ÐSUÐVXÐY\ÑV\Ð]`ÐUaÐanÐoxÐy{Ño{Ð|ð  oAð  AKð  Lô  MÜ	Ð˜x¨˜n¨L¸"º'ÀÀ3¸ÀxÐPUÐVYÑPYÐZ^ÐO_ð  `Ið  JPð  QTñ  JTð  UXð  IYð  YZð  [ô  \ÜLQÐRSÐUWÐY[ÓL\Ö]ÀqŒC�”3�qœ#˜b›' Q¨¡U¨a¡KÑ/Ó0´°R³¸1¸q¹5±ÐAÕBÐ]€DÐ]Ü	Ð
0Ô1Ü	Ð
0°5·:±:Ñ=RÈcÔ=RÓ3RÑ
RÑ\dÑVXð  kKñ  Lô  MÜ	Ð
 §¡Ñ+?¸$Ô+?Ó!?Ñ
?Ô@Ü	ˆNœ3˜y›>Ð*Ð*MÌcÐRXËkÈ]ÐZeÐfiÐejÐjlÔmpÐquÐv|Ñq}Óm~Ðlð  @Sô  ~Að  BEó  ~Fð  JKò  ~Kñ  Tzð  QSð  STð  Uô  VÙÜð  gô  	hØ�s˜�)ò 	,ˆBÜ—‘×*Ñ*©2¨b«6´3Ó7×@Ñ@ÀÓOˆBÜ—6‘6˜& # r§v¡v¨f°bÓ'9Ó:¸4¸CÐ@ˆDÈÏÉÐPXÓIYÒI_Ð]_×HdÑHdÐeoÐqtÓHuÀ#Ü�B�r�d˜"˜S˜E  D 6Ð*Õ+ñ	,ô
 	ÐFÔGÙ
ŒE�L §¡¨£Ð 0°°3·7±7¸8ÀAÓ3FÀtÐ2LÐLð  Aô  BÙ	Œ5Ð+¨B¨v©J°s©N¸3Ð+?¸yÈÈFÉÐTWÐHXÐXeÔfgÐhjÐkqÑhrÐstÑhuÓfvÐewÐw{Ô|}ð  Að  BHñ  Ið  JKñ  Ló  }Mð  |Nð  Ngð  qsð  t{ò  q|ñ  hmð  BFð  gGð  G_ð  ikð  lpò  iqñ  `eð  w{ð  _|ð  |Ið  JLð  MTñ  JUð  VZð  I[ð  \ô  ]Ü	Ð+¨A¨i©L¨>¸¸4¸&ÀÀrÀdÐ
KÕLùòe AùÚAùò  ùÒ"3ùò 
ùÒ!2øô ò Ü��ÐPÔQTÐUVÓQWÐX\ÐY\ÐQ]ÐP^ð  _Dô  EFð  GIó  EJð  DKð  KNð  OQð  RUñ  OUð  VYð  NZð  ZKð  LMð  NWñ  LXð  KYð  YZð  [_ð  Z`ð  `fð  gið  fjð  kô  	lÜûðüò #@ùÒMmùâ
vùò -ùÚDùò
 
ùÒ!2ùÒ9JùòX ^s—   ¹,pÁ&pÁ8pÂpÂpÈpÈ)p
ÊpÊ0p!ÍBp& Ðq7Ðq7Ðq<Ð-q<Ñ	rÒ+rÓrÓ%rÔ4rÕrÕræ<A rð&	q4ð/;q/ñ/q4Ú__main__r>   ro   )é   rŸ   )Ú__doc__r/   Úsysr   Úmathrß   r
   Úurllib.requestr   Úurllib.parserÚ   rÙ   ÚUAÚtimezoneÚ	timedeltarÛ   r#   r<   rO   rU   r&  Ú__name__ÚargvrJ   rV   r$   r"   ú<module>r3     s§   ðñ
÷ S× R× R× RÓ RØnð  {Mñ  N€Ø€b‡k�k�,�"—,‘, QÔ'Ó(€ò	ð �qó ó8ò
 DótMðn ˆzÒÙˆ�‰�!‰¡S¨¯©£]°QÒ%6�c—h‘h˜q’k¸DÕAð r$   