fix for issue #22, add icons and update build_installer, gen-suite

This commit is contained in:
ckamte
2026-01-08 15:39:31 +06:30
parent 5cf0b92a66
commit 01a537c7bd
233 changed files with 111 additions and 264 deletions

View File

@@ -1,6 +1,9 @@
"""
This is the downloader for required packages for Adobe Setup.
v 1.2.0
Change download type
v 1.1.0
Add support for Adobe CC 6.2.0.x
@@ -9,14 +12,8 @@ Download packages only!
import os
import sys
import platform
import subprocess
import string
import json
import random
import argparse
import zipfile
import time
from xml.etree import ElementTree as ET
try:
import requests
@@ -36,21 +33,22 @@ except ImportError:
or run: pip3 install tqdm."""
)
VERSION_STR = "1.1.0"
try:
import pefile
except ImportError:
sys.exit(
"""You need pefile module!
install it from https://pypi.org/project/pefile/
or run: pip3 install pefile."""
)
ACC_URL = "https://cdn-ffc.oobesaas.adobe.com/core/v1/applications?name=CreativeCloud&name=CCLBS&osVersion={osVersion}&platform={osPlatform}&version={appVersion}"
ADOBE_REQ_HEADERS = {
"X-Adobe-App-Id": "accc-apps-panel-desktop",
"User-Agent": "Adobe Application Manager 2.0",
"X-Api-Key": "CC_HD_ESD_1_0",
"Cookie": "fg="
+ "".join(random.choice(string.ascii_uppercase + string.digits) for _ in range(26))
+ "======",
}
SCRIPT_NAME = "Adobe Creative Cloud package downloader"
VERSION_STR = "1.2.0"
ADOBE_DL_HEADERS = {"User-Agent": "Creative Cloud"}
ACC_URL = "https://ccmdls.adobe.com/AdobeProducts/StandaloneBuilds/ACCC/ESD/{mainVer}/{buildVer}/{platform}/{fileName}"
CURR_PATH = os.path.dirname(os.path.abspath(__file__))
ADOBE_SETUP_BIN = os.path.join(CURR_PATH, "Set-up.exe")
@@ -58,275 +56,115 @@ ADOBE_SETUP_BIN = os.path.join(CURR_PATH, "Set-up.exe")
session = requests.sessions.Session()
def setup_version():
try:
jsonFromPowerShell = json.loads(subprocess.run(
[
"powershell.exe",
"(Get-Item '"
+ ADOBE_SETUP_BIN
+ "').VersionInfo.FileVersion | ConvertTo-Json",
],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
shell=True,
).stdout)
return jsonFromPowerShell
except Exception as e:
sys.stderr.write("Set-up.exe not found! Please extract Set-up.exe from one of the archives, and place it in this directory.")
sys.exit(1)
def show_info(name: str, version: str, pad: int, bdr: str) -> None:
"""Show script information"""
tl = len(name) + (pad * 2)
print(bdr * tl)
print(bdr + name.center(tl - 2) + bdr)
print(version.center(tl, bdr))
def os_data():
osVersionData = sys.getwindowsversion()
osFullVer = "{}.{}.0.{}".format(
osVersionData.major, osVersionData.minor, osVersionData.build
)
osVer = "{}.{}.0".format(osVersionData.major, osVersionData.minor)
osPlatform = "win32"
if platform.machine().endswith("64") == True:
osPlatform = "win64"
return osFullVer, osVer, osPlatform
def get_xml_data(url):
response = session.get(url, stream=True, headers=ADOBE_REQ_HEADERS)
response.encoding = "utf-8"
return ET.fromstring(response.content)
def extract_zip(zip, dest):
def extract_zip(zip):
zipName = os.path.basename(zip)
print(f"Extracting {zipName} contents")
dir_name = os.path.basename(dest)
with zipfile.ZipFile(zip, "r") as cp:
for f in cp.infolist():
filename = f.filename
# exclude for folder
if filename.endswith('/'):
continue
basename = os.path.basename(filename)
if dir_name in filename and not filename.endswith('/'):
# for < v6.2
dest_file = os.path.join(dest, basename)
with open(dest_file, "wb") as w:
w.write(cp.read(filename))
filename = basename
else:
cp.extract(f, dest)
# retain file creation date
name = os.path.join(dest, filename)
date_time = time.mktime(f.date_time + (0, 0, -1))
os.utime(name, (date_time, date_time))
def file_download(url, source_dir, dest_dir):
response = session.get(url, stream=True, headers=ADOBE_REQ_HEADERS)
total_size_in_bytes = int(response.headers.get("content-length", 0))
def get_version():
version = args.setupVersion
if total_size_in_bytes > 0:
name = os.path.basename(url)
source_zip = os.path.join(source_dir, name)
if version is None:
if not os.path.exists(ADOBE_SETUP_BIN):
sys.exit("File not found")
try:
pe = pefile.PE(ADOBE_SETUP_BIN)
if hasattr(pe, 'VS_FIXEDFILEINFO'):
info = pe.VS_FIXEDFILEINFO[0]
# Extracting version info
major = info.FileVersionMS >> 16
minor = info.FileVersionMS & 0xFFFF
patch = info.FileVersionLS >> 16
build = info.FileVersionLS & 0xFFFF
version = f"{major}.{minor}.{patch}.{build}"
except pefile.PEFormatError:
sys.exit("Not a valid PE file (likely not a Windows executable)")
except Exception as e:
sys.exit(f"An error occurred: {e}")
return version
def do_download(dFile, url):
try:
# get file size
response = session.head(url, stream=False, headers=ADOBE_DL_HEADERS)
lengthInBytes = int(response.headers.get("content-length", 0))
if lengthInBytes < 2048:
sys.exit(
f"\nFound nothing for this version. Please try another version.")
if (
os.path.isfile(source_zip)
and os.path.getsize(source_zip) == total_size_in_bytes
os.path.isfile(dFile)
and os.path.getsize(dFile) == lengthInBytes
):
print("Downloaded file is OK. Skipping ...")
extract_zip(source_zip, dest_dir)
print(f"\nDownloaded file seems OK, skipping...")
return
block_size = 1024 # 1 Kibibyte
progress_bar = tqdm(total=total_size_in_bytes, unit="iB", unit_scale=True)
with open(source_zip, "wb") as file:
for data in response.iter_content(block_size):
progress_bar.update(len(data))
file.write(data)
progress_bar.close()
if total_size_in_bytes != 0 and progress_bar.n != total_size_in_bytes:
print("ERROR, something went wrong")
# download file
response = session.get(url, stream=True, headers=ADOBE_DL_HEADERS)
extract_zip(source_zip, dest_dir)
blockSize = 1024 # 1 Kilobyte
with tqdm(total=lengthInBytes, unit="iB", unit_scale=True) as pBar:
with open(dFile, "wb") as file:
for data in response.iter_content(blockSize):
pBar.update(len(data))
file.write(data)
except Exception as e:
print(e)
sys.exit("\nCannot download file!")
def get_packages():
setupVersion = setup_version()
def accc_download():
'''Download Adobe Creative Cloud package'''
version = get_version()
print(f"\nDownloading ACCC version: {version}")
v = version.split(".")
mainVer = ".".join([v[0], v[1], v[2]])
buildVer = str(v[3])
print("\nGet Required packages for Adobe Installer v-{}".format(setupVersion))
winFullVer, winVer, winPlatform = os_data()
acc_xml_url = ACC_URL.format(
osVersion=winFullVer, osPlatform=winPlatform, appVersion=setupVersion
platform = args.platform or "win64"
fileName = f"ACCCx{"_".join(v)}.zip"
url = ACC_URL.format(
mainVer=mainVer, buildVer=buildVer, platform=platform, fileName=fileName
)
xml_data = get_xml_data(acc_xml_url)
tmpDir = os.path.join(CURR_PATH, "acc_tmp")
os.makedirs(tmpDir, exist_ok=True)
accVersion = xml_data.find(".//application/version").text
zipFile = os.path.join(tmpDir, fileName)
if accVersion != setupVersion:
print(
"\nYour installer will not work! Please try Adobe Installer version 5x or 6x\n"
)
exit(1)
do_download(zipFile, url)
package_cdn = xml_data.find(".//cdn/secure").text
packageSets = xml_data.findall(".//packageSets/packageSet")
with zipfile.ZipFile(zipFile, 'r') as zr:
for f in zr.infolist():
if f.filename.startswith("packages") or f.filename.startswith("resources/AdobePIM.dll"):
zr.extract(f, CURR_PATH)
# sort by packageSet name
packageSets[:] = sorted(
packageSets, key=lambda packageSets: packageSets.findtext("sequenceNumber")
)
# appinfo data
xml_root = ET.Element("application")
for key, val in dict(
{
"name": xml_data.find(".//application/name").text,
"platform": xml_data.find(".//application/platform").text,
"lbsurl": "http://ccmdl.adobe.com/AdobeProducts/KCCC/1/win32/CreativeCloudSet-Up.exe",
}
).items():
child = ET.Element(key)
child.text = str(val)
xml_root.append(child)
xml_packagesets = ET.SubElement(xml_root, "packageSets")
# create dir for sources files
zip_dir = os.path.join(CURR_PATH, "acc_sources")
os.makedirs(zip_dir, exist_ok=True)
# create packages dir
packages_dir = os.path.join(CURR_PATH, "packages")
os.makedirs(packages_dir, exist_ok=True)
for set in packageSets:
setName = set.find("name").text
installPath = set.find("installPath").text
if installPath == "[NOT-USED]":
continue
xml_packageSet = ET.SubElement(xml_packagesets, "packageSet")
for key, val in dict(
{
"name": setName,
"installPath": installPath,
"sequenceNumber": set.find("sequenceNumber").text,
}
).items():
child = ET.Element(key)
child.text = str(val)
xml_packageSet.append(child)
# create package
pkg_dir = os.path.join(packages_dir, setName)
os.makedirs(pkg_dir, exist_ok=True)
packages = set.findall(".//packages/package")
# sort by packageSet name
packages[:] = sorted(
packages, key=lambda packages: int(packages.findtext("sequenceNumber"))
)
xml_packages = ET.SubElement(xml_packageSet, "packages")
for pk in packages:
packageName = pk.find("name").text
manifestUrl = pk.find("manifestUrl").text
manifestXml = get_xml_data(package_cdn + manifestUrl)
# download sub package
sub_pkg_dir = os.path.join(pkg_dir, packageName)
os.makedirs(sub_pkg_dir, exist_ok=True)
assets = manifestXml.find(".//asset_list/asset/asset_path").text
print("\nDownloading package: " + packageName)
file_download(assets, zip_dir, sub_pkg_dir)
xml_package = ET.SubElement(xml_packages, "package")
for key, val in dict(
{
"name": packageName,
"sequenceNumber": pk.find("sequenceNumber").text,
"optional": pk.find("optional").text,
"pimxPath": "\\"
+ "\\".join([setName, packageName, packageName + ".pimx"]),
}
).items():
child = ET.Element(key)
child.text = str(val)
xml_package.append(child)
if pk.find("additionalInfo") is not None:
adInfo = pk.find("additionalInfo")
xml_pkg_adn = ET.SubElement(xml_package, "additionalInfo")
for elem in adInfo:
xml_pkg_adn.append(elem)
xml_filters = ET.SubElement(xml_packageSet, "filters")
xml_filter = ET.SubElement(xml_filters, "filter")
xml_filter.set("type", "operatingSystem")
xml_filter_config = ET.SubElement(xml_filter, "config")
xml_filter_config.text = winVer
if set.find("additionalInfo") is not None:
adInfo = set.find("additionalInfo")
xml_pkgSet_adn = ET.SubElement(xml_packageSet, "additionalInfo")
for elem in adInfo:
xml_pkgSet_adn.append(elem)
pkg_version = ET.SubElement(xml_root, "version")
pkg_version.text = xml_data.find(".//application/version").text
print("\nCreating ApplicationInfo.xml")
tree = ET.ElementTree(xml_root)
ET.indent(tree, space=" ", level=0)
xml_file = os.path.join(packages_dir, "ApplicationInfo.xml")
tree.write(xml_file, encoding="utf-8", xml_declaration=True)
if get_pim_dll(packages_dir):
print("\nSuccessfully downloaded installer files\n")
def get_pim_dll(packages_dir):
print("\nGetting AdobePIM.dll")
# create resources dir
res_dir = os.path.join(CURR_PATH, "resources")
os.makedirs(res_dir, exist_ok=True)
core_dir = os.path.join(packages_dir, "ADC", "Core")
dll_file = os.path.join(core_dir, "AdobePIM.dll")
pima_file = os.path.join(core_dir, "Core.pima")
if os.path.isfile(dll_file):
os.popen("copy " + dll_file + " " + res_dir)
elif os.path.isfile(pima_file):
with zipfile.ZipFile(pima_file) as pima:
for pim in pima.namelist():
if pim.endswith("AdobePIM.dll"):
pima.extract(pim, res_dir)
else:
print("Cannot found AdobePIM.dll! Please search manually or installer won't work")
return False
return True
print("\nSuccessfully downloaded and extracted accc package data")
if __name__ == "__main__":
ye = int((32 - len(VERSION_STR)) / 2)
print("=================================")
print("= Build Adobe Installer =")
print(
"{} {} {}\n".format("=" * ye, VERSION_STR, "=" * (31 - len(VERSION_STR) - ye))
parser = argparse.ArgumentParser()
parser.add_argument(
"-v", "--setupVersion", help="Version for Set-up.exe", action="store"
)
parser.add_argument(
"-p", "--platform", help="ACCC platform", action="store"
)
args = parser.parse_args()
get_packages()
show_info(SCRIPT_NAME, VERSION_STR, 6, '=')
accc_download()

View File

@@ -645,11 +645,16 @@ def install_language(appLangs: list[str]) -> list[str]:
installLanguage.append(l)
else:
print(f"\nProvided language not available: {l}")
if len(appLangs) == 1:
print(f"\nSet language to available language {appLangs[0]}")
installLanguage = appLangs
break
if questiony("\nDo you want to select another language?"):
newLang = select_language(appLangs, defLang)
# all (mul) means all languages
if newLang == "mul" or newLang == "all":
installLanguage = ["mul"]
installLanguage = ["all"]
break
while newLang in installLanguage:

View File

@@ -138,6 +138,10 @@ def gen_suiteinfo():
langs = add_product(products)
for sl in langs:
# remove mul from locale list
if sl == "mul":
continue
tmp = ET.SubElement(supLangs, "Locale")
tmp.text = sl

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 B

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 834 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 910 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 900 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 718 B

After

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 986 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 868 B

After

Width:  |  Height:  |  Size: 467 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 737 B

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 875 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 797 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 840 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 738 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 B

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 800 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 794 B

Some files were not shown because too many files have changed in this diff Show More