JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB :a8E@sddlmZddlZddlZddlZddlZddlZddlmZm Z m Z ddl m Z ddl mZmZmZmZmZmZeeZdZedZd Zd d ZeZGd d d eZdS))BytesION) sysconfigdetect_encodingZipFile)finder) FileOperatorget_export_entry convert_pathget_executable get_platformin_venva s^#!.*pythonw?[0-9.]*([ ].*)?$z# -*- coding: utf-8 -*- import re import sys from %(module)s import %(import_name)s if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) sys.exit(%(func)s()) cCsXd|krT|drB|dd\}}d|krT|dsTd||f}n|dsTd|}|S)N z /usr/bin/env r"z%s "%s"z"%s") startswithsplit) executableenvZ _executabler@/opt/alt/python37/lib/python3.7/site-packages/distlib/scripts.pyenquote_executable3s  rc@seZdZdZeZdZd*ddZddZe j d rBd d Z d d Z ddZd+ddZddZeZddZddZdZddZd,ddZddZed d!Zejd"d!Zejd#ksejd krejd#krd$d%Zd-d&d'Z d.d(d)Z!dS)/ ScriptMakerz_ A class to copy or create scripts from source scripts or callable specifications. NTFcCs||_||_||_d|_d|_tjdkp:tjdko:tjdk|_t d|_ |pRt ||_ tjdkprtjdkortjdk|_ tj|_dS)NFposixjava)zX.Ynt) source_dir target_dir add_launchersforceclobberosname_nameset_modesetvariantsr_fileop_is_ntsys version_info)selfrrrdry_runZfileoprrr__init__Ns   zScriptMaker.__init__cCs@|ddr<|jr %srspythonwrri) r!r1r3rr rrerr'newerr<rur8r;r,readliner= FIRST_LINE_REmatchr2groupclose copy_filer$rvrwinforseekr[rr9)r+rryZadjustr}fZ first_linerrKrYlinesrZrzr~rrr _copy_script?sP         zScriptMaker._copy_scriptcCs|jjS)N)r'r,)r+rrrr,rszScriptMaker.dry_runcCs ||j_dS)N)r'r,)r+valuerrrr,vsrcCsttddkrd}nd}tdkr&dnd}d|||f}td d d }t||}|snd ||f}t||jS) NPZ64Z32z win-arm64z-armrz %s%s%s.exer\rrz(Unable to find resource %s in package %s) structcalcsizer __name__rsplitrfindrXbytes)r+kindbitsZplatform_suffixr"Zdistlib_packageresourcemsgrrrrm~szScriptMaker._get_launchercCs6g}t|}|dkr"|||n|j|||d|S)a Make a script. :param specification: The specification, which is either a valid export entry specification (to make a script from a callable) or a filename (to make a script by copying from a source location). :param options: A dictionary of options controlling script generation. :return: A list of all absolute pathnames written to. N)r4)r rr)r+ specificationr4ryrcrrrmakes zScriptMaker.makecCs(g}x|D]}||||q W|S)z Take a list of specifications and make scripts from them, :param specifications: A list of specifications. :return: A list of all absolute pathnames written to, )extendr)r+Zspecificationsr4ryrrrr make_multiples zScriptMaker.make_multiple)TFN)rNN)N)N)N)"r __module__ __qualname____doc__SCRIPT_TEMPLATEr_rr-r6r)rJrr?rCrMr[rd_DEFAULT_MANIFESTrfrhrrrrrpropertyr,setterr!r"r#rmrrrrrrrEs2     E4 3  r) iorloggingr!rerr)compatrrrZ resourcesrutilrr r r r r getLoggerrr<striprcompilerrrZ_enquote_executableobjectrrrrrs