From 35668ef04c60a906efeb683e0f0667425e639d8c Mon Sep 17 00:00:00 2001 From: "hui.xie" Date: Fri, 5 Sep 2025 16:27:11 +0800 Subject: [PATCH 1/3] feat: add trim_sprite_names ability; add test --- .../PackerInterface/AtlasInterface.py | 5 +- .../PackerInterface/PackerInterface.py | 5 +- docs/2_options.rst | 7 +- test.py | 6 +- test_pack_image/output/test.plist | 1294 +++++++++++++++++ test_pack_image/output/test.png | Bin 0 -> 1287 bytes test_pack_image/path1/path1_1/32.png | Bin 0 -> 861 bytes test_pack_image/path1/path1_1/33.png | Bin 0 -> 866 bytes test_pack_image/path1/path1_1/34.png | Bin 0 -> 867 bytes test_pack_image/path1/path1_1/35.png | Bin 0 -> 870 bytes test_pack_image/path1/path1_1/36.png | Bin 0 -> 876 bytes test_pack_image/path1/path1_1/37.png | Bin 0 -> 874 bytes test_pack_image/path1/path1_1/38.png | Bin 0 -> 877 bytes test_pack_image/path1/path1_1/39.png | Bin 0 -> 867 bytes test_pack_image/path1/path1_1/40.png | Bin 0 -> 866 bytes test_pack_image/path1/path1_1/41.png | Bin 0 -> 866 bytes test_pack_image/path1/path1_1/42.png | Bin 0 -> 874 bytes test_pack_image/path1/path1_1/43.png | Bin 0 -> 870 bytes test_pack_image/path1/path1_1/44.png | Bin 0 -> 866 bytes test_pack_image/path1/path1_1/45.png | Bin 0 -> 867 bytes test_pack_image/path1/path1_1/46.png | Bin 0 -> 864 bytes test_pack_image/path1/path1_1/47.png | Bin 0 -> 869 bytes test_pack_image/path1/path1_1/48.png | Bin 0 -> 871 bytes test_pack_image/path1/path1_1/49.png | Bin 0 -> 870 bytes test_pack_image/path2/path2_1/100.png | Bin 0 -> 876 bytes test_pack_image/path2/path2_1/101.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/102.png | Bin 0 -> 871 bytes test_pack_image/path2/path2_1/103.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/104.png | Bin 0 -> 871 bytes test_pack_image/path2/path2_1/105.png | Bin 0 -> 867 bytes test_pack_image/path2/path2_1/106.png | Bin 0 -> 867 bytes test_pack_image/path2/path2_1/107.png | Bin 0 -> 875 bytes test_pack_image/path2/path2_1/108.png | Bin 0 -> 865 bytes test_pack_image/path2/path2_1/109.png | Bin 0 -> 869 bytes test_pack_image/path2/path2_1/110.png | Bin 0 -> 869 bytes test_pack_image/path2/path2_1/111.png | Bin 0 -> 870 bytes test_pack_image/path2/path2_1/112.png | Bin 0 -> 871 bytes test_pack_image/path2/path2_1/113.png | Bin 0 -> 874 bytes test_pack_image/path2/path2_1/114.png | Bin 0 -> 872 bytes test_pack_image/path2/path2_1/115.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/116.png | Bin 0 -> 871 bytes test_pack_image/path2/path2_1/117.png | Bin 0 -> 871 bytes test_pack_image/path2/path2_1/118.png | Bin 0 -> 870 bytes test_pack_image/path2/path2_1/119.png | Bin 0 -> 871 bytes test_pack_image/path2/path2_1/120.png | Bin 0 -> 872 bytes test_pack_image/path2/path2_1/121.png | Bin 0 -> 872 bytes test_pack_image/path2/path2_1/122.png | Bin 0 -> 870 bytes test_pack_image/path2/path2_1/123.png | Bin 0 -> 869 bytes test_pack_image/path2/path2_1/124.png | Bin 0 -> 863 bytes test_pack_image/path2/path2_1/125.png | Bin 0 -> 869 bytes test_pack_image/path2/path2_1/126.png | Bin 0 -> 866 bytes test_pack_image/path2/path2_1/127.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/128.png | Bin 0 -> 1687 bytes test_pack_image/path2/path2_1/129.png | Bin 0 -> 1864 bytes test_pack_image/path2/path2_1/50.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/51.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/52.png | Bin 0 -> 874 bytes test_pack_image/path2/path2_1/53.png | Bin 0 -> 876 bytes test_pack_image/path2/path2_1/54.png | Bin 0 -> 874 bytes test_pack_image/path2/path2_1/55.png | Bin 0 -> 870 bytes test_pack_image/path2/path2_1/56.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/57.png | Bin 0 -> 875 bytes test_pack_image/path2/path2_1/58.png | Bin 0 -> 867 bytes test_pack_image/path2/path2_1/59.png | Bin 0 -> 869 bytes test_pack_image/path2/path2_1/60.png | Bin 0 -> 867 bytes test_pack_image/path2/path2_1/61.png | Bin 0 -> 867 bytes test_pack_image/path2/path2_1/62.png | Bin 0 -> 868 bytes test_pack_image/path2/path2_1/63.png | Bin 0 -> 872 bytes test_pack_image/path2/path2_1/64.png | Bin 0 -> 881 bytes test_pack_image/path2/path2_1/65.png | Bin 0 -> 874 bytes test_pack_image/path2/path2_1/66.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/67.png | Bin 0 -> 872 bytes test_pack_image/path2/path2_1/68.png | Bin 0 -> 871 bytes test_pack_image/path2/path2_1/69.png | Bin 0 -> 875 bytes test_pack_image/path2/path2_1/70.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/71.png | Bin 0 -> 875 bytes test_pack_image/path2/path2_1/72.png | Bin 0 -> 870 bytes test_pack_image/path2/path2_1/73.png | Bin 0 -> 865 bytes test_pack_image/path2/path2_1/74.png | Bin 0 -> 867 bytes test_pack_image/path2/path2_1/75.png | Bin 0 -> 875 bytes test_pack_image/path2/path2_1/76.png | Bin 0 -> 868 bytes test_pack_image/path2/path2_1/77.png | Bin 0 -> 877 bytes test_pack_image/path2/path2_1/78.png | Bin 0 -> 872 bytes test_pack_image/path2/path2_1/79.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/80.png | Bin 0 -> 872 bytes test_pack_image/path2/path2_1/81.png | Bin 0 -> 874 bytes test_pack_image/path2/path2_1/82.png | Bin 0 -> 871 bytes test_pack_image/path2/path2_1/83.png | Bin 0 -> 877 bytes test_pack_image/path2/path2_1/84.png | Bin 0 -> 869 bytes test_pack_image/path2/path2_1/85.png | Bin 0 -> 869 bytes test_pack_image/path2/path2_1/86.png | Bin 0 -> 874 bytes test_pack_image/path2/path2_1/87.png | Bin 0 -> 876 bytes test_pack_image/path2/path2_1/88.png | Bin 0 -> 874 bytes test_pack_image/path2/path2_1/89.png | Bin 0 -> 874 bytes test_pack_image/path2/path2_1/90.png | Bin 0 -> 871 bytes test_pack_image/path2/path2_1/91.png | Bin 0 -> 868 bytes test_pack_image/path2/path2_1/92.png | Bin 0 -> 869 bytes test_pack_image/path2/path2_1/93.png | Bin 0 -> 867 bytes test_pack_image/path2/path2_1/94.png | Bin 0 -> 870 bytes test_pack_image/path2/path2_1/95.png | Bin 0 -> 865 bytes test_pack_image/path2/path2_1/96.png | Bin 0 -> 867 bytes test_pack_image/path2/path2_1/97.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/98.png | Bin 0 -> 873 bytes test_pack_image/path2/path2_1/99.png | Bin 0 -> 873 bytes tests/TestPack.py | 33 + 105 files changed, 1343 insertions(+), 7 deletions(-) create mode 100644 test_pack_image/output/test.plist create mode 100644 test_pack_image/output/test.png create mode 100644 test_pack_image/path1/path1_1/32.png create mode 100644 test_pack_image/path1/path1_1/33.png create mode 100644 test_pack_image/path1/path1_1/34.png create mode 100644 test_pack_image/path1/path1_1/35.png create mode 100644 test_pack_image/path1/path1_1/36.png create mode 100644 test_pack_image/path1/path1_1/37.png create mode 100644 test_pack_image/path1/path1_1/38.png create mode 100644 test_pack_image/path1/path1_1/39.png create mode 100644 test_pack_image/path1/path1_1/40.png create mode 100644 test_pack_image/path1/path1_1/41.png create mode 100644 test_pack_image/path1/path1_1/42.png create mode 100644 test_pack_image/path1/path1_1/43.png create mode 100644 test_pack_image/path1/path1_1/44.png create mode 100644 test_pack_image/path1/path1_1/45.png create mode 100644 test_pack_image/path1/path1_1/46.png create mode 100644 test_pack_image/path1/path1_1/47.png create mode 100644 test_pack_image/path1/path1_1/48.png create mode 100644 test_pack_image/path1/path1_1/49.png create mode 100644 test_pack_image/path2/path2_1/100.png create mode 100644 test_pack_image/path2/path2_1/101.png create mode 100644 test_pack_image/path2/path2_1/102.png create mode 100644 test_pack_image/path2/path2_1/103.png create mode 100644 test_pack_image/path2/path2_1/104.png create mode 100644 test_pack_image/path2/path2_1/105.png create mode 100644 test_pack_image/path2/path2_1/106.png create mode 100644 test_pack_image/path2/path2_1/107.png create mode 100644 test_pack_image/path2/path2_1/108.png create mode 100644 test_pack_image/path2/path2_1/109.png create mode 100644 test_pack_image/path2/path2_1/110.png create mode 100644 test_pack_image/path2/path2_1/111.png create mode 100644 test_pack_image/path2/path2_1/112.png create mode 100644 test_pack_image/path2/path2_1/113.png create mode 100644 test_pack_image/path2/path2_1/114.png create mode 100644 test_pack_image/path2/path2_1/115.png create mode 100644 test_pack_image/path2/path2_1/116.png create mode 100644 test_pack_image/path2/path2_1/117.png create mode 100644 test_pack_image/path2/path2_1/118.png create mode 100644 test_pack_image/path2/path2_1/119.png create mode 100644 test_pack_image/path2/path2_1/120.png create mode 100644 test_pack_image/path2/path2_1/121.png create mode 100644 test_pack_image/path2/path2_1/122.png create mode 100644 test_pack_image/path2/path2_1/123.png create mode 100644 test_pack_image/path2/path2_1/124.png create mode 100644 test_pack_image/path2/path2_1/125.png create mode 100644 test_pack_image/path2/path2_1/126.png create mode 100644 test_pack_image/path2/path2_1/127.png create mode 100644 test_pack_image/path2/path2_1/128.png create mode 100644 test_pack_image/path2/path2_1/129.png create mode 100644 test_pack_image/path2/path2_1/50.png create mode 100644 test_pack_image/path2/path2_1/51.png create mode 100644 test_pack_image/path2/path2_1/52.png create mode 100644 test_pack_image/path2/path2_1/53.png create mode 100644 test_pack_image/path2/path2_1/54.png create mode 100644 test_pack_image/path2/path2_1/55.png create mode 100644 test_pack_image/path2/path2_1/56.png create mode 100644 test_pack_image/path2/path2_1/57.png create mode 100644 test_pack_image/path2/path2_1/58.png create mode 100644 test_pack_image/path2/path2_1/59.png create mode 100644 test_pack_image/path2/path2_1/60.png create mode 100644 test_pack_image/path2/path2_1/61.png create mode 100644 test_pack_image/path2/path2_1/62.png create mode 100644 test_pack_image/path2/path2_1/63.png create mode 100644 test_pack_image/path2/path2_1/64.png create mode 100644 test_pack_image/path2/path2_1/65.png create mode 100644 test_pack_image/path2/path2_1/66.png create mode 100644 test_pack_image/path2/path2_1/67.png create mode 100644 test_pack_image/path2/path2_1/68.png create mode 100644 test_pack_image/path2/path2_1/69.png create mode 100644 test_pack_image/path2/path2_1/70.png create mode 100644 test_pack_image/path2/path2_1/71.png create mode 100644 test_pack_image/path2/path2_1/72.png create mode 100644 test_pack_image/path2/path2_1/73.png create mode 100644 test_pack_image/path2/path2_1/74.png create mode 100644 test_pack_image/path2/path2_1/75.png create mode 100644 test_pack_image/path2/path2_1/76.png create mode 100644 test_pack_image/path2/path2_1/77.png create mode 100644 test_pack_image/path2/path2_1/78.png create mode 100644 test_pack_image/path2/path2_1/79.png create mode 100644 test_pack_image/path2/path2_1/80.png create mode 100644 test_pack_image/path2/path2_1/81.png create mode 100644 test_pack_image/path2/path2_1/82.png create mode 100644 test_pack_image/path2/path2_1/83.png create mode 100644 test_pack_image/path2/path2_1/84.png create mode 100644 test_pack_image/path2/path2_1/85.png create mode 100644 test_pack_image/path2/path2_1/86.png create mode 100644 test_pack_image/path2/path2_1/87.png create mode 100644 test_pack_image/path2/path2_1/88.png create mode 100644 test_pack_image/path2/path2_1/89.png create mode 100644 test_pack_image/path2/path2_1/90.png create mode 100644 test_pack_image/path2/path2_1/91.png create mode 100644 test_pack_image/path2/path2_1/92.png create mode 100644 test_pack_image/path2/path2_1/93.png create mode 100644 test_pack_image/path2/path2_1/94.png create mode 100644 test_pack_image/path2/path2_1/95.png create mode 100644 test_pack_image/path2/path2_1/96.png create mode 100644 test_pack_image/path2/path2_1/97.png create mode 100644 test_pack_image/path2/path2_1/98.png create mode 100644 test_pack_image/path2/path2_1/99.png create mode 100644 tests/TestPack.py diff --git a/PyTexturePacker/PackerInterface/AtlasInterface.py b/PyTexturePacker/PackerInterface/AtlasInterface.py index af0beaf..268b220 100644 --- a/PyTexturePacker/PackerInterface/AtlasInterface.py +++ b/PyTexturePacker/PackerInterface/AtlasInterface.py @@ -38,7 +38,7 @@ def __init__(self, width=1, height=1, max_width=MAX_WIDTH, max_height=MAX_HEIGHT self.image_rect_list = [] - def dump_plist(self, texture_file_name="", input_base_path=None, atlas_format=ATLAS_FORMAT_PLIST): + def dump_plist(self, texture_file_name="", input_base_path=None, atlas_format=ATLAS_FORMAT_PLIST, trim_sprite_names=False): import os plist_data = {} @@ -59,6 +59,9 @@ def dump_plist(self, texture_file_name="", input_base_path=None, atlas_format=AT else: path = os.path.relpath(os.path.abspath( path), os.path.abspath(input_base_path)) + + if trim_sprite_names: + path, _ = os.path.splitext(path) if atlas_format == ATLAS_FORMAT_PLIST: frames[path] = dict( diff --git a/PyTexturePacker/PackerInterface/PackerInterface.py b/PyTexturePacker/PackerInterface/PackerInterface.py index a9791b6..c57c8b4 100644 --- a/PyTexturePacker/PackerInterface/PackerInterface.py +++ b/PyTexturePacker/PackerInterface/PackerInterface.py @@ -34,7 +34,7 @@ class PackerInterface(object): def __init__(self, bg_color=0x00000000, texture_format=".png", max_width=4096, max_height=4096, enable_rotated=True, force_square=False, border_padding=2, shape_padding=2, inner_padding=0, trim_mode=0, - reduce_border_artifacts=False, extrude=0, atlas_format=Utils.ATLAS_FORMAT_PLIST, atlas_ext=None): + reduce_border_artifacts=False, extrude=0, atlas_format=Utils.ATLAS_FORMAT_PLIST, atlas_ext=None, trim_sprite_names=False): """ init a packer :param bg_color: background color of output image. @@ -66,6 +66,7 @@ def __init__(self, bg_color=0x00000000, texture_format=".png", max_width=4096, m self.reduce_border_artifacts = reduce_border_artifacts self.atlas_format = atlas_format self.atlas_ext = atlas_ext + self.trim_sprite_names = trim_sprite_names @staticmethod def _calculate_area(image_rect_list, inner_padding): @@ -192,7 +193,7 @@ def pack(self, input_images, output_name, output_path="", input_base_path=None): texture_file_name = output_name if "%d" not in output_name else output_name % i packed_plist = atlas.dump_plist("%s%s" % (texture_file_name, self.texture_format), input_base_path, - self.atlas_format) + self.atlas_format, trim_sprite_names = self.trim_sprite_names) packed_image = atlas.dump_image(self.bg_color) if self.reduce_border_artifacts: diff --git a/docs/2_options.rst b/docs/2_options.rst index 6a38d57..a8ac1f8 100644 --- a/docs/2_options.rst +++ b/docs/2_options.rst @@ -95,4 +95,9 @@ atlas_ext ------- Forces the atlas to use this extension regardless of the format. -If not provided, the atlas will use the default extension for the chosen format. \ No newline at end of file +If not provided, the atlas will use the default extension for the chosen format. + +trim_sprite_names +----------------- + +Removes the file extension from the sprite names in the atlas. \ No newline at end of file diff --git a/test.py b/test.py index 5203742..07e6f48 100644 --- a/test.py +++ b/test.py @@ -23,9 +23,9 @@ def load_test_suite(): test_path = os.path.abspath(TEST_MODULE) files = os.listdir(test_path) - test_file_re = re.compile(TEST_CASE_NAME, re.IGNORECASE) - files = filter(test_file_re.match, files) - + # test_file_re = re.compile(TEST_CASE_NAME, re.IGNORECASE) + # files = filter(test_file_re.match, files) + files = [f for f in files if re.match(TEST_CASE_NAME, f, re.IGNORECASE)] module_names = map(lambda f: os.path.splitext(f)[0], files) modules = map(lambda x: __import__("%s.%s" % (TEST_MODULE, x), fromlist=[TEST_MODULE]), module_names) diff --git a/test_pack_image/output/test.plist b/test_pack_image/output/test.plist new file mode 100644 index 0000000..5cc9bd8 --- /dev/null +++ b/test_pack_image/output/test.plist @@ -0,0 +1,1294 @@ + + + + + frames + + path1/path1_1/32 + + frame + {{24,6},{4,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,7}} + sourceSize + {4,7} + + path1/path1_1/33 + + frame + {{2,8},{1,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{1,7}} + sourceSize + {2,7} + + path1/path1_1/34 + + frame + {{50,37},{3,3}} + offset + {0,2} + rotated + + sourceColorRect + {{0,0},{3,3}} + sourceSize + {4,7} + + path1/path1_1/35 + + frame + {{58,22},{5,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{5,5}} + sourceSize + {6,7} + + path1/path1_1/36 + + frame + {{24,15},{4,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,7}} + sourceSize + {5,7} + + path1/path1_1/37 + + frame + {{58,2},{5,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{5,5}} + sourceSize + {6,7} + + path1/path1_1/38 + + frame + {{2,11},{5,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{5,7}} + sourceSize + {6,7} + + path1/path1_1/39 + + frame + {{65,53},{2,3}} + offset + {0,2} + rotated + + sourceColorRect + {{0,0},{2,3}} + sourceSize + {3,7} + + path1/path1_1/40 + + frame + {{11,15},{2,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{2,7}} + sourceSize + {3,7} + + path1/path1_1/41 + + frame + {{2,18},{2,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{2,7}} + sourceSize + {3,7} + + path1/path1_1/42 + + frame + {{61,9},{5,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{5,5}} + sourceSize + {6,7} + + path1/path1_1/43 + + frame + {{65,2},{5,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{5,5}} + sourceSize + {6,7} + + path1/path1_1/44 + + frame + {{65,58},{2,3}} + offset + {0,-2} + rotated + + sourceColorRect + {{0,4},{2,3}} + sourceSize + {2,7} + + path1/path1_1/45 + + frame + {{69,53},{3,1}} + offset + {0,0} + rotated + + sourceColorRect + {{0,3},{3,1}} + sourceSize + {4,7} + + path1/path1_1/46 + + frame + {{59,53},{1,1}} + offset + {0,-2} + rotated + + sourceColorRect + {{0,5},{1,1}} + sourceSize + {2,7} + + path1/path1_1/47 + + frame + {{11,19},{3,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{3,7}} + sourceSize + {4,7} + + path1/path1_1/48 + + frame + {{20,36},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path1/path1_1/49 + + frame + {{11,39},{2,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{2,6}} + sourceSize + {3,7} + + path2/path2_1/100 + + frame + {{19,42},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/101 + + frame + {{61,16},{4,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,5}} + sourceSize + {5,7} + + path2/path2_1/102 + + frame + {{2,48},{2,6}} + offset + {0,0} + rotated + + sourceColorRect + {{1,0},{2,6}} + sourceSize + {4,7} + + path2/path2_1/103 + + frame + {{2,56},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,6}} + sourceSize + {5,7} + + path2/path2_1/104 + + frame + {{6,48},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/105 + + frame + {{27,42},{1,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{1,6}} + sourceSize + {2,7} + + path2/path2_1/106 + + frame + {{2,22},{2,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{2,7}} + sourceSize + {3,7} + + path2/path2_1/107 + + frame + {{10,56},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/108 + + frame + {{12,48},{1,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{1,6}} + sourceSize + {2,7} + + path2/path2_1/109 + + frame + {{11,24},{7,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{7,5}} + sourceSize + {8,7} + + path2/path2_1/110 + + frame + {{58,56},{4,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,5}} + sourceSize + {5,7} + + path2/path2_1/111 + + frame + {{59,46},{4,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,5}} + sourceSize + {5,7} + + path2/path2_1/112 + + frame + {{15,50},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,6}} + sourceSize + {5,7} + + path2/path2_1/113 + + frame + {{18,56},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,6}} + sourceSize + {5,7} + + path2/path2_1/114 + + frame + {{2,43},{3,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{3,5}} + sourceSize + {4,7} + + path2/path2_1/115 + + frame + {{9,43},{3,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{3,5}} + sourceSize + {4,7} + + path2/path2_1/116 + + frame + {{23,48},{2,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{2,6}} + sourceSize + {3,7} + + path2/path2_1/117 + + frame + {{62,29},{4,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,5}} + sourceSize + {5,7} + + path2/path2_1/118 + + frame + {{65,22},{4,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,5}} + sourceSize + {5,7} + + path2/path2_1/119 + + frame + {{62,36},{5,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{5,5}} + sourceSize + {6,7} + + path2/path2_1/120 + + frame + {{68,29},{5,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{5,5}} + sourceSize + {6,7} + + path2/path2_1/121 + + frame + {{26,56},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,6}} + sourceSize + {5,7} + + path2/path2_1/122 + + frame + {{68,9},{4,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,5}} + sourceSize + {5,7} + + path2/path2_1/123 + + frame + {{2,26},{3,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{3,7}} + sourceSize + {4,7} + + path2/path2_1/124 + + frame + {{2,31},{1,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{1,7}} + sourceSize + {2,7} + + path2/path2_1/125 + + frame + {{20,24},{3,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{3,7}} + sourceSize + {4,7} + + path2/path2_1/126 + + frame + {{30,22},{4,2}} + offset + {0,2} + rotated + + sourceColorRect + {{0,0},{4,2}} + sourceSize + {5,7} + + path2/path2_1/127 + + frame + {{72,2},{5,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{5,5}} + sourceSize + {6,7} + + path2/path2_1/128 + + frame + {{14,2},{2,8}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{2,8}} + sourceSize + {2,8} + + path2/path2_1/129 + + frame + {{2,2},{4,10}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,10}} + sourceSize + {4,10} + + path2/path2_1/50 + + frame + {{27,50},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/51 + + frame + {{34,56},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/52 + + frame + {{28,36},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/53 + + frame + {{30,42},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/54 + + frame + {{35,50},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/55 + + frame + {{42,56},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/56 + + frame + {{50,2},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/57 + + frame + {{43,2},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/58 + + frame + {{62,43},{1,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{1,5}} + sourceSize + {2,7} + + path2/path2_1/59 + + frame + {{24,2},{2,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{2,6}} + sourceSize + {2,7} + + path2/path2_1/60 + + frame + {{50,30},{3,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{3,5}} + sourceSize + {4,7} + + path2/path2_1/61 + + frame + {{75,16},{4,3}} + offset + {0,0} + rotated + + sourceColorRect + {{0,2},{4,3}} + sourceSize + {5,7} + + path2/path2_1/62 + + frame + {{68,16},{3,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{3,5}} + sourceSize + {4,7} + + path2/path2_1/63 + + frame + {{36,2},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {4,7} + + path2/path2_1/64 + + frame + {{14,6},{8,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{8,7}} + sourceSize + {9,7} + + path2/path2_1/65 + + frame + {{30,6},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/66 + + frame + {{36,10},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/67 + + frame + {{30,14},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/68 + + frame + {{50,8},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/69 + + frame + {{42,10},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/70 + + frame + {{50,14},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/71 + + frame + {{42,16},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/72 + + frame + {{36,18},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/73 + + frame + {{58,14},{1,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{1,6}} + sourceSize + {2,7} + + path2/path2_1/74 + + frame + {{50,20},{2,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{2,6}} + sourceSize + {3,7} + + path2/path2_1/75 + + frame + {{42,22},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/76 + + frame + {{36,26},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/77 + + frame + {{29,26},{5,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{5,6}} + sourceSize + {6,7} + + path2/path2_1/78 + + frame + {{50,24},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/79 + + frame + {{42,28},{5,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{5,6}} + sourceSize + {6,7} + + path2/path2_1/80 + + frame + {{36,34},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/81 + + frame + {{20,29},{5,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{5,7}} + sourceSize + {6,7} + + path2/path2_1/82 + + frame + {{36,42},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/83 + + frame + {{42,42},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/84 + + frame + {{42,35},{5,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{5,6}} + sourceSize + {6,7} + + path2/path2_1/85 + + frame + {{43,50},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/86 + + frame + {{48,42},{5,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{5,6}} + sourceSize + {6,7} + + path2/path2_1/87 + + frame + {{11,31},{7,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{7,6}} + sourceSize + {8,7} + + path2/path2_1/88 + + frame + {{55,30},{5,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{5,6}} + sourceSize + {6,7} + + path2/path2_1/89 + + frame + {{55,38},{5,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{5,6}} + sourceSize + {6,7} + + path2/path2_1/90 + + frame + {{50,56},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/91 + + frame + {{2,34},{2,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{2,7}} + sourceSize + {3,7} + + path2/path2_1/92 + + frame + {{2,38},{3,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{3,7}} + sourceSize + {4,7} + + path2/path2_1/93 + + frame + {{20,15},{2,7}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{2,7}} + sourceSize + {3,7} + + path2/path2_1/94 + + frame + {{74,9},{5,3}} + offset + {0,2} + rotated + + sourceColorRect + {{0,0},{5,3}} + sourceSize + {6,7} + + path2/path2_1/95 + + frame + {{16,43},{5,1}} + offset + {0,-3} + rotated + + sourceColorRect + {{0,6},{5,1}} + sourceSize + {6,7} + + path2/path2_1/96 + + frame + {{70,58},{2,3}} + offset + {0,2} + rotated + + sourceColorRect + {{0,0},{2,3}} + sourceSize + {3,7} + + path2/path2_1/97 + + frame + {{71,21},{4,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,5}} + sourceSize + {5,7} + + path2/path2_1/98 + + frame + {{51,50},{4,6}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{4,6}} + sourceSize + {5,7} + + path2/path2_1/99 + + frame + {{65,46},{4,5}} + offset + {0,0} + rotated + + sourceColorRect + {{0,1},{4,5}} + sourceSize + {5,7} + + + metadata + + format + 2 + realTextureFileName + test_pack_image/output/test.png + size + {128,64} + textureFileName + test_pack_image/output/test.png + + + diff --git a/test_pack_image/output/test.png b/test_pack_image/output/test.png new file mode 100644 index 0000000000000000000000000000000000000000..f190dd14c1fb9260d9de13dda443bca98a0e4567 GIT binary patch literal 1287 zcmV+i1^D`jP))u5PLq zV~oqPyo{s4uFdo0kapU8a9r39n^$D!TJjugz)5MttH&SV{M|*k{J065t1scx>CbR^ zwh8Aa7vcTe4?9VRTp8)wB4|vBmV4AVR%J$^zcu6KVZPsddsfo<=|#9a-Gt5APN|1S829m8Q*0$_N|ArYzEqgs(Asy#;@E%hChNCL+^S>vI}lUsSTH5yTK zjl{f0jXDP^gxp0sCBbM$(Af&L(TcxAmR z9CFh~B5UbdNqT0J-~c`MzEi*2{-whln(^S@WskgL2xz>prw4JKYMGlh0z}_P zdJU~`a^bg1nXo>%el-RXkosJ^FbgzZT(fSLticvYz(N#Dmy??4Vc|1jhIauikvu!cz64pT%q5#^ujqHQ zO8`|#S`JzZDxXW~#~;`-qwQ-M`Rw05vV+#)x@1|A?r9=L96bDYSvO(+zt0@HBppql z>cZc{A~MM9NY^drQQ98+J&htuK?z6_Xlub*49j}oji3=E#^t3&n8^{>5eX&Was zj;iwj+Kd1zOYN!puz!s)ID2nw0GJ|b0X-a3n)W!B)+ngoJIrn{C!A0v!C=CZzR{!3 z2Ub3ZqZS(GEoBL7<15iKggM{}-s8IfiTT5N7#rs@1bENcd?Rq7T`TYwDV()GjR9!N z;-rT25&`lzcj-5*oU`_l!6Ye_gsGV&zs9^)QUI2&VeNV!QgIZ( z;*q_>zGf~KelY_M_D`a6L0cmWwfA7zx1g@4Mv3=n`#T1d64q%x5AXE_Q0qP&9gl@u zJ_o0iOYQ4p{ZV6L?Wr-Pk4Yh!#pW0bkD(2Nn*83nXP~Js)s>#XBhLX(1v^%V+8sVF zy`rwUbc~xPgtooZZ&1{842tLmFfZc7?*&+PuQ`&%oz&4}58P&ql$yfL9Bj^9hOo@Y z_9wre#RfQF}NL-|Zz-Yg499(4%e<=+@`Q xjBCPw-kzEdwFF2fk)yvKa5x+ehra literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/32.png b/test_pack_image/path1/path1_1/32.png new file mode 100644 index 0000000000000000000000000000000000000000..a2b22c04f5ec1d736736b71ee17afe87b094d163 GIT binary patch literal 861 zcmeHDF-yZx7`#%!P$>i_6^DR}W5$j?Nzn%qn%Kpy4?!s65O8^GHaljs<2O1uJhwPz z%$P;U)__aKH#j(aKJhO&_TamZTkei~n#C96(a{LNSYAe{`#bJ-y`kfS_u~yP#O!K5 zb<#m=O+;ami=t9ZM{GkSBrUV9Ag(75kS~5_1zDObkr38BYMaX&tXAlofNh}#stiov z))}Eoz&hl*G=A6$#maEmuLIqR$|~**E1wEsDdWoUDM}$Y$(c$HV1)Ws#6`odl`*F8 zduIOYx#jHw|GU8bS9<6i2ajodjkC{>J16#JB<9}p?IQ4i6AZ$){oprMPUGnHe3AbE D96@c` literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/33.png b/test_pack_image/path1/path1_1/33.png new file mode 100644 index 0000000000000000000000000000000000000000..1df704fbb1c47fb8a4dbaf62bad34ac22f8069ae GIT binary patch literal 866 zcmeHDu}Z^G6uq^BrC1DtgH9P8Gj{BiRDCF+iCuK+Lr{u31YF*l&4NodJ6`DG;PA$* z88c=PG6r1U_=XN0u21|0#~!%nayW1}oYzToKIk9!0bn35!o>X@ce}l=5orhR+~AywoCD8qOgmSQ@BoCT?J{08{&HbA?c* zzy#d5AZTM?6>wE(FKAG*)LfXQuNo|^=XiLPPv{dMnzCqkU|-tU5k+30M~KY;zW&Sg^F{(2zB KQTTZ}%YFb#{&1E6 literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/34.png b/test_pack_image/path1/path1_1/34.png new file mode 100644 index 0000000000000000000000000000000000000000..feeeb01c175b8aff9ed82b4e84bbe2646ca761cd GIT binary patch literal 867 zcmeHDF-yZh82w5GOQ8@q6^9HC9d9hS^dvv-FgU?A`StUTeF!ln;kzl2ZtNu zm@#9PLN)^~H{Q^};q%15;MfP>`*_QHkM}$cF9!YNJ^&2FWe~f+=Wf5(b$s}7@(Iv| z>Gf>lq=Qll5m}V-yp(l|WSQgwS4o>ARij4`Z(d?KS{$t)LRcH9Y%1oEWngNbY_2$z z2@nD`&IsBFNHMAk?XiYSl9~#$_Ep16E2-5aJa5%4>41 zwARKLBKqsO_wi31VvS?}eJE!lE0_HF@A&pKDxJb3-h L7Lzb|KVPIj)xL1b literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/35.png b/test_pack_image/path1/path1_1/35.png new file mode 100644 index 0000000000000000000000000000000000000000..19c02426314b4d60d2a3ad06ff62256e5b0c2cf7 GIT binary patch literal 870 zcmeHDF-yZh82xI*mO>$ei{cPB$BZ34NznrdO)P?24^b%M5Ole%#L14g+3_0%JKUHx zW85+*WN-+$+<1e7!{>>A!Lbj%_wknZ9`A7+9}oJweE=BnlPGn6%U!qUIo^w3KL9)! zpH4R5+HWZBGENc}~HM|A>>}Qst#o-JRgr$MX=KKN{3ovy+R!IhB z282M3GlDh&k|9-v_QQq=5}FFL3}nMfE2z~Zd{oS0Mx~|$C>Wz8CoCuc&BV7rQZ>0& zT5Dqr5&iXC^Ll~*UEt;`-Eoec`!qg-!_W6?C$@RSCcUT2>3riZ*i^y%q1%D;eJ{Iu Pd0YL)^HChFj;8q!CS!9T literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/36.png b/test_pack_image/path1/path1_1/36.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ef84a6c8a8271f0dfe5cddb2e828ea77c27350 GIT binary patch literal 876 zcmeHGF-yZh82xM!L!}UKvQykTX0xLwDH@QF#4c_*1f_^Wh#PuR`ITJ+_;H@Q#kngxG-Ymdu(PsohONV3B4@K#@ny=Zy~pK VV4wFM_ulV*w*>w)@Lmp+{0Asbb&>!8 literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/37.png b/test_pack_image/path1/path1_1/37.png new file mode 100644 index 0000000000000000000000000000000000000000..040cfee1d1140d6122dfbc87f7924e6892f38109 GIT binary patch literal 874 zcmeH@u}i~16vkhy)KVy9RB_1Yn6ZoEX=*)?(4<}5dI&-hhftT>B$IXwE_QsQgTswk zGp1V>A%jDp%emd);P5>0UvTV$_kDcJ$B*x66b^gc{Vo9X_(c#~Z`3h6ejHh!B<t$%$4icOps8N>!l}aRv1BzBH?1j3?@`4I)t1tic-RyJWx!03#6*)i`=U#ifc8{Nf$1?}c Ux3^Zqqfh4-fe*sq?R1*{0Q`J(3;+NC literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/38.png b/test_pack_image/path1/path1_1/38.png new file mode 100644 index 0000000000000000000000000000000000000000..8f6ed88534964ac7db0c38198f020551eedc7fbe GIT binary patch literal 877 zcmeH@txv;H6vgjS0?WckEgzzS5ag2+h`pr?G$Bn}W^j8Ufh=UA0l~9P5KPuFc_jkz zWYt1taW#+%M3W&ZpFkikkMJ)bcawWgjyd_|JOuu6x3kj$fUbAqM#k68Z?r9=d;aSO zfCa(nXlSB2DJ3GZFyUz~${I;C!9ASBb&6EGAc4I+S9Gim%HU= Zu(sbng291hy|eqpFNHVs-RHqL`2kykbszu$ literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/39.png b/test_pack_image/path1/path1_1/39.png new file mode 100644 index 0000000000000000000000000000000000000000..895768a53dabcd4b81c579c217ff4721aa45eabc GIT binary patch literal 867 zcmeH@F-yci5QRqsa~zz+Qmd4fDX(-Shb~CC#B1!b2p)%61Z=i6VBuAg&a<1s!op&~ zCT+?q(+DX8Hd}5XXfbZ^FIe8dyy0u!Jl?}JJ{b)Uh5#@Ur%~$ewp(w|>-XGy?sci%lp>-qDX^?%(-GTHqM$|ImBj1u4Tx7iw@8-83rGl72G+I^7qDD{X#%#TLa1|K z0&blVbP2Eud0lBgY*Dh*T$xp%TCA<)PP6o>L`yl>nh&8u=*gua7zFH literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/41.png b/test_pack_image/path1/path1_1/41.png new file mode 100644 index 0000000000000000000000000000000000000000..a390ac26f7143dc351bdd6dca7ed8a88bdf11e51 GIT binary patch literal 866 zcmeH@p-;n55XNsHwk#~EL4c}6R!(xH3wz1Zv}Fdz3kl0Y5Dl1T>zJ&9;Z7nDPgapM zsL7fol}#{DK0yNFcn$voa+ln9`I+y&e2;N-J{lem0bnGiVe0O_+y0=_??wNm<9Ifo zICP_wBBCJ4v8ZI-65Bwcpk>w;#GCOQh*vMONS4M+NC?&jHZ~WRuv&qseYS-{s4`#z zZk!Rc39t%yQ)(}0P_ooqnzgSQtgPf#v-GGyOBq+1PoPBPBxfqw2aWPa5*IbQR9b6e z3^V`b-07}?|83y*D?M_Ky@xcqfYZ(@+>P?YPLCu>$1L5(8eV#W+6R47`9oH2@0!kj!%OneKZ ztRhRLl+s!g(I4kr=L`Jr0;gZ`s%>1jh{FTe`gl39VTA{5$8m75!J=GP!C>5Y(UCoLK$hM0itPqLIMlFcnI>D*3x;i8{G!1y zaqG5QgRn)|U|6tB5hfT6pCkSY#(VI+k5}G%y!$9T==ZjI0MO@$L1O=!z4dO#@*sS9 z2k1a_G#*)LA*Dn_Kh9WQin>KIzF-`uX`3Te!%N^#ZfY1B98Mudm}{s^#!p~216_M$ za><}ffe@&%M$pDU(x<9WuHP_0LQ$dTo@`iY1htBUi#aoxQmJSc3dShT2n+H+G4U;s z@|tWbrIgm1i2iymdAY#IthECwsDtJ?tn To%8u{dlCJ{^HCT)?@zKHE(CKr literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/44.png b/test_pack_image/path1/path1_1/44.png new file mode 100644 index 0000000000000000000000000000000000000000..77212d2fc9c1502d7c0dda59db15f4e73ae4c6f2 GIT binary patch literal 866 zcmeHGF-yZx5I!wvDHO6e=#TU(l zf${ldXo1V_+3x3sloOGYBr^CICfAj8M=L23IzUNoJ Mr^P4=-%h644|Z;HuK)l5 literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/45.png b/test_pack_image/path1/path1_1/45.png new file mode 100644 index 0000000000000000000000000000000000000000..294c81c7a48cf81549a92649e3f57bfe34ff613d GIT binary patch literal 867 zcmeHDF-yZh82zM*rCNxaib8O5%viUcr09W!CU)u8LlBEN1YB;-X2;v?_zeyY4mU=` zA!EiYLN)_gZoI+4;q%15;MfP>`*_QHkM}T+&icLm9suAr?ryW&alHF_@Cnd? z@x^51q=S?a5ra5mst{F!WCOuC&eKLAm4iFr&t7U7S{%$FMpzmsZN{gtSb(W~vPv>2 zQXmAXoe?xKkPN8IwHMS(kkFKyr7vq%SV4^@;h|y{Qz|qaL(Uk*8DUO7XePb|lB&qH z(pnp1i0H59idPH#?*g}9$)0muyHBD^7`7kRPVDfIO}dX)v*AYDwl_!Hu=NH{?k8sJd<60CWfsX&xPpXWW1zOVxPkQ=OyjdH6hf5& z6L9N{pi6*Nz;&s;phd}2b7?ldYO%7CJI&Ig0xe}+X`Vod$VtvrvJV>Nw$&Is0{^?f{a1S89D7e`d=1mx=baNrBErS+?RGgm*!g|vO(1-E&Ch;=#Vn3K H&X@TQYVvRX literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/47.png b/test_pack_image/path1/path1_1/47.png new file mode 100644 index 0000000000000000000000000000000000000000..38d132fb7450e6d572a7da75e148ac8cc8d81cc4 GIT binary patch literal 869 zcmeHDze~eF82w5`OQjg-;;$j2INc(2^dv`*_QHkM}qUPY3e#1WOK!# zOo0%naYoQaK#EaSXpc2qlGId~rLP)ZT1l-Y>0!<-rc`P=fP!<1GQxs<&|H2?q`W5A zN^5P5A)>#YD_$+|zYEO2;vMJMxsSsOIR1RUc48<3KJ7hSB?-Gp9=yBt!!6i5>SV*W P&G~P-7>B{jNs|2lydrTo literal 0 HcmV?d00001 diff --git a/test_pack_image/path1/path1_1/48.png b/test_pack_image/path1/path1_1/48.png new file mode 100644 index 0000000000000000000000000000000000000000..92368a87e8a0960012428286ca15bab34f841d5a GIT binary patch literal 871 zcmeHDF-yZh82z+}rBKM?pi@T2Tf}a9lA;F^nwX_@$ss6390G#eXf`_r9PIdw4h}bF z&CnrZ79nl{mm6>B;P83kUvTV$?|r=Gy~lf=gy+M-!2ke;;v$IM-*LCw?>Szp$4`JB zOfHkLlMYHLL}XFUi%K>fl4X($oM&BuRFCdKym^`BXmK=$2w`cUwz-(XVgaV{$rg%3 zl>s48>x`g_fE1&;)E;ZOB&n%1OJB9TvXVMY(!+vV%&5|I2qotf<%A{qpt<~(NJT@g zmDbuALqvZ)H@sQke;2r0$NSE4>md%W;PmU`#)&-<@TC8GowDQGG-azNU#9>k$@a_a PhOeqvHxYQ}59Q?QgG66lgOn;o-R7kPt&pu>%s zgpBEyMaUR%x$y=;hvx?fi-LvcTJN=$Jj~!3X zXA_Hd(lkXx7G^vzW!)kfCb_^x(&k9j_!h*An;4D;#|sD%HX16EiAz|oLDwFcJmpX( zKnT=WBWOdQlu=bEmo;3HR8;7Vmo~gKl3GR5#he>Vs8nm?4mmQ0)TexmkL$W`z~hXc7Zd%wkG~rX$E1qbMWH$pg*Aw?I-A zIV!ESF@}i#I5)ak;C~mmUB?HmaqB(~FX5#9ym4X312*lxTqjB5&yq*gwr#R|$buEX Uak%|Fd)@!|h2Y~bct1_DA7>SJr2qf` literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/101.png b/test_pack_image/path2/path2_1/101.png new file mode 100644 index 0000000000000000000000000000000000000000..4e3c6033d4e9b62a98be37644ae8e21170bf6070 GIT binary patch literal 873 zcmeH@F-yZx6oqdsYAqJBiQa>hV&PDVhGNbYA3%o4VZxNL3kt=zAWloR zR7xqWH8cNlu5`7)|1NO1jCO5f>meGR!%_2jYr{_9`@ ScKy1gFMbJv!O;IWo+LlSV05DZ literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/102.png b/test_pack_image/path2/path2_1/102.png new file mode 100644 index 0000000000000000000000000000000000000000..95c76e20aa8dc779947ac4d28088fff7da1e0280 GIT binary patch literal 871 zcmeHDF-yZh82v(vmP#QYf{M_Lju|_8lA;F^n%KoHr=S*b2)f)R*(^@k?D&li4mYM_ z#*A5nYzDgAc!Pt(=ZSy8u@AoY@s{@ zN-3>15&iXC^Ll~*UEuC3-m{L*V;r8t(dy&ciX9%XY47zaN&K6qWaFW`6@ml9Z6~{Y Pxh;S5`8W*TkCW^NpX+h| literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/103.png b/test_pack_image/path2/path2_1/103.png new file mode 100644 index 0000000000000000000000000000000000000000..455e7d9de59948850b490332bb4c677054b9f3f0 GIT binary patch literal 873 zcmeH@u}i~16vm$xu@nl~q)x#_2ZxLuJxS362~F(c)XR1K2x1mie~n+&P!-vNJfV#Cm2e*z)GLPKd%eg*S6=*lIN zNd`p>gg~_|f+hr#9+kOryqXCTigLYhWz7mBs8J*w%$UKL3PnedGe%)bn3D^NiEn|F zRb;7@Qd(;w`s3W_W`X}*;C3DLY~$8_6kNi|>hs2iJ?^tn`{jB(g(PuikJE#d(|bJz UZ?^q>n0zdM3HTuJ-%rQs58k77)&Kwi literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/104.png b/test_pack_image/path2/path2_1/104.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8802187d0cc5513b1a9868c1371f25f8441906 GIT binary patch literal 871 zcmeHDF-yZh82xGyOQ9u;gH90~I^HB5JxS362~F(cA|8SgL?NKatpNu+X0zkxA`T8W zX3dx}ix9Vf%Z)d5aQHm&FF5wW_dee8-s3$@!^1&;yAJ>ZaTLVvue;mmbsaC&!zVx& zrpL31lMYHLL}XFM^HSC=l4X($Owu+-s>U}U-n`Uuv^Y*6LRc86Y$i@&J_l3#WOK!# zOo0%naYoQaK#EaSXpc2qlGId~g|8Z3T1l-Y>0!<-rc`PgLBTmi8DT*_XfD4cQeKm5 zrL{K35Yb=H6|WZf-vzFh@s@M!+{NJu?0Ck85YU Q_pig>d@%`w_k;872ea#PdH?_b literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/105.png b/test_pack_image/path2/path2_1/105.png new file mode 100644 index 0000000000000000000000000000000000000000..fef24dad736c28ae031ffadbf5580c5a2ac5ae79 GIT binary patch literal 867 zcmeHDAxi{782#1@9)|}jXwbC5V4Qf-kv()kmfQ7;%|TEOH7r^N+Xlh2ZS&#>R}6v^ zHyx~P;}&7#f@Q!m!C?3t@h=$f!S_C1dGGNaM$tjPx7`DPzBmjM_gCDlb~}zY=T~!p z4vdb*Lnj@SQi#anjOV4STO`XQ7dT1V9H|;ygLw8+%hBRs0x`nOKxH#=0@Ep&Iv|@X z4rL02K#enkHU?6RszUp$;gY1L!ps8I@X|_ZHAx?HZZV}&(=HU8Q=AbN6oBUPTO#E( zxmH?hV+;}f^<46Df&X3L@+;YLj^1q&9mC$o`?(YABIM)l(;2$}?`G$10kHPyZG7In O-v4HcVHCdXpJqSOGjbLH literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/106.png b/test_pack_image/path2/path2_1/106.png new file mode 100644 index 0000000000000000000000000000000000000000..88ffe0fd9dcb1a1cf813ac42c7d1f78c99943b83 GIT binary patch literal 867 zcmeH@p-;m=6vp3z*s`#sNKh3BG&~s%_l5v45~o4z?v~sBpwsVp|E1&U zc`|Y6Mk$4eEXsIZ%DP3eOmcyXw9S#K@hylqFSQ&kju#LitPE5(6PK`Df~kG7x#Cc! zKnT=0BWNQa#i%N@#~Ln4YAVdiR}C+%q*jykFy|IiDm5KI!8t`4VL?75zYYn#*sAl$KJM+zO%c$i5Y;m T**>{?dL92Vh*99b?4Kq-yG?bw literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/108.png b/test_pack_image/path2/path2_1/108.png new file mode 100644 index 0000000000000000000000000000000000000000..d12022e2bc4d688670d9b754cf1e0e5e367f6299 GIT binary patch literal 865 zcmeHDp-#h46uo1DW!XXv0#qfkK~3&L7kGg*Ynj3Ag#@wyq6y|XQpaQ+lQ)?`AfBwP ztgKm5*@T2V`2+%Sd4yj;?j-lz9COaed6`CM!~S6(0EXf`Ox)jbx7+JF-d{hg0lF}~ zoK2i`P)ZR|5NDW|vTliOAW_gFZFAyk^a$e3OD&S6(E?(Em4V7;;u@AqFtyJ%R|sVa zOu&sZf;I+L0au0gf(9i^&4pR{s=?AqZZ%7faAvumZb zHpVdXU(YRX7x>==?!S@)=h%5lqAM7GY;K*{6CuueuQ$Qne0(|>fOp)vu%GGkZ?c#~ J;rq!v`vK%DaRLAU literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/109.png b/test_pack_image/path2/path2_1/109.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ceafbbda8b5e3f182ee193eb499913b5c7a35f GIT binary patch literal 869 zcmeHDF-yZh82xGnL!l6GQV=>io?9pBNs1mwXkr()9)eKRAt=aglEvCFn;pN=!QsY? zX3UtSkijA7a^npS3ZEzb1;;-4-p5E)#-`%F~Io^2qz5?)I zd@>n1>7bNCL>6Z}FJ;{#Sthx_S=#1E)!-V$bC6n&76&tk5tarjn~5`6EWp%#vbo|= zra%bPI3s9dAjPOEbif)eNop$0vacFmT1l-Y8DP#Wrc`R$gMxF4Gs1%Upt<~#NO?`J zmDbuALqvZ)*Sucfe;2s?Otzh4=QfE>VfeASaAHe@eBwWyPwzW74EE>A!Lbj%_wknZ9&a&;FNTBT0RRm7Wt6(V@9v=QIo`IN!uK$8a@Djb5g_5;BW#V!a_r3GJXy7Iq2FYlS>9= z3WPw7HG(z-k{(rsa=eBK5{e4FaAm_vBdAp*9L$-)luAX%P%uVeMp%#wiivN5l-Fci zDW$a5MD*8l!=^W@~W@IM~7A8yy^O z%-D<>vj}lA;Bw;)9UMMS{0okK@V$?>y!Uvs@#t*OKj;I%fS-r4{ag07dyeImeE0xx zV0t$E|u%IOps7i>V+p;RvAH^BH?1e45m~mI)aihigLn|JWx!03#6hU z+e#^=wI-s!o@-t&@V^V(uHt>`xN#qkF5%?s{ll{$5PWVv R9WP(@e)IWo6uzA%`487vbQS;r literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/113.png b/test_pack_image/path2/path2_1/113.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb3584699f5ca7f4a2243a8de0348038bb4cc88 GIT binary patch literal 874 zcmeH@u}i~16vm%Mu@nm#)hReR287bllN3FW(8MloJp`eMLx>=^X>ibv2M%_8qeF)q zvu4bgMTocrTr%F!!Qpx0zu?#h@B8?ck00OjC_L$P_qqVkMtm+`J`T)U0Kb2$2Xzp`P62W;GVy`0=bnx@{vqqo29_MbMO UAFjU~I_mQmfe*uAaXiU>04(ctSO5S3 literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/114.png b/test_pack_image/path2/path2_1/114.png new file mode 100644 index 0000000000000000000000000000000000000000..ad15a333157e60465dcbdf11549fd078862f39b3 GIT binary patch literal 872 zcmeH@F-yci5QQh4aN*z}m8b}&v`puft|aJ+gd|>LcZ(t%ViC02Hl5c9>F&xYEfm%+ zmMK%F5z-m3*>VdDi*d!jV0i=c9|zpD#j=+2rKeIG4U;s%9bpZ zQc7!0M1P!XT`%yz3*3BV+qTiU&*F19{CvN*VUve!>Mk#5;N1CF!NKq~aXo;&Q>Tbt PmXE&xJc`5Tqgn9-1}Ab2 literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/115.png b/test_pack_image/path2/path2_1/115.png new file mode 100644 index 0000000000000000000000000000000000000000..536af35d07af8a8546d9599ae6e993b3b149d645 GIT binary patch literal 873 zcmeHDze~eF82w5FOQDd>pF>8+EJEEpNznrdP1?mRhaePj2o>Zu2_o1rn;k!#97JwR z7a=%h%pznn;Bw;)4i29O{tJ$M@V$=*kH_OZjKbr7Z@UKoeSQ+e_OIDn?>d$@m%E<; z4vbDGLn|$$l!)j@8Ouviw@AhpjN>$IbEIl;1^n4f4MT&2DMSbh4VB6G8O-OPYmZDW z8I&my0yQ=W+6YMcR29ng8zx97D)hpW4J(bHR*`TqX9iO$741R67)2RjK^`b3egslp zlWnDx(pnSIU(Xe<7Wm%qwKAtDw%x2#GYw~n(_x=X3 Uv){?a=H}K~fDgmqac|*B_?o z=`>}^G(yq^Y_{Cu3XA88zhHR-ZywXk4D&pTPR65y5de(&X_(l*ZEt7jSYFGA4#0ug z*?elHg_IHz{WxbuC7K?|_=0gvv%Wy8gInOQZe|!73{r>@RvK!P^9xumK{p$gmhP*m!bCtFq-LA@g3V!;e%R4F=yk}-;N!je2tOneKZq9NN# zDW$b0qQ9OS-YoFH3*4-eed{>5Poi@;`ue=KVvmPxK76@afO9u_dhfak<^%9|w=UD* P@#8n2Powbdc#;1A?SXX6 literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/118.png b/test_pack_image/path2/path2_1/118.png new file mode 100644 index 0000000000000000000000000000000000000000..f460f2e27bb86290d1f13adbab77c6d547f1efcf GIT binary patch literal 870 zcmeHDF-yZh82w5VW3iCIrA`?Imy8`fNznrdN$ld*LlBBO1O>S@n;o;+MfgSsha0oT zEn}8K+yY&05pL)p_<7=AaO{KceZ1wp$9syS(?S2B4*&yx7N+)Z+uLy+%WL`g0pLJ< zJ{enSA*DpbAjw%#iKas`fnXeGSyv#{qdVZQUS=2?9L*p>SZJtC&M#p;2i^E&3dx|# zfDov)M$jcdGN8ItUeGc@LQ$y~zHC`#1a*pphXpg3QKje*O2#P32}|-pG4UmkiiT_} zrIgm1i2izRc(cI&E^xC>ht{$8kVY49yjoscvCl&`ai6cI;N0(Ry|3b-3vl$^`@DV8 OyT9>#9EEQu)BFczopdh% literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/119.png b/test_pack_image/path2/path2_1/119.png new file mode 100644 index 0000000000000000000000000000000000000000..7bd6b9792efd06ac10dc9f2e57efdcf08216abf6 GIT binary patch literal 871 zcmeHDF-yZh82z-Mp-{-6gW{0E!7*buJxQ?#5}LG&TMt1f;t+JXL69JV-3&U|@f#gF z+?X|E+_Drh2nM>`c!Pt(=ZSy8u@AoY@s{@UCs(ZS)y ztQpfSi;%$~;Bt#_LkEZFiT{FQAH475TRwh#&*SKHIM^8gz>uGXiS-Tpn@->AZnXRW z=)?GYGP2R0loApBIAeJwnhweMf^nRsU5-=-x4>WB)G#y{%pgW6G}I>Jm#|oXZagx% zWKg9*2-Mml=wcx0Q(Y?8Z+gZHumn4=mL&E->+@h;vt(jFIUrhmds0e7^uv^8g{T@N;|s=doHQ9y*}DP$>L!Mv!QL1`gt>;&r2HJFQ_z)1CX)<` z1PFm@TLeuABz-D#<@z-fBoyU(?#Y@JMo^_X`)F_mhhHC8Htg_#joL4lF*tWyZ}DWZ{d@rjE&p+C RcKg0Q`vu_rL9jTA(;rG)bW#8S literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/122.png b/test_pack_image/path2/path2_1/122.png new file mode 100644 index 0000000000000000000000000000000000000000..d62b74a0dc3b0aa268306bdce0dc6e14f7034c54 GIT binary patch literal 870 zcmeHDF-yZh82vPgp-{-+qBvyi7;veZS5ow#geL7Gi1ZMIA`U@8Zp~)LYELi< z){GegMTlF#<;EL2IDDS?7aaTGdmnFk@9|#7(M7j&+yQ_tzYG)m_w60Hj^&Mf{seGf zJem%zw2)FFVi0F6FGbxVnLsd(^R&&8s{RA;m6sZZ2K#e}5tbS%lkqE9EI`*jnOrg` zQy>IttP!*^kPN6QlovEikWf_Ur7s&+8bPfh;bG1Urc^5GLBSZs8DT*_C?>uIQeKm7 zrIgZI6VYGKEpHe2-v#bB$&q#3c}k)QoPT}XS#iiiHg#WbXW%^gP`~Y6pSW;3+Pyhj PuLi&Id>DoAgIV?iO+0es literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/123.png b/test_pack_image/path2/path2_1/123.png new file mode 100644 index 0000000000000000000000000000000000000000..7e706092967a24751b83c72f590112e16f8f9a69 GIT binary patch literal 869 zcmeHGF-yZh82w5rmO>%mqSYazW5$l2r09W!CU)tTLr{u11YB;DY<4r79lz1R;oRaR z8M73!2-ys{+;~F=!Os)_f@2?i@8d0x$Afo22~P(7VIKen{4|K|@7mk$IhJ={4?X}K zn4C?=R$53Y5z&t_mY1S#k&G`G$9dZ3NY&^D_>-F&h6YD-h!B<Pu*YTcp?A*rTIUIeyUs|!l12*kFUL=Wsb(eIVx2*>les{9f Q%l_}6fRDrA`8dgb0N-J9`2YX_ literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/124.png b/test_pack_image/path2/path2_1/124.png new file mode 100644 index 0000000000000000000000000000000000000000..ff7df3c7dac54e040f93993e60d38406566b8db0 GIT binary patch literal 863 zcmeHDu}Z^G6uq^Br4Y#Cpi?#-Gj{Bi6n!9}i3M@%Lr{u31YF*l&5oJ0lU(TH;PA#w zLdJ|)3K;_~ZxP<$;BbB7FF5wVJ(shbb2yLF_{19?3<1Csr%~$uj=SAK-|^o1ZVk|f z>Dg@Jq=Qn5h{7btqLNKVY(t5H7Fkyi*Q0w7uYP8cER7bB5UdQ;HW!z$T!Lu=wuM5d zGGGF3oe^{iunM^@wI8-9S!yoLDo`y}R&u9V`c$B$j4RDYP$F`YGnE{GM)@s?i-uh* zt+g?Rng4ojdAq>>E^zym?mNfcLmHpM_+xYJgeM}L4W6&UoB8_~{Fh$-d3f>kn=2-9 J^maVYe*hQWaYFzA literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/125.png b/test_pack_image/path2/path2_1/125.png new file mode 100644 index 0000000000000000000000000000000000000000..b1bef0a32b97ae9843583363136ba99c5afbf8bb GIT binary patch literal 869 zcmeHDF-yZh82v&8OQ8^OvFebiIA+Y)lN3Fa(8Mlo9)eQTA?R{zHoKY4ZhoVK!;R^f zF*s!rvKi>$jW;+re4h9h9Q)vVA8&c@@g648VZXQ21Asn13KRP`>}_^CmbaIC9{?Sg zoJ_}7T1Y7o(T_8hm!fWwj4v3+S=#1ERd5UZ#Z3)EgTV}9goTF6Wc&=~bI`R%CYKD# z6bOMDYXof!Bz>w1<@ya1Boq~T;mL-TMo_CrxR^78DV2)$p6Z2^Xv!2&T=9E literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/126.png b/test_pack_image/path2/path2_1/126.png new file mode 100644 index 0000000000000000000000000000000000000000..d372972bec4aa78e9b68ebe879c51edd98cd5928 GIT binary patch literal 866 zcmeHDu}Z^G6unZUp-{-GOXKF4v7@)7>H`T)?BdpkAQW*32=YcVX~%4KyrYA|8?$E2 zm_R|)WgW1J= z>ZF5GiipA_$D)!=M{Glhf|glV5ZB{75U+k_kt~gukPxg5)HWAauv&p>0=9)hs4`#z zZk-Wy39t&eF0~)FC|PPQ%{ovmR#tMSS^89rq z&IN-q1wx?46hRvS36H8m+FrvraY==mJECEw=G02!Hs(xYN~I(h3dShP2n%vRGXBkx z@|p~llu{{0M1PzMT`cgw3tWE1>!z`D6Ne|T|M`Al!dl?7arfbDGVNTu$?Eyzwrfv! XE!cZny5HG)z568yhN1s*Fv)%Zc!YCG literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/128.png b/test_pack_image/path2/path2_1/128.png new file mode 100644 index 0000000000000000000000000000000000000000..b78a1efe423d082d4ad56783df2e3b202a841102 GIT binary patch literal 1687 zcmcIlO>f*p7Pn4Xhpeodzuou&kGdrVU%>$Kfn1-MG@<&4=msCQ;(0Lt>cW}Ki(eD<9+Hd z_4a${*3<=pm=^?1<8hL^)2=$>bzv;0brsDZ#eP@akOtA7zk@uHabz`YjpCMt+D-%8 z&6eZ5i%bJ|bfcr=riN{|Ww@q^%1Z@n84KOr-utC3`0A>oqDWm`pG+o=NwXocp^hEL z(G62KO$`uQev}ksswMf_f}zKAnnh_5i3CYT5{QGMtAf(G3vpV}CV3eq2$()4sg4_l zbZG(f{mY?oT%q$~^AN0*dY?(04~|l<@A6z6WR!0n@}yW>7-O{Bn;vB2nWv2Ee9U8j z z-c{wghD{B(2iS63w%f$-7#-Iz=1?C>fsukN2No;}kCuV@zS~dof+UppdtDVoHKK^Q z*tDBC;HKt;w5^5BR$Fr{%hqgW5zDYGGbDJX3-%(i4Rn@nStMQqDrtR3(L+r2D;!$ZawS*0oljBsSI9Xf$Vji#+R?G`*7$I@uf z3M|JqoDc&Kqi!g&m_VsSF&T0_O@=CZs>Tyzk@*`$KwU!Rx#+4?76fN%IUPMC%*#16r=5&A zkX}+Hb676IVnQ;$F@%&XQ;7QW^ylR8a`np<$^Waq3@#m!WXPe_>Z`FohLw@LAz#u{qz;IdavKx7_9torK5a*uKc*VdVYRhyL#is zAOHMbyL$7DCx1V#)!#&qPETqttgrui_Dik4wtjN@bFGfhqqCD*{pRaW&K`fe@#@-V T`NQAjucN=Y-TV5^$DjTS`s5DQ literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/129.png b/test_pack_image/path2/path2_1/129.png new file mode 100644 index 0000000000000000000000000000000000000000..afe03daa75f5acf555bb87d5ee85d6dd038ee71f GIT binary patch literal 1864 zcmcIl&yU+g6gCwqWl_a}1E@mCxI&_0C-&I!Pc?0`$2(#h6Ja}EAa!n<(d7<^y+tbYZ5PbVu^GD&*ox#E37`h4#NNjm;% z*jdll{Wm-+q6%Rm;FVF7fVCu@JwHka-Q>9(@Lm|#l>0yID{{zc%4O5n{G`GA;mU5x zFYT^&=ulsGeAyO`z z6$?>ZHD%kaV9Thw?xL(~*ikh{#RkHbSJgaSm#2>c-cr`})|#(ReL=6L^z%INRCPEU zR)$7Jq&*e8uB&Rgs_O_WP_`52WQ5}EbcxX98BN0^4@E2&h$IkOc})SPlMte01{-J7 zG(p1D5lK{B(Tb2tL*GBzG>T@{S-!jtUZ#8x1#GouxyYwhG8bx7T`PIu| z%)~G|Q;?dj;Z2hBno`UotRrl9u<4n)r#r7{j;Co8Qy-+jNKWQ67A)-U%wy{NUMtRW z5>wu4))XLB2}9n0Y%uXQsfYWp)SKZVLCN&;FM@@rXg$|GB}7@uwsCy*_=Dnz{oI| zg{=Gm zD_D^k^|~UB2xu*gNRO*Y+$)q1G$7oSFoQDhO!v|y{`Ryr2<5RrJwl6pQB!Ck2o8iM z!{H%mo-d%u`eB~~=n*QJm}R1y4@t`FJt)aMLR25eKO@^mv!72S|1bM#a%rE$Jq|~$ zsuc04#i2AQjr!lJJ(5Q$u{wyqsA)FM#1iSva&qo)MF&i`G{+2(jk$(&yJ{m>2Svjk zA(m+}W(R!2Vi1;mCa~(!{>RJ@9IxeKIJ1l9?6QE)?7HDG1fIfW^835^DqKWwwVL(L ziJ$3@ue^Ns&Yds*df?t*!G&Xsi;8mLk3WC0H$MJo@y71M-_E@M(^t2on=d{5{;6NT zxqVBz{rCR;>->}Y-aGr>zUMA%@cp~@*7?o)@oU#UjGvX%z2_e&-?hIi?z-0UYV+%* HjqCpazzk9o literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/50.png b/test_pack_image/path2/path2_1/50.png new file mode 100644 index 0000000000000000000000000000000000000000..ff56400bd9a83698b3a8b3361b4fd07d9fc34260 GIT binary patch literal 873 zcmeH@u}i~16vm$hu@(!N6rC~(F4SY9KM40b?aej-bofCKTVJxj+;XhWO#~!;Ds$!fH4`Kh<$CJLniWP+qe!@zF@p&einbtUjG~kex3YG3`T4pE VJ2#6DZ%^C9Ujp6_gO|PI^as9Rbl3m@ literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/51.png b/test_pack_image/path2/path2_1/51.png new file mode 100644 index 0000000000000000000000000000000000000000..efcde487c1d5c44c11df5c8b1675ae49182bf6c9 GIT binary patch literal 873 zcmeH@u}i~16vm$hV<{A}iB26mW@~ZsBt;J-G_gw;@hB)o1OtNH8gQ^l^krTaMMGym<$3 zV01Jd+GtNoiHLrbvaAqQgJgWcIL?wLLn;TCz@NRuFf=%rL4>f-P@0raU_J+3b;)Fs zL6HCdGScIfDgmqW&bq&0ldX^5&!@I literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/52.png b/test_pack_image/path2/path2_1/52.png new file mode 100644 index 0000000000000000000000000000000000000000..14d9f4abb12de429f9430296cc55ac9a49c5b841 GIT binary patch literal 874 zcmeH@u}i~16vm$xF%$|x7ZrzWItE-idL=~rJWIvuNXdHVs- zf$(TNw9%fF5)u6Ffe2xyp)wgih3OP@?UBhP zgE9p|pvD$K8v#k5szSMb!vqOMg`Rn`VWkn&DiSW{%wS5TqFpE$qbMUR$OFa1w?N8k zvQ$bbtu+z-aV~VR!2d3AHIFxK<2jhbk_g? literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/53.png b/test_pack_image/path2/path2_1/53.png new file mode 100644 index 0000000000000000000000000000000000000000..db7f37bc352023786ba9bfb0a24fb6b3e84e77a4 GIT binary patch literal 876 zcmeH@u}i~16vm$xYbjLXXr~Mgj@g>Arzv_Mp^04thaQ3w#33Nat=a4taIjn7=-_Z; z){Ggm2yqLz+;~Glhv$j^f@2@N@8erOetb{U@O020_5onP&w|+cj{V(U$Ld->egJe} zdOn-jXirLsh+dSjycBhdWIVw*CTW`^RsKEjS0^$@nEK7NBdFOfDIe zDG&lRwg}n?NP1Ki%JCW|NGK}w(v=M>ji6SMa4=^EQz{i5LBSYB8DT*#C?>uIQeKm# zQc7v9iRh1Wqnic(cY(Wgd|(^59^&u<#-HyuHVk>dX1$kdZ#24{&q27!-b!2@?svPu UPPU)F{PF4+f=|NW?RcL300`uCr2qf` literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/54.png b/test_pack_image/path2/path2_1/54.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb5949f84d0bff30b4c47f7a0308c8f919419b1 GIT binary patch literal 874 zcmeH@u}i~16vm$xu@(by5p~Mwn9WY&Ns1mwXkr()90jF_LqL#Qv)M7?VBOy6pm1Z> zj2W{C=@#g6;|(1;JWu==9Q)vXAK&uv<9i;47f$b}2LKMg3}WkB_P4tot4sMb2k5}? zYBaFXo|F<1{U~F3De4x<_=0hqq-~B=^&fzLxT#@ius?waVWy!n8NY$)6m;#8$t8m_ z1wx?47C{>UNuR1hxqib02}OmTd9q=p5!5OYF6PW&N~NM>C>WzCBP_@R#l%V=hqiI!F%GZcZ1H_-!vPQ2sQWff{FA#R0pab8%e`QK7f!!6 SUsuli%P#^Sgu&-|lKlWMF?8qv literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/55.png b/test_pack_image/path2/path2_1/55.png new file mode 100644 index 0000000000000000000000000000000000000000..7a460317ddcb95ed016566e4f028b4e61c27d6bc GIT binary patch literal 870 zcmeHDF-yZh82xI|mO>$*gF0n&yfLFEDSA*s6T5WlAqYhr0)pI{MXXykJAR{s;Eh=` zW(Rl`dwsnsMs%(=ysN=-*la87YXSdb5z%WsL4*W_Ah zt&K56^w)F4n+5)Nfva_L;2b+QNpud!pKq5=?1_+1`;Ql_x3%N3yWRaU0|-7kU%|uc O%Wu3GMd9eggDh za+Zv3v?rxRL>A?|s6^8t876pu)2u6y>d_qpZ*FEd8XQd_LRe_1O&(mpd=9$t$P|)8 zl>s48Ym1-oe+ds0e7^rDQZLR1Zs@dV?zN*je#jvj!&IjLc2aI}I5VbelsGJXr|HMEsWMo9)m z3WPwlErKQjk{*@0cD$Mi5}NXMk&0Kib3Mydas{R2H z145wI8$p)BEQ6m^DFfCYD$QDx`|O3o?C2}=sWaP_T_iiUhE zV~n+yi2i!6dA-2@E^zae?t90LhcrHi@yGj>7ds;2v;Nbil#*SKfgQru8{EI{$W10T|&3kda literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/59.png b/test_pack_image/path2/path2_1/59.png new file mode 100644 index 0000000000000000000000000000000000000000..1854948a028b4f2dc8112dd5ae62d6d3621ae100 GIT binary patch literal 869 zcmeHDF-yZh82xM^Ermir9CV6X$BZ34NznrdNzCHbLlBBOgu2|C&5qgZ_(2y3ha0nI z%$P+8P6sYG-r(TydE#Gi?1S%pyyd;edrsnu>EvVr08@S$W$q8$jmAUAN4tj|zz~wF zeBq>nloAocv}9EyI*nvQ!8oo8T_LseN8qo1VHsMSuOLO(8fb0FZ(y?l(*|jQd=uO?3o~;s5aX`_N=jjv?AeS#Vi)oD4Idd7^Nj)O#vt-z6Da%k!z)t zGR6?mU(Y@77x>==?!U5Q=Xmgx#n*85`F`ibA&*!-ez{%3VC~Jq(dpU)FM*F-C-rYS LU&PVd`Lg^0l!I|$ literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/60.png b/test_pack_image/path2/path2_1/60.png new file mode 100644 index 0000000000000000000000000000000000000000..45fa7b89b354e0d86bdedc1cf7b8df4d47c04359 GIT binary patch literal 867 zcmeHDp-Kc%6urv|E(;4Q8dMAu48}nW8@B%9I(9jg28Zo;x8EYz&)2!&N-Ziad_10Zg&BoCys;I{S|ksowno6x1A4w zHjGavBPSh{QbgoODQ1PN8e;296f{ekjJOJVWx^(&{eE@LyRhZbnZ||_zwY-r}-vC`0 zUr$C>T1Y7o(T_8hm!fWwj4v3+S=#1E)$kGcyPFz@28T0<5tbS%lkrIttP!*^ko2i4l{93&~slltTcjJMZ&|J8BD2EvcsR*^0A0*-O8@`> literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/63.png b/test_pack_image/path2/path2_1/63.png new file mode 100644 index 0000000000000000000000000000000000000000..25423eefc3c01f9cf40c259429f834f017003b17 GIT binary patch literal 872 zcmeH@u}i~16vkhuU?>zaiHbwO#ql;fdXl0C5}MdSw;V#H6o-IIHpynkAc7s==-_ah z>6kHtLlz;M0hb$ZaBz5@_%As2!TUbG<>SY9KMqd@{oOtQ48&;=Ti>w1>GrH{ul7Cw zdN4kljBK=*Wf>x}DCb2bn-0k^$py~Ru0X1XHz1z9)NnL7oI!-J)KHsTT*6`jy79>r z8HXwbLZH?bK^FmKjOtQ(tmTrVqEavYtmT!F)G3l47TjP;m7)VEIj1NmEXfDO<+nsC z8nRSMDXldT{c)~!y}44T2aBw)E_%As2;J)L#;p4|Q8Tp5U{&pV#2Hueq>bs%0XLPiFxHJ9e z!034FYO5zrQ$)0bjO8V-TO?(3=3$()IZ`#e0`J*O6hno>7y^X3gi2-JDNLszYl~E# zGAI)u1Zs2;v;k0RQ&kAlZWt#nsE~6jZCI%|wSu^bIa8QWDQFi8#wf@L3$j2k{>_o{ znlzOVLP|+Qf1FEQHt@d!GX7BlW2 bA->z|zI5U3c5U`~Jvsj+@m$||J&3X&N40jT literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/65.png b/test_pack_image/path2/path2_1/65.png new file mode 100644 index 0000000000000000000000000000000000000000..d7a01023b8bca185a45bf5bd57b480df5589b945 GIT binary patch literal 874 zcmeHGF-yZh82u!OrBcYKPQl6XChh1+YI`81NxQh^5R@Vg0YPrfW;e6h@tefK;l`{P zGiDLu7RYkr4ILalPy7pxeek`Hw>%yX-t%la9`uj;05A}fFm`{}-CoagyireI03OV) z79%Gelv0SuqKxOItXm|@Bp0|$+Z?GHK7e@lQ_Iofa0wB@+CXJ9aSf{#m^vVvD-LA} zgg}imf;IwDjH*KWtl^TRroyZP)$r0vYBfn8b8a!EQqu_(oKut$78HQy@>?S1HMvw; zYhw%%{pH;9wt@d`;C>SyI>(*Icshsk?(^1(0}=8?@AW2OXLm`$#+O~!y&We2lNZmM QpYH!I3B+g`eq1Ek4^O&v7ytkO literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/66.png b/test_pack_image/path2/path2_1/66.png new file mode 100644 index 0000000000000000000000000000000000000000..905621d926bd0a9e614359e2d5f0f1ead0d4fee2 GIT binary patch literal 873 zcmeH@y-UPE5XDD=7!D57`B9~`OywO`uH?`K2}!)hE{mcZVi6Ez+ce^p+ufB@T3Bou z%ake82)Qm`lX8nI1jiNs1KRLN;0T& zAOvb{5p)TV45%)(7qm=}&{XzIU$(3=f;vsYL&Xf{RB1Ydk}*mO!jgQ@OneC>)sUsq zTK9cVM1Pzc-7N6G3*4{MecQP8m`0ay^7(OV!!8fm)LmQ$qtRWK1<(G?k#hF{;&f{t0F9X(0W0|`y+;+8{DiaJCDxiy;|v)S>D4h}bF z&1S|dLb?UI+;~F=hv$j^f@2@N@8erOetfUv;Jnw}?*c%NU-*&rP5axOw$+tDu<82-<`xTG&r0>h%nbsnv`F|YzDe=$z+m2 zkpLl3ZHu4@fuu)et{kssf`p=6&s|xw!U$><2?sM~Frh-xG31OB;P83iUvTV$?|nRYJRa|P7M~3LLmvQ!;xtO#-*vY)@EmW{!xw-D zv-A1XNe87ABC@35Wi8tt$uh|WF7m!aYQ}dU-h$k6v^ZWsg0M2s*g{;watWpl$(D*k zodY3I=YpV5fE1&q(gEwZB&n$~t59{kwvu{HGQg5s%&FFN1Qq9$6oeIppt<~!NM%c| zmDbuALqvZ)x4d28e;2sjqz5i>=RS=u;Q0IV+KGJ;@%iBOij77$S;jt|);a??d-Obi P^0IaY5Ysq%pJc@^>92H< literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/69.png b/test_pack_image/path2/path2_1/69.png new file mode 100644 index 0000000000000000000000000000000000000000..3c51c8c8abe09ad7da03bd59a4fff2cc2158108e GIT binary patch literal 875 zcmeH@u}i~16vm$krlqtHaIsDq9dGQ|lN1e<(8Mlo9)eIrBp}GG84B%~&5mz$aJVsR zz$IfBA%a7|<;EL2I6P1M7aaTGeIMWQ@#9;~;`2f8qz3?l=psz5AKLG9U8_6!^a0?) zY&xIVXirLsh%Cu@QHgDfWSHO)F0!^jsz>(_z4)2oXmGTE1Yx70HhFXf>ow?YK&Fr! zstgE$8e0Ty0wfvLrSe(B1qnr^-UPDYl@Zh`50L8_(Kq|Im zsgzP$Ya;sN-0OaU|6Sm2mkw>?!DAX(N{W^!{j literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/70.png b/test_pack_image/path2/path2_1/70.png new file mode 100644 index 0000000000000000000000000000000000000000..b9eb3feaf8958851f7f4e3f333c3147b0d7bafa5 GIT binary patch literal 873 zcmeH@u}i~16vm$^wxv)AIEYTc$??Vx4xXgd1Bp%S;vyb`P{bi1$gSDzn9YuFba1#y zvPr-tV-_K90hb$Z=-}`?@n3N4gZF)W%g2xJaT*;D2fG6R7>biHalYxk*Y7x8sfSO1 z4opvHV;9{ir4W(D8P7{uw@8*rE^wZgg;@rw;iZ+-YLY(Y++s?lrhO3dP-EQD{Z0mip_XaRQ T@ABX^I{PIM<0yPNy2^e4fmCvg literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/71.png b/test_pack_image/path2/path2_1/71.png new file mode 100644 index 0000000000000000000000000000000000000000..df6ed33ac23b5dae3dda7794f4ba06865c025bb9 GIT binary patch literal 875 zcmeH@y-UMT6veN^k6Nt6rBJ7!i(|HS^ht_+Afbs}-0~2WA`SsT-kQyh+3a{n2ZuLi z&6qKZ5VwHK1D7{+aJWA4UvTV&dk$wg{5a3k@VwVO>;gcKPlDL`mi?WMV|68;J^&n; zUd+Ze+LKZuq90`}FGbxV8DB7t^R&&8s?h`RS2r~b4UXmzAuKgiCgWGISb(lQGPz_> zra%bP*dk~nAn8+8DA#Y8Afc$xOHVeeG=f@1!o{2!OsQ0K0tI6fWrPKJpqTg;NO?_` zN-3qaCZa#iwXPTV-v#bh@xV52JjUTAoPNIF+A!b&n{{5U6Ms0oOW=3YV2}A literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/72.png b/test_pack_image/path2/path2_1/72.png new file mode 100644 index 0000000000000000000000000000000000000000..4b5b393a0e9bf5806d5ad5c46f9ce8e4e5a0ddea GIT binary patch literal 870 zcmeHDu}Z^G6ulC}QYd6_P^T<{W5$lXlA;eKG_i|YAA(ZEAt1>F4(DkSpA7m3eE=AU(PXxwwSI0!$OIEfhkP z0TXcRjG#+^RmgRz{jf#JQgdmRfoid`k~_`PrvfcyTxmXn5|NXfspJ4O%5OGaCiLX!YUm0h}Fr-piwU N|BV;pIC?vtAvumZb zHpVdXU(YRX7x>==?!S@)=h%5lqAM7GY;K*{6CuueuQ$Qne0(|>fOp)vu%GGkZ?c#~ J;rq!v`vK%DaRLAU literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/74.png b/test_pack_image/path2/path2_1/74.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0581a5daf268e3c8569aa24751a75f75de3d01 GIT binary patch literal 867 zcmeH@p=-lH6vkhfXb2QCnAue1WMpM;q;$tdXtJ8R9EFuKCIT~O<5n3lSm&Ocm^c|5 zF%cOvhz!)6JTX|s+lBoLlYQ{M$IpE4<9nV*vypq@0>Fr0hl#x>c85-{KkMOJ&-2^G z)S?|JB_alK&WcJj9g+zIQZ?@%LEBUrQZ3nWt9=sDH0wQ%wR^9qDv?lqc|rl$p^*6K_C?k*;Gm? ztu+z-)ygC581+bU8TV~oqYPP17~J%Gh3!F{ck>v J!jG#o{{@O%amfGx literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/75.png b/test_pack_image/path2/path2_1/75.png new file mode 100644 index 0000000000000000000000000000000000000000..21a467847e22ae6a8934a2099e8320ab78ab98c2 GIT binary patch literal 875 zcmeH@u}i~16vm%cu@ov<>lD<%F=NM`r09W!Chg*uLr{u11Vp(to5d;MUw}V-%)@Ik}*i_!dZ6 zMV3k_rL`uaKhBk|7Wm%J?q Vz~E{9;q~K2{4(%i;J+Nk=?|)wb(sJF literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/76.png b/test_pack_image/path2/path2_1/76.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2250be23ea16294f248d53526dc1e1ae7dcdb9 GIT binary patch literal 868 zcmeHDAxi{782y$*JPr;Po2Ct-#)%hiWDgyX<#xSda}bn63=4t`THNNvX&$C88VnP+ zZrr#il|!`yLnIGRI>u(VLSLY%>30k(F&-Y6&wnWTl{pSmI1;NX1$i@Ks_rcd=w)gNG ME+$F*c6eU=0A0>;^8f$< literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/77.png b/test_pack_image/path2/path2_1/77.png new file mode 100644 index 0000000000000000000000000000000000000000..03727ffb0c6aa40fa5505b2282863dcde9298f68 GIT binary patch literal 877 zcmeH@txv;H6vgjofThWjT0TT2^2voDc%%z7ux2eY7_tWmWFd%Vm}l#ltYh*jfsZ~5mLC8P zjLyab8|_Ic5s}3i&r4CaNQMa>;xuh@q^f@p;ft3Vjt2Wvh!GYVDwBm5FrS02eKNV^ zP^Lf#)Yu|uV<5?>DwM|>E=VXU^um`7FO8s9k?=6*22&~(?Lomg#Tj8iJ}54}1yWv< zrBX_1t%>N5bET^V{&#`9uVl+Mb{>-G91cIT?Z%r-V4xW8? Wy#r$C?6cGK@|PkUM8WIPB>MqdvvjBc literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/78.png b/test_pack_image/path2/path2_1/78.png new file mode 100644 index 0000000000000000000000000000000000000000..a72355ded551f3acf82fc604e15a20ff638e4855 GIT binary patch literal 872 zcmeH@u}i~16vm$fu@(w(5$hBwg5!-HJxS4n5}LG&TMt1gA`%qj)@*jnX2&-=INX>u zW5z5(+yX8KE;n>=c%Jw#IQGH&KECDS$M-ym&U@X%E&%kzMVL6>cE8i{oUYZ=2Y?5Y z@oeOxJEasNvN+>;DeD%=GRXxl(l$q`hIb%d{nT=_I9x!Curg5DOkBcp38oIn=88j^ z0wGZ2ilB{w6r-xpK5Munsi`olKsCIyl3GpD$DCVCsnm1=1?LoJgarklx%`$$c}?j-T}b)-t&&X P2IVh+7)9aR**yCJBLQ-$ literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/79.png b/test_pack_image/path2/path2_1/79.png new file mode 100644 index 0000000000000000000000000000000000000000..b3b4ef7c44543809fe2c58f1dae8f1cd03fb14a6 GIT binary patch literal 873 zcmeH@u}i~16vm%Kv=#~(1W`Iv)S>DA`UlZ z%^0^VLI#I`pf}#&;P5>0UvTV$_kDcJ$B*xR5*+lpJ6!k7p8|_Ic5z!AbmY1S#k&G`G$7$N;NY(Hb_@kQ|h6aaI2oV+-P;5tcW7f+k<#wx(c Tr{m1dPd|PM_&69n?GvB)2uAS5n(R2~F&xQw~8X;t&wz)@*hRIM~7AjSdbs zX3dx}ix9Vf%Z)d5aCn~hFF5wW`#!$qg5u&^Amue# zDy5Xxnuz{5H@aEie;2r0$49nt>md#=;Oy(;#)iYd=kxB%H5&|WlZ1`W*@3se3zMtu R=i#Y&{RId{q5nQivL7&|b6Wra literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/81.png b/test_pack_image/path2/path2_1/81.png new file mode 100644 index 0000000000000000000000000000000000000000..3a9f3b8b68dcc38bfb9532bf6431b7bb4278ef31 GIT binary patch literal 874 zcmeH@F-yci5QRq$^gK97VWA?DN-Wdem9FH_1qqiJ1iP$)a)@HUW;;pem8tZ~DMc){ zOeZO0mqtio5wO{E3k#8P#lK*A1M?oQd3?OPaj@6#t@i++&-eYv`l9`%ZpZ3I@cItW zf$>2+veBND5)r*HV|gj+7Rh*mah#-Wj#LdVfj>H_VQ6qTfe>M)p)wgihUpY^?UKnQ zgE9p|pvD$K8v;p>szNzl!vqOMg`T;xVWkn&DiRLn%wS5TqHQP`qc9^Z$OXm3mq5yE zvQ$bbtu+z-an5zV!2d3A@foez#)X?GIE0;#w=)}7xzFP6!)f9T2Iom~d-AjrFWy`vDF?bkYC- literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/82.png b/test_pack_image/path2/path2_1/82.png new file mode 100644 index 0000000000000000000000000000000000000000..6e715e9b244d2b52d3ac8bdbb6f0f35dc14c8b05 GIT binary patch literal 871 zcmeHDF-yZh82u!OwNS{QpiaTb@wRsKq_rN{(8MloIRvGML!cnHX0u~9JAR{s!%dns zW5z5(+yX8)-q69}^Tfa4*azSHc*}c__cRU1z3x#L0D9tL7`wmiZl~ipUaQAX01u{@ zvyqbyN-0ESQO5I9)-94{k_()tZH`n89zeYKspV*KFoy_XWuUT|xQ68tOdXKT6^Akf zLZHSOK^p-nMpdDG)^JHuQ(;ztYItcSwVI@lIk%Wnsp$j?&MC?W3kpDU`7M$1np`Wb zwK0Z>{(5eBv%vo@aKDZZo#WOb4zJ+!>*LmmeKF*-&hriH_wSN~jn5B`6M)H{=k2~P O-hT7NC>*|?CD{+PSaOE| literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/83.png b/test_pack_image/path2/path2_1/83.png new file mode 100644 index 0000000000000000000000000000000000000000..9cb2d37cdda3d3e64804ef0817ee8fe407946067 GIT binary patch literal 877 zcmeH@y-UMT6veL=u@nkf{TPCSIKHjL$tNiqkkG^~F49LqDdG?)$Xm0B9kba*xTAx^ z8#5I%X3{J|+yY(R_=XA&*C+l9j=gZt;Vg$A=b;~*v|HOP0BHNCUSxg4{${gbbt&&Y z0UFRh8}w|nC#6J07A8E+MOh;mCb*B|xK5FZ?k)JwPHZ?D?2aKsm}w|X;$OgY3c7U3 zq>@7(10hgli=YmHB%>lz4y(8zp(xWcS5`bXf@(#=!IT?}DOYp=8Rrxxgc-S@xcC-G zX-Sq!DW$b0qCd`+t`_*;1#XtnmTg>{M8P>6Ek3Sn*zr9+Xg-dHtkbz3!k)wK-`M-^ Y{_7mzaI}8;wRoERQuw{VdpRB^Kd^mwPXGV_ literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/84.png b/test_pack_image/path2/path2_1/84.png new file mode 100644 index 0000000000000000000000000000000000000000..654852ee9744a4e5ea0c40d433c4efd26ed0e05f GIT binary patch literal 869 zcmeHDu}Z^G6uq_3mO>%WNpZ-gZW%jzB}E^U(8MloJ_MnNLqLSLX0teDv*R5d9Nw5s zGR7^7kU=ou^2RqPI9#9j3ywW-&*d!V9M0W5Ivx#oh5#@UCt>1#&s~4eb-WwBya9A! zK3hzkbWlnWQ4nXCm$Gh&Z6Hz5GHr9>YH|(Y(Mv6orO6Uvg0+FlX5tK1D=@XsHdhE` z3QWL_GlDh-RsmOq_JRf_OU;E@`>MgxN^Uhvk8-q>a;bSA3Pg@Grh{k NZ@QR9;nUH1_5+cRam4@t literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/85.png b/test_pack_image/path2/path2_1/85.png new file mode 100644 index 0000000000000000000000000000000000000000..88fa2c1c29921a331e8dcf41b5962b7578dec0bc GIT binary patch literal 869 zcmeHDu}Z^G6unx-QYZvms#8YCjNSA~iUuS!F^jnLAtMlNr4igJ77pcTDCJV|9u$ZiWlROTpiq1Z;=E?t zN-3qaX6C=1D_$+|zYENk@s4#|yNSb7IQaUwv|>B(G3h>Ccvq9x`@uVI3;_0%^~c%W P`P*-LFbe&b!%6l7_`!3( literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/86.png b/test_pack_image/path2/path2_1/86.png new file mode 100644 index 0000000000000000000000000000000000000000..9f0d778ca2775e65b99e40cfdd3e6021c48009ca GIT binary patch literal 874 zcmeH@u}i~16vm%MYzY)Hs)z)1aJ;djCoMHlLKC~VNDe_M;t+7THIsG>E_Qr_po7pG zvu2E279oQ}z~#mp92}k}{tJ$M@V<|4`S|hOPr^~p-Eje+7n}@Y>znpFUB~Kf`1S$d zz+^lf+GtNoiHI!9cwUOSMKVnA0B32NBUSwy2wuF@a5UJTL4>f-P?;<^gZUhE?UTtR zhcX31pvD$K8v#j1RiQlAa6v**p%=bvcxeQ+iiC$bH<(hX=nx9dDar^7@ zER|A9YfVIdoGV=|@V^UOf5qFjaqTt^PvPkE{nCc5V8Ex{#|w6qB&@SPcJKIs^RVH- UC|o~(T0ZanA_T*5@OqqNKibZ75dZ)H literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/87.png b/test_pack_image/path2/path2_1/87.png new file mode 100644 index 0000000000000000000000000000000000000000..05c42f2f2faee3d341ff567f0f9ca07e8c9d964c GIT binary patch literal 876 zcmeH@u}i~16vki8U?>zaxY#M(91nCTPM)M_KtmI|xOoUlQHQ9@tyzj4vst${Iyl^z zHDeHjEJDVh%Z)dPC_GR67aaTGeIMWQ@#DK2M|-_)zY74pa6d?_yY^RI$Lh-L`x3x` z@xf$dqdh4lBCf zR7xqWH4*)BE_J!U|1NOxk*wRs&TSGM!Or{ZnGO9g;1l=$l$}H8hGm;Cp7&6`4Yt+* Vu0Nga!{^!H7a|-*!PD+Z_5*=cbwU6D literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/88.png b/test_pack_image/path2/path2_1/88.png new file mode 100644 index 0000000000000000000000000000000000000000..019495078e58d740288b6c34c25fb610cf4d74fd GIT binary patch literal 874 zcmeH@u}i~16vm$xv=j;%98@|4L39k_&_(bhMGqu2v5Q*{K`H7G=yIDx7dvLN;~P6T z+?X|!#4U@EK_uXE;|&fD&lCRz$3A%9$G3d^_#TJBaksPC0e~()@gwUi_E+02tG(d$ z9iRon)6u|2ds0e7^um;7g{T@N;|a!boHQ9y*}nxocM`+UV1EoD!c0SHQhpB8Dd@^2 zlSu|e0)#-dErKQlk{*@0a=e-e5{hy?b7jp6BdAd%9L$)(gbGEwkTXVMN|=)iiivN5 zlvQM@lu}x2BKqT8=wgBYUEumF+OUmFlPEZY!_T)%8`incM(w8y?<$V(V&?_6KY9=Q XYXAo~%R77bTa#Y|J_!8hqd5Hm_Dyq# literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/89.png b/test_pack_image/path2/path2_1/89.png new file mode 100644 index 0000000000000000000000000000000000000000..c39f931e205b971884fbc40928a031288286071f GIT binary patch literal 874 zcmeH@F-yZx6oqfBwxw8zPAU!omyQ`biBD2$Ktd9`xaA=zMH~VmyfvEz2eaAnjt&lQ z%$hN7S%eG@0hhN3Z*Xw9KJhO&_QE}fvm8FoeHcuKgS`O&4E+-?Hr_Sg>vxRq2e0n{ z9SBcn6BEq|ArR4xGM1OTZjrRhnUC|d&5^3{4fxM?su^k=&mlrsDyVekpTlASs&+`{ zf_o{ znhcecQYl45f1E2_E%3h!Tz|#8rqQ~MgEKh#c)K)V$M@K*|8(JAC5hWR7Mr!DskWd literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/90.png b/test_pack_image/path2/path2_1/90.png new file mode 100644 index 0000000000000000000000000000000000000000..dc41f38a8ea73e811c70438863934d88ad66d0d0 GIT binary patch literal 871 zcmeHDF-yZh82xO~mO>$mVx2NN-q=mAr09W!CT4N-5QQQR0YPrfX2*bo9lz1R;l@lt z28Rp|S%h>8xZHR{2ZzrS|AJ#5eDC8e?>*k*EIb(w4h8@)6sJM#{EPd7R(n@MINe^>wF{M(|Arzcblo1x>gXZ#EBIPx? zR$6Og3=#eH-0)_B|6SmA9gm#j)_okF!|~VWjT5^f;7R}aiuF1>9($j#x9ib993`D6 Qy|?=K%@@-!c%58kKf^zB!2kdN literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/91.png b/test_pack_image/path2/path2_1/91.png new file mode 100644 index 0000000000000000000000000000000000000000..04e116a4bd89e416d2959b7327d4f3d72424133e GIT binary patch literal 868 zcmeH@u}i~16vkh1Xekteo8k}z!SOabdXl0CB{Z>%=+Hy36mN8tp+eIki@fM+@Cny!Uvw!|<@z-Rc5BPaFlY`>XEOI&H@r&pRIg zZ5W=62TnRDr4W%tDbEU7HAt38E^wMO8B*E52Jz@6mZQb~6e5JVfzqbp6lOCpl}|QP z9Et=8fof+2O$4MEmAUp<%_T`qxtaT_=7p8iXp$ag++sq7rd`N6rzj=N$p_8lw?xV+ za;>!1#uy^{>$&9R0{^?f)mOaf99uVWID-Af`-KzhBH-iB!#TTz74|y0JAS!`?Y< QZ=Yws>0%HDPY09q2j{wT&Hw-a literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/93.png b/test_pack_image/path2/path2_1/93.png new file mode 100644 index 0000000000000000000000000000000000000000..53ec360385c4f841af05b4420769d88227fda47a GIT binary patch literal 867 zcmeH@ze~eF6vtn2Xekup=8q+#W43nmBt;J-G-(&N9D=2YL%`)mv)M75)#>5n;BaFm zA!EiYg)CyA%PqnUf)39M{tJ$M@V<}F@_k>v_mkjs&_Cz{z<{6mk-a;1yS-Mw=iSGa zC+D-VMLSYTMD)UxWre63B;yIjagj6`QaQQ-{^BHtp~2AtLWGru(xm(XmP^o;OD2;H ziUbIOYHI{d2qZl!bLDt76C@PndgaQR6-H2_NH~}=g9#Oijv!}@!jv#47Zeje0x7G= zrcz32t%>L_=T^53{BHx-U(vpG?A%7d6plCRD+{~aXS3eJr8k_%@mqTL0f$eW&*%5) OUi+Jm1ON3TPJaQqUUV7& literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/94.png b/test_pack_image/path2/path2_1/94.png new file mode 100644 index 0000000000000000000000000000000000000000..3962eed8e32a8bb66fd99ee7293bb106fb29d158 GIT binary patch literal 870 zcmeHGAxi{782y$*Jq{K&Tu}@gFHXGZ$R0W%%k6r_wu7J?Vpz0H-R8vwgBQPOFig^| z8`ri)*l=ONGI4^z@HygNFy4djeZ2B`Ja`ZD_{1L_i~ztFr%~$uuDiYA!0}=Hz5y7( z{A@9E(m^SOh%701SpyHg8g0P|xG?(8Jscgxm z(pnp1i0CipmbVT3Zv!`9>ArLH?$h`jjy^xGoEVFUFNRN-S;nrxyJLR+>cQmE8*g^r OeisE|7Dq3~S@8oNBXVT` literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/95.png b/test_pack_image/path2/path2_1/95.png new file mode 100644 index 0000000000000000000000000000000000000000..c67ef2fa6e36181704113e48f956a2622533f3f8 GIT binary patch literal 865 zcmeHGAxi{N5T4^imxIF%77xQlpMJ%-#!5P zFg=@1oOGjFJ_lBMwi5`wjX+UDXCRx2<~z_w5b zRR&DJtuuly0ahW`rS`)XB}>hvSqG}c%1Z7uOP>m~lyRl`5K2T&a;B04&?vtpanZ0# zrL{K3F!Nu|4Q?9v-v(~J(tYRHyG!G9IQo3Qc4AjVIP;#b=E3Oc!TrhBeQ$4h>s|a_ L7Lz!7J)Y-3&d+b? literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/96.png b/test_pack_image/path2/path2_1/96.png new file mode 100644 index 0000000000000000000000000000000000000000..4c736563b6f5906a15e5d246754116d6646650cb GIT binary patch literal 867 zcmeH@p-;m=6viJQ)+`z6B&bT{$w`iMflElUmKj_xBrFR-G{Kytj>$TPdjf$#oLXut zD{Dw98!(4EK?34&4gUgiFL~d~&wTI8_b`i2N5jJ*0F1<0n7F&=cHs5;y%;?8JUgFH z9lB9UAtH-&UR1K_kSvp2;4FJ_M~jms#0YBxwavvPtX5!}fNY^SR2dKg zway5-7)UXyOYO6kOOl#Ovkp|tD=VqfBz-Kn#f&OVM^JK3aZXrL0Gi7miBvS?QfaM? zF+}v2bF141{~G-t^L@POe~W1p IzMiD{FOs%$nE(I) literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/97.png b/test_pack_image/path2/path2_1/97.png new file mode 100644 index 0000000000000000000000000000000000000000..a7ec30fd06c042c29cd0a8f91554feb0f2011d87 GIT binary patch literal 873 zcmeH@u}i~16vm$xu@nN?v`!ryI!Pw!=t+tmNN8dg7wI7siU@`Za+}1-j@hh>ywRb< z;gmIFaLOXYE#TmdH*|1#p7<{~_QCr;zUAY`_b>>KoYqbY033eoN7gs&Z#ElNm-6-l zpaFxEVc$l3Qc6Vh!i1%{C~G9+3C3{}*C|rby8`~=#)hH6-ULE~xrV|d{0wF@&}D~A zDjDQ45CT=U2dQ@b}^(rPvD9ZG_BP*60LA4^`V#*B0lq>2&#u$YOVMZNLOneKZ zv?NQVl+s!g(I4kZR}1{_0+-9EZ5!8aqTmz`KHtYSY;m6rn~xWxJD5(p&iLuReZ9X8 Vu(!K@{`~g(^-I9}fxkE$B|pdybt?b> literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/98.png b/test_pack_image/path2/path2_1/98.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4807ca80b34c20e726885ad8ade08c4964dcd2 GIT binary patch literal 873 zcmeH@F-yci5QXPF)NpW;PP7WxT$wUd+jL$f0Sm93(!yfP zv?)_b5QJD65M;|OQdo>D{sqe$nD=CtR#qdh4lBKlFr@>0|-lJN!On51ovR0UVSpWM_iG#DfhAuKdhCgUeCpM$PFGPz_> zra%bP*dk~nAn8+8DA#Y8Afc$x3r{wzG=f@1!o{2!OsP~ff`T!MGQxs9P)vLaq`W3e zrIgZI6VV^%QkM(-?*f-yyk#4EH}T{c_CDXvZP?@?n>mkX{sr_#$@PZVx!(=f90)#E S9$sI*x?ci5o`lc)r`Zp`Ty>KG literal 0 HcmV?d00001 diff --git a/test_pack_image/path2/path2_1/99.png b/test_pack_image/path2/path2_1/99.png new file mode 100644 index 0000000000000000000000000000000000000000..feca9039838688dfdb7bcdff9061bccf5bce1340 GIT binary patch literal 873 zcmeH@u}i~16vkgDVks1}iB7>uI%VwWNs1mwXwoijJp`eMLx>{hB-!j{Haou2LFC4) z88Zfo5VwHKEy4{Q9G)ls3yyv8zK?JD`0+iC!;^k*zXt$)ej3Eqx9o3sJ66~7?gO9$ z8={^BNvp~2xCB7~)e%4GZ;77Ng|M<$mH z$^;038e0Ty1SEZ`3g!9@6C@NBdg;lAl}1pjNVu3Yg9(+24xwO-qKvR04-^yM0x7S_ zQYodh)~3|^0C*$=^=bk+a> literal 0 HcmV?d00001 diff --git a/tests/TestPack.py b/tests/TestPack.py new file mode 100644 index 0000000..e00b700 --- /dev/null +++ b/tests/TestPack.py @@ -0,0 +1,33 @@ +''' + # @ Author: hui.xie + # @ Create Time: 2025-09-05 16:02:21 + # @ Modified by: hui.xie + # @ Modified time: 2025-09-05 16:05:34 + # @ Description: + ''' + + +import unittest +from PyTexturePacker import Packer + +TEST_IMAGE_DIR = 'test_pack_image' +TEST_PLIST_DIR = 'test_pack_image/output/test' + +class TestRect(unittest.TestCase): + def setUp(self): + self.test_dir = TEST_IMAGE_DIR + self.test_out = TEST_PLIST_DIR + + def tearDown(self): + pass + + def test_pack(self): + packer = Packer.create(max_width=4096, max_height=4096, bg_color=0x00000000, border_padding=2, + shape_padding=2, extrude=0, trim_mode=1, enable_rotated=True, trim_sprite_names=True) + print('Packing textures...') + packer.pack(self.test_dir, self.test_out, input_base_path=self.test_dir) + print('Packing completed.') + + +if __name__ == '__main__': + unittest.main() \ No newline at end of file From aad53721fb6e39bb2bec0a26edffcabe93be51d4 Mon Sep 17 00:00:00 2001 From: "hui.xie" Date: Fri, 5 Sep 2025 16:29:50 +0800 Subject: [PATCH 2/3] fix:do not rotate when width equals height --- PyTexturePacker/MaxRectsPacker/MaxRectsAtlas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyTexturePacker/MaxRectsPacker/MaxRectsAtlas.py b/PyTexturePacker/MaxRectsPacker/MaxRectsAtlas.py index 0c3c52e..ac77e6b 100644 --- a/PyTexturePacker/MaxRectsPacker/MaxRectsAtlas.py +++ b/PyTexturePacker/MaxRectsPacker/MaxRectsAtlas.py @@ -154,7 +154,7 @@ def rank(self, main_rect, sub_rect, method=RANK_BSSF): return tmp def find_best_rank(self, image_rect, enable_rotated=False): - if enable_rotated: + if enable_rotated and image_rect.width != image_rect.height: return self.find_best_rank_with_rotate(image_rect) else: return self.find_best_rank_without_rotate(image_rect) From 5b737488e1c00824d36a6fd58691f69cc3249687 Mon Sep 17 00:00:00 2001 From: "hui.xie" Date: Fri, 5 Sep 2025 16:30:49 +0800 Subject: [PATCH 3/3] fix: fix rela path in atlas file: \ to / --- PyTexturePacker/PackerInterface/AtlasInterface.py | 1 + 1 file changed, 1 insertion(+) diff --git a/PyTexturePacker/PackerInterface/AtlasInterface.py b/PyTexturePacker/PackerInterface/AtlasInterface.py index 268b220..1464388 100644 --- a/PyTexturePacker/PackerInterface/AtlasInterface.py +++ b/PyTexturePacker/PackerInterface/AtlasInterface.py @@ -59,6 +59,7 @@ def dump_plist(self, texture_file_name="", input_base_path=None, atlas_format=AT else: path = os.path.relpath(os.path.abspath( path), os.path.abspath(input_base_path)) + path = path.replace('\\', '/') # for windows path if trim_sprite_names: path, _ = os.path.splitext(path)