code-painter 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- code_painter-1.0.0.dist-info/METADATA +89 -0
- code_painter-1.0.0.dist-info/RECORD +271 -0
- code_painter-1.0.0.dist-info/WHEEL +4 -0
- code_painter-1.0.0.dist-info/licenses/LICENSE +8 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/254/342/226/221/321/207/320/240/320/226/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/254/342/226/221/321/207/320/240/320/226//321/204/342/225/225/320/246/321/207/320/245/320/234/321/205/320/254/342/226/221/321/205/320/253/342/225/233.py +63 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/254/342/226/221/321/207/320/240/320/226//321/204/342/225/225/320/275/321/205/320/253/342/225/234/321/205/320/254/342/226/221/321/205/320/253/342/225/233.py +72 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/254/342/226/221/321/207/320/240/320/226//321/211/320/273/320/250/321/206/342/225/225/320/225/321/204/342/225/225/320/246/321/207/320/245/320/234/321/205/320/254/342/226/221/321/205/320/253/342/225/233.py +177 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/264/342/224/244/321/205/320/223/320/237/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/204/342/225/225/320/232/321/210/320/261/320/263/321/205/342/226/222/320/245/321/207/320/264/342/225/221.py +57 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/205/320/230/342/225/242/321/204/342/225/234/320/254.py +71 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/205/320/237/320/241/321/205/320/256/320/233/321/205/342/226/222/320/245/321/207/320/264/342/225/221.py +54 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/205/320/237/320/241/321/210/320/231/342/226/223/321/205/342/226/222/320/245/321/207/320/264/342/225/221.py +68 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/205/342/225/225/342/225/234/321/205/320/275/320/240/321/205/342/226/222/320/245/321/207/320/264/342/225/221.py +55 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/207/320/254/342/225/235/321/207/320/255/320/253/321/205/342/226/222/320/245/321/207/320/264/342/225/221.py +58 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/207/320/254/342/225/235/321/211/320/245/320/254/321/205/342/226/222/320/245/321/207/320/264/342/225/221.py +64 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/210/320/223/320/261/321/211/320/261/342/225/227/321/205/342/226/222/320/245/321/207/320/264/342/225/221.py +39 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/275/320/266/321/204/342/225/243/320/260/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/275/320/266/321/204/342/225/243/320/260//321/204/342/225/234/320/254/321/206/320/246/320/227/321/207/342/225/221/342/225/225/321/206/320/231/320/243/321/205/320/235/342/226/221/321/206/320/270/320/261/321/206/320/255/342/224/220/321/205/320/230/342/225/242/321/204/342/225/234/320/254.py +25 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/275/320/266/321/204/342/225/243/320/260//321/205/320/237/320/264/321/206/320/246/320/227/321/204/342/225/243/320/266/321/206/342/224/202/320/245/321/205/320/275/320/247/321/205/320/225/342/225/225.py +414 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/275/320/266/321/204/342/225/243/320/260//321/207/320/244/342/226/221/321/205/320/275/320/247/321/206/320/260/342/225/235_/321/206/320/277/320/253/321/207/320/274/320/244/321/205/320/275/320/247/321/205/342/225/225/320/246.py +42 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/275/320/266/321/204/342/225/243/320/260//321/207/320/244/342/226/221/321/205/320/275/320/247/321/206/320/260/342/225/235_/321/211/320/242/320/262/321/207/320/274/320/244/321/205/320/275/320/247/321/205/342/225/225/320/246.py +40 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/275/320/266/321/204/342/225/243/320/260//321/207/320/273/320/246/321/206/320/236/320/242/321/204/342/225/243/320/266/321/206/342/224/202/320/245_/321/205/342/225/221/320/226/321/204/342/225/234/320/251/321/205/342/225/243/342/224/244/321/207/320/262/320/241/321/206/320/246/320/227.py +38 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/320/275/320/266/321/204/342/225/243/320/260//321/210/320/233/342/226/222/321/210/320/277/320/275/321/207/342/225/221/342/225/225/321/206/320/231/320/243/321/205/320/235/342/226/221/321/206/320/270/320/261/321/206/320/255/342/224/220/321/205/320/230/342/225/242/321/204/342/225/234/320/254.py +25 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/342/225/226/320/265/321/204/342/225/234/320/254/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/205/342/225/226/320/265/321/204/342/225/234/320/254//321/205/320/254/320/226/321/205/342/225/234/320/262/321/205/320/235/342/226/221/321/207/320/273/320/260.py +22 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/205/342/225/226/320/265/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/205/342/225/226/320/265//321/204/342/225/225/320/275/321/205/320/253/342/225/234/321/205/320/254/342/226/221/321/205/320/253/342/225/233/321/206/320/233/342/225/235/321/205/320/253/342/225/233.py +17 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/205/342/225/226/320/265//321/205/320/225/320/275/321/211/320/255/320/262/321/204/342/225/234/320/243/321/205/342/226/222/320/245/321/205/342/225/235/320/220/321/205/320/253/342/225/233.py +59 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/205/342/225/226/320/265//321/205/320/235/320/221/321/204/342/225/221/320/234/321/211/320/255/320/262/321/204/342/225/234/320/243/321/205/342/226/222/320/245/321/205/342/225/235/320/220/321/205/320/253/342/225/233.py +66 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/205/342/225/226/320/265//321/205/320/253/320/253/321/211/320/255/320/262/321/204/342/225/234/320/243/321/205/342/226/222/320/245/321/205/342/225/235/320/220/321/205/320/253/342/225/233.py +56 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/205/342/225/226/320/265//321/205/320/253/342/225/234/321/206/320/247/320/247/321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/205/342/226/222/320/245/321/205/342/225/235/320/220/321/205/320/253/342/225/233.py +216 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/205/342/225/226/320/265//321/205/342/225/234/320/271/321/210/320/231/342/226/223/321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/205/342/226/222/320/245/321/205/342/225/235/320/220/321/205/320/253/342/225/233.py +216 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/205/342/225/226/320/265//321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/205/342/226/222/320/245/321/205/342/225/235/320/220/321/205/320/253/342/225/233.py +252 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/204/342/225/221/320/244/321/206/320/250/320/257/321/207/342/225/221/320/262/321/206/320/247/320/247/321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +52 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/204/342/225/225/320/231/321/205/320/275/320/247/321/207/342/225/227/320/237/321/205/320/223/320/237/321/207/342/224/244/320/260/321/210/320/231/342/225/221/321/206/320/254/320/277/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +32 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/204/342/225/225/320/254/321/211/320/263/320/236/321/207/342/225/221/320/262/321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +39 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/204/342/225/225/320/275/321/207/320/267/320/233/321/205/320/264/320/272/321/206/320/256/320/221/321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +97 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/205/320/264/320/272/321/206/320/256/320/221/321/205/320/253/342/225/233/321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +54 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/205/320/277/320/226/321/205/342/225/221/320/266/321/205/320/223/320/237/321/207/342/224/244/320/260/321/206/320/236/320/267/321/205/320/230/342/225/242/321/206/320/250/320/236/321/206/320/252/320/247/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +51 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/205/342/225/233/320/276/321/204/342/224/220/320/261/321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263.py +54 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/210/320/223/320/234/321/206/320/251/320/277/321/206/320/246/320/227/321/205/320/275/320/247/321/205/320/223/320/237/321/207/342/224/244/320/260/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +23 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/223/320/237/321/207/342/224/244/320/260/321/207/320/244/342/225/227/321/210/320/231/342/225/221/321/206/320/254/320/277/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +29 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/227/320/260/321/204/342/225/234/320/245/321/205/320/253/342/225/233/321/205/342/225/234/320/262/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +26 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/232/320/270/321/206/342/225/235/320/273/321/204/342/225/225/342/225/227/321/211/320/262/320/250/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +19 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/267/320/243/321/206/342/226/221/320/237/321/204/342/225/225/342/225/227/321/211/320/262/320/250/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +20 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/277/320/226/321/205/342/225/221/320/266/321/206/320/246/320/227/321/205/320/275/320/247/321/205/320/223/320/237/321/207/342/224/244/320/260/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +31 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/204/342/225/225/320/231/321/205/320/275/320/247/321/207/342/225/227/320/237/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +25 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/205/320/253/342/225/233/321/206/320/260/320/227/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +23 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/205/320/254/320/226/321/205/320/241/320/270/321/207/320/236/320/227/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +125 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/210/320/223/320/234/321/206/320/251/320/277/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +20 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/210/320/223/320/234/321/206/320/251/320/277/321/206/342/226/221/342/224/244/321/207/320/237/320/260/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +20 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/206/342/226/221/342/224/244/321/206/342/225/227/342/224/244/321/204/342/225/225/342/225/227/321/211/320/262/320/250/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +25 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/207/320/221/342/226/221/321/207/342/225/221/342/224/220/321/206/320/255/320/261/321/207/320/276/320/220/321/207/342/225/221/320/266/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +26 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/207/320/244/342/225/241/321/210/320/267/320/226/321/204/342/224/220/320/261/321/205/320/237/342/225/226/321/206/342/225/241/320/233/321/210/320/277/320/245/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +40 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/207/342/225/221/320/262/321/205/320/262/320/251/321/206/320/220/320/220/321/206/320/247/320/267/321/207/342/225/227/320/237/321/205/320/225/342/225/225.py +72 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/231/320/233/321/206/320/254/342/225/221//321/211/320/254/320/243/321/210/320/251/342/225/243/321/207/320/221/320/277/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +29 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/245/342/226/221/321/205/320/275/320/266/321/204/342/225/243/320/233/321/207/342/225/233/320/236/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/245/342/226/221/321/205/320/275/320/266/321/204/342/225/243/320/233/321/207/342/225/233/320/236//321/206/320/231/320/227/321/211/320/255/320/262/321/206/320/262/320/266/321/205/342/225/243/342/225/227/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/206/342/225/226/342/226/222/321/206/342/225/225/320/232.py +45 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/245/342/226/221/321/205/320/275/320/266/321/204/342/225/243/320/233/321/207/342/225/233/320/236//321/206/320/264/320/275/321/205/320/254/320/226/321/206/320/262/320/266/321/205/342/225/243/342/225/227/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/206/342/225/226/342/226/222/321/206/342/225/225/320/232.py +37 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/245/342/226/221/321/205/320/275/320/266/321/204/342/225/243/320/233/321/207/342/225/233/320/236//321/206/320/264/320/275/321/205/320/254/320/226/321/206/320/262/320/266/321/205/342/225/243/342/225/227/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/206/342/225/235/320/271/321/206/342/225/242/320/261.py +36 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/245/342/226/221/321/205/320/275/320/266/321/204/342/225/243/320/233/321/207/342/225/233/320/236//321/206/320/275/320/263/321/206/320/246/342/225/243/321/205/342/225/234/320/262/321/211/342/225/227/320/224/321/211/320/227/320/241/321/205/320/230/320/226/321/205/320/231/342/226/223.py +67 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/245/342/226/221/321/205/320/275/320/266/321/204/342/225/243/320/233/321/207/342/225/233/320/236//321/207/320/230/342/226/222/321/205/342/224/220/320/223/321/206/320/262/320/266/321/205/342/225/243/342/225/227/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/206/342/225/235/320/271/321/206/342/225/242/320/261.py +36 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/245/342/226/221/321/205/320/275/320/266/321/204/342/225/243/320/233/321/207/342/225/233/320/236//321/207/320/257/320/271/321/205/342/225/234/320/262/321/206/320/262/320/266/321/205/342/225/243/342/225/227/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/206/342/225/226/342/226/222/321/206/342/225/225/320/232.py +34 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/320/245/342/226/221/321/205/320/275/320/266/321/204/342/225/243/320/233/321/207/342/225/233/320/236//321/207/320/257/320/271/321/205/342/225/234/320/262/321/206/320/262/320/266/321/205/342/225/243/342/225/227/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/206/342/225/235/320/271/321/206/342/225/242/320/261.py +36 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/342/225/241/320/233/321/210/320/277/320/245//321/206/320/231/320/243/321/205/320/235/342/226/221/321/206/342/224/202/320/270/321/210/320/267/320/263/321/205/342/226/222/320/222.py +95 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/206/342/225/241/320/233/321/210/320/277/320/245//321/206/342/225/241/320/233/321/210/320/277/320/245/321/207/342/225/227/320/224/321/205/320/240/320/230.py +30 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/204/342/225/221/320/244/321/205/320/275/320/240/321/206/320/263/320/233/321/206/320/263/320/233/321/210/342/226/221/342/226/222/1.json +11 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/204/342/225/225/320/275/321/205/320/253/342/225/234/321/205/320/254/342/226/221/321/205/320/253/342/225/233/321/206/320/233/342/225/235/321/205/320/253/342/225/233.py +17 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/204/342/225/225/320/275/321/205/320/253/342/225/234/321/210/342/226/222/320/261/321/206/320/263/320/233.py +21 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/206/320/247/320/265/321/205/320/236/320/226/321/205/320/230/342/225/242/321/204/342/225/234/320/254.py +21 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/211/320/252/320/237/321/210/342/225/221/320/273/321/204/342/225/221/320/244/321/205/320/275/320/240/321/206/320/263/320/233.py +58 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/342/225/227/320/250/321/207/320/244/342/225/227/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/204/342/225/225/320/231/321/205/320/236/320/257/321/210/320/231/342/226/223/321/207/342/225/227/320/250/321/205/320/253/342/225/233.py +19 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/205/320/220/320/242/321/205/342/225/234/342/226/222/321/206/320/245/320/230/321/206/320/256/320/254.py +21 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/205/320/240/320/224/321/205/320/253/342/225/234/321/205/320/253/342/225/234/321/206/320/247/320/247.py +102 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/206/320/270/320/261/321/206/320/255/342/224/220/321/210/342/225/242/320/225/321/207/342/225/221/320/267/321/207/320/236/320/253/321/204/342/225/225/342/225/234.py +21 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/207/320/273/320/233/321/204/342/225/234/320/243/321/206/320/245/320/230/321/206/320/256/320/254/321/207/320/240/320/223.py +54 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/210/320/277/320/224/321/205/320/230/320/226/321/210/320/261/320/270/321/206/320/223/320/225/321/205/320/234/320/225.py +13 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/210/342/225/242/320/225/321/207/342/225/221/320/267/321/207/320/236/320/253/321/204/342/225/225/342/225/234.py +539 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/211/320/257/342/224/202/321/204/342/225/243/320/240/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/211/320/257/342/224/202/321/204/342/225/243/320/240//321/204/342/225/221/320/244/321/207/342/225/221/342/224/220/321/210/342/226/221/342/226/222_/321/204/342/225/234/320/236/321/211/320/257/342/224/202/321/210/342/226/221/342/226/222/321/210/320/261/320/270.py +48 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/211/320/257/342/224/202/321/204/342/225/243/320/240//321/204/342/225/221/320/244/321/207/342/225/221/342/224/220/321/210/342/226/221/342/226/222_/321/205/320/264/320/267/321/210/342/226/221/342/226/222/321/210/320/261/320/270.py +48 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/206/342/225/221/320/240/321/205/320/230/320/253/321/205/320/276/320/264//321/211/320/257/342/224/202/321/204/342/225/243/320/240//321/204/342/225/221/320/244/321/207/342/225/221/342/224/220/321/210/342/226/221/342/226/222_/321/211/320/273/320/250/321/211/320/257/342/224/202/321/210/342/226/221/342/226/222/321/210/320/261/320/270.py +48 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243/_/321/210/320/277/342/224/244/321/206/320/250/320/236.txt +5 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/204/342/225/221/320/226/321/210/320/267/320/263/321/206/320/253/342/224/244/321/205/320/264/320/252/321/205/320/232/320/257/321/210/320/223/342/225/234.py +272 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/225/342/226/222/321/207/320/244/320/270/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/225/342/226/222/321/207/320/244/320/270//321/205/320/253/342/225/234/321/205/320/276/342/225/242/321/207/320/276/320/220/321/207/320/260/320/221.py +261 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/225/342/226/222/321/207/320/244/320/270//321/210/320/277/320/247/321/207/342/225/227/320/237/321/211/320/253/320/226.py +114 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/230/320/255/321/205/320/275/320/266/321/206/320/270/320/261/321/206/320/255/342/224/220.py +51 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/254/342/226/221/321/207/320/240/320/226/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/254/342/226/221/321/207/320/240/320/226//321/204/342/225/225/320/246/321/207/320/245/320/234/321/205/320/254/342/226/221/321/205/320/253/342/225/233/321/206/320/245/342/226/221/321/206/320/235/320/276.py +112312 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/254/342/226/221/321/207/320/240/320/226//321/204/342/225/225/320/275/321/205/320/253/342/225/234/321/205/320/254/342/226/221/321/205/320/253/342/225/233/321/206/320/245/342/226/221/321/206/320/235/320/276.py +23337 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/254/342/226/221/321/207/320/240/320/226//321/205/320/254/342/226/221/321/205/320/253/342/225/233/321/206/320/245/342/226/221/321/206/320/235/320/276.py +25 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/254/342/226/221/321/207/320/240/320/226//321/205/320/254/342/226/221/321/205/320/253/342/225/233/321/206/320/245/342/226/221/321/206/320/235/320/276/321/205/320/264/320/224/321/207/320/240/320/226/321/205/342/225/226/320/265/321/205/320/225/342/225/226.py +194 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/254/342/226/221/321/207/320/240/320/226//321/205/320/254/342/226/221/321/205/320/253/342/225/233/321/207/342/225/227/320/250/321/205/320/253/342/225/233/321/206/320/255/342/224/220.py +77 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/204/342/225/225/320/232/321/210/342/225/221/320/273/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +29 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/225/320/223/321/207/342/224/244/320/260/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +78 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/240/320/236/321/205/320/237/320/241/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +30 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/250/342/224/244/321/205/342/225/226/342/224/244/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +24 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/205/320/225/320/223/321/207/342/224/244/320/260.py +728 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/205/320/264/320/224/321/207/320/240/320/226/321/205/342/225/226/320/265/321/205/320/225/342/225/226.py +287 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/205/320/276/320/252/321/204/342/225/243/320/231.py +371 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/206/320/270/320/261/321/206/320/255/342/224/220/321/205/342/225/226/320/265/321/205/320/225/342/225/226.py +321 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/206/320/270/320/261/321/206/320/255/342/224/220/321/207/320/244/320/257/321/206/320/230/320/240/321/205/320/251/320/270.py +340 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +334 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/207/342/225/227/320/250/321/205/320/253/342/225/233/321/206/320/255/342/224/220.py +46 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/211/320/223/320/270/321/204/342/225/227/342/225/242.py +115 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/223/320/237/321/211/320/262/320/254/321/210/320/231/342/226/223/321/205/320/276/320/252/321/204/342/225/243/320/231.py +234 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/320/264/342/224/244/321/205/320/237/320/241/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +29 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/342/225/225/342/225/234/321/205/320/275/320/240/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +24 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/207/320/276/342/226/222.py +12 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/207/320/254/320/231/321/206/320/277/320/253/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +29 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/207/320/254/342/225/235/321/207/320/255/320/253/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +24 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/207/320/254/342/225/235/321/211/320/245/320/254/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +24 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/210/320/220/342/224/202/321/206/320/254/342/225/241/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +29 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/210/320/223/320/234/321/206/320/251/320/277/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +24 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/210/320/223/320/261/321/211/320/261/342/225/227/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +29 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/210/320/263/320/225/321/211/320/265/342/226/221/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +24 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/211/320/255/320/262/321/211/320/223/320/270/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +29 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/264/342/224/244/321/205/320/223/320/237//321/211/342/225/235/342/225/227/321/205/320/275/320/240/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +24 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/275/320/266/321/204/342/225/243/320/260/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/275/320/266/321/204/342/225/243/320/260//321/204/342/225/234/320/254/321/206/320/246/320/227/321/207/342/225/221/342/225/225/321/206/320/231/320/243/321/205/320/235/342/226/221/321/206/320/270/320/261/321/206/320/255/342/224/220.py +78 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/275/320/266/321/204/342/225/243/320/260//321/207/320/244/342/226/221/321/205/320/275/320/247/321/206/320/260/342/225/235/321/205/320/275/320/247/321/205/342/225/225/320/246/321/206/320/270/320/261/321/206/320/255/342/224/220.py +175 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/275/320/266/321/204/342/225/243/320/260//321/207/320/273/320/246/321/206/320/236/320/242/321/204/342/225/243/320/266/321/206/342/224/202/320/245.py +32 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/275/320/266/321/204/342/225/243/320/260//321/210/320/233/342/226/222/321/210/320/277/320/275/321/207/342/225/221/342/225/225/321/206/320/231/320/243/321/205/320/235/342/226/221/321/206/320/270/320/261/321/206/320/255/342/224/220.py +37 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/275/320/266/321/204/342/225/243/320/260//321/211/320/273/320/250/321/206/342/225/225/320/225/321/207/320/244/342/225/241/321/205/320/275/320/240/321/204/342/225/243/320/266/321/205/320/230/342/225/242/321/204/342/225/234/320/254.py +416 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/276/320/264/321/205/320/226/320/225/321/210/320/276/342/225/233/321/210/320/276/320/261/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/276/320/264/321/205/320/226/320/225/321/210/320/276/342/225/233/321/210/320/276/320/261//321/205/342/225/221/320/232.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/276/320/264/321/205/320/226/320/225/321/210/320/276/342/225/233/321/210/320/276/320/261//321/206/320/230/342/224/220/321/211/320/247/342/224/244.py +286 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/276/320/264/321/205/320/226/320/225/321/210/320/276/342/225/233/321/210/320/276/320/261//321/206/320/257/320/254/321/205/320/275/320/240.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/276/320/264/321/205/320/226/320/225/321/210/320/276/342/225/233/321/210/320/276/320/261//321/206/320/261/320/234/321/205/320/275/320/240.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/276/320/264/321/205/320/226/320/225/321/210/320/276/342/225/233/321/210/320/276/320/261//321/206/320/264/320/225/321/205/320/275/320/240.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/320/276/320/264/321/205/320/226/320/225/321/210/320/276/342/225/233/321/210/320/276/320/261//321/211/320/242/320/262/321/207/320/240/342/224/244.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/342/225/226/320/265/321/204/342/225/234/320/254/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/205/342/225/226/320/265/321/204/342/225/234/320/254//321/205/320/254/320/226/321/205/342/225/234/320/262/321/205/320/235/342/226/221/321/207/320/273/320/260/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +121 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/205/342/225/226/320/265/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/205/342/225/226/320/265//321/205/320/227/320/260/321/204/342/225/234/320/245/321/204/342/225/234/320/243/321/205/342/226/222/320/245/321/205/342/225/235/320/220/321/205/320/253/342/225/233.py +118 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/205/342/225/226/320/265//321/205/342/225/243/342/224/202/321/211/320/255/320/262/321/207/320/273/320/233/321/204/342/225/234/320/243/321/207/320/244/342/225/227.py +66 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/205/320/277/320/226/321/205/342/225/221/320/266/321/206/320/246/320/227/321/205/320/275/320/247/321/205/320/223/320/237/321/207/342/224/244/320/260/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +103 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/205/342/225/233/320/276/321/204/342/224/220/320/261/321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263.py +243 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/223/320/237/321/207/342/224/244/320/260/321/210/320/231/342/225/221/321/206/320/254/320/277/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +172 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/227/320/260/321/204/342/225/234/320/245/321/205/320/253/342/225/233/321/205/342/225/234/320/262/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +82 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/232/320/270/321/206/342/225/235/320/273/321/204/342/225/225/342/225/227/321/211/320/262/320/250/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +41 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/235/320/245/321/210/320/231/342/226/223/321/210/320/223/320/234/321/206/320/251/320/277/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +45 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/264/320/246/321/205/320/263/342/224/202/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +241 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/267/320/243/321/206/342/226/221/320/237/321/204/342/225/225/342/225/227/321/211/320/262/320/250/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +63 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/206/342/226/221/342/224/244/321/207/320/237/320/260/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +41 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/207/320/257/320/271/321/211/320/250/342/225/241/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +188 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/210/320/223/320/234/321/206/320/251/320/277/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +43 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/342/226/222/320/237/321/205/342/225/243/320/245/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +170 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/206/342/226/221/342/224/244/321/207/320/237/320/260/321/204/342/225/225/342/225/227/321/211/320/262/320/250/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +80 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/207/342/225/227/320/250/321/205/320/253/342/225/233/321/206/320/255/342/224/220.py +143 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/211/320/227/320/235/321/205/320/264/320/235/321/206/342/225/225/320/240/321/210/342/224/220/320/241/321/210/320/231/342/226/223/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +67 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/231/320/233/321/206/320/254/342/225/221/321/211/320/244/320/221/321/205/342/226/222/320/237/321/207/320/244/342/225/227/321/211/320/255/320/262.py +68 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/206/320/251/342/225/221/321/210/320/223/342/225/234/321/206/320/231/320/233/321/206/320/254/342/225/221/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +64 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/231/320/233/321/206/320/254/342/225/221//321/207/320/244/342/225/241/321/210/320/267/320/226/321/204/342/224/220/320/261/321/205/320/237/342/225/226/321/206/342/225/241/320/233/321/210/320/277/320/245/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +76 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/245/342/226/221/321/205/320/275/320/266/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/245/342/226/221/321/205/320/275/320/266//321/206/320/262/320/266/321/205/342/225/243/342/225/227/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/206/342/225/226/342/226/222/321/206/342/225/225/320/232/321/206/320/231/320/233/321/206/320/254/342/225/221/321/205/320/263/320/221/321/207/342/225/221/342/225/225.py +84 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/206/320/245/342/226/221/321/205/320/275/320/266//321/206/320/262/320/266/321/205/342/225/243/342/225/227/321/205/342/225/234/320/271/321/210/320/251/342/225/243/321/206/342/225/235/320/271/321/206/342/225/242/320/261.py +43 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/204/342/225/225/320/275/321/205/320/253/342/225/234/321/205/320/254/342/226/221/321/205/320/253/342/225/233/321/206/320/233/342/225/235/321/205/320/253/342/225/233.py +362 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/204/342/225/225/320/275/321/205/320/253/342/225/234/321/210/342/226/222/320/261/321/206/320/263/320/233.py +323 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/206/320/247/320/265/321/205/320/236/320/226/321/205/320/230/342/225/242/321/204/342/225/234/320/254.py +177 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/207/320/244/342/225/241/321/210/320/267/320/226/321/204/342/224/220/320/261/321/205/320/237/342/225/226/321/206/342/225/241/320/233/321/210/320/277/320/245/321/205/320/253/342/225/233/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +248 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/207/342/225/221/342/225/225/321/207/320/274/320/244/321/204/342/225/221/320/244/321/205/320/275/320/240/321/206/320/263/320/233.py +244 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/320/244/320/257/321/206/342/224/244/342/225/227/321/205/320/270/342/226/222/321/204/342/225/243/320/240//321/211/342/225/221/342/225/227/321/205/342/226/221/320/226/321/207/320/231/320/234.py +121 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/204/342/225/225/320/231/321/205/320/236/320/257/321/210/320/231/342/226/223/321/207/342/225/227/320/250/321/205/320/253/342/225/233/321/206/320/255/342/224/220.py +144 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/204/342/225/225/320/231/321/206/320/254/320/230/321/204/342/225/225/320/231/321/205/320/253/342/225/233/321/206/320/260/320/227/321/210/320/276/342/225/233/321/210/320/276/320/261.py +77 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/205/320/264/320/272/321/206/320/256/320/221/321/205/320/253/342/225/233/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +59 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/206/320/231/320/233/321/206/320/254/342/225/221/321/206/320/246/320/227/321/205/320/275/320/247/321/205/320/223/320/237/321/207/342/224/244/320/260/321/210/320/231/342/225/221/321/206/320/254/320/277/321/207/320/244/342/225/227.py +215 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/206/342/226/221/342/224/244/321/207/320/237/320/260/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +64 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243/321/205/320/253/342/225/233/321/206/320/260/320/227/321/210/320/276/342/225/233/321/210/320/276/320/261.py +46 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/210/320/263/342/225/225/321/207/320/254/342/225/2353D/321/205/320/253/342/225/233.py +56 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/210/320/277/320/224/321/205/320/230/320/226/321/210/320/261/320/270/321/206/320/223/320/225/321/205/320/234/320/225.py +75 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/207/342/225/227/320/250/321/207/320/244/342/225/227//321/210/342/225/242/320/225/321/207/342/225/221/320/267/321/207/320/236/320/253/321/204/342/225/225/342/225/234/321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +577 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/211/320/257/342/224/202/321/204/342/225/243/320/240/__init__.py +0 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/260/320/221/321/211/320/255/320/243/321/205/342/225/221/320/243//321/211/320/257/342/224/202/321/204/342/225/243/320/240//321/204/342/225/221/320/244/321/207/342/225/221/342/224/220/321/210/342/226/221/342/226/222/321/206/320/231/320/243/321/205/320/235/342/226/221/321/206/320/270/320/261/321/206/320/255/342/224/220.py +164 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243/PDF/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +317 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243/SVG/321/205/320/253/342/225/233/321/207/320/231/320/227/321/207/342/224/244/320/262/321/205/342/225/235/320/245/321/205/320/253/342/225/233.py +73 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243/SVG/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/342/225/234/320/274/321/205/320/225/320/223/321/207/342/224/244/320/260.py +325 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243/_SVG/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/342/225/234/320/274/321/205/320/225/320/223/321/207/342/224/244/320/260.py +151 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243/__init__.py +16 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243/_/321/210/320/277/342/224/244/321/206/320/250/320/236.txt +2 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243/cairosvg/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +81 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/204/342/225/225/320/275/321/206/320/246/320/227/321/207/342/225/235/320/246/321/207/320/270/320/233/321/205/320/276/320/252/321/204/342/225/243/320/231.py +356 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/220/320/242/321/210/320/267/320/242/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +217 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243/__init__.py +23 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260.py +1269 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_SVG/321/205/320/253/342/225/233.py +45 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/205/320/253/342/225/233.py +233 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/205/320/253/342/225/233/321/206/320/261/320/230.py +62 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/205/320/254/320/226.py +78 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/205/320/264/320/235/321/207/320/244/320/270.py +72 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/205/320/264/320/252/321/210/342/225/233/342/225/243/321/205/342/225/234/320/262.py +88 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/206/320/232/320/250/321/207/342/225/221/342/224/220.py +71 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/206/320/246/320/227/321/205/320/275/320/247.py +239 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/206/320/260/320/227/321/210/320/276/342/226/221.py +18 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/206/320/264/320/275/321/205/320/254/320/226.py +79 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/206/320/270/320/261/321/206/320/255/342/224/220.py +119 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/207/320/257/320/271/321/205/342/225/234/320/262.py +92 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/207/342/225/221/342/224/220.py +76 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/207/342/225/227/320/224.py +124 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/210/320/263/320/221/321/205/320/231/320/272.py +48 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/210/342/225/226/320/277/321/205/342/225/233/320/224.py +1786 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/210/342/225/226/320/277/321/205/342/225/233/320/224/321/206/320/246/320/227/321/205/320/275/320/247.py +119 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/211/320/221/320/276/321/207/342/225/234/320/271.py +75 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260_/321/211/320/243/342/225/233/321/206/320/236/320/265.py +39 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/210/342/225/234/320/274/321/210/342/225/226/320/277/321/205/342/225/233/320/224/321/206/320/244/320/277/321/206/320/234/320/221.py +14 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/205/320/237/320/277/321/206/320/243/320/235/321/204/342/225/234/320/254/321/205/320/225/320/223/321/207/342/224/244/320/260/321/211/320/253/320/226/321/205/320/240/320/230.py +98 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/221/320/243//321/206/342/225/225/320/240/321/205/320/237/320/250/321/210/320/231/342/226/223.py +67 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +86 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/206/320/236/320/242/321/205/320/230/320/247/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +178 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/225/320/223/321/207/342/224/244/320/260/321/211/320/227/320/235/321/205/320/264/320/235/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +270 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/232/320/270/321/207/320/244/342/225/227/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +477 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/235/342/226/221/321/207/320/273/320/260/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +354 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/237/320/250/321/206/320/235/320/262/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +115 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/237/320/250/321/206/320/235/320/262/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226_/321/204/342/224/220/320/255/321/207/320/245/320/251.py +419 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/253/342/225/233/321/205/320/223/320/237/321/205/320/264/320/224/321/207/320/240/320/226/321/205/342/225/226/320/265/321/205/320/225/342/225/226.py +468 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/275/320/247/321/204/342/225/234/320/243/321/206/320/257/320/265/321/206/320/231/342/225/233/321/205/320/251/320/270.py +321 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/275/320/247/321/204/342/225/234/320/243/321/206/320/257/320/265/321/207/320/254/320/233/321/207/342/224/244/320/262/321/205/342/225/235/320/245/321/211/320/261/342/225/241/321/207/320/244/320/257/321/206/320/230/320/240.py +169 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/275/320/247/321/204/342/225/234/320/243/321/206/320/260/342/225/226/321/205/342/225/235/320/237.css +36 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/275/320/247/321/207/320/274/320/266/321/204/342/225/225/342/226/223/321/205/320/230/320/247/321/210/320/261/320/270.py +2680 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/320/276/320/252/321/204/342/225/243/320/231/321/211/320/253/320/226.py +974 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/205/342/225/234/320/262/321/207/320/232/342/225/242/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +220 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/206/320/231/342/225/243/321/211/320/227/320/237zip/321/210/320/267/320/263/321/205/320/236/320/233.py +82 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/205/320/264/320/224/321/207/320/240/320/226/321/205/342/225/226/320/265/321/205/320/225/342/225/226.py +132 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/206/320/246/320/227/321/205/320/275/320/247/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +170 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/206/320/260/342/225/226/321/205/342/225/235/320/237/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +500 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/206/342/225/227/320/264/321/211/320/245/320/254/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +392 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/206/342/225/242/320/230/321/206/320/221/320/277/321/206/320/261/320/226/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +88 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/207/320/231/342/225/243/321/206/320/276/320/232/321/207/320/274/320/266/321/205/320/237/342/225/226.md +90 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/206/320/270/320/261/321/206/320/255/342/224/220.py +73 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/207/342/225/227/320/250/321/205/320/253/342/225/233/321/206/320/255/342/224/220.py +3172 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/207/342/225/227/320/250/321/205/320/253/342/225/233/321/206/320/255/342/224/220/321/205/342/225/226/320/265/321/205/320/225/342/225/226.py +1793 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/207/320/274/320/266/321/205/320/237/342/225/226/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +34 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/207/342/225/221/342/224/220/321/206/320/255/320/261/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +423 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/207/342/226/222/342/225/227/321/205/320/256/320/233/321/210/342/225/234/320/274/321/206/320/235/320/262/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +30 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/210/342/225/226/320/277/321/205/342/225/233/320/224/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +633 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/211/320/220/320/252/321/207/320/244/320/270/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/211/320/253/320/226.py +501 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/207/320/265/320/256/321/207/320/274/320/244/321/205/342/225/221/320/243//321/211/320/225/320/235/321/207/342/225/234/320/276.py +42 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/205/320/253/342/225/234/321/206/320/247/320/247//321/204/342/225/225/320/275/321/205/320/253/342/225/234/321/205/320/253/342/225/234/321/206/320/247/320/247.svg +47 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263/4g.svg +3 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263/5g.svg +3 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263/hd.svg +45 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/204/342/224/220/320/261/321/205/320/237/342/225/226.svg +3 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/205/320/262/320/256/321/205/320/232/320/260.svg +5 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/206/320/231/320/233/321/207/320/244/342/225/241/321/207/320/275/320/242.svg +17 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/206/320/255/320/265/321/207/320/244/342/225/241.svg +5 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/207/320/244/342/225/241/321/206/342/226/222/320/260.svg +6 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/207/320/253/342/225/225/321/206/320/254/342/225/221.svg +24 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/207/320/254/342/225/235/321/207/320/255/320/253.svg +4 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/207/320/274/320/241/321/210/320/224/342/225/225.svg +6 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/210/320/243/320/255/321/207/320/231/320/251.svg +2 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/210/320/277/320/275/321/211/320/257/342/224/202.svg +1 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/210/342/224/220/320/240/321/205/320/232/320/270/321/211/320/256/320/233.svg +16 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/320/221/320/232/321/205/320/264/320/271/321/207/320/272/320/247/321/205/320/237/320/263//321/211/320/244/320/221.svg +17 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/207/342/225/221/342/225/243/321/207/320/240/320/226//321/207/342/225/221/342/225/243/321/207/320/240/320/2261.svg +2 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/207/342/225/221/342/225/243/321/207/320/240/320/226//321/207/342/225/221/342/225/243/321/207/320/240/320/2262.svg +2 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/207/342/225/221/342/225/243/321/207/320/240/320/226//321/207/342/225/221/342/225/243/321/207/320/240/320/2263.svg +2 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/207/342/225/221/342/225/243/321/207/320/240/320/226//321/207/342/225/221/342/225/243/321/207/320/240/320/2264.svg +2 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/207/342/225/221/342/225/243/321/207/320/240/320/226//321/207/342/225/221/342/225/243/321/207/320/240/320/2265.svg +2 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/207/342/225/221/342/225/243/321/207/320/240/320/226//321/207/342/225/221/342/225/243/321/207/320/240/320/2266_black.svg +2 -0
- /321/207/320/265/320/256/321/207/320/274/320/244/321/207/320/260/320/221/321/211/320/255/320/243//321/210/342/225/241/320/224/321/206/342/225/221/320/240/321/205/342/225/221/320/243//321/207/342/224/244/320/260/321/206/320/255/320/240//321/210/342/225/242/342/224/202/321/207/320/240/320/223/321/207/342/225/221/342/225/243/321/207/320/240/320/226//321/207/342/225/221/342/225/243/321/207/320/240/320/2266_red.svg +2 -0
|
@@ -0,0 +1,633 @@
|
|
|
1
|
+
# -*- coding:utf-8 -*-
|
|
2
|
+
# title :
|
|
3
|
+
# description :
|
|
4
|
+
# author :Python超人/三月三提供
|
|
5
|
+
# date :2024-06-01
|
|
6
|
+
# link :https://gitee.com/march3
|
|
7
|
+
# python_version :3.9
|
|
8
|
+
# ==============================================================================
|
|
9
|
+
import os
|
|
10
|
+
|
|
11
|
+
from svgpathtools import parse_path, Path, Line, CubicBezier, QuadraticBezier, Arc
|
|
12
|
+
from shapely.geometry import Polygon, MultiPolygon, GeometryCollection
|
|
13
|
+
from shapely.ops import unary_union
|
|
14
|
+
from shapely.validation import make_valid
|
|
15
|
+
import math
|
|
16
|
+
from fontTools.ttLib import TTFont
|
|
17
|
+
from 神笔码靓.神笔库 import 五角星绘画路径, 五角星路径
|
|
18
|
+
from 神笔码靓.神笔库.神笔绘图板 import 神笔绘图板
|
|
19
|
+
from 神笔码靓.神笔库.定义集 import *
|
|
20
|
+
from 神笔码靓.神笔库.配置 import *
|
|
21
|
+
from 神笔码靓.神笔库.通用工具集 import *
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def 修正SvgPath(d):
|
|
25
|
+
d = d.replace("-", " -")
|
|
26
|
+
# 匹配连续的数字和小数点
|
|
27
|
+
pattern = r'(-?\d+\.\d+|\d+\.)'
|
|
28
|
+
# 用空格替换匹配到的内容
|
|
29
|
+
formatted_d = re.sub(pattern, r'\1 ', d)
|
|
30
|
+
# if new_d == "M43.1 50.6c-5.2 0-9.6-3-9.6-6.5s4.4-6.5 9.6-6.5c5.2 0 9.6 3 9.6 6.5c-.1 3.5-4.4 6.5-9.6 6.5":
|
|
31
|
+
# return new_d.replace("-", " -") #"M43.1 50.6c -5.2 0 -9.6 -3 -9.6 -6.5s4.4 -6.5 9.6 -6.5c5.2 0 9.6 3 9.6 6.5c -.1 3.5 -4.4 6.5 -9.6 6.5"
|
|
32
|
+
return "M43.1 50.6 L600 500 L300 1000 z"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def 图片轮廓转路径(图片文件路径, 阈值1=30, 阈值2=100):
|
|
36
|
+
import cv2
|
|
37
|
+
import shutil
|
|
38
|
+
|
|
39
|
+
temp_file = "_temp.jpg"
|
|
40
|
+
if os.path.exists(temp_file):
|
|
41
|
+
os.remove(temp_file)
|
|
42
|
+
# 复制文件
|
|
43
|
+
shutil.copy(图片文件路径, temp_file)
|
|
44
|
+
|
|
45
|
+
image = cv2.imread(temp_file) # 读取图像
|
|
46
|
+
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 将图像转换为灰度图
|
|
47
|
+
inverted_gray_image = cv2.bitwise_not(gray_image) # 取反灰度图像
|
|
48
|
+
blurred_image = cv2.GaussianBlur(inverted_gray_image, (21, 21), 0) # 高斯模糊
|
|
49
|
+
inverted_blurred_image = cv2.bitwise_not(blurred_image) # 取反模糊图像
|
|
50
|
+
pencil_sketch_image = cv2.divide(gray_image, inverted_blurred_image, scale=256.0)
|
|
51
|
+
|
|
52
|
+
# 转换为灰度图像
|
|
53
|
+
gray = pencil_sketch_image # cv2.cvtColor(pencil_sketch_image, cv2.COLOR_BGR2GRAY)
|
|
54
|
+
|
|
55
|
+
# 应用Canny边缘检测器
|
|
56
|
+
# edges = cv2.Canny(gray, threshold1=30, threshold2=100)
|
|
57
|
+
edges = cv2.Canny(gray, threshold1=阈值1, threshold2=阈值2)
|
|
58
|
+
|
|
59
|
+
# 查找轮廓
|
|
60
|
+
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
|
61
|
+
if os.path.exists(temp_file):
|
|
62
|
+
os.remove(temp_file)
|
|
63
|
+
# shutil.rmtree(temp_file)
|
|
64
|
+
路径集合 = []
|
|
65
|
+
for contour in contours:
|
|
66
|
+
路径 = []
|
|
67
|
+
for i, d in enumerate(contour):
|
|
68
|
+
x, y = d[0]
|
|
69
|
+
if i == 0:
|
|
70
|
+
路径.append(("移动", x, y))
|
|
71
|
+
else:
|
|
72
|
+
路径.append(("直线", x, y))
|
|
73
|
+
# print( x, y)
|
|
74
|
+
# 神笔.连线(路径点列表=路径)
|
|
75
|
+
路径集合.append(路径)
|
|
76
|
+
return 路径集合
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
class 字体文本路径工具:
|
|
80
|
+
fonts_cache = {}
|
|
81
|
+
|
|
82
|
+
def __init__(self, 高清图, 字体, 字体大小, 字符间距=None):
|
|
83
|
+
self.字体 = 字体
|
|
84
|
+
self.高清图: 神笔绘图板 = 高清图
|
|
85
|
+
self.debug = False
|
|
86
|
+
# self.debug = True
|
|
87
|
+
if 字体 in 字体文本路径工具.fonts_cache:
|
|
88
|
+
self.font, self.uninames, self.char_dict = 字体文本路径工具.fonts_cache[字体]
|
|
89
|
+
else:
|
|
90
|
+
self.font = TTFont(字体)
|
|
91
|
+
|
|
92
|
+
# self.uninames = self.font.getGlyphNames()[1:-1] # 获取所有字符的unicode编码
|
|
93
|
+
self.uninames = self.font.getGlyphNames()
|
|
94
|
+
self.char_dict = {}
|
|
95
|
+
for u in self.uninames:
|
|
96
|
+
try:
|
|
97
|
+
self.char_dict[u] = u
|
|
98
|
+
uchar = self.Unicode转字符(u)
|
|
99
|
+
self.char_dict[uchar] = u
|
|
100
|
+
except ValueError as ve:
|
|
101
|
+
# ValueError: chr() arg not in range(0x110000)
|
|
102
|
+
pass
|
|
103
|
+
except OverflowError:
|
|
104
|
+
pass
|
|
105
|
+
|
|
106
|
+
字体文本路径工具.fonts_cache[字体] = self.font, self.uninames, self.char_dict
|
|
107
|
+
|
|
108
|
+
self.字体标准宽度 = 1000
|
|
109
|
+
self._字体大小 = 字体大小
|
|
110
|
+
if 字符间距 is None:
|
|
111
|
+
字符间距 = 0
|
|
112
|
+
if isinstance(字符间距, str):
|
|
113
|
+
if 字符间距.endswith("%"): # "50%"
|
|
114
|
+
字符间距 = float(字符间距[:-1]) / 100 * 字体大小
|
|
115
|
+
|
|
116
|
+
self._字符间距 = 字符间距
|
|
117
|
+
|
|
118
|
+
if self.debug:
|
|
119
|
+
# 获取各节点名称,返回为列表:
|
|
120
|
+
print("获取各节点名称", self.font.keys())
|
|
121
|
+
|
|
122
|
+
# 获取getGlyphOrder节点的name值,返回为列表:
|
|
123
|
+
print("获取getGlyphOrder节点", self.font.getGlyphOrder())
|
|
124
|
+
print("获取getGlyphOrder节点的name值", self.font.getGlyphNames())
|
|
125
|
+
|
|
126
|
+
# 获取cmap节点code与name值映射, 返回为字典:
|
|
127
|
+
print("获取cmap节点code与name值映射", self.font.getBestCmap())
|
|
128
|
+
self.平移x, self.平移y = 0, 0
|
|
129
|
+
|
|
130
|
+
def 平移(self, 平移x, 平移y):
|
|
131
|
+
self.平移x, self.平移y = 平移x, 平移y
|
|
132
|
+
|
|
133
|
+
@staticmethod
|
|
134
|
+
def Unicode转字符(unicode_value):
|
|
135
|
+
if isinstance(unicode_value, str):
|
|
136
|
+
if unicode_value.startswith("uni"):
|
|
137
|
+
unicode_value_ = unicode_value[3:]
|
|
138
|
+
elif unicode_value.startswith("char"):
|
|
139
|
+
unicode_value_ = unicode_value[4:]
|
|
140
|
+
elif unicode_value.startswith("u") and len(unicode_value) > 1:
|
|
141
|
+
unicode_value_ = unicode_value[1:]
|
|
142
|
+
else:
|
|
143
|
+
unicode_value_ = unicode_value
|
|
144
|
+
try:
|
|
145
|
+
unicode_value_ = int(unicode_value_, 16)
|
|
146
|
+
except Exception as e:
|
|
147
|
+
return unicode_value
|
|
148
|
+
else:
|
|
149
|
+
print(unicode_value)
|
|
150
|
+
|
|
151
|
+
c = chr(unicode_value_)
|
|
152
|
+
if c.startswith(r"\U"):
|
|
153
|
+
pass
|
|
154
|
+
|
|
155
|
+
return c
|
|
156
|
+
|
|
157
|
+
def 生成字符串路径(self, 字符串, 纵向=否, 文字位置微调=None):
|
|
158
|
+
paths = []
|
|
159
|
+
if 文字位置微调 is None:
|
|
160
|
+
文字位置微调 = {}
|
|
161
|
+
for 索引, 字符 in enumerate(字符串):
|
|
162
|
+
微调 = 文字位置微调.get(索引, None)
|
|
163
|
+
path = self.生成字符路径(字符, 索引, 纵向)
|
|
164
|
+
if path is None:
|
|
165
|
+
continue
|
|
166
|
+
if 微调:
|
|
167
|
+
path = self.文字路径微调(path, 微调)
|
|
168
|
+
paths.append(path)
|
|
169
|
+
|
|
170
|
+
return paths
|
|
171
|
+
|
|
172
|
+
def 文字路径微调(self, 路径集, 微调):
|
|
173
|
+
x, y = 微调
|
|
174
|
+
# MVQHL
|
|
175
|
+
微调后路径集合 = []
|
|
176
|
+
for 点命令 in 路径集:
|
|
177
|
+
if 点命令[0] in ["M", "L"]:
|
|
178
|
+
微调后路径集合.append((点命令[0], 点命令[1] + x, 点命令[2] + y))
|
|
179
|
+
elif 点命令[0] in ["H"]:
|
|
180
|
+
微调后路径集合.append((点命令[0], 点命令[1] + x))
|
|
181
|
+
elif 点命令[0] in ["V"]:
|
|
182
|
+
微调后路径集合.append((点命令[0], 点命令[1] + y))
|
|
183
|
+
elif 点命令[0] in ["Q"]:
|
|
184
|
+
微调后路径集合.append((点命令[0], 点命令[1] + x, 点命令[2] + y, 点命令[3] + x, 点命令[4] + y))
|
|
185
|
+
elif 点命令[0] in ["Z", "z"]:
|
|
186
|
+
微调后路径集合.append((点命令[0],))
|
|
187
|
+
else:
|
|
188
|
+
raise Exception(f"文字路径微调未处理:{点命令[0]}")
|
|
189
|
+
|
|
190
|
+
return 微调后路径集合
|
|
191
|
+
|
|
192
|
+
def _try_to_float(self, value):
|
|
193
|
+
try:
|
|
194
|
+
value = float(value)
|
|
195
|
+
except Exception as e:
|
|
196
|
+
return value
|
|
197
|
+
|
|
198
|
+
return value
|
|
199
|
+
|
|
200
|
+
def 字体范围(self):
|
|
201
|
+
head = self.font['head']
|
|
202
|
+
xMin, yMin, xMax, yMax = head.xMin, head.yMin, head.xMax, head.yMax
|
|
203
|
+
|
|
204
|
+
# width, ascender, descender = head.width, self.font['OS/2'].usWinAscent, -self.font[
|
|
205
|
+
# 'OS/2'].usWinDescent # 获取字形的宽度和上沿以及下沿
|
|
206
|
+
# height = ascender - descender # 利用上沿和下沿计算字形高度
|
|
207
|
+
scale = self._缩放大小()
|
|
208
|
+
return scale * (xMax - xMin), scale * (yMax - yMin)
|
|
209
|
+
|
|
210
|
+
def _缩放大小(self):
|
|
211
|
+
if hasattr(self, "_scale_value"):
|
|
212
|
+
return getattr(self, "_scale_value")
|
|
213
|
+
|
|
214
|
+
head = self.font['head']
|
|
215
|
+
xMin, yMin, xMax, yMax = head.xMin, head.yMin, head.xMax, head.yMax
|
|
216
|
+
width = xMax - xMin
|
|
217
|
+
height = yMax - yMin
|
|
218
|
+
scale = self.字体标准宽度 / width * self._字体大小 / 913
|
|
219
|
+
setattr(self, "_scale_value", scale)
|
|
220
|
+
return scale
|
|
221
|
+
|
|
222
|
+
def 生成字符路径(self, 字符, 索引位置, 纵向=否, 偏移X=0, 偏移Y=0):
|
|
223
|
+
if 字符 not in self.char_dict:
|
|
224
|
+
return None
|
|
225
|
+
|
|
226
|
+
p = self.char_dict[字符]
|
|
227
|
+
if self.debug:
|
|
228
|
+
# 获取GlyphOrder节点GlyphID的id信息, 返回int型:
|
|
229
|
+
print("GlyphOrder节点GlyphID的id信息", self.font.getGlyphID(p))
|
|
230
|
+
|
|
231
|
+
from fontTools.pens.svgPathPen import SVGPathPen
|
|
232
|
+
from fontTools.pens.boundsPen import BoundsPen
|
|
233
|
+
head = self.font['head']
|
|
234
|
+
glyphset = self.font.getGlyphSet()[p]
|
|
235
|
+
glyph = self.font['glyf'][p]
|
|
236
|
+
# 获取字体的基本单位
|
|
237
|
+
|
|
238
|
+
units_per_em = self.font['head'].unitsPerEm
|
|
239
|
+
width = glyphset.width
|
|
240
|
+
height = glyphset.height
|
|
241
|
+
|
|
242
|
+
# width, ascender, descender = \
|
|
243
|
+
# glyphset.width, self.font['OS/2'].usWinAscent, -self.font['OS/2'].usWinDescent # 获取字形的宽度和上沿以及下沿
|
|
244
|
+
# height = ascender - descender # 利用上沿和下沿计算字形高度
|
|
245
|
+
|
|
246
|
+
# xMin, yMin, xMax, yMax = glyph.xMin, glyph.yMin, glyph.xMax, glyph.yMax
|
|
247
|
+
xMin, yMin, xMax, yMax = head.xMin, head.yMin, head.xMax, head.yMax
|
|
248
|
+
|
|
249
|
+
width = xMax - xMin
|
|
250
|
+
height = yMax - yMin
|
|
251
|
+
|
|
252
|
+
scale = self._缩放大小()
|
|
253
|
+
微调 = 0.9322 # 参考字体:小篆体.ttf
|
|
254
|
+
if 纵向:
|
|
255
|
+
位移y = 索引位置 * (scale * (yMax - yMin) + self._字符间距) * 微调 + 偏移Y
|
|
256
|
+
位移x = 0
|
|
257
|
+
else:
|
|
258
|
+
位移x = 索引位置 * (scale * (xMax - xMin) + self._字符间距) * 微调 + 偏移X
|
|
259
|
+
位移y = 0
|
|
260
|
+
|
|
261
|
+
# xMin = ascender
|
|
262
|
+
# yMax = height
|
|
263
|
+
# yMin = 0
|
|
264
|
+
glyph_set = self.font.getGlyphSet()
|
|
265
|
+
pen = SVGPathPen(glyphSet=glyph_set)
|
|
266
|
+
glyphset.draw(pen)
|
|
267
|
+
|
|
268
|
+
# bpen = BoundsPen(None)
|
|
269
|
+
# glyphset.draw(bpen)
|
|
270
|
+
# left, bottom, right, top = bpen.bounds
|
|
271
|
+
# # commands = pen.getCommands()
|
|
272
|
+
# xMin = left
|
|
273
|
+
# yMax = top
|
|
274
|
+
# yMin = bottom
|
|
275
|
+
commands = pen._commands
|
|
276
|
+
path_cmds = []
|
|
277
|
+
xMin = 0
|
|
278
|
+
yMin = 0
|
|
279
|
+
last_x, last_y = None, None
|
|
280
|
+
stroke_width = self._字体大小 / 600
|
|
281
|
+
定位圆半径 = self._字体大小 / 150
|
|
282
|
+
调试元素列表 = []
|
|
283
|
+
first_point = True
|
|
284
|
+
for command in commands:
|
|
285
|
+
cmd_flag = command[0]
|
|
286
|
+
cs = command[1:].replace(" ", ",").split(",")
|
|
287
|
+
cs = [cmd_flag] + [self._try_to_float(c) for c in cs]
|
|
288
|
+
stroke_style = None
|
|
289
|
+
|
|
290
|
+
坐标点填充色 = 颜色.红色 if first_point else 颜色.透明
|
|
291
|
+
first_point = False
|
|
292
|
+
if cmd_flag in ["m", "M", "l", "L"]:
|
|
293
|
+
x_, y_ = scale * (cs[1] - xMin) + 位移x, scale * (yMax - cs[2] - yMin) + 位移y
|
|
294
|
+
cs = (cs[0], x_, y_)
|
|
295
|
+
last_x, last_y = x_, y_
|
|
296
|
+
elif cmd_flag in ["q", "Q"]:
|
|
297
|
+
x1_, y1_ = scale * (cs[1] - xMin) + 位移x, scale * (yMax - cs[2] - yMin) + 位移y
|
|
298
|
+
x_, y_ = scale * (cs[3] - xMin) + 位移x, scale * (yMax - cs[4] - yMin) + 位移y
|
|
299
|
+
cs = (cs[0], x1_, y1_, x_, y_)
|
|
300
|
+
stroke_style = f"{stroke_width},{stroke_width}"
|
|
301
|
+
if self.debug:
|
|
302
|
+
控制点 = self.高清图.画矩形(x=x1_ - 定位圆半径 / 2, y=y1_ - 定位圆半径 / 2, 宽=定位圆半径, 高=定位圆半径,
|
|
303
|
+
描边宽度=stroke_width / 2, 描边颜色=颜色.黑色, 填充颜色=颜色.绿色).填充透明度(0.5)
|
|
304
|
+
连接线 = self.高清图.连线(路径点列表=[(x1_, y1_), (x_, y_)],
|
|
305
|
+
描边宽度=stroke_width / 2, 描边颜色=颜色.绿色, 描边样式=stroke_style)
|
|
306
|
+
调试元素列表.append(控制点)
|
|
307
|
+
调试元素列表.append(连接线)
|
|
308
|
+
# if self.平移x != 0 or self.平移y != 0:
|
|
309
|
+
# 控制点.平移(self.平移x, self.平移y)
|
|
310
|
+
|
|
311
|
+
last_x, last_y = x_, y_
|
|
312
|
+
elif cmd_flag in ["v", "V"]:
|
|
313
|
+
y_ = scale * (yMax - cs[1] - yMin) + 位移y
|
|
314
|
+
cs = (cs[0], y_)
|
|
315
|
+
last_y = y_
|
|
316
|
+
elif cmd_flag in ["h", "H"]:
|
|
317
|
+
x_ = scale * (cs[1] - xMin) + 位移x
|
|
318
|
+
cs = (cs[0], x_)
|
|
319
|
+
last_x = x_
|
|
320
|
+
elif cmd_flag in ["z", "Z"]:
|
|
321
|
+
cs = (cs[0],)
|
|
322
|
+
first_point = True
|
|
323
|
+
elif cmd_flag in [" "]:
|
|
324
|
+
x_, y_ = scale * (cs[1] - xMin) + 位移x, scale * (yMax - cs[2] - yMin) + 位移y
|
|
325
|
+
cs = ("L", x_, y_)
|
|
326
|
+
last_x, last_y = x_, y_
|
|
327
|
+
else:
|
|
328
|
+
raise Exception(f"{cmd_flag}未处理")
|
|
329
|
+
|
|
330
|
+
if self.debug:
|
|
331
|
+
定位圆 = self.高清图.画圆(x=last_x, y=last_y, 半径=定位圆半径, 描边宽度=stroke_width, 描边样式=stroke_style,
|
|
332
|
+
填充颜色=坐标点填充色)
|
|
333
|
+
调试元素列表.append(定位圆)
|
|
334
|
+
# if self.平移x != 0 or self.平移y != 0:
|
|
335
|
+
# 定位圆.平移(self.平移x, self.平移y)
|
|
336
|
+
|
|
337
|
+
path_cmds.append(tuple(cs))
|
|
338
|
+
|
|
339
|
+
if len(调试元素列表) > 0:
|
|
340
|
+
调试元素组 = self.高清图.创建组合(元素列表=调试元素列表)
|
|
341
|
+
if self.平移x != 0 or self.平移y != 0:
|
|
342
|
+
调试元素组.平移(self.平移x, self.平移y)
|
|
343
|
+
|
|
344
|
+
return path_cmds
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
def 画图测试():
|
|
348
|
+
import matplotlib.pyplot as plt
|
|
349
|
+
font_file = r"C:\Windows\Fonts\simhei.ttf"
|
|
350
|
+
font_file = r"G:\works\gitcode\code_painter\字体\小篆体.ttf"
|
|
351
|
+
文字路径 = 字体文本路径工具(font_file)
|
|
352
|
+
字符串轮廓 = 文字路径.获取字符串轮廓("魏刚")
|
|
353
|
+
|
|
354
|
+
for 字符轮廓 in 字符串轮廓:
|
|
355
|
+
for 轮廓 in 字符轮廓:
|
|
356
|
+
轮廓 = 轮廓 + 轮廓[0:] # 闭合
|
|
357
|
+
x_coords = [point[0] for point in 轮廓]
|
|
358
|
+
y_coords = [point[1] for point in 轮廓]
|
|
359
|
+
# x_endPts = [num for num in 轮廓 if num % 2 == 0]
|
|
360
|
+
# y_endPts = [points[pi][1] for pi in endPts]
|
|
361
|
+
|
|
362
|
+
colors = ['blue' if flag == 1 else 'green' for x, y, flag in 轮廓]
|
|
363
|
+
plt.plot(x_coords, y_coords, marker='')
|
|
364
|
+
plt.scatter([x_coords[0]], [y_coords[0]], c="red", marker="*", s=200)
|
|
365
|
+
plt.scatter(x_coords, y_coords, c=colors)
|
|
366
|
+
|
|
367
|
+
# 设置坐标轴标签
|
|
368
|
+
plt.xlabel('X')
|
|
369
|
+
plt.ylabel('Y')
|
|
370
|
+
|
|
371
|
+
# 显示图形
|
|
372
|
+
plt.show()
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
def 神笔绘图板测试():
|
|
376
|
+
class 路径测试(神笔绘图板):
|
|
377
|
+
"""
|
|
378
|
+
将图像进行变形,平铺在桌面或者地板上,可以看到的立体画
|
|
379
|
+
"""
|
|
380
|
+
|
|
381
|
+
def __init__(self, 文件路径):
|
|
382
|
+
宽, 高 = 纸张大小.A4_纵向(1)
|
|
383
|
+
super(路径测试, self).__init__(作品文件路径=文件路径, 宽=宽 * 2, 高=高 * 2)
|
|
384
|
+
|
|
385
|
+
def 创作(self):
|
|
386
|
+
self.显示图框()
|
|
387
|
+
# self.显示网格()
|
|
388
|
+
|
|
389
|
+
from 神笔码靓.神笔库.路径工具集 import 字体文本路径工具
|
|
390
|
+
font_file = r"C:\Windows\Fonts\STSONG.TTF"
|
|
391
|
+
font_file = r"C:\Windows\Fonts\simhei.ttf"
|
|
392
|
+
font_file = r"C:\Windows\Fonts\FZYTK.TTF"
|
|
393
|
+
# font_file = 字体文件目录("小篆体.ttf")
|
|
394
|
+
# font_file = 字体文件目录("甲骨文.ttf")
|
|
395
|
+
|
|
396
|
+
# font_file = 系统字体.微软雅黑
|
|
397
|
+
文字路径 = 字体文本路径工具(font_file)
|
|
398
|
+
文字样例 = "刚"
|
|
399
|
+
文字样例 = "魏"
|
|
400
|
+
文字样例 = "家"
|
|
401
|
+
文字样例 = "国"
|
|
402
|
+
# 文字样例 = "一"
|
|
403
|
+
文字样例 = "刚一二国家魏"
|
|
404
|
+
|
|
405
|
+
字符串路径 = 文字路径.生成字符串路径(文字样例)
|
|
406
|
+
|
|
407
|
+
宽, 高 = 文字路径.字体范围()
|
|
408
|
+
self.画矩形(x=0, y=0, 宽=宽, 高=高, 描边宽度=10, 描边颜色=颜色.红色)
|
|
409
|
+
for 字符路径 in 字符串路径:
|
|
410
|
+
self.连线(路径点列表=字符路径, 描边宽度=0.5, 描边颜色=颜色.红色) # .缩放(0.5)
|
|
411
|
+
|
|
412
|
+
神笔 = 路径测试(文件路径="文字路径测试.svg")
|
|
413
|
+
神笔.完成()
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
def 图片轮廓转路径测试():
|
|
417
|
+
输入图片 = 资源库目录('图片/头像.jpg')
|
|
418
|
+
# print(os.path.exists(input_image_path))
|
|
419
|
+
|
|
420
|
+
from 神笔码靓.神笔库 import 神笔绘图板
|
|
421
|
+
|
|
422
|
+
神笔 = 神笔绘图板("头像.svg")
|
|
423
|
+
for 路径 in 图片轮廓转路径(输入图片):
|
|
424
|
+
神笔.连线(路径点列表=路径)
|
|
425
|
+
神笔.完成()
|
|
426
|
+
|
|
427
|
+
class 布尔运算:
|
|
428
|
+
def __init__(self, 最小采样点数=20, 最大采样点数=200, 曲线近似误差阈值=0.1,
|
|
429
|
+
数值容差=1e-8, 是否几何简化=True, 几何简化容差值=1e-6, buffer操作的分辨率=4):
|
|
430
|
+
"""
|
|
431
|
+
初始化PathBoolean实例,设置优化参数
|
|
432
|
+
|
|
433
|
+
参数:
|
|
434
|
+
min_samples: 最小采样点数
|
|
435
|
+
max_samples: 最大采样点数
|
|
436
|
+
error_threshold: 曲线近似误差阈值
|
|
437
|
+
tolerance: 数值容差
|
|
438
|
+
simplify: 是否执行几何简化
|
|
439
|
+
simplify_tolerance: 几何简化容差值
|
|
440
|
+
buffer_resolution: buffer操作的分辨率
|
|
441
|
+
"""
|
|
442
|
+
self.min_samples = 最小采样点数
|
|
443
|
+
self.max_samples = 最大采样点数
|
|
444
|
+
self.error_threshold = 曲线近似误差阈值
|
|
445
|
+
self.tolerance = 数值容差
|
|
446
|
+
self.simplify = 是否几何简化
|
|
447
|
+
self.simplify_tolerance = 几何简化容差值
|
|
448
|
+
self.buffer_resolution = buffer操作的分辨率
|
|
449
|
+
|
|
450
|
+
def path_to_polygon(self, path):
|
|
451
|
+
"""将 SVG 路径转换为 Shapely 多边形,使用自适应采样"""
|
|
452
|
+
points = []
|
|
453
|
+
|
|
454
|
+
for segment in path:
|
|
455
|
+
if isinstance(segment, Line):
|
|
456
|
+
# 直线段只需两个点
|
|
457
|
+
points.append((segment.start.real, segment.start.imag))
|
|
458
|
+
points.append((segment.end.real, segment.end.imag))
|
|
459
|
+
else:
|
|
460
|
+
# 对曲线段使用自适应采样
|
|
461
|
+
sampled_points = self._adaptive_sample_segment(segment)
|
|
462
|
+
points.extend(sampled_points)
|
|
463
|
+
|
|
464
|
+
# 处理空路径
|
|
465
|
+
if not points:
|
|
466
|
+
return None
|
|
467
|
+
|
|
468
|
+
# 确保路径闭合
|
|
469
|
+
if points and points[0] != points[-1]:
|
|
470
|
+
points.append(points[0])
|
|
471
|
+
|
|
472
|
+
# 创建多边形并处理可能的自相交
|
|
473
|
+
try:
|
|
474
|
+
polygon = Polygon(points)
|
|
475
|
+
if not polygon.is_valid:
|
|
476
|
+
polygon = make_valid(polygon)
|
|
477
|
+
|
|
478
|
+
# 应用几何简化
|
|
479
|
+
if self.simplify:
|
|
480
|
+
polygon = polygon.simplify(self.simplify_tolerance)
|
|
481
|
+
|
|
482
|
+
# 使用buffer操作消除小误差
|
|
483
|
+
return polygon.buffer(0, resolution=self.buffer_resolution)
|
|
484
|
+
except Exception as e:
|
|
485
|
+
print(f"创建多边形失败: {e}")
|
|
486
|
+
return None
|
|
487
|
+
|
|
488
|
+
def _adaptive_sample_segment(self, segment):
|
|
489
|
+
"""对曲线段进行自适应采样,根据曲率动态调整采样点数量"""
|
|
490
|
+
# 初始采样点数
|
|
491
|
+
samples = self.min_samples
|
|
492
|
+
points = [segment.point(t / samples) for t in range(samples + 1)]
|
|
493
|
+
points = [(p.real, p.imag) for p in points]
|
|
494
|
+
|
|
495
|
+
# 计算曲线的总长度,用于估计复杂度
|
|
496
|
+
length = segment.length()
|
|
497
|
+
|
|
498
|
+
# 对于复杂曲线增加采样点
|
|
499
|
+
if isinstance(segment, CubicBezier):
|
|
500
|
+
# 估计贝塞尔曲线的复杂度
|
|
501
|
+
control_points = [
|
|
502
|
+
(segment.start.real, segment.start.imag),
|
|
503
|
+
(segment.control1.real, segment.control1.imag),
|
|
504
|
+
(segment.control2.real, segment.control2.imag),
|
|
505
|
+
(segment.end.real, segment.end.imag)
|
|
506
|
+
]
|
|
507
|
+
|
|
508
|
+
# 计算控制点形成的多边形面积
|
|
509
|
+
area = 0.0
|
|
510
|
+
for i in range(4):
|
|
511
|
+
x1, y1 = control_points[i]
|
|
512
|
+
x2, y2 = control_points[(i + 1) % 4]
|
|
513
|
+
area += (x1 * y2 - x2 * y1)
|
|
514
|
+
|
|
515
|
+
area = abs(area) / 2.0
|
|
516
|
+
|
|
517
|
+
# 如果面积较大或长度较长,增加采样点
|
|
518
|
+
if area > 1.0 or length > 10.0:
|
|
519
|
+
samples = min(int(samples * (1 + math.sqrt(area / 10) + length / 50)), self.max_samples)
|
|
520
|
+
points = [segment.point(t / samples) for t in range(samples + 1)]
|
|
521
|
+
points = [(p.real, p.imag) for p in points]
|
|
522
|
+
|
|
523
|
+
return points
|
|
524
|
+
|
|
525
|
+
def polygon_to_path(self, geometry):
|
|
526
|
+
"""将 Shapely 几何对象转换为 SVG 路径,处理多种几何类型"""
|
|
527
|
+
if geometry is None or geometry.is_empty:
|
|
528
|
+
return parse_path("")
|
|
529
|
+
|
|
530
|
+
paths = []
|
|
531
|
+
|
|
532
|
+
# 处理不同类型的几何对象
|
|
533
|
+
if isinstance(geometry, Polygon):
|
|
534
|
+
paths.append(self._polygon_to_path_string(geometry))
|
|
535
|
+
elif isinstance(geometry, MultiPolygon):
|
|
536
|
+
for polygon in geometry.geoms:
|
|
537
|
+
paths.append(self._polygon_to_path_string(polygon))
|
|
538
|
+
elif isinstance(geometry, GeometryCollection):
|
|
539
|
+
for geom in geometry.geoms:
|
|
540
|
+
if isinstance(geom, Polygon):
|
|
541
|
+
paths.append(self._polygon_to_path_string(geom))
|
|
542
|
+
elif isinstance(geom, MultiPolygon):
|
|
543
|
+
for polygon in geom.geoms:
|
|
544
|
+
paths.append(self._polygon_to_path_string(polygon))
|
|
545
|
+
|
|
546
|
+
# 合并所有路径
|
|
547
|
+
combined_path = " ".join(paths)
|
|
548
|
+
return parse_path(combined_path)
|
|
549
|
+
|
|
550
|
+
def _polygon_to_path_string(self, polygon):
|
|
551
|
+
"""将单个多边形转换为SVG路径字符串"""
|
|
552
|
+
# 处理外部环
|
|
553
|
+
exterior_coords = list(polygon.exterior.coords)
|
|
554
|
+
path_str = "M " + " L ".join([f"{x:.6f} {y:.6f}" for x, y in exterior_coords]) + " Z"
|
|
555
|
+
|
|
556
|
+
# 处理内部环(孔洞)
|
|
557
|
+
for interior in polygon.interiors:
|
|
558
|
+
hole_coords = list(interior.coords)
|
|
559
|
+
path_str += " M " + " L ".join([f"{x:.6f} {y:.6f}" for x, y in hole_coords]) + " Z"
|
|
560
|
+
|
|
561
|
+
return path_str
|
|
562
|
+
|
|
563
|
+
def 并集(self, path1, path2):
|
|
564
|
+
"""计算两个路径的并集,使用缓存优化"""
|
|
565
|
+
# 缓存多边形结果,避免重复计算
|
|
566
|
+
if not hasattr(path1, '_polygon_cache'):
|
|
567
|
+
path1._polygon_cache = self.path_to_polygon(path1)
|
|
568
|
+
polygon1 = path1._polygon_cache
|
|
569
|
+
|
|
570
|
+
if not hasattr(path2, '_polygon_cache'):
|
|
571
|
+
path2._polygon_cache = self.path_to_polygon(path2)
|
|
572
|
+
polygon2 = path2._polygon_cache
|
|
573
|
+
|
|
574
|
+
if not polygon1 or not polygon2:
|
|
575
|
+
return parse_path("")
|
|
576
|
+
|
|
577
|
+
union_result = unary_union([polygon1, polygon2])
|
|
578
|
+
return self.polygon_to_path(union_result)
|
|
579
|
+
|
|
580
|
+
def 交集(self, path1, path2):
|
|
581
|
+
"""计算两个路径的交集,使用缓存优化"""
|
|
582
|
+
if not hasattr(path1, '_polygon_cache'):
|
|
583
|
+
path1._polygon_cache = self.path_to_polygon(path1)
|
|
584
|
+
polygon1 = path1._polygon_cache
|
|
585
|
+
|
|
586
|
+
if not hasattr(path2, '_polygon_cache'):
|
|
587
|
+
path2._polygon_cache = self.path_to_polygon(path2)
|
|
588
|
+
polygon2 = path2._polygon_cache
|
|
589
|
+
|
|
590
|
+
if not polygon1 or not polygon2:
|
|
591
|
+
return parse_path("")
|
|
592
|
+
|
|
593
|
+
# 应用几何简化
|
|
594
|
+
if self.simplify:
|
|
595
|
+
polygon1_simplified = polygon1.simplify(self.simplify_tolerance)
|
|
596
|
+
polygon2_simplified = polygon2.simplify(self.simplify_tolerance)
|
|
597
|
+
else:
|
|
598
|
+
polygon1_simplified = polygon1
|
|
599
|
+
polygon2_simplified = polygon2
|
|
600
|
+
|
|
601
|
+
intersection_result = polygon1_simplified.intersection(polygon2_simplified)
|
|
602
|
+
return self.polygon_to_path(intersection_result)
|
|
603
|
+
|
|
604
|
+
def 差集(self, path1, path2):
|
|
605
|
+
"""计算两个路径的差集,使用缓存优化"""
|
|
606
|
+
if not hasattr(path1, '_polygon_cache'):
|
|
607
|
+
path1._polygon_cache = self.path_to_polygon(path1)
|
|
608
|
+
polygon1 = path1._polygon_cache
|
|
609
|
+
|
|
610
|
+
if not hasattr(path2, '_polygon_cache'):
|
|
611
|
+
path2._polygon_cache = self.path_to_polygon(path2)
|
|
612
|
+
polygon2 = path2._polygon_cache
|
|
613
|
+
|
|
614
|
+
if not polygon1:
|
|
615
|
+
return parse_path("")
|
|
616
|
+
if not polygon2:
|
|
617
|
+
return path1.copy()
|
|
618
|
+
|
|
619
|
+
# 应用几何简化
|
|
620
|
+
if self.simplify:
|
|
621
|
+
polygon1_simplified = polygon1.simplify(self.simplify_tolerance)
|
|
622
|
+
polygon2_simplified = polygon2.simplify(self.simplify_tolerance)
|
|
623
|
+
else:
|
|
624
|
+
polygon1_simplified = polygon1
|
|
625
|
+
polygon2_simplified = polygon2
|
|
626
|
+
|
|
627
|
+
difference_result = polygon1_simplified.difference(polygon2_simplified)
|
|
628
|
+
return self.polygon_to_path(difference_result)
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
if __name__ == '__main__':
|
|
632
|
+
# 神笔绘图板测试()
|
|
633
|
+
图片轮廓转路径测试()
|