commit 1104e7dc13a6a278ef4907589eb6d317d8082cbc
Author: zj <1052308357@qq.com>
Date: Wed Feb 4 21:16:33 2026 +0800
first commit
diff --git a/__pycache__/main_control_app.cpython-313.pyc b/__pycache__/main_control_app.cpython-313.pyc
new file mode 100644
index 0000000..3ca90b7
Binary files /dev/null and b/__pycache__/main_control_app.cpython-313.pyc differ
diff --git a/__pycache__/network_manager.cpython-313.pyc b/__pycache__/network_manager.cpython-313.pyc
new file mode 100644
index 0000000..12f450c
Binary files /dev/null and b/__pycache__/network_manager.cpython-313.pyc differ
diff --git a/__pycache__/network_manager.cpython-38.pyc b/__pycache__/network_manager.cpython-38.pyc
new file mode 100644
index 0000000..95d1380
Binary files /dev/null and b/__pycache__/network_manager.cpython-38.pyc differ
diff --git a/__pycache__/scheduler_app.cpython-313.pyc b/__pycache__/scheduler_app.cpython-313.pyc
new file mode 100644
index 0000000..0b7509f
Binary files /dev/null and b/__pycache__/scheduler_app.cpython-313.pyc differ
diff --git a/__pycache__/scheduler_app.cpython-38.pyc b/__pycache__/scheduler_app.cpython-38.pyc
new file mode 100644
index 0000000..07f9cc0
Binary files /dev/null and b/__pycache__/scheduler_app.cpython-38.pyc differ
diff --git a/__pycache__/settings_app.cpython-313.pyc b/__pycache__/settings_app.cpython-313.pyc
new file mode 100644
index 0000000..6d62aee
Binary files /dev/null and b/__pycache__/settings_app.cpython-313.pyc differ
diff --git a/__pycache__/settings_app.cpython-38.pyc b/__pycache__/settings_app.cpython-38.pyc
new file mode 100644
index 0000000..6bd56a7
Binary files /dev/null and b/__pycache__/settings_app.cpython-38.pyc differ
diff --git a/__pycache__/tcp_udp_sender.cpython-313.pyc b/__pycache__/tcp_udp_sender.cpython-313.pyc
new file mode 100644
index 0000000..89c3791
Binary files /dev/null and b/__pycache__/tcp_udp_sender.cpython-313.pyc differ
diff --git a/__pycache__/ui.cpython-313.pyc b/__pycache__/ui.cpython-313.pyc
new file mode 100644
index 0000000..f09abdc
Binary files /dev/null and b/__pycache__/ui.cpython-313.pyc differ
diff --git a/__pycache__/utils.cpython-313.pyc b/__pycache__/utils.cpython-313.pyc
new file mode 100644
index 0000000..895587b
Binary files /dev/null and b/__pycache__/utils.cpython-313.pyc differ
diff --git a/__pycache__/utils.cpython-38.pyc b/__pycache__/utils.cpython-38.pyc
new file mode 100644
index 0000000..0b78a1a
Binary files /dev/null and b/__pycache__/utils.cpython-38.pyc differ
diff --git a/build/网络设备控制器/Analysis-00.toc b/build/网络设备控制器/Analysis-00.toc
new file mode 100644
index 0000000..b2ea4df
--- /dev/null
+++ b/build/网络设备控制器/Analysis-00.toc
@@ -0,0 +1,2800 @@
+(['E:\\pythonProject\\TCPUDP\\main_control_app.py'],
+ ['E:\\pythonProject\\TCPUDP'],
+ [],
+ [('E:\\Python38\\Lib\\site-packages\\numpy\\_pyinstaller', 0),
+ ('e:\\python38\\lib\\site-packages\\rapidfuzz\\__pyinstaller', 0),
+ ('e:\\python38\\lib\\site-packages\\pygame-2.6.1-py3.8-win-amd64.egg\\pygame\\__pyinstaller',
+ 0),
+ ('e:\\python38\\lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks',
+ -1000),
+ ('e:\\python38\\lib\\site-packages\\_pyinstaller_hooks_contrib', -1000)],
+ {},
+ [],
+ [],
+ False,
+ {},
+ 0,
+ [],
+ [],
+ '3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit '
+ '(AMD64)]',
+ [('pyi_rth__tkinter',
+ 'E:\\Python38\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth__tkinter.py',
+ 'PYSOURCE'),
+ ('main_control_app',
+ 'E:\\pythonProject\\TCPUDP\\main_control_app.py',
+ 'PYSOURCE')],
+ [('copy', 'e:\\python38\\lib\\copy.py', 'PYMODULE'),
+ ('_py_abc', 'e:\\python38\\lib\\_py_abc.py', 'PYMODULE'),
+ ('string', 'e:\\python38\\lib\\string.py', 'PYMODULE'),
+ ('tracemalloc', 'e:\\python38\\lib\\tracemalloc.py', 'PYMODULE'),
+ ('pickle', 'e:\\python38\\lib\\pickle.py', 'PYMODULE'),
+ ('pprint', 'e:\\python38\\lib\\pprint.py', 'PYMODULE'),
+ ('_compat_pickle', 'e:\\python38\\lib\\_compat_pickle.py', 'PYMODULE'),
+ ('struct', 'e:\\python38\\lib\\struct.py', 'PYMODULE'),
+ ('fnmatch', 'e:\\python38\\lib\\fnmatch.py', 'PYMODULE'),
+ ('tokenize', 'e:\\python38\\lib\\tokenize.py', 'PYMODULE'),
+ ('argparse', 'e:\\python38\\lib\\argparse.py', 'PYMODULE'),
+ ('textwrap', 'e:\\python38\\lib\\textwrap.py', 'PYMODULE'),
+ ('gettext', 'e:\\python38\\lib\\gettext.py', 'PYMODULE'),
+ ('shutil', 'e:\\python38\\lib\\shutil.py', 'PYMODULE'),
+ ('zipfile', 'e:\\python38\\lib\\zipfile.py', 'PYMODULE'),
+ ('py_compile', 'e:\\python38\\lib\\py_compile.py', 'PYMODULE'),
+ ('importlib.machinery',
+ 'e:\\python38\\lib\\importlib\\machinery.py',
+ 'PYMODULE'),
+ ('importlib', 'e:\\python38\\lib\\importlib\\__init__.py', 'PYMODULE'),
+ ('importlib._bootstrap',
+ 'e:\\python38\\lib\\importlib\\_bootstrap.py',
+ 'PYMODULE'),
+ ('importlib._bootstrap_external',
+ 'e:\\python38\\lib\\importlib\\_bootstrap_external.py',
+ 'PYMODULE'),
+ ('importlib.metadata',
+ 'e:\\python38\\lib\\importlib\\metadata.py',
+ 'PYMODULE'),
+ ('importlib.abc', 'e:\\python38\\lib\\importlib\\abc.py', 'PYMODULE'),
+ ('contextlib', 'e:\\python38\\lib\\contextlib.py', 'PYMODULE'),
+ ('configparser', 'e:\\python38\\lib\\configparser.py', 'PYMODULE'),
+ ('pathlib', 'e:\\python38\\lib\\pathlib.py', 'PYMODULE'),
+ ('urllib.parse', 'e:\\python38\\lib\\urllib\\parse.py', 'PYMODULE'),
+ ('urllib', 'e:\\python38\\lib\\urllib\\__init__.py', 'PYMODULE'),
+ ('email', 'e:\\python38\\lib\\email\\__init__.py', 'PYMODULE'),
+ ('email.parser', 'e:\\python38\\lib\\email\\parser.py', 'PYMODULE'),
+ ('email._policybase', 'e:\\python38\\lib\\email\\_policybase.py', 'PYMODULE'),
+ ('email.utils', 'e:\\python38\\lib\\email\\utils.py', 'PYMODULE'),
+ ('email._parseaddr', 'e:\\python38\\lib\\email\\_parseaddr.py', 'PYMODULE'),
+ ('socket', 'e:\\python38\\lib\\socket.py', 'PYMODULE'),
+ ('selectors', 'e:\\python38\\lib\\selectors.py', 'PYMODULE'),
+ ('random', 'e:\\python38\\lib\\random.py', 'PYMODULE'),
+ ('hashlib', 'e:\\python38\\lib\\hashlib.py', 'PYMODULE'),
+ ('bisect', 'e:\\python38\\lib\\bisect.py', 'PYMODULE'),
+ ('email.feedparser', 'e:\\python38\\lib\\email\\feedparser.py', 'PYMODULE'),
+ ('email.message', 'e:\\python38\\lib\\email\\message.py', 'PYMODULE'),
+ ('email.policy', 'e:\\python38\\lib\\email\\policy.py', 'PYMODULE'),
+ ('email.contentmanager',
+ 'e:\\python38\\lib\\email\\contentmanager.py',
+ 'PYMODULE'),
+ ('email.quoprimime', 'e:\\python38\\lib\\email\\quoprimime.py', 'PYMODULE'),
+ ('email.headerregistry',
+ 'e:\\python38\\lib\\email\\headerregistry.py',
+ 'PYMODULE'),
+ ('email.iterators', 'e:\\python38\\lib\\email\\iterators.py', 'PYMODULE'),
+ ('email.generator', 'e:\\python38\\lib\\email\\generator.py', 'PYMODULE'),
+ ('email._encoded_words',
+ 'e:\\python38\\lib\\email\\_encoded_words.py',
+ 'PYMODULE'),
+ ('base64', 'e:\\python38\\lib\\base64.py', 'PYMODULE'),
+ ('getopt', 'e:\\python38\\lib\\getopt.py', 'PYMODULE'),
+ ('quopri', 'e:\\python38\\lib\\quopri.py', 'PYMODULE'),
+ ('uu', 'e:\\python38\\lib\\uu.py', 'PYMODULE'),
+ ('optparse', 'e:\\python38\\lib\\optparse.py', 'PYMODULE'),
+ ('email._header_value_parser',
+ 'e:\\python38\\lib\\email\\_header_value_parser.py',
+ 'PYMODULE'),
+ ('email.header', 'e:\\python38\\lib\\email\\header.py', 'PYMODULE'),
+ ('email.base64mime', 'e:\\python38\\lib\\email\\base64mime.py', 'PYMODULE'),
+ ('email.charset', 'e:\\python38\\lib\\email\\charset.py', 'PYMODULE'),
+ ('email.encoders', 'e:\\python38\\lib\\email\\encoders.py', 'PYMODULE'),
+ ('email.errors', 'e:\\python38\\lib\\email\\errors.py', 'PYMODULE'),
+ ('csv', 'e:\\python38\\lib\\csv.py', 'PYMODULE'),
+ ('importlib.util', 'e:\\python38\\lib\\importlib\\util.py', 'PYMODULE'),
+ ('tarfile', 'e:\\python38\\lib\\tarfile.py', 'PYMODULE'),
+ ('gzip', 'e:\\python38\\lib\\gzip.py', 'PYMODULE'),
+ ('_compression', 'e:\\python38\\lib\\_compression.py', 'PYMODULE'),
+ ('lzma', 'e:\\python38\\lib\\lzma.py', 'PYMODULE'),
+ ('bz2', 'e:\\python38\\lib\\bz2.py', 'PYMODULE'),
+ ('token', 'e:\\python38\\lib\\token.py', 'PYMODULE'),
+ ('stringprep', 'e:\\python38\\lib\\stringprep.py', 'PYMODULE'),
+ ('utils', 'E:\\pythonProject\\TCPUDP\\utils.py', 'PYMODULE'),
+ ('scheduler_app', 'E:\\pythonProject\\TCPUDP\\scheduler_app.py', 'PYMODULE'),
+ ('settings_app', 'E:\\pythonProject\\TCPUDP\\settings_app.py', 'PYMODULE'),
+ ('network_manager',
+ 'E:\\pythonProject\\TCPUDP\\network_manager.py',
+ 'PYMODULE'),
+ ('logging', 'e:\\python38\\lib\\logging\\__init__.py', 'PYMODULE'),
+ ('uuid', 'e:\\python38\\lib\\uuid.py', 'PYMODULE'),
+ ('ctypes.util', 'e:\\python38\\lib\\ctypes\\util.py', 'PYMODULE'),
+ ('tempfile', 'e:\\python38\\lib\\tempfile.py', 'PYMODULE'),
+ ('ctypes._aix', 'e:\\python38\\lib\\ctypes\\_aix.py', 'PYMODULE'),
+ ('ctypes.macholib.dyld',
+ 'e:\\python38\\lib\\ctypes\\macholib\\dyld.py',
+ 'PYMODULE'),
+ ('ctypes.macholib',
+ 'e:\\python38\\lib\\ctypes\\macholib\\__init__.py',
+ 'PYMODULE'),
+ ('ctypes.macholib.dylib',
+ 'e:\\python38\\lib\\ctypes\\macholib\\dylib.py',
+ 'PYMODULE'),
+ ('ctypes.macholib.framework',
+ 'e:\\python38\\lib\\ctypes\\macholib\\framework.py',
+ 'PYMODULE'),
+ ('netbios',
+ 'e:\\python38\\lib\\site-packages\\win32\\lib\\netbios.py',
+ 'PYMODULE'),
+ ('__future__', 'e:\\python38\\lib\\__future__.py', 'PYMODULE'),
+ ('ctypes', 'e:\\python38\\lib\\ctypes\\__init__.py', 'PYMODULE'),
+ ('ctypes._endian', 'e:\\python38\\lib\\ctypes\\_endian.py', 'PYMODULE'),
+ ('subprocess', 'e:\\python38\\lib\\subprocess.py', 'PYMODULE'),
+ ('signal', 'e:\\python38\\lib\\signal.py', 'PYMODULE'),
+ ('platform', 'e:\\python38\\lib\\platform.py', 'PYMODULE'),
+ ('calendar', 'e:\\python38\\lib\\calendar.py', 'PYMODULE'),
+ ('datetime', 'e:\\python38\\lib\\datetime.py', 'PYMODULE'),
+ ('_strptime', 'e:\\python38\\lib\\_strptime.py', 'PYMODULE'),
+ ('typing', 'e:\\python38\\lib\\typing.py', 'PYMODULE'),
+ ('threading', 'e:\\python38\\lib\\threading.py', 'PYMODULE'),
+ ('_threading_local', 'e:\\python38\\lib\\_threading_local.py', 'PYMODULE'),
+ ('json', 'e:\\python38\\lib\\json\\__init__.py', 'PYMODULE'),
+ ('json.encoder', 'e:\\python38\\lib\\json\\encoder.py', 'PYMODULE'),
+ ('json.decoder', 'e:\\python38\\lib\\json\\decoder.py', 'PYMODULE'),
+ ('json.scanner', 'e:\\python38\\lib\\json\\scanner.py', 'PYMODULE'),
+ ('tkinter.messagebox',
+ 'e:\\python38\\lib\\tkinter\\messagebox.py',
+ 'PYMODULE'),
+ ('tkinter.commondialog',
+ 'e:\\python38\\lib\\tkinter\\commondialog.py',
+ 'PYMODULE'),
+ ('tkinter.ttk', 'e:\\python38\\lib\\tkinter\\ttk.py', 'PYMODULE'),
+ ('tkinter', 'e:\\python38\\lib\\tkinter\\__init__.py', 'PYMODULE'),
+ ('tkinter.constants',
+ 'e:\\python38\\lib\\tkinter\\constants.py',
+ 'PYMODULE')],
+ [('python38.dll', 'e:\\python38\\python38.dll', 'BINARY'),
+ ('unicodedata.pyd', 'e:\\python38\\DLLs\\unicodedata.pyd', 'EXTENSION'),
+ ('select.pyd', 'e:\\python38\\DLLs\\select.pyd', 'EXTENSION'),
+ ('_socket.pyd', 'e:\\python38\\DLLs\\_socket.pyd', 'EXTENSION'),
+ ('_hashlib.pyd', 'e:\\python38\\DLLs\\_hashlib.pyd', 'EXTENSION'),
+ ('_lzma.pyd', 'e:\\python38\\DLLs\\_lzma.pyd', 'EXTENSION'),
+ ('_bz2.pyd', 'e:\\python38\\DLLs\\_bz2.pyd', 'EXTENSION'),
+ ('win32\\win32wnet.pyd',
+ 'e:\\python38\\lib\\site-packages\\win32\\win32wnet.pyd',
+ 'EXTENSION'),
+ ('_ctypes.pyd', 'e:\\python38\\DLLs\\_ctypes.pyd', 'EXTENSION'),
+ ('_tkinter.pyd', 'e:\\python38\\DLLs\\_tkinter.pyd', 'EXTENSION'),
+ ('VCRUNTIME140.dll', 'e:\\python38\\VCRUNTIME140.dll', 'BINARY'),
+ ('libcrypto-1_1.dll', 'e:\\python38\\DLLs\\libcrypto-1_1.dll', 'BINARY'),
+ ('pywin32_system32\\pywintypes38.dll',
+ 'e:\\python38\\lib\\site-packages\\pywin32_system32\\pywintypes38.dll',
+ 'BINARY'),
+ ('VCRUNTIME140_1.dll', 'C:\\Windows\\system32\\VCRUNTIME140_1.dll', 'BINARY'),
+ ('libffi-7.dll', 'e:\\python38\\DLLs\\libffi-7.dll', 'BINARY'),
+ ('tk86t.dll', 'e:\\python38\\DLLs\\tk86t.dll', 'BINARY'),
+ ('tcl86t.dll', 'e:\\python38\\DLLs\\tcl86t.dll', 'BINARY')],
+ [],
+ [],
+ [('_tcl_data\\tzdata\\Australia\\LHI',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\LHI',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Dublin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Dublin',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sl.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Regina',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Regina',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\DeNoronha',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\DeNoronha',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ja.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ja.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\button.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\button.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ulan_Bator',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ulan_Bator',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Karachi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Karachi',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\DumontDUrville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\DumontDUrville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Montserrat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Montserrat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Nipigon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Nipigon',
+ 'DATA'),
+ ('_tk_data\\images\\README',
+ 'e:\\python38\\tcl\\tk8.6\\images\\README',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Mbabane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Mbabane',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp865.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp865.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\W-SU',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\W-SU',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hi.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hi.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\pt_br.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\pt_br.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Palmer',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Palmer',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp864.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp864.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Grand_Turk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Grand_Turk',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sr.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\te.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\te.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Magadan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Magadan',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gv.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\NZ', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\NZ', 'DATA'),
+ ('_tcl_data\\tzdata\\EST5EDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\EST5EDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Hawaii',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Hawaii',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Pacific',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Pacific',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\ComodRivadavia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\ComodRivadavia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Toronto',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Toronto',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Sao_Tome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Sao_Tome',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Cordoba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Cordoba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Wallis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Wallis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kathmandu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kathmandu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\UTC', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\UTC', 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Brazzaville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Brazzaville',
+ 'DATA'),
+ ('_tk_data\\mkpsenc.tcl', 'e:\\python38\\tcl\\tk8.6\\mkpsenc.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\NSW',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\NSW',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp869.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp869.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Ojinaga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Ojinaga',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Rio_Gallegos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Rio_Gallegos',
+ 'DATA'),
+ ('_tk_data\\images\\logo64.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logo64.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ca.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ca.msg',
+ 'DATA'),
+ ('_tcl_data\\tclIndex', 'e:\\python38\\tcl\\tcl8.6\\tclIndex', 'DATA'),
+ ('_tcl_data\\encoding\\cp437.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp437.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Dawson_Creek',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Dawson_Creek',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fo_fo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fo_fo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Chita',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Chita',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Ensenada',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Ensenada',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Fakaofo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Fakaofo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Ljubljana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Ljubljana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Iqaluit',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Iqaluit',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bamako',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bamako',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_zw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_zw.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macDingbats.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macDingbats.enc',
+ 'DATA'),
+ ('_tk_data\\icons.tcl', 'e:\\python38\\tcl\\tk8.6\\icons.tcl', 'DATA'),
+ ('_tk_data\\images\\logo.eps',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logo.eps',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-14.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-14.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Martinique',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Martinique',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kok.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kok.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Virgin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Virgin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\UCT', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\UCT', 'DATA'),
+ ('_tcl_data\\tzdata\\Chile\\Continental',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Chile\\Continental',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Manaus',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Manaus',
+ 'DATA'),
+ ('_tk_data\\ttk\\spinbox.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\spinbox.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Baghdad',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Baghdad',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Mountain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Mountain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Casablanca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Casablanca',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\London',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\London',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rio_Branco',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rio_Branco',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\East',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\East',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Zagreb',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Zagreb',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Bahia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Bahia',
+ 'DATA'),
+ ('_tk_data\\xmfbox.tcl', 'e:\\python38\\tcl\\tk8.6\\xmfbox.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\La_Paz',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\La_Paz',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Nome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Nome',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp863.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp863.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_be.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\aquaTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\aquaTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\San_Marino',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\San_Marino',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Mazatlan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Mazatlan',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp861.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp861.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_cr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_cr.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sk.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Djibouti',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Djibouti',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vatican',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vatican',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Malabo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Malabo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Reykjavik',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Reykjavik',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Buenos_Aires',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Buenos_Aires',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fa_ir.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fa_ir.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Colombo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Colombo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Anguilla',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Anguilla',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1253.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1253.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macCroatian.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macCroatian.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tashkent',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tashkent',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tokyo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tokyo',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ko.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ko.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-3.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-3.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Los_Angeles',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Los_Angeles',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Andorra',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Andorra',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-4.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-4.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Omsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Omsk',
+ 'DATA'),
+ ('_tcl_data\\encoding\\ksc5601.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\ksc5601.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Ulyanovsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Ulyanovsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Istanbul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Istanbul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Danmarkshavn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Danmarkshavn',
+ 'DATA'),
+ ('_tcl_data\\msgs\\is.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\is.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Kinshasa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Kinshasa',
+ 'DATA'),
+ ('_tk_data\\msgbox.tcl', 'e:\\python38\\tcl\\tk8.6\\msgbox.tcl', 'DATA'),
+ ('_tcl_data\\msgs\\en_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Asmera',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Asmera',
+ 'DATA'),
+ ('_tk_data\\ttk\\menubutton.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\menubutton.tcl',
+ 'DATA'),
+ ('tcl8\\8.5\\msgcat-1.6.1.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.5\\msgcat-1.6.1.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Davis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Davis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Lisbon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Lisbon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Qatar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Qatar',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_uy.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_uy.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kl_gl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kl_gl.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\euc-kr.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\euc-kr.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Eucla',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Eucla',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Brunei',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Brunei',
+ 'DATA'),
+ ('_tk_data\\ttk\\sizegrip.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\sizegrip.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\South_Georgia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\South_Georgia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\Acre',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\Acre',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Vladivostok',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Vladivostok',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\YST9',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\YST9',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Manila',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Manila',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Iran',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Iran',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Resolute',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Resolute',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Mauritius',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Mauritius',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Sofia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Sofia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Asmara',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Asmara',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kok_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kok_in.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\lt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\lt.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1251.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1251.enc',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo75.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo75.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\eu.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\eu.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\North_Dakota\\New_Salem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\North_Dakota\\New_Salem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Madeira',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Madeira',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr_ca.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr_ca.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Monaco',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Monaco',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hi_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hi_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Eastern',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Eastern',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Pago_Pago',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Pago_Pago',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Chongqing',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Chongqing',
+ 'DATA'),
+ ('_tcl_data\\opt0.4\\pkgIndex.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\opt0.4\\pkgIndex.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Tortola',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Tortola',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1258.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1258.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\El_Salvador',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\El_Salvador',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Isle_of_Man',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Isle_of_Man',
+ 'DATA'),
+ ('_tk_data\\clrpick.tcl', 'e:\\python38\\tcl\\tk8.6\\clrpick.tcl', 'DATA'),
+ ('_tk_data\\msgs\\ru.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\ru.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Beirut',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Beirut',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Budapest',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Budapest',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Guam',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Guam',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dushanbe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dushanbe',
+ 'DATA'),
+ ('_tk_data\\ttk\\defaults.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\defaults.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+4',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+4',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_mx.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_mx.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Kwajalein',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Kwajalein',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Belize',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Belize',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Kiev',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Kiev',
+ 'DATA'),
+ ('_tk_data\\safetk.tcl', 'e:\\python38\\tcl\\tk8.6\\safetk.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Palau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Palau',
+ 'DATA'),
+ ('_tk_data\\optMenu.tcl', 'e:\\python38\\tcl\\tk8.6\\optMenu.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yangon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yangon',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kl.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-10.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-10.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\vistaTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\vistaTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Zurich',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Zurich',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_ph.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_ph.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Maldives',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Maldives',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Scoresbysund',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Scoresbysund',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp775.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp775.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Famagusta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Famagusta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT-0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT-0',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macRomania.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macRomania.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Cuba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Cuba',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ta_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ta_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Creston',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Creston',
+ 'DATA'),
+ ('_tk_data\\msgs\\es.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\es.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Luxembourg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Luxembourg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\WET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\WET', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Antigua',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Antigua',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Dakar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Dakar',
+ 'DATA'),
+ ('_tk_data\\msgs\\pl.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\pl.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Kwajalein',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Kwajalein',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-16.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-16.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Kralendijk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Kralendijk',
+ 'DATA'),
+ ('_tcl_data\\init.tcl', 'e:\\python38\\tcl\\tcl8.6\\init.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Antananarivo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Antananarivo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Moncton',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Moncton',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Kirov',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Kirov',
+ 'DATA'),
+ ('_tcl_data\\encoding\\ebcdic.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\ebcdic.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\PST8PDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\PST8PDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-11',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-11',
+ 'DATA'),
+ ('_tk_data\\console.tcl', 'e:\\python38\\tcl\\tk8.6\\console.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Brussels',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Brussels',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-9.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-9.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\bn_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\bn_in.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\jis0208.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\jis0208.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_tw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_tw.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\xpTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\xpTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Simferopol',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Simferopol',
+ 'DATA'),
+ ('_tcl_data\\encoding\\symbol.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\symbol.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\entry.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\entry.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Pohnpei',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Pohnpei',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Niue',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Niue',
+ 'DATA'),
+ ('_tk_data\\msgs\\sv.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\sv.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Goose_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Goose_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santo_Domingo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santo_Domingo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dacca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dacca',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Rangoon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Rangoon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Nassau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Nassau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\EST5EDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\EST5EDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Mexico\\BajaNorte',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Mexico\\BajaNorte',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mr_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mr_in.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso2022-jp.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso2022-jp.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Bratislava',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Bratislava',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp857.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp857.enc',
+ 'DATA'),
+ ('_tk_data\\images\\tai-ku.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\tai-ku.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_sv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_sv.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rainy_River',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rainy_River',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Harare',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Harare',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Gambier',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Gambier',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gl.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\fonts.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\fonts.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Central',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Central',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Maputo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Maputo',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_sg.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_sg.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Mariehamn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Mariehamn',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bangui',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bangui',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Winnipeg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Winnipeg',
+ 'DATA'),
+ ('tcl8\\8.5\\tcltest-2.5.0.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.5\\tcltest-2.5.0.tm',
+ 'DATA'),
+ ('_tk_data\\msgs\\pt.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\pt.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Jamaica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Jamaica',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Blantyre',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Blantyre',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nl.msg',
+ 'DATA'),
+ ('_tcl_data\\safe.tcl', 'e:\\python38\\tcl\\tcl8.6\\safe.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Tijuana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Tijuana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\UCT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\UCT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Amman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Amman',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Ndjamena',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Ndjamena',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kuala_Lumpur',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kuala_Lumpur',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Mahe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Mahe',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Barnaul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Barnaul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ust-Nera',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ust-Nera',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bujumbura',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bujumbura',
+ 'DATA'),
+ ('_tk_data\\msgs\\cs.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\cs.msg', 'DATA'),
+ ('_tk_data\\ttk\\scale.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\scale.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Indiana-Starke',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Indiana-Starke',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\EET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\EET', 'DATA'),
+ ('_tcl_data\\package.tcl', 'e:\\python38\\tcl\\tcl8.6\\package.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\Zulu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\Zulu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Gaza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Gaza',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-8.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-8.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\koi8-r.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\koi8-r.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\MST7MDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\MST7MDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kolkata',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kolkata',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\East-Saskatchewan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\East-Saskatchewan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Pyongyang',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Pyongyang',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\La_Rioja',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\La_Rioja',
+ 'DATA'),
+ ('_tk_data\\msgs\\hu.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\hu.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Macao',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Macao',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ms.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ms.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Belfast',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Belfast',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Nouakchott',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Nouakchott',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_za.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_za.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Easter',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Easter',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Gaborone',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Gaborone',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sw.msg',
+ 'DATA'),
+ ('tcl8\\8.6\\http-2.9.0.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.6\\http-2.9.0.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+12',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+12',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+1',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+1',
+ 'DATA'),
+ ('_tcl_data\\http1.0\\http.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\http1.0\\http.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Maceio',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Maceio',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Dawson',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Dawson',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+2',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+2',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Calcutta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Calcutta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Astrakhan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Astrakhan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Bermuda',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Bermuda',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tel_Aviv',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tel_Aviv',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Algiers',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Algiers',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gv_gb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gv_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\euc-cn.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\euc-cn.enc',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo100.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo100.gif',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guyana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guyana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+11',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+11',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-10',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-10',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Novosibirsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Novosibirsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Noronha',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Noronha',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fa.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fa.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macGreek.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macGreek.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Cairo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Cairo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Navajo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Navajo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\UTC',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\UTC',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1252.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1252.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_sg.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_sg.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Guadalcanal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Guadalcanal',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sq.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sq.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Coral_Harbour',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Coral_Harbour',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gl_es.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gl_es.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Metlakatla',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Metlakatla',
+ 'DATA'),
+ ('_tk_data\\dialog.tcl', 'e:\\python38\\tcl\\tk8.6\\dialog.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Tegucigalpa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Tegucigalpa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Mogadishu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Mogadishu',
+ 'DATA'),
+ ('_tcl_data\\encoding\\tis-620.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\tis-620.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Managua',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Managua',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Zulu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Zulu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Pacific-New',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Pacific-New',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_gt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_gt.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_ec.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ec.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macIceland.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macIceland.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Louisville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Louisville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Bahrain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Bahrain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rosario',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rosario',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\HST', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\HST', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Grenada',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Grenada',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Enderbury',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Enderbury',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Timbuktu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Timbuktu',
+ 'DATA'),
+ ('_tcl_data\\msgs\\bn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\bn.msg',
+ 'DATA'),
+ ('_tk_data\\comdlg.tcl', 'e:\\python38\\tcl\\tk8.6\\comdlg.tcl', 'DATA'),
+ ('_tk_data\\images\\pwrdLogo.eps',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo.eps',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cancun',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cancun',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Atka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Atka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\New_York',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\New_York',
+ 'DATA'),
+ ('_tk_data\\images\\logoMed.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logoMed.gif',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Addis_Ababa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Addis_Ababa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Tiraspol',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Tiraspol',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Kentucky\\Louisville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Kentucky\\Louisville',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\CST6CDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\CST6CDT',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ru_ua.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ru_ua.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macJapan.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macJapan.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Khartoum',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Khartoum',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp874.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp874.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Nicosia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Nicosia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lusaka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lusaka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Jakarta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Jakarta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Eastern',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Eastern',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Fortaleza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Fortaleza',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\ACT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\ACT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Istanbul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Istanbul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-13',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-13',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Detroit',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Detroit',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\CST6CDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\CST6CDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Thule',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Thule',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_au.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_au.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Perth',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Perth',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Chuuk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Chuuk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Central',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Central',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Hovd',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Hovd',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Damascus',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Damascus',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Marquesas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Marquesas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Montevideo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Montevideo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Michigan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Michigan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Matamoros',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Matamoros',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Yancowinna',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Yancowinna',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Saigon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Saigon',
+ 'DATA'),
+ ('_tk_data\\scrlbar.tcl', 'e:\\python38\\tcl\\tk8.6\\scrlbar.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Hebron',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Hebron',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Atlantic',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Atlantic',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Jerusalem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Jerusalem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Chicago',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Chicago',
+ 'DATA'),
+ ('_tcl_data\\msgs\\de_at.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\de_at.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Monterrey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Monterrey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Darwin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Darwin',
+ 'DATA'),
+ ('_tcl_data\\msgs\\he.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\he.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Phoenix',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Phoenix',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Douala',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Douala',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Mexico\\General',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Mexico\\General',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\West',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\West',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Ponape',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Ponape',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macTurkish.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macTurkish.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Portugal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Portugal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Rothera',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Rothera',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Phnom_Penh',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Phnom_Penh',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Mexico\\BajaSur',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Mexico\\BajaSur',
+ 'DATA'),
+ ('_tcl_data\\history.tcl', 'e:\\python38\\tcl\\tcl8.6\\history.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Vincent',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Vincent',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Ouagadougou',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Ouagadougou',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kuching',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kuching',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Sarajevo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Sarajevo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-8',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-8',
+ 'DATA'),
+ ('_tk_data\\megawidget.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\megawidget.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\ROC', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\ROC', 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Chagos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Chagos',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Krasnoyarsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Krasnoyarsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+5',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+5',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\MST7MDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\MST7MDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Mendoza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Mendoza',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-7.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-7.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Jersey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Jersey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Barthelemy',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Barthelemy',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Johannesburg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Johannesburg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\ascii.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\ascii.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Moscow',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Moscow',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Khandyga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Khandyga',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Midway',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Midway',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Thimbu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Thimbu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\South_Pole',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\South_Pole',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\North_Dakota\\Center',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\North_Dakota\\Center',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Kigali',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Kigali',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-15.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-15.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Pontianak',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Pontianak',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Kampala',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Kampala',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Glace_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Glace_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Singapore',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Singapore',
+ 'DATA'),
+ ('_tk_data\\ttk\\classicTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\classicTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Brisbane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Brisbane',
+ 'DATA'),
+ ('_tk_data\\msgs\\el.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\el.msg', 'DATA'),
+ ('_tcl_data\\msgs\\ar_jo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_jo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cordoba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cordoba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Muscat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Muscat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Tunis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Tunis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Honolulu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Honolulu',
+ 'DATA'),
+ ('_tcl_data\\encoding\\jis0212.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\jis0212.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Queensland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Queensland',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GB-Eire',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GB-Eire',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Stanley',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Stanley',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Lindeman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Lindeman',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Pitcairn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Pitcairn',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Chihuahua',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Chihuahua',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sh.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sh.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp932.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp932.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Vevay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Vevay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Yap',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Yap',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Minsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Minsk',
+ 'DATA'),
+ ('_tcl_data\\encoding\\shiftjis.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\shiftjis.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vienna',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vienna',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Petersburg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Petersburg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Yellowknife',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Yellowknife',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Comoro',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Comoro',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Berlin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Berlin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Riga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Riga',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macCyrillic.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macCyrillic.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tbilisi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tbilisi',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Almaty',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Almaty',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\Universal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\Universal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Merida',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Merida',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Costa_Rica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Costa_Rica',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macThai.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macThai.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Rarotonga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Rarotonga',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\YST9YDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\YST9YDT',
+ 'DATA'),
+ ('_tk_data\\images\\logo100.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logo100.gif',
+ 'DATA'),
+ ('_tcl_data\\opt0.4\\optparse.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\opt0.4\\optparse.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\San_Juan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\San_Juan',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1254.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1254.enc',
+ 'DATA'),
+ ('_tcl_data\\auto.tcl', 'e:\\python38\\tcl\\tcl8.6\\auto.tcl', 'DATA'),
+ ('_tcl_data\\msgs\\en_hk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_hk.msg',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo175.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo175.gif',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo200.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo200.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\cs.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\cs.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Arizona',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Arizona',
+ 'DATA'),
+ ('_tk_data\\menu.tcl', 'e:\\python38\\tcl\\tk8.6\\menu.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Anchorage',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Anchorage',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\CST6',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\CST6',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\NZ-CHAT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\NZ-CHAT',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_co.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_co.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Belem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Belem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Pacific',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Pacific',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Araguaina',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Araguaina',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Thimphu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Thimphu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Busingen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Busingen',
+ 'DATA'),
+ ('_tk_data\\palette.tcl', 'e:\\python38\\tcl\\tk8.6\\palette.tcl', 'DATA'),
+ ('_tk_data\\listbox.tcl', 'e:\\python38\\tcl\\tk8.6\\listbox.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Noumea',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Noumea',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar_sy.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_sy.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fa_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fa_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Porto_Velho',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Porto_Velho',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_do.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_do.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nb.msg',
+ 'DATA'),
+ ('_tk_data\\tkfbox.tcl', 'e:\\python38\\tcl\\tk8.6\\tkfbox.tcl', 'DATA'),
+ ('_tcl_data\\msgs\\lv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\lv.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\altTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\altTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Fort_Wayne',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Fort_Wayne',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\El_Aaiun',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\El_Aaiun',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dhaka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dhaka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Anadyr',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Anadyr',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Harbin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Harbin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Vostok',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Vostok',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\PST8',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\PST8',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1256.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1256.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Lucia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Lucia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT', 'DATA'),
+ ('_tcl_data\\encoding\\koi8-u.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\koi8-u.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_bw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_bw.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kabul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kabul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Bahia_Banderas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Bahia_Banderas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Conakry',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Conakry',
+ 'DATA'),
+ ('_tk_data\\iconlist.tcl', 'e:\\python38\\tcl\\tk8.6\\iconlist.tcl', 'DATA'),
+ ('_tk_data\\tclIndex', 'e:\\python38\\tcl\\tk8.6\\tclIndex', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Makassar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Makassar',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Mendoza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Mendoza',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Urumqi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Urumqi',
+ 'DATA'),
+ ('_tk_data\\panedwindow.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\panedwindow.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Japan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Japan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Jayapura',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Jayapura',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Victoria',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Victoria',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Fort_Nelson',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Fort_Nelson',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Novokuznetsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Novokuznetsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Hongkong',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Hongkong',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\St_Helena',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\St_Helena',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Uzhgorod',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Uzhgorod',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Boa_Vista',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Boa_Vista',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Amsterdam',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Amsterdam',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-2',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-2',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Cape_Verde',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Cape_Verde',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Menominee',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Menominee',
+ 'DATA'),
+ ('_tcl_data\\msgs\\it.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\it.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Gibraltar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Gibraltar',
+ 'DATA'),
+ ('_tcl_data\\msgs\\tr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\tr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+10',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+10',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ko_kr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ko_kr.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb2312.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb2312.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\jis0201.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\jis0201.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp949.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp949.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\treeview.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\treeview.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kuwait',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kuwait',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Nairobi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Nairobi',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Norfolk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Norfolk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Barbados',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Barbados',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Havana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Havana',
+ 'DATA'),
+ ('_tcl_data\\msgs\\eo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\eo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-5',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-5',
+ 'DATA'),
+ ('_tcl_data\\msgs\\te_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\te_in.msg',
+ 'DATA'),
+ ('_tk_data\\tearoff.tcl', 'e:\\python38\\tcl\\tk8.6\\tearoff.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Funafuti',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Funafuti',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cuiaba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cuiaba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indianapolis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indianapolis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Monrovia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Monrovia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Galapagos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Galapagos',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\North_Dakota\\Beulah',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\North_Dakota\\Beulah',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Swift_Current',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Swift_Current',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Libya',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Libya',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Eirunepe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Eirunepe',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kw_gb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kw_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp950.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp950.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Melbourne',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Melbourne',
+ 'DATA'),
+ ('_tk_data\\button.tcl', 'e:\\python38\\tcl\\tk8.6\\button.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cayman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cayman',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mk.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Podgorica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Podgorica',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Athens',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Athens',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Tucuman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Tucuman',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Saskatchewan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Saskatchewan',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Irkutsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Irkutsk',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_pr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_pr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Kitts',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Kitts',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\MST', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\MST', 'DATA'),
+ ('_tk_data\\bgerror.tcl', 'e:\\python38\\tcl\\tk8.6\\bgerror.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Tell_City',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Tell_City',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Aden',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Aden',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Macquarie',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Macquarie',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Blanc-Sablon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Blanc-Sablon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Curacao',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Curacao',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Chatham',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Chatham',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Christmas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Christmas',
+ 'DATA'),
+ ('_tk_data\\msgs\\it.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\it.msg', 'DATA'),
+ ('tcl8\\8.4\\platform\\shell-1.1.4.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.4\\platform\\shell-1.1.4.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Vincennes',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Vincennes',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Eire',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Eire',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vilnius',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vilnius',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Srednekolymsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Srednekolymsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yakutsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yakutsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Poland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Poland',
+ 'DATA'),
+ ('_tk_data\\scale.tcl', 'e:\\python38\\tcl\\tk8.6\\scale.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-1',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-1',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+3',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+3',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Canary',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Canary',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Faroe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Faroe',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Choibalsan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Choibalsan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Majuro',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Majuro',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\East-Indiana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\East-Indiana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Bishkek',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Bishkek',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Paris',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Paris',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Paramaribo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Paramaribo',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kw.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\San_Luis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\San_Luis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Marengo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Marengo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\McMurdo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\McMurdo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Sydney',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Sydney',
+ 'DATA'),
+ ('_tk_data\\entry.tcl', 'e:\\python38\\tcl\\tk8.6\\entry.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yekaterinburg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yekaterinburg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\HST10',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\HST10',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-6.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-6.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Kosrae',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Kosrae',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macCentEuro.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macCentEuro.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ashgabat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ashgabat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Seoul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Seoul',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso2022-kr.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso2022-kr.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\utils.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\utils.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Hermosillo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Hermosillo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Syowa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Syowa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dubai',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dubai',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Montreal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Montreal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Ceuta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Ceuta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Baku',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Baku',
+ 'DATA'),
+ ('_tcl_data\\msgs\\bg.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\bg.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\vi.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\vi.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vaduz',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vaduz',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Windhoek',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Windhoek',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Volgograd',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Volgograd',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Tripoli',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Tripoli',
+ 'DATA'),
+ ('_tk_data\\choosedir.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\choosedir.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dili',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dili',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-6',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-6',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ho_Chi_Minh',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ho_Chi_Minh',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Chungking',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Chungking',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Egypt',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Egypt',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Nauru',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Nauru',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+9',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+9',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Newfoundland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Newfoundland',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Denver',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Denver',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Bucharest',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Bucharest',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp855.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp855.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar_lb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_lb.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Tasmania',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Tasmania',
+ 'DATA'),
+ ('_tcl_data\\parray.tcl', 'e:\\python38\\tcl\\tcl8.6\\parray.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Johnston',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Johnston',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\AST4',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\AST4',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Casey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Casey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Knox',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Knox',
+ 'DATA'),
+ ('_tk_data\\obsolete.tcl', 'e:\\python38\\tcl\\tk8.6\\obsolete.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Samoa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Samoa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Reunion',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Reunion',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp860.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp860.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\it_ch.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\it_ch.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Chile\\EasterIsland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Chile\\EasterIsland',
+ 'DATA'),
+ ('_tk_data\\ttk\\progress.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\progress.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GB', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GB', 'DATA'),
+ ('_tcl_data\\msgs\\es_ve.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ve.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Skopje',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Skopje',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Miquelon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Miquelon',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ro.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ro.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santarem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santarem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Currie',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Currie',
+ 'DATA'),
+ ('_tk_data\\ttk\\panedwindow.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\panedwindow.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ga_ie.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ga_ie.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr_be.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\North',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\North',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp852.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp852.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Cocos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Cocos',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Kentucky\\Monticello',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Kentucky\\Monticello',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Saipan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Saipan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Bogota',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Bogota',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Maseru',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Maseru',
+ 'DATA'),
+ ('_tk_data\\msgs\\da.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\da.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Universal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Universal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Asuncion',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Asuncion',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santiago',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santiago',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Kaliningrad',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Kaliningrad',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lome',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_ca.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_ca.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Tahiti',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Tahiti',
+ 'DATA'),
+ ('_tcl_data\\msgs\\id.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\id.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Samoa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Samoa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Mawson',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Mawson',
+ 'DATA'),
+ ('_tcl_data\\msgs\\th.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\th.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\MST7',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\MST7',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yerevan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yerevan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Truk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Truk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Belgrade',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Belgrade',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-9',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-9',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_bo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_bo.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Yukon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Yukon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cambridge_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cambridge_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Juba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Juba',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_ie.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_ie.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fi.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fi.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\big5.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\big5.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Banjul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Banjul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Zaporozhye',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Zaporozhye',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Efate',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Efate',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\EST', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\EST', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Jujuy',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Jujuy',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Stockholm',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Stockholm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Sakhalin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Sakhalin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santa_Isabel',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santa_Isabel',
+ 'DATA'),
+ ('_tk_data\\msgs\\en_gb.msg',
+ 'e:\\python38\\tcl\\tk8.6\\msgs\\en_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp850.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp850.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Godthab',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Godthab',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Adak',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Adak',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ashkhabad',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ashkhabad',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nl_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nl_be.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Accra',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Accra',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1257.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1257.enc',
+ 'DATA'),
+ ('_tk_data\\spinbox.tcl', 'e:\\python38\\tcl\\tk8.6\\spinbox.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Puerto_Rico',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Puerto_Rico',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Warsaw',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Warsaw',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb2312-raw.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb2312-raw.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Alaska',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Alaska',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Jan_Mayen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Jan_Mayen',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Adelaide',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Adelaide',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Shiprock',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Shiprock',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Faeroe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Faeroe',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_py.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_py.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp862.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp862.enc',
+ 'DATA'),
+ ('_tk_data\\license.terms',
+ 'e:\\python38\\tcl\\tk8.6\\license.terms',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Boise',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Boise',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\Greenwich',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\Greenwich',
+ 'DATA'),
+ ('_tk_data\\ttk\\ttk.tcl', 'e:\\python38\\tcl\\tk8.6\\ttk\\ttk.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guadeloupe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guadeloupe',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Sao_Paulo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Sao_Paulo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\CET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\CET', 'DATA'),
+ ('_tcl_data\\msgs\\en_gb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Katmandu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Katmandu',
+ 'DATA'),
+ ('_tcl_data\\tm.tcl', 'e:\\python38\\tcl\\tcl8.6\\tm.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Freetown',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Freetown',
+ 'DATA'),
+ ('_tcl_data\\http1.0\\pkgIndex.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\http1.0\\pkgIndex.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Marigot',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Marigot',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+8',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+8',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Jujuy',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Jujuy',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Prague',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Prague',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp936.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp936.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Porto-Novo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Porto-Novo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Punta_Arenas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Punta_Arenas',
+ 'DATA'),
+ ('tcl8\\8.4\\platform-1.0.14.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.4\\platform-1.0.14.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Rome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Rome',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Vancouver',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Vancouver',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Abidjan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Abidjan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Mexico_City',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Mexico_City',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-13.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-13.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Recife',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Recife',
+ 'DATA'),
+ ('_tcl_data\\clock.tcl', 'e:\\python38\\tcl\\tcl8.6\\clock.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Niamey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Niamey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\PST8PDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\PST8PDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Bougainville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Bougainville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Troll',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Troll',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Mountain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Mountain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\PRC', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\PRC', 'DATA'),
+ ('_tcl_data\\word.tcl', 'e:\\python38\\tcl\\tcl8.6\\word.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-7',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-7',
+ 'DATA'),
+ ('_tk_data\\msgs\\eo.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\eo.msg', 'DATA'),
+ ('_tcl_data\\msgs\\de.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\de.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Hong_Kong',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Hong_Kong',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1255.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1255.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Oslo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Oslo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-3',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-3',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Vientiane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Vientiane',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ga.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ga.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Hobart',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Hobart',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp866.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp866.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Lord_Howe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Lord_Howe',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_ni.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ni.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Jamaica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Jamaica',
+ 'DATA'),
+ ('_tcl_data\\msgs\\pt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\pt.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Knox_IN',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Knox_IN',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-12',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-12',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Guernsey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Guernsey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Johns',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Johns',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Catamarca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Catamarca',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_ar.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ar.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\ROK', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\ROK', 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Tallinn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Tallinn',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\MET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\MET', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Kiritimati',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Kiritimati',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Sitka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Sitka',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hu.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hu.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\id_id.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\id_id.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-4',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-4',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Caracas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Caracas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Inuvik',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Inuvik',
+ 'DATA'),
+ ('_tcl_data\\msgs\\pl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\pl.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\af.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\af.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Panama',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Panama',
+ 'DATA'),
+ ('_tcl_data\\msgs\\et.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\et.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guatemala',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guatemala',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Greenwich',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Greenwich',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Port_Moresby',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Port_Moresby',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_hn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_hn.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Luanda',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Luanda',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Bangkok',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Bangkok',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb12345.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb12345.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-14',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-14',
+ 'DATA'),
+ ('_tcl_data\\msgs\\be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\be.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\clamTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\clamTheme.tcl',
+ 'DATA'),
+ ('_tk_data\\msgs\\de.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\de.msg', 'DATA'),
+ ('_tcl_data\\encoding\\macUkraine.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macUkraine.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sv.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\el.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\el.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Fiji',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Fiji',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+7',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+7',
+ 'DATA'),
+ ('_tcl_data\\msgs\\da.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\da.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Porto_Acre',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Porto_Acre',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Aruba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Aruba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Halifax',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Halifax',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Ushuaia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Ushuaia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tehran',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tehran',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp737.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp737.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Aqtau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Aqtau',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-5.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-5.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macRoman.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macRoman.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Broken_Hill',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Broken_Hill',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Lower_Princes',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Lower_Princes',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Pangnirtung',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Pangnirtung',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Yakutat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Yakutat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Indianapolis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Indianapolis',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-1.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-1.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Nicosia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Nicosia',
+ 'DATA'),
+ ('_tk_data\\fontchooser.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\fontchooser.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\eu_es.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\eu_es.msg',
+ 'DATA'),
+ ('_tk_data\\images\\logoLarge.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logoLarge.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ms_my.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ms_my.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Apia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Apia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tomsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tomsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Port-au-Prince',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Port-au-Prince',
+ 'DATA'),
+ ('_tk_data\\unsupported.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\unsupported.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Mayotte',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Mayotte',
+ 'DATA'),
+ ('_tk_data\\ttk\\scrollbar.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\scrollbar.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ta.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ta.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ujung_Pandang',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ujung_Pandang',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr_ch.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr_ch.msg',
+ 'DATA'),
+ ('_tk_data\\pkgIndex.tcl', 'e:\\python38\\tcl\\tk8.6\\pkgIndex.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\AST4ADT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\AST4ADT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Catamarca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Catamarca',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Iceland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Iceland',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mt.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ulaanbaatar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ulaanbaatar',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Tirane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Tirane',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Saratov',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Saratov',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\South',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\South',
+ 'DATA'),
+ ('_tk_data\\ttk\\cursors.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\cursors.tcl',
+ 'DATA'),
+ ('_tk_data\\ttk\\winTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\winTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Campo_Grande',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Campo_Grande',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_cl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_cl.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Tongatapu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Tongatapu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Thunder_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Thunder_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lagos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lagos',
+ 'DATA'),
+ ('_tk_data\\focus.tcl', 'e:\\python38\\tcl\\tk8.6\\focus.tcl', 'DATA'),
+ ('_tk_data\\text.tcl', 'e:\\python38\\tcl\\tk8.6\\text.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Samarkand',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Samarkand',
+ 'DATA'),
+ ('_tk_data\\msgs\\nl.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\nl.msg', 'DATA'),
+ ('_tk_data\\ttk\\combobox.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\combobox.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\uk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\uk.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1250.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1250.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guayaquil',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guayaquil',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+6',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+6',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kamchatka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kamchatka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT+0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT+0',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb1988.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb1988.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ru.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ru.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Auckland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Auckland',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Singapore',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Singapore',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Canberra',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Canberra',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Port_of_Spain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Port_of_Spain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bissau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bissau',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_pe.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_pe.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Edmonton',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Edmonton',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-2.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-2.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cayenne',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cayenne',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Libreville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Libreville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Israel',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Israel',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_hk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_hk.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Buenos_Aires',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Buenos_Aires',
+ 'DATA'),
+ ('_tk_data\\msgs\\en.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\en.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Taipei',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Taipei',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_nz.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_nz.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\euc-jp.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\euc-jp.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Qyzylorda',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Qyzylorda',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Lima',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Lima',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Dar_es_Salaam',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Dar_es_Salaam',
+ 'DATA'),
+ ('_tk_data\\ttk\\notebook.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\notebook.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Oral',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Oral',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Aqtobe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Aqtobe',
+ 'DATA'),
+ ('_tk_data\\tk.tcl', 'e:\\python38\\tcl\\tk8.6\\tk.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Riyadh',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Riyadh',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Wake',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Wake',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Chisinau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Chisinau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Copenhagen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Copenhagen',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Tarawa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Tarawa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Madrid',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Madrid',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Malta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Malta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Whitehorse',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Whitehorse',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Helsinki',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Helsinki',
+ 'DATA'),
+ ('_tk_data\\msgs\\fr.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\fr.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\West',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\West',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Dominica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Dominica',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_pa.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_pa.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\EST5',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\EST5',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Atyrau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Atyrau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Macau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Macau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Shanghai',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Shanghai',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lubumbashi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lubumbashi',
+ 'DATA'),
+ ('_tcl_data\\msgs\\af_za.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\af_za.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\de_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\de_be.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Kerguelen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Kerguelen',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nn.msg',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo150.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo150.gif',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Atikokan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Atikokan',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_cn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_cn.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Aleutian',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Aleutian',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Arctic\\Longyearbyen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Arctic\\Longyearbyen',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Azores',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Azores',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Thomas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Thomas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Turkey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Turkey',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso2022.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso2022.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Juneau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Juneau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Samara',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Samara',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kashgar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kashgar',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Winamac',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Winamac',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Salta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Salta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rankin_Inlet',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rankin_Inlet',
+ 'DATA'),
+ ('_tcl_data\\encoding\\dingbats.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\dingbats.enc',
+ 'DATA'),
+ ('base_library.zip',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\base_library.zip',
+ 'DATA')])
diff --git a/build/网络设备控制器/EXE-00.toc b/build/网络设备控制器/EXE-00.toc
new file mode 100644
index 0000000..c7b5a46
--- /dev/null
+++ b/build/网络设备控制器/EXE-00.toc
@@ -0,0 +1,2705 @@
+('E:\\pythonProject\\TCPUDP\\dist\\网络设备控制器.exe',
+ False,
+ False,
+ False,
+ 'e:\\python38\\lib\\site-packages\\PyInstaller\\bootloader\\images\\icon-windowed.ico',
+ None,
+ False,
+ False,
+ b'\n\n \n \n \n \n \n \n \n '
+ b'\n <'
+ b'application>\n \n \n '
+ b' \n \n \n \n <'
+ b'/compatibility>\n '
+ b'\n \n true\n \n \n \n \n \n \n \n',
+ True,
+ False,
+ None,
+ None,
+ None,
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\网络设备控制器.pkg',
+ [('pyi-contents-directory _internal', '', 'OPTION'),
+ ('PYZ-00.pyz',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\PYZ-00.pyz',
+ 'PYZ'),
+ ('struct',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\struct.pyc',
+ 'PYMODULE'),
+ ('pyimod01_archive',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\pyimod01_archive.pyc',
+ 'PYMODULE'),
+ ('pyimod02_importers',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\pyimod02_importers.pyc',
+ 'PYMODULE'),
+ ('pyimod03_ctypes',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\pyimod03_ctypes.pyc',
+ 'PYMODULE'),
+ ('pyimod04_pywin32',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\pyimod04_pywin32.pyc',
+ 'PYMODULE'),
+ ('pyiboot01_bootstrap',
+ 'e:\\python38\\lib\\site-packages\\PyInstaller\\loader\\pyiboot01_bootstrap.py',
+ 'PYSOURCE'),
+ ('pyi_rth__tkinter',
+ 'E:\\Python38\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth__tkinter.py',
+ 'PYSOURCE'),
+ ('main_control_app',
+ 'E:\\pythonProject\\TCPUDP\\main_control_app.py',
+ 'PYSOURCE'),
+ ('python38.dll', 'e:\\python38\\python38.dll', 'BINARY'),
+ ('unicodedata.pyd', 'e:\\python38\\DLLs\\unicodedata.pyd', 'EXTENSION'),
+ ('select.pyd', 'e:\\python38\\DLLs\\select.pyd', 'EXTENSION'),
+ ('_socket.pyd', 'e:\\python38\\DLLs\\_socket.pyd', 'EXTENSION'),
+ ('_hashlib.pyd', 'e:\\python38\\DLLs\\_hashlib.pyd', 'EXTENSION'),
+ ('_lzma.pyd', 'e:\\python38\\DLLs\\_lzma.pyd', 'EXTENSION'),
+ ('_bz2.pyd', 'e:\\python38\\DLLs\\_bz2.pyd', 'EXTENSION'),
+ ('win32\\win32wnet.pyd',
+ 'e:\\python38\\lib\\site-packages\\win32\\win32wnet.pyd',
+ 'EXTENSION'),
+ ('_ctypes.pyd', 'e:\\python38\\DLLs\\_ctypes.pyd', 'EXTENSION'),
+ ('_tkinter.pyd', 'e:\\python38\\DLLs\\_tkinter.pyd', 'EXTENSION'),
+ ('VCRUNTIME140.dll', 'e:\\python38\\VCRUNTIME140.dll', 'BINARY'),
+ ('libcrypto-1_1.dll', 'e:\\python38\\DLLs\\libcrypto-1_1.dll', 'BINARY'),
+ ('pywin32_system32\\pywintypes38.dll',
+ 'e:\\python38\\lib\\site-packages\\pywin32_system32\\pywintypes38.dll',
+ 'BINARY'),
+ ('VCRUNTIME140_1.dll', 'C:\\Windows\\system32\\VCRUNTIME140_1.dll', 'BINARY'),
+ ('libffi-7.dll', 'e:\\python38\\DLLs\\libffi-7.dll', 'BINARY'),
+ ('tk86t.dll', 'e:\\python38\\DLLs\\tk86t.dll', 'BINARY'),
+ ('tcl86t.dll', 'e:\\python38\\DLLs\\tcl86t.dll', 'BINARY'),
+ ('_tcl_data\\tzdata\\Australia\\LHI',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\LHI',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Dublin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Dublin',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sl.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Regina',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Regina',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\DeNoronha',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\DeNoronha',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ja.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ja.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\button.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\button.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ulan_Bator',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ulan_Bator',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Karachi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Karachi',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\DumontDUrville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\DumontDUrville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Montserrat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Montserrat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Nipigon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Nipigon',
+ 'DATA'),
+ ('_tk_data\\images\\README',
+ 'e:\\python38\\tcl\\tk8.6\\images\\README',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Mbabane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Mbabane',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp865.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp865.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\W-SU',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\W-SU',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hi.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hi.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\pt_br.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\pt_br.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Palmer',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Palmer',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp864.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp864.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Grand_Turk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Grand_Turk',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sr.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\te.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\te.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Magadan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Magadan',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gv.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\NZ', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\NZ', 'DATA'),
+ ('_tcl_data\\tzdata\\EST5EDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\EST5EDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Hawaii',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Hawaii',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Pacific',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Pacific',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\ComodRivadavia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\ComodRivadavia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Toronto',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Toronto',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Sao_Tome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Sao_Tome',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Cordoba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Cordoba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Wallis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Wallis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kathmandu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kathmandu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\UTC', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\UTC', 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Brazzaville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Brazzaville',
+ 'DATA'),
+ ('_tk_data\\mkpsenc.tcl', 'e:\\python38\\tcl\\tk8.6\\mkpsenc.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\NSW',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\NSW',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp869.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp869.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Ojinaga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Ojinaga',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Rio_Gallegos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Rio_Gallegos',
+ 'DATA'),
+ ('_tk_data\\images\\logo64.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logo64.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ca.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ca.msg',
+ 'DATA'),
+ ('_tcl_data\\tclIndex', 'e:\\python38\\tcl\\tcl8.6\\tclIndex', 'DATA'),
+ ('_tcl_data\\encoding\\cp437.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp437.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Dawson_Creek',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Dawson_Creek',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fo_fo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fo_fo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Chita',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Chita',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Ensenada',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Ensenada',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Fakaofo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Fakaofo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Ljubljana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Ljubljana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Iqaluit',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Iqaluit',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bamako',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bamako',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_zw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_zw.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macDingbats.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macDingbats.enc',
+ 'DATA'),
+ ('_tk_data\\icons.tcl', 'e:\\python38\\tcl\\tk8.6\\icons.tcl', 'DATA'),
+ ('_tk_data\\images\\logo.eps',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logo.eps',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-14.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-14.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Martinique',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Martinique',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kok.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kok.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Virgin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Virgin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\UCT', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\UCT', 'DATA'),
+ ('_tcl_data\\tzdata\\Chile\\Continental',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Chile\\Continental',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Manaus',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Manaus',
+ 'DATA'),
+ ('_tk_data\\ttk\\spinbox.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\spinbox.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Baghdad',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Baghdad',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Mountain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Mountain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Casablanca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Casablanca',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\London',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\London',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rio_Branco',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rio_Branco',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\East',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\East',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Zagreb',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Zagreb',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Bahia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Bahia',
+ 'DATA'),
+ ('_tk_data\\xmfbox.tcl', 'e:\\python38\\tcl\\tk8.6\\xmfbox.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\La_Paz',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\La_Paz',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Nome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Nome',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp863.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp863.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_be.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\aquaTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\aquaTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\San_Marino',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\San_Marino',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Mazatlan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Mazatlan',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp861.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp861.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_cr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_cr.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sk.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Djibouti',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Djibouti',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vatican',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vatican',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Malabo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Malabo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Reykjavik',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Reykjavik',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Buenos_Aires',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Buenos_Aires',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fa_ir.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fa_ir.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Colombo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Colombo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Anguilla',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Anguilla',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1253.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1253.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macCroatian.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macCroatian.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tashkent',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tashkent',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tokyo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tokyo',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ko.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ko.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-3.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-3.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Los_Angeles',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Los_Angeles',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Andorra',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Andorra',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-4.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-4.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Omsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Omsk',
+ 'DATA'),
+ ('_tcl_data\\encoding\\ksc5601.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\ksc5601.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Ulyanovsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Ulyanovsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Istanbul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Istanbul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Danmarkshavn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Danmarkshavn',
+ 'DATA'),
+ ('_tcl_data\\msgs\\is.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\is.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Kinshasa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Kinshasa',
+ 'DATA'),
+ ('_tk_data\\msgbox.tcl', 'e:\\python38\\tcl\\tk8.6\\msgbox.tcl', 'DATA'),
+ ('_tcl_data\\msgs\\en_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Asmera',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Asmera',
+ 'DATA'),
+ ('_tk_data\\ttk\\menubutton.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\menubutton.tcl',
+ 'DATA'),
+ ('tcl8\\8.5\\msgcat-1.6.1.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.5\\msgcat-1.6.1.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Davis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Davis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Lisbon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Lisbon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Qatar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Qatar',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_uy.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_uy.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kl_gl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kl_gl.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\euc-kr.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\euc-kr.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Eucla',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Eucla',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Brunei',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Brunei',
+ 'DATA'),
+ ('_tk_data\\ttk\\sizegrip.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\sizegrip.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\South_Georgia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\South_Georgia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\Acre',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\Acre',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Vladivostok',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Vladivostok',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\YST9',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\YST9',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Manila',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Manila',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Iran',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Iran',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Resolute',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Resolute',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Mauritius',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Mauritius',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Sofia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Sofia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Asmara',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Asmara',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kok_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kok_in.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\lt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\lt.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1251.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1251.enc',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo75.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo75.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\eu.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\eu.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\North_Dakota\\New_Salem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\North_Dakota\\New_Salem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Madeira',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Madeira',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr_ca.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr_ca.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Monaco',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Monaco',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hi_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hi_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Eastern',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Eastern',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Pago_Pago',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Pago_Pago',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Chongqing',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Chongqing',
+ 'DATA'),
+ ('_tcl_data\\opt0.4\\pkgIndex.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\opt0.4\\pkgIndex.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Tortola',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Tortola',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1258.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1258.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\El_Salvador',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\El_Salvador',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Isle_of_Man',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Isle_of_Man',
+ 'DATA'),
+ ('_tk_data\\clrpick.tcl', 'e:\\python38\\tcl\\tk8.6\\clrpick.tcl', 'DATA'),
+ ('_tk_data\\msgs\\ru.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\ru.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Beirut',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Beirut',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Budapest',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Budapest',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Guam',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Guam',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dushanbe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dushanbe',
+ 'DATA'),
+ ('_tk_data\\ttk\\defaults.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\defaults.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+4',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+4',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_mx.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_mx.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Kwajalein',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Kwajalein',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Belize',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Belize',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Kiev',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Kiev',
+ 'DATA'),
+ ('_tk_data\\safetk.tcl', 'e:\\python38\\tcl\\tk8.6\\safetk.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Palau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Palau',
+ 'DATA'),
+ ('_tk_data\\optMenu.tcl', 'e:\\python38\\tcl\\tk8.6\\optMenu.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yangon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yangon',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kl.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-10.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-10.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\vistaTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\vistaTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Zurich',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Zurich',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_ph.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_ph.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Maldives',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Maldives',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Scoresbysund',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Scoresbysund',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp775.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp775.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Famagusta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Famagusta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT-0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT-0',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macRomania.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macRomania.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Cuba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Cuba',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ta_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ta_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Creston',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Creston',
+ 'DATA'),
+ ('_tk_data\\msgs\\es.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\es.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Luxembourg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Luxembourg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\WET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\WET', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Antigua',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Antigua',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Dakar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Dakar',
+ 'DATA'),
+ ('_tk_data\\msgs\\pl.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\pl.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Kwajalein',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Kwajalein',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-16.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-16.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Kralendijk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Kralendijk',
+ 'DATA'),
+ ('_tcl_data\\init.tcl', 'e:\\python38\\tcl\\tcl8.6\\init.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Antananarivo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Antananarivo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Moncton',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Moncton',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Kirov',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Kirov',
+ 'DATA'),
+ ('_tcl_data\\encoding\\ebcdic.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\ebcdic.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\PST8PDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\PST8PDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-11',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-11',
+ 'DATA'),
+ ('_tk_data\\console.tcl', 'e:\\python38\\tcl\\tk8.6\\console.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Brussels',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Brussels',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-9.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-9.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\bn_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\bn_in.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\jis0208.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\jis0208.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_tw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_tw.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\xpTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\xpTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Simferopol',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Simferopol',
+ 'DATA'),
+ ('_tcl_data\\encoding\\symbol.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\symbol.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\entry.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\entry.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Pohnpei',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Pohnpei',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Niue',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Niue',
+ 'DATA'),
+ ('_tk_data\\msgs\\sv.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\sv.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Goose_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Goose_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santo_Domingo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santo_Domingo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dacca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dacca',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Rangoon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Rangoon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Nassau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Nassau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\EST5EDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\EST5EDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Mexico\\BajaNorte',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Mexico\\BajaNorte',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mr_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mr_in.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso2022-jp.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso2022-jp.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Bratislava',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Bratislava',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp857.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp857.enc',
+ 'DATA'),
+ ('_tk_data\\images\\tai-ku.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\tai-ku.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_sv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_sv.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rainy_River',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rainy_River',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Harare',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Harare',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Gambier',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Gambier',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gl.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\fonts.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\fonts.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Central',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Central',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Maputo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Maputo',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_sg.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_sg.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Mariehamn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Mariehamn',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bangui',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bangui',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Winnipeg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Winnipeg',
+ 'DATA'),
+ ('tcl8\\8.5\\tcltest-2.5.0.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.5\\tcltest-2.5.0.tm',
+ 'DATA'),
+ ('_tk_data\\msgs\\pt.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\pt.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Jamaica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Jamaica',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Blantyre',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Blantyre',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nl.msg',
+ 'DATA'),
+ ('_tcl_data\\safe.tcl', 'e:\\python38\\tcl\\tcl8.6\\safe.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Tijuana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Tijuana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\UCT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\UCT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Amman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Amman',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Ndjamena',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Ndjamena',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kuala_Lumpur',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kuala_Lumpur',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Mahe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Mahe',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Barnaul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Barnaul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ust-Nera',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ust-Nera',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bujumbura',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bujumbura',
+ 'DATA'),
+ ('_tk_data\\msgs\\cs.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\cs.msg', 'DATA'),
+ ('_tk_data\\ttk\\scale.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\scale.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Indiana-Starke',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Indiana-Starke',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\EET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\EET', 'DATA'),
+ ('_tcl_data\\package.tcl', 'e:\\python38\\tcl\\tcl8.6\\package.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\Zulu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\Zulu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Gaza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Gaza',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-8.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-8.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\koi8-r.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\koi8-r.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\MST7MDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\MST7MDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kolkata',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kolkata',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\East-Saskatchewan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\East-Saskatchewan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Pyongyang',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Pyongyang',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\La_Rioja',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\La_Rioja',
+ 'DATA'),
+ ('_tk_data\\msgs\\hu.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\hu.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Macao',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Macao',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ms.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ms.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Belfast',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Belfast',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Nouakchott',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Nouakchott',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_za.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_za.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Easter',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Easter',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Gaborone',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Gaborone',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sw.msg',
+ 'DATA'),
+ ('tcl8\\8.6\\http-2.9.0.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.6\\http-2.9.0.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+12',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+12',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+1',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+1',
+ 'DATA'),
+ ('_tcl_data\\http1.0\\http.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\http1.0\\http.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Maceio',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Maceio',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Dawson',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Dawson',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+2',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+2',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Calcutta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Calcutta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Astrakhan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Astrakhan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Bermuda',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Bermuda',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tel_Aviv',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tel_Aviv',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Algiers',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Algiers',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gv_gb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gv_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\euc-cn.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\euc-cn.enc',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo100.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo100.gif',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guyana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guyana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+11',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+11',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-10',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-10',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Novosibirsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Novosibirsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Noronha',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Noronha',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fa.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fa.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macGreek.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macGreek.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Cairo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Cairo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Navajo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Navajo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\UTC',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\UTC',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1252.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1252.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_sg.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_sg.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Guadalcanal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Guadalcanal',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sq.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sq.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Coral_Harbour',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Coral_Harbour',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gl_es.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gl_es.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Metlakatla',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Metlakatla',
+ 'DATA'),
+ ('_tk_data\\dialog.tcl', 'e:\\python38\\tcl\\tk8.6\\dialog.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Tegucigalpa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Tegucigalpa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Mogadishu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Mogadishu',
+ 'DATA'),
+ ('_tcl_data\\encoding\\tis-620.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\tis-620.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Managua',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Managua',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Zulu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Zulu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Pacific-New',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Pacific-New',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_gt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_gt.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_ec.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ec.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macIceland.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macIceland.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Louisville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Louisville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Bahrain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Bahrain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rosario',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rosario',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\HST', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\HST', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Grenada',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Grenada',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Enderbury',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Enderbury',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Timbuktu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Timbuktu',
+ 'DATA'),
+ ('_tcl_data\\msgs\\bn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\bn.msg',
+ 'DATA'),
+ ('_tk_data\\comdlg.tcl', 'e:\\python38\\tcl\\tk8.6\\comdlg.tcl', 'DATA'),
+ ('_tk_data\\images\\pwrdLogo.eps',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo.eps',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cancun',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cancun',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Atka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Atka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\New_York',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\New_York',
+ 'DATA'),
+ ('_tk_data\\images\\logoMed.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logoMed.gif',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Addis_Ababa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Addis_Ababa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Tiraspol',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Tiraspol',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Kentucky\\Louisville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Kentucky\\Louisville',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\CST6CDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\CST6CDT',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ru_ua.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ru_ua.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macJapan.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macJapan.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Khartoum',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Khartoum',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp874.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp874.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Nicosia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Nicosia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lusaka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lusaka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Jakarta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Jakarta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Eastern',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Eastern',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Fortaleza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Fortaleza',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\ACT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\ACT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Istanbul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Istanbul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-13',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-13',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Detroit',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Detroit',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\CST6CDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\CST6CDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Thule',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Thule',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_au.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_au.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Perth',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Perth',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Chuuk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Chuuk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Central',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Central',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Hovd',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Hovd',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Damascus',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Damascus',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Marquesas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Marquesas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Montevideo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Montevideo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Michigan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Michigan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Matamoros',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Matamoros',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Yancowinna',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Yancowinna',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Saigon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Saigon',
+ 'DATA'),
+ ('_tk_data\\scrlbar.tcl', 'e:\\python38\\tcl\\tk8.6\\scrlbar.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Hebron',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Hebron',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Atlantic',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Atlantic',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Jerusalem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Jerusalem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Chicago',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Chicago',
+ 'DATA'),
+ ('_tcl_data\\msgs\\de_at.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\de_at.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Monterrey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Monterrey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Darwin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Darwin',
+ 'DATA'),
+ ('_tcl_data\\msgs\\he.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\he.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Phoenix',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Phoenix',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Douala',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Douala',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Mexico\\General',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Mexico\\General',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\West',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\West',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Ponape',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Ponape',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macTurkish.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macTurkish.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Portugal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Portugal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Rothera',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Rothera',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Phnom_Penh',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Phnom_Penh',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Mexico\\BajaSur',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Mexico\\BajaSur',
+ 'DATA'),
+ ('_tcl_data\\history.tcl', 'e:\\python38\\tcl\\tcl8.6\\history.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Vincent',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Vincent',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Ouagadougou',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Ouagadougou',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kuching',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kuching',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Sarajevo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Sarajevo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-8',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-8',
+ 'DATA'),
+ ('_tk_data\\megawidget.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\megawidget.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\ROC', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\ROC', 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Chagos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Chagos',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Krasnoyarsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Krasnoyarsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+5',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+5',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\MST7MDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\MST7MDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Mendoza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Mendoza',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-7.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-7.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Jersey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Jersey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Barthelemy',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Barthelemy',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Johannesburg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Johannesburg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\ascii.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\ascii.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Moscow',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Moscow',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Khandyga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Khandyga',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Midway',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Midway',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Thimbu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Thimbu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\South_Pole',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\South_Pole',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\North_Dakota\\Center',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\North_Dakota\\Center',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Kigali',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Kigali',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-15.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-15.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Pontianak',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Pontianak',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Kampala',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Kampala',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Glace_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Glace_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Singapore',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Singapore',
+ 'DATA'),
+ ('_tk_data\\ttk\\classicTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\classicTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Brisbane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Brisbane',
+ 'DATA'),
+ ('_tk_data\\msgs\\el.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\el.msg', 'DATA'),
+ ('_tcl_data\\msgs\\ar_jo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_jo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cordoba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cordoba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Muscat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Muscat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Tunis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Tunis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Honolulu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Honolulu',
+ 'DATA'),
+ ('_tcl_data\\encoding\\jis0212.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\jis0212.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Queensland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Queensland',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GB-Eire',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GB-Eire',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Stanley',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Stanley',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Lindeman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Lindeman',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Pitcairn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Pitcairn',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Chihuahua',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Chihuahua',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sh.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sh.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp932.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp932.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Vevay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Vevay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Yap',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Yap',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Minsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Minsk',
+ 'DATA'),
+ ('_tcl_data\\encoding\\shiftjis.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\shiftjis.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vienna',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vienna',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Petersburg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Petersburg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Yellowknife',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Yellowknife',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Comoro',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Comoro',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Berlin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Berlin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Riga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Riga',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macCyrillic.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macCyrillic.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tbilisi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tbilisi',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Almaty',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Almaty',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\Universal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\Universal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Merida',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Merida',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Costa_Rica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Costa_Rica',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macThai.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macThai.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Rarotonga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Rarotonga',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\YST9YDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\YST9YDT',
+ 'DATA'),
+ ('_tk_data\\images\\logo100.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logo100.gif',
+ 'DATA'),
+ ('_tcl_data\\opt0.4\\optparse.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\opt0.4\\optparse.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\San_Juan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\San_Juan',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1254.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1254.enc',
+ 'DATA'),
+ ('_tcl_data\\auto.tcl', 'e:\\python38\\tcl\\tcl8.6\\auto.tcl', 'DATA'),
+ ('_tcl_data\\msgs\\en_hk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_hk.msg',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo175.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo175.gif',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo200.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo200.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\cs.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\cs.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Arizona',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Arizona',
+ 'DATA'),
+ ('_tk_data\\menu.tcl', 'e:\\python38\\tcl\\tk8.6\\menu.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Anchorage',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Anchorage',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\CST6',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\CST6',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\NZ-CHAT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\NZ-CHAT',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_co.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_co.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Belem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Belem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Pacific',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Pacific',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Araguaina',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Araguaina',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Thimphu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Thimphu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Busingen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Busingen',
+ 'DATA'),
+ ('_tk_data\\palette.tcl', 'e:\\python38\\tcl\\tk8.6\\palette.tcl', 'DATA'),
+ ('_tk_data\\listbox.tcl', 'e:\\python38\\tcl\\tk8.6\\listbox.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Noumea',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Noumea',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar_sy.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_sy.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fa_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fa_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Porto_Velho',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Porto_Velho',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_do.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_do.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nb.msg',
+ 'DATA'),
+ ('_tk_data\\tkfbox.tcl', 'e:\\python38\\tcl\\tk8.6\\tkfbox.tcl', 'DATA'),
+ ('_tcl_data\\msgs\\lv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\lv.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\altTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\altTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Fort_Wayne',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Fort_Wayne',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\El_Aaiun',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\El_Aaiun',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dhaka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dhaka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Anadyr',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Anadyr',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Harbin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Harbin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Vostok',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Vostok',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\PST8',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\PST8',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1256.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1256.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Lucia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Lucia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT', 'DATA'),
+ ('_tcl_data\\encoding\\koi8-u.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\koi8-u.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_bw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_bw.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kabul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kabul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Bahia_Banderas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Bahia_Banderas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Conakry',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Conakry',
+ 'DATA'),
+ ('_tk_data\\iconlist.tcl', 'e:\\python38\\tcl\\tk8.6\\iconlist.tcl', 'DATA'),
+ ('_tk_data\\tclIndex', 'e:\\python38\\tcl\\tk8.6\\tclIndex', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Makassar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Makassar',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Mendoza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Mendoza',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Urumqi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Urumqi',
+ 'DATA'),
+ ('_tk_data\\panedwindow.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\panedwindow.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Japan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Japan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Jayapura',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Jayapura',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Victoria',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Victoria',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Fort_Nelson',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Fort_Nelson',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Novokuznetsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Novokuznetsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Hongkong',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Hongkong',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\St_Helena',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\St_Helena',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Uzhgorod',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Uzhgorod',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Boa_Vista',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Boa_Vista',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Amsterdam',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Amsterdam',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-2',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-2',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Cape_Verde',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Cape_Verde',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Menominee',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Menominee',
+ 'DATA'),
+ ('_tcl_data\\msgs\\it.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\it.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Gibraltar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Gibraltar',
+ 'DATA'),
+ ('_tcl_data\\msgs\\tr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\tr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+10',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+10',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ko_kr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ko_kr.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb2312.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb2312.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\jis0201.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\jis0201.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp949.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp949.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\treeview.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\treeview.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kuwait',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kuwait',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Nairobi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Nairobi',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Norfolk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Norfolk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Barbados',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Barbados',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Havana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Havana',
+ 'DATA'),
+ ('_tcl_data\\msgs\\eo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\eo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-5',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-5',
+ 'DATA'),
+ ('_tcl_data\\msgs\\te_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\te_in.msg',
+ 'DATA'),
+ ('_tk_data\\tearoff.tcl', 'e:\\python38\\tcl\\tk8.6\\tearoff.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Funafuti',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Funafuti',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cuiaba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cuiaba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indianapolis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indianapolis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Monrovia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Monrovia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Galapagos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Galapagos',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\North_Dakota\\Beulah',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\North_Dakota\\Beulah',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Swift_Current',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Swift_Current',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Libya',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Libya',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Eirunepe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Eirunepe',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kw_gb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kw_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp950.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp950.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Melbourne',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Melbourne',
+ 'DATA'),
+ ('_tk_data\\button.tcl', 'e:\\python38\\tcl\\tk8.6\\button.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cayman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cayman',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mk.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Podgorica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Podgorica',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Athens',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Athens',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Tucuman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Tucuman',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Saskatchewan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Saskatchewan',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Irkutsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Irkutsk',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_pr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_pr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Kitts',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Kitts',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\MST', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\MST', 'DATA'),
+ ('_tk_data\\bgerror.tcl', 'e:\\python38\\tcl\\tk8.6\\bgerror.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Tell_City',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Tell_City',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Aden',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Aden',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Macquarie',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Macquarie',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Blanc-Sablon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Blanc-Sablon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Curacao',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Curacao',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Chatham',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Chatham',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Christmas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Christmas',
+ 'DATA'),
+ ('_tk_data\\msgs\\it.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\it.msg', 'DATA'),
+ ('tcl8\\8.4\\platform\\shell-1.1.4.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.4\\platform\\shell-1.1.4.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Vincennes',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Vincennes',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Eire',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Eire',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vilnius',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vilnius',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Srednekolymsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Srednekolymsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yakutsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yakutsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Poland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Poland',
+ 'DATA'),
+ ('_tk_data\\scale.tcl', 'e:\\python38\\tcl\\tk8.6\\scale.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-1',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-1',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+3',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+3',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Canary',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Canary',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Faroe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Faroe',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Choibalsan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Choibalsan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Majuro',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Majuro',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\East-Indiana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\East-Indiana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Bishkek',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Bishkek',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Paris',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Paris',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Paramaribo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Paramaribo',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kw.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\San_Luis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\San_Luis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Marengo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Marengo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\McMurdo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\McMurdo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Sydney',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Sydney',
+ 'DATA'),
+ ('_tk_data\\entry.tcl', 'e:\\python38\\tcl\\tk8.6\\entry.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yekaterinburg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yekaterinburg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\HST10',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\HST10',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-6.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-6.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Kosrae',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Kosrae',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macCentEuro.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macCentEuro.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ashgabat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ashgabat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Seoul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Seoul',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso2022-kr.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso2022-kr.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\utils.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\utils.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Hermosillo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Hermosillo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Syowa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Syowa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dubai',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dubai',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Montreal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Montreal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Ceuta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Ceuta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Baku',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Baku',
+ 'DATA'),
+ ('_tcl_data\\msgs\\bg.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\bg.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\vi.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\vi.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vaduz',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vaduz',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Windhoek',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Windhoek',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Volgograd',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Volgograd',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Tripoli',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Tripoli',
+ 'DATA'),
+ ('_tk_data\\choosedir.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\choosedir.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dili',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dili',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-6',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-6',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ho_Chi_Minh',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ho_Chi_Minh',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Chungking',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Chungking',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Egypt',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Egypt',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Nauru',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Nauru',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+9',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+9',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Newfoundland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Newfoundland',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Denver',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Denver',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Bucharest',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Bucharest',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp855.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp855.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar_lb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_lb.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Tasmania',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Tasmania',
+ 'DATA'),
+ ('_tcl_data\\parray.tcl', 'e:\\python38\\tcl\\tcl8.6\\parray.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Johnston',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Johnston',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\AST4',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\AST4',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Casey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Casey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Knox',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Knox',
+ 'DATA'),
+ ('_tk_data\\obsolete.tcl', 'e:\\python38\\tcl\\tk8.6\\obsolete.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Samoa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Samoa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Reunion',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Reunion',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp860.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp860.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\it_ch.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\it_ch.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Chile\\EasterIsland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Chile\\EasterIsland',
+ 'DATA'),
+ ('_tk_data\\ttk\\progress.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\progress.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GB', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GB', 'DATA'),
+ ('_tcl_data\\msgs\\es_ve.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ve.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Skopje',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Skopje',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Miquelon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Miquelon',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ro.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ro.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santarem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santarem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Currie',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Currie',
+ 'DATA'),
+ ('_tk_data\\ttk\\panedwindow.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\panedwindow.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ga_ie.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ga_ie.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr_be.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\North',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\North',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp852.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp852.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Cocos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Cocos',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Kentucky\\Monticello',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Kentucky\\Monticello',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Saipan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Saipan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Bogota',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Bogota',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Maseru',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Maseru',
+ 'DATA'),
+ ('_tk_data\\msgs\\da.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\da.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Universal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Universal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Asuncion',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Asuncion',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santiago',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santiago',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Kaliningrad',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Kaliningrad',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lome',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_ca.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_ca.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Tahiti',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Tahiti',
+ 'DATA'),
+ ('_tcl_data\\msgs\\id.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\id.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Samoa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Samoa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Mawson',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Mawson',
+ 'DATA'),
+ ('_tcl_data\\msgs\\th.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\th.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\MST7',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\MST7',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yerevan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yerevan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Truk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Truk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Belgrade',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Belgrade',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-9',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-9',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_bo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_bo.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Yukon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Yukon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cambridge_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cambridge_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Juba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Juba',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_ie.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_ie.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fi.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fi.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\big5.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\big5.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Banjul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Banjul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Zaporozhye',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Zaporozhye',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Efate',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Efate',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\EST', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\EST', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Jujuy',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Jujuy',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Stockholm',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Stockholm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Sakhalin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Sakhalin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santa_Isabel',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santa_Isabel',
+ 'DATA'),
+ ('_tk_data\\msgs\\en_gb.msg',
+ 'e:\\python38\\tcl\\tk8.6\\msgs\\en_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp850.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp850.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Godthab',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Godthab',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Adak',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Adak',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ashkhabad',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ashkhabad',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nl_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nl_be.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Accra',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Accra',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1257.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1257.enc',
+ 'DATA'),
+ ('_tk_data\\spinbox.tcl', 'e:\\python38\\tcl\\tk8.6\\spinbox.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Puerto_Rico',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Puerto_Rico',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Warsaw',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Warsaw',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb2312-raw.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb2312-raw.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Alaska',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Alaska',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Jan_Mayen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Jan_Mayen',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Adelaide',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Adelaide',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Shiprock',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Shiprock',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Faeroe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Faeroe',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_py.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_py.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp862.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp862.enc',
+ 'DATA'),
+ ('_tk_data\\license.terms',
+ 'e:\\python38\\tcl\\tk8.6\\license.terms',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Boise',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Boise',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\Greenwich',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\Greenwich',
+ 'DATA'),
+ ('_tk_data\\ttk\\ttk.tcl', 'e:\\python38\\tcl\\tk8.6\\ttk\\ttk.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guadeloupe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guadeloupe',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Sao_Paulo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Sao_Paulo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\CET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\CET', 'DATA'),
+ ('_tcl_data\\msgs\\en_gb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Katmandu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Katmandu',
+ 'DATA'),
+ ('_tcl_data\\tm.tcl', 'e:\\python38\\tcl\\tcl8.6\\tm.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Freetown',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Freetown',
+ 'DATA'),
+ ('_tcl_data\\http1.0\\pkgIndex.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\http1.0\\pkgIndex.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Marigot',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Marigot',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+8',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+8',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Jujuy',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Jujuy',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Prague',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Prague',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp936.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp936.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Porto-Novo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Porto-Novo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Punta_Arenas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Punta_Arenas',
+ 'DATA'),
+ ('tcl8\\8.4\\platform-1.0.14.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.4\\platform-1.0.14.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Rome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Rome',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Vancouver',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Vancouver',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Abidjan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Abidjan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Mexico_City',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Mexico_City',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-13.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-13.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Recife',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Recife',
+ 'DATA'),
+ ('_tcl_data\\clock.tcl', 'e:\\python38\\tcl\\tcl8.6\\clock.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Niamey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Niamey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\PST8PDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\PST8PDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Bougainville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Bougainville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Troll',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Troll',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Mountain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Mountain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\PRC', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\PRC', 'DATA'),
+ ('_tcl_data\\word.tcl', 'e:\\python38\\tcl\\tcl8.6\\word.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-7',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-7',
+ 'DATA'),
+ ('_tk_data\\msgs\\eo.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\eo.msg', 'DATA'),
+ ('_tcl_data\\msgs\\de.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\de.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Hong_Kong',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Hong_Kong',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1255.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1255.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Oslo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Oslo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-3',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-3',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Vientiane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Vientiane',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ga.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ga.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Hobart',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Hobart',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp866.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp866.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Lord_Howe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Lord_Howe',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_ni.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ni.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Jamaica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Jamaica',
+ 'DATA'),
+ ('_tcl_data\\msgs\\pt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\pt.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Knox_IN',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Knox_IN',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-12',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-12',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Guernsey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Guernsey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Johns',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Johns',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Catamarca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Catamarca',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_ar.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ar.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\ROK', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\ROK', 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Tallinn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Tallinn',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\MET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\MET', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Kiritimati',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Kiritimati',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Sitka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Sitka',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hu.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hu.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\id_id.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\id_id.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-4',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-4',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Caracas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Caracas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Inuvik',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Inuvik',
+ 'DATA'),
+ ('_tcl_data\\msgs\\pl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\pl.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\af.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\af.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Panama',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Panama',
+ 'DATA'),
+ ('_tcl_data\\msgs\\et.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\et.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guatemala',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guatemala',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Greenwich',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Greenwich',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Port_Moresby',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Port_Moresby',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_hn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_hn.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Luanda',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Luanda',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Bangkok',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Bangkok',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb12345.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb12345.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-14',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-14',
+ 'DATA'),
+ ('_tcl_data\\msgs\\be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\be.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\clamTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\clamTheme.tcl',
+ 'DATA'),
+ ('_tk_data\\msgs\\de.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\de.msg', 'DATA'),
+ ('_tcl_data\\encoding\\macUkraine.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macUkraine.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sv.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\el.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\el.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Fiji',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Fiji',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+7',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+7',
+ 'DATA'),
+ ('_tcl_data\\msgs\\da.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\da.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Porto_Acre',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Porto_Acre',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Aruba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Aruba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Halifax',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Halifax',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Ushuaia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Ushuaia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tehran',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tehran',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp737.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp737.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Aqtau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Aqtau',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-5.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-5.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macRoman.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macRoman.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Broken_Hill',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Broken_Hill',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Lower_Princes',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Lower_Princes',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Pangnirtung',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Pangnirtung',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Yakutat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Yakutat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Indianapolis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Indianapolis',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-1.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-1.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Nicosia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Nicosia',
+ 'DATA'),
+ ('_tk_data\\fontchooser.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\fontchooser.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\eu_es.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\eu_es.msg',
+ 'DATA'),
+ ('_tk_data\\images\\logoLarge.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logoLarge.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ms_my.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ms_my.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Apia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Apia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tomsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tomsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Port-au-Prince',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Port-au-Prince',
+ 'DATA'),
+ ('_tk_data\\unsupported.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\unsupported.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Mayotte',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Mayotte',
+ 'DATA'),
+ ('_tk_data\\ttk\\scrollbar.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\scrollbar.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ta.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ta.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ujung_Pandang',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ujung_Pandang',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr_ch.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr_ch.msg',
+ 'DATA'),
+ ('_tk_data\\pkgIndex.tcl', 'e:\\python38\\tcl\\tk8.6\\pkgIndex.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\AST4ADT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\AST4ADT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Catamarca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Catamarca',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Iceland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Iceland',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mt.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ulaanbaatar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ulaanbaatar',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Tirane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Tirane',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Saratov',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Saratov',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\South',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\South',
+ 'DATA'),
+ ('_tk_data\\ttk\\cursors.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\cursors.tcl',
+ 'DATA'),
+ ('_tk_data\\ttk\\winTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\winTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Campo_Grande',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Campo_Grande',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_cl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_cl.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Tongatapu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Tongatapu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Thunder_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Thunder_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lagos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lagos',
+ 'DATA'),
+ ('_tk_data\\focus.tcl', 'e:\\python38\\tcl\\tk8.6\\focus.tcl', 'DATA'),
+ ('_tk_data\\text.tcl', 'e:\\python38\\tcl\\tk8.6\\text.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Samarkand',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Samarkand',
+ 'DATA'),
+ ('_tk_data\\msgs\\nl.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\nl.msg', 'DATA'),
+ ('_tk_data\\ttk\\combobox.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\combobox.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\uk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\uk.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1250.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1250.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guayaquil',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guayaquil',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+6',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+6',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kamchatka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kamchatka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT+0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT+0',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb1988.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb1988.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ru.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ru.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Auckland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Auckland',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Singapore',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Singapore',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Canberra',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Canberra',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Port_of_Spain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Port_of_Spain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bissau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bissau',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_pe.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_pe.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Edmonton',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Edmonton',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-2.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-2.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cayenne',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cayenne',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Libreville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Libreville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Israel',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Israel',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_hk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_hk.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Buenos_Aires',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Buenos_Aires',
+ 'DATA'),
+ ('_tk_data\\msgs\\en.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\en.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Taipei',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Taipei',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_nz.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_nz.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\euc-jp.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\euc-jp.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Qyzylorda',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Qyzylorda',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Lima',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Lima',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Dar_es_Salaam',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Dar_es_Salaam',
+ 'DATA'),
+ ('_tk_data\\ttk\\notebook.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\notebook.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Oral',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Oral',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Aqtobe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Aqtobe',
+ 'DATA'),
+ ('_tk_data\\tk.tcl', 'e:\\python38\\tcl\\tk8.6\\tk.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Riyadh',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Riyadh',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Wake',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Wake',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Chisinau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Chisinau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Copenhagen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Copenhagen',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Tarawa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Tarawa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Madrid',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Madrid',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Malta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Malta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Whitehorse',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Whitehorse',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Helsinki',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Helsinki',
+ 'DATA'),
+ ('_tk_data\\msgs\\fr.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\fr.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\West',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\West',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Dominica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Dominica',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_pa.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_pa.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\EST5',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\EST5',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Atyrau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Atyrau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Macau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Macau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Shanghai',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Shanghai',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lubumbashi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lubumbashi',
+ 'DATA'),
+ ('_tcl_data\\msgs\\af_za.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\af_za.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\de_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\de_be.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Kerguelen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Kerguelen',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nn.msg',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo150.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo150.gif',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Atikokan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Atikokan',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_cn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_cn.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Aleutian',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Aleutian',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Arctic\\Longyearbyen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Arctic\\Longyearbyen',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Azores',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Azores',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Thomas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Thomas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Turkey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Turkey',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso2022.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso2022.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Juneau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Juneau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Samara',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Samara',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kashgar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kashgar',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Winamac',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Winamac',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Salta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Salta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rankin_Inlet',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rankin_Inlet',
+ 'DATA'),
+ ('_tcl_data\\encoding\\dingbats.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\dingbats.enc',
+ 'DATA'),
+ ('base_library.zip',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\base_library.zip',
+ 'DATA')],
+ [],
+ False,
+ False,
+ 1769593090,
+ [('runw.exe',
+ 'e:\\python38\\lib\\site-packages\\PyInstaller\\bootloader\\Windows-64bit-intel\\runw.exe',
+ 'EXECUTABLE')],
+ 'e:\\python38\\python38.dll')
diff --git a/build/网络设备控制器/PKG-00.toc b/build/网络设备控制器/PKG-00.toc
new file mode 100644
index 0000000..0327fcf
--- /dev/null
+++ b/build/网络设备控制器/PKG-00.toc
@@ -0,0 +1,2683 @@
+('E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\网络设备控制器.pkg',
+ {'BINARY': True,
+ 'DATA': True,
+ 'EXECUTABLE': True,
+ 'EXTENSION': True,
+ 'PYMODULE': True,
+ 'PYSOURCE': True,
+ 'PYZ': False,
+ 'SPLASH': True,
+ 'SYMLINK': False},
+ [('pyi-contents-directory _internal', '', 'OPTION'),
+ ('PYZ-00.pyz',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\PYZ-00.pyz',
+ 'PYZ'),
+ ('struct',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\struct.pyc',
+ 'PYMODULE'),
+ ('pyimod01_archive',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\pyimod01_archive.pyc',
+ 'PYMODULE'),
+ ('pyimod02_importers',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\pyimod02_importers.pyc',
+ 'PYMODULE'),
+ ('pyimod03_ctypes',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\pyimod03_ctypes.pyc',
+ 'PYMODULE'),
+ ('pyimod04_pywin32',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\localpycs\\pyimod04_pywin32.pyc',
+ 'PYMODULE'),
+ ('pyiboot01_bootstrap',
+ 'e:\\python38\\lib\\site-packages\\PyInstaller\\loader\\pyiboot01_bootstrap.py',
+ 'PYSOURCE'),
+ ('pyi_rth__tkinter',
+ 'E:\\Python38\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth__tkinter.py',
+ 'PYSOURCE'),
+ ('main_control_app',
+ 'E:\\pythonProject\\TCPUDP\\main_control_app.py',
+ 'PYSOURCE'),
+ ('python38.dll', 'e:\\python38\\python38.dll', 'BINARY'),
+ ('unicodedata.pyd', 'e:\\python38\\DLLs\\unicodedata.pyd', 'EXTENSION'),
+ ('select.pyd', 'e:\\python38\\DLLs\\select.pyd', 'EXTENSION'),
+ ('_socket.pyd', 'e:\\python38\\DLLs\\_socket.pyd', 'EXTENSION'),
+ ('_hashlib.pyd', 'e:\\python38\\DLLs\\_hashlib.pyd', 'EXTENSION'),
+ ('_lzma.pyd', 'e:\\python38\\DLLs\\_lzma.pyd', 'EXTENSION'),
+ ('_bz2.pyd', 'e:\\python38\\DLLs\\_bz2.pyd', 'EXTENSION'),
+ ('win32\\win32wnet.pyd',
+ 'e:\\python38\\lib\\site-packages\\win32\\win32wnet.pyd',
+ 'EXTENSION'),
+ ('_ctypes.pyd', 'e:\\python38\\DLLs\\_ctypes.pyd', 'EXTENSION'),
+ ('_tkinter.pyd', 'e:\\python38\\DLLs\\_tkinter.pyd', 'EXTENSION'),
+ ('VCRUNTIME140.dll', 'e:\\python38\\VCRUNTIME140.dll', 'BINARY'),
+ ('libcrypto-1_1.dll', 'e:\\python38\\DLLs\\libcrypto-1_1.dll', 'BINARY'),
+ ('pywin32_system32\\pywintypes38.dll',
+ 'e:\\python38\\lib\\site-packages\\pywin32_system32\\pywintypes38.dll',
+ 'BINARY'),
+ ('VCRUNTIME140_1.dll', 'C:\\Windows\\system32\\VCRUNTIME140_1.dll', 'BINARY'),
+ ('libffi-7.dll', 'e:\\python38\\DLLs\\libffi-7.dll', 'BINARY'),
+ ('tk86t.dll', 'e:\\python38\\DLLs\\tk86t.dll', 'BINARY'),
+ ('tcl86t.dll', 'e:\\python38\\DLLs\\tcl86t.dll', 'BINARY'),
+ ('_tcl_data\\tzdata\\Australia\\LHI',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\LHI',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Dublin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Dublin',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sl.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Regina',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Regina',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\DeNoronha',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\DeNoronha',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ja.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ja.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\button.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\button.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ulan_Bator',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ulan_Bator',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Karachi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Karachi',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\DumontDUrville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\DumontDUrville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Montserrat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Montserrat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Nipigon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Nipigon',
+ 'DATA'),
+ ('_tk_data\\images\\README',
+ 'e:\\python38\\tcl\\tk8.6\\images\\README',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Mbabane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Mbabane',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp865.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp865.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\W-SU',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\W-SU',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hi.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hi.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\pt_br.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\pt_br.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Palmer',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Palmer',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp864.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp864.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Grand_Turk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Grand_Turk',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sr.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\te.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\te.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Magadan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Magadan',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gv.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\NZ', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\NZ', 'DATA'),
+ ('_tcl_data\\tzdata\\EST5EDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\EST5EDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Hawaii',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Hawaii',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Pacific',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Pacific',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\ComodRivadavia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\ComodRivadavia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Toronto',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Toronto',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Sao_Tome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Sao_Tome',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Cordoba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Cordoba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Wallis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Wallis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kathmandu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kathmandu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\UTC', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\UTC', 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Brazzaville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Brazzaville',
+ 'DATA'),
+ ('_tk_data\\mkpsenc.tcl', 'e:\\python38\\tcl\\tk8.6\\mkpsenc.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\NSW',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\NSW',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp869.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp869.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Ojinaga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Ojinaga',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Rio_Gallegos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Rio_Gallegos',
+ 'DATA'),
+ ('_tk_data\\images\\logo64.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logo64.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ca.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ca.msg',
+ 'DATA'),
+ ('_tcl_data\\tclIndex', 'e:\\python38\\tcl\\tcl8.6\\tclIndex', 'DATA'),
+ ('_tcl_data\\encoding\\cp437.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp437.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Dawson_Creek',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Dawson_Creek',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fo_fo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fo_fo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Chita',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Chita',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Ensenada',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Ensenada',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Fakaofo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Fakaofo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Ljubljana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Ljubljana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Iqaluit',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Iqaluit',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bamako',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bamako',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_zw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_zw.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macDingbats.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macDingbats.enc',
+ 'DATA'),
+ ('_tk_data\\icons.tcl', 'e:\\python38\\tcl\\tk8.6\\icons.tcl', 'DATA'),
+ ('_tk_data\\images\\logo.eps',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logo.eps',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-14.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-14.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Martinique',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Martinique',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kok.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kok.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Virgin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Virgin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\UCT', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\UCT', 'DATA'),
+ ('_tcl_data\\tzdata\\Chile\\Continental',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Chile\\Continental',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Manaus',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Manaus',
+ 'DATA'),
+ ('_tk_data\\ttk\\spinbox.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\spinbox.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Baghdad',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Baghdad',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Mountain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Mountain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Casablanca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Casablanca',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\London',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\London',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rio_Branco',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rio_Branco',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\East',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\East',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Zagreb',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Zagreb',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Bahia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Bahia',
+ 'DATA'),
+ ('_tk_data\\xmfbox.tcl', 'e:\\python38\\tcl\\tk8.6\\xmfbox.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\La_Paz',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\La_Paz',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Nome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Nome',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp863.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp863.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_be.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\aquaTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\aquaTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\San_Marino',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\San_Marino',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Mazatlan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Mazatlan',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp861.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp861.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_cr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_cr.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sk.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Djibouti',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Djibouti',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vatican',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vatican',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Malabo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Malabo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Reykjavik',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Reykjavik',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Buenos_Aires',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Buenos_Aires',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fa_ir.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fa_ir.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Colombo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Colombo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Anguilla',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Anguilla',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1253.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1253.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macCroatian.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macCroatian.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tashkent',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tashkent',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tokyo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tokyo',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ko.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ko.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-3.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-3.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Los_Angeles',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Los_Angeles',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Andorra',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Andorra',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-4.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-4.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Omsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Omsk',
+ 'DATA'),
+ ('_tcl_data\\encoding\\ksc5601.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\ksc5601.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Ulyanovsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Ulyanovsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Istanbul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Istanbul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Danmarkshavn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Danmarkshavn',
+ 'DATA'),
+ ('_tcl_data\\msgs\\is.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\is.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Kinshasa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Kinshasa',
+ 'DATA'),
+ ('_tk_data\\msgbox.tcl', 'e:\\python38\\tcl\\tk8.6\\msgbox.tcl', 'DATA'),
+ ('_tcl_data\\msgs\\en_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Asmera',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Asmera',
+ 'DATA'),
+ ('_tk_data\\ttk\\menubutton.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\menubutton.tcl',
+ 'DATA'),
+ ('tcl8\\8.5\\msgcat-1.6.1.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.5\\msgcat-1.6.1.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Davis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Davis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Lisbon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Lisbon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Qatar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Qatar',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_uy.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_uy.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kl_gl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kl_gl.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\euc-kr.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\euc-kr.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Eucla',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Eucla',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Brunei',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Brunei',
+ 'DATA'),
+ ('_tk_data\\ttk\\sizegrip.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\sizegrip.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\South_Georgia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\South_Georgia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\Acre',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\Acre',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Vladivostok',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Vladivostok',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\YST9',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\YST9',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Manila',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Manila',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Iran',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Iran',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Resolute',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Resolute',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Mauritius',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Mauritius',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Sofia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Sofia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Asmara',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Asmara',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kok_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kok_in.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\lt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\lt.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1251.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1251.enc',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo75.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo75.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\eu.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\eu.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\North_Dakota\\New_Salem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\North_Dakota\\New_Salem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Madeira',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Madeira',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr_ca.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr_ca.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Monaco',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Monaco',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hi_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hi_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Eastern',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Eastern',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Pago_Pago',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Pago_Pago',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Chongqing',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Chongqing',
+ 'DATA'),
+ ('_tcl_data\\opt0.4\\pkgIndex.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\opt0.4\\pkgIndex.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Tortola',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Tortola',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1258.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1258.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\El_Salvador',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\El_Salvador',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Isle_of_Man',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Isle_of_Man',
+ 'DATA'),
+ ('_tk_data\\clrpick.tcl', 'e:\\python38\\tcl\\tk8.6\\clrpick.tcl', 'DATA'),
+ ('_tk_data\\msgs\\ru.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\ru.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Beirut',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Beirut',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Budapest',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Budapest',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Guam',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Guam',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dushanbe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dushanbe',
+ 'DATA'),
+ ('_tk_data\\ttk\\defaults.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\defaults.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+4',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+4',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_mx.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_mx.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Kwajalein',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Kwajalein',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Belize',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Belize',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Kiev',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Kiev',
+ 'DATA'),
+ ('_tk_data\\safetk.tcl', 'e:\\python38\\tcl\\tk8.6\\safetk.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Palau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Palau',
+ 'DATA'),
+ ('_tk_data\\optMenu.tcl', 'e:\\python38\\tcl\\tk8.6\\optMenu.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yangon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yangon',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kl.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-10.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-10.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\vistaTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\vistaTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Zurich',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Zurich',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_ph.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_ph.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Maldives',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Maldives',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Scoresbysund',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Scoresbysund',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp775.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp775.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Famagusta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Famagusta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT-0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT-0',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macRomania.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macRomania.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Cuba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Cuba',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ta_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ta_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Creston',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Creston',
+ 'DATA'),
+ ('_tk_data\\msgs\\es.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\es.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Luxembourg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Luxembourg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\WET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\WET', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Antigua',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Antigua',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Dakar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Dakar',
+ 'DATA'),
+ ('_tk_data\\msgs\\pl.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\pl.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Kwajalein',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Kwajalein',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-16.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-16.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Kralendijk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Kralendijk',
+ 'DATA'),
+ ('_tcl_data\\init.tcl', 'e:\\python38\\tcl\\tcl8.6\\init.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Antananarivo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Antananarivo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Moncton',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Moncton',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Kirov',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Kirov',
+ 'DATA'),
+ ('_tcl_data\\encoding\\ebcdic.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\ebcdic.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\PST8PDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\PST8PDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-11',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-11',
+ 'DATA'),
+ ('_tk_data\\console.tcl', 'e:\\python38\\tcl\\tk8.6\\console.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Brussels',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Brussels',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-9.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-9.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\bn_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\bn_in.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\jis0208.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\jis0208.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_tw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_tw.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\xpTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\xpTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Simferopol',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Simferopol',
+ 'DATA'),
+ ('_tcl_data\\encoding\\symbol.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\symbol.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\entry.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\entry.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Pohnpei',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Pohnpei',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Niue',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Niue',
+ 'DATA'),
+ ('_tk_data\\msgs\\sv.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\sv.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Goose_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Goose_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santo_Domingo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santo_Domingo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dacca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dacca',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Rangoon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Rangoon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Nassau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Nassau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\EST5EDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\EST5EDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Mexico\\BajaNorte',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Mexico\\BajaNorte',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mr_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mr_in.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso2022-jp.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso2022-jp.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Bratislava',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Bratislava',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp857.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp857.enc',
+ 'DATA'),
+ ('_tk_data\\images\\tai-ku.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\tai-ku.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_sv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_sv.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rainy_River',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rainy_River',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Harare',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Harare',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Gambier',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Gambier',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gl.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\fonts.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\fonts.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Central',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Central',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Maputo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Maputo',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_sg.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_sg.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Mariehamn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Mariehamn',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bangui',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bangui',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Winnipeg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Winnipeg',
+ 'DATA'),
+ ('tcl8\\8.5\\tcltest-2.5.0.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.5\\tcltest-2.5.0.tm',
+ 'DATA'),
+ ('_tk_data\\msgs\\pt.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\pt.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Jamaica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Jamaica',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Blantyre',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Blantyre',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nl.msg',
+ 'DATA'),
+ ('_tcl_data\\safe.tcl', 'e:\\python38\\tcl\\tcl8.6\\safe.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Tijuana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Tijuana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\UCT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\UCT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Amman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Amman',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Ndjamena',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Ndjamena',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kuala_Lumpur',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kuala_Lumpur',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Mahe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Mahe',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Barnaul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Barnaul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ust-Nera',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ust-Nera',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bujumbura',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bujumbura',
+ 'DATA'),
+ ('_tk_data\\msgs\\cs.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\cs.msg', 'DATA'),
+ ('_tk_data\\ttk\\scale.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\scale.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Indiana-Starke',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Indiana-Starke',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\EET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\EET', 'DATA'),
+ ('_tcl_data\\package.tcl', 'e:\\python38\\tcl\\tcl8.6\\package.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\Zulu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\Zulu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Gaza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Gaza',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-8.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-8.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\koi8-r.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\koi8-r.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\MST7MDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\MST7MDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kolkata',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kolkata',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\East-Saskatchewan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\East-Saskatchewan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Pyongyang',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Pyongyang',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\La_Rioja',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\La_Rioja',
+ 'DATA'),
+ ('_tk_data\\msgs\\hu.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\hu.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Macao',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Macao',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ms.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ms.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Belfast',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Belfast',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Nouakchott',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Nouakchott',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_za.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_za.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Easter',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Easter',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Gaborone',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Gaborone',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sw.msg',
+ 'DATA'),
+ ('tcl8\\8.6\\http-2.9.0.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.6\\http-2.9.0.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+12',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+12',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+1',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+1',
+ 'DATA'),
+ ('_tcl_data\\http1.0\\http.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\http1.0\\http.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Maceio',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Maceio',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Dawson',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Dawson',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+2',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+2',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Calcutta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Calcutta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Astrakhan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Astrakhan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Bermuda',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Bermuda',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tel_Aviv',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tel_Aviv',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Algiers',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Algiers',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gv_gb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gv_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\euc-cn.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\euc-cn.enc',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo100.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo100.gif',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guyana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guyana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+11',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+11',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-10',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-10',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Novosibirsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Novosibirsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Noronha',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Noronha',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fa.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fa.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macGreek.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macGreek.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Cairo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Cairo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Navajo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Navajo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\UTC',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\UTC',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1252.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1252.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_sg.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_sg.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Guadalcanal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Guadalcanal',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sq.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sq.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Coral_Harbour',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Coral_Harbour',
+ 'DATA'),
+ ('_tcl_data\\msgs\\gl_es.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\gl_es.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Metlakatla',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Metlakatla',
+ 'DATA'),
+ ('_tk_data\\dialog.tcl', 'e:\\python38\\tcl\\tk8.6\\dialog.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Tegucigalpa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Tegucigalpa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Mogadishu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Mogadishu',
+ 'DATA'),
+ ('_tcl_data\\encoding\\tis-620.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\tis-620.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Managua',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Managua',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Zulu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Zulu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Pacific-New',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Pacific-New',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_gt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_gt.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_ec.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ec.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macIceland.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macIceland.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Louisville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Louisville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Bahrain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Bahrain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rosario',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rosario',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\HST', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\HST', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Grenada',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Grenada',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Enderbury',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Enderbury',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Timbuktu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Timbuktu',
+ 'DATA'),
+ ('_tcl_data\\msgs\\bn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\bn.msg',
+ 'DATA'),
+ ('_tk_data\\comdlg.tcl', 'e:\\python38\\tcl\\tk8.6\\comdlg.tcl', 'DATA'),
+ ('_tk_data\\images\\pwrdLogo.eps',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo.eps',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cancun',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cancun',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Atka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Atka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\New_York',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\New_York',
+ 'DATA'),
+ ('_tk_data\\images\\logoMed.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logoMed.gif',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Addis_Ababa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Addis_Ababa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Tiraspol',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Tiraspol',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Kentucky\\Louisville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Kentucky\\Louisville',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\CST6CDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\CST6CDT',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ru_ua.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ru_ua.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macJapan.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macJapan.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Khartoum',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Khartoum',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp874.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp874.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Nicosia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Nicosia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lusaka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lusaka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Jakarta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Jakarta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Eastern',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Eastern',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Fortaleza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Fortaleza',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\ACT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\ACT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Istanbul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Istanbul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-13',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-13',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Detroit',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Detroit',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\CST6CDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\CST6CDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Thule',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Thule',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_au.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_au.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Perth',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Perth',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Chuuk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Chuuk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Central',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Central',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Hovd',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Hovd',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Damascus',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Damascus',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Marquesas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Marquesas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Montevideo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Montevideo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Michigan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Michigan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Matamoros',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Matamoros',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Yancowinna',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Yancowinna',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Saigon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Saigon',
+ 'DATA'),
+ ('_tk_data\\scrlbar.tcl', 'e:\\python38\\tcl\\tk8.6\\scrlbar.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Hebron',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Hebron',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Atlantic',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Atlantic',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Jerusalem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Jerusalem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Chicago',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Chicago',
+ 'DATA'),
+ ('_tcl_data\\msgs\\de_at.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\de_at.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Monterrey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Monterrey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Darwin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Darwin',
+ 'DATA'),
+ ('_tcl_data\\msgs\\he.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\he.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Phoenix',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Phoenix',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Douala',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Douala',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Mexico\\General',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Mexico\\General',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Brazil\\West',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Brazil\\West',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Ponape',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Ponape',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macTurkish.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macTurkish.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Portugal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Portugal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Rothera',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Rothera',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Phnom_Penh',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Phnom_Penh',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Mexico\\BajaSur',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Mexico\\BajaSur',
+ 'DATA'),
+ ('_tcl_data\\history.tcl', 'e:\\python38\\tcl\\tcl8.6\\history.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Vincent',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Vincent',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Ouagadougou',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Ouagadougou',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kuching',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kuching',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Sarajevo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Sarajevo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-8',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-8',
+ 'DATA'),
+ ('_tk_data\\megawidget.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\megawidget.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\ROC', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\ROC', 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Chagos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Chagos',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Krasnoyarsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Krasnoyarsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+5',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+5',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\MST7MDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\MST7MDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Mendoza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Mendoza',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-7.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-7.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Jersey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Jersey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Barthelemy',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Barthelemy',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Johannesburg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Johannesburg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\ascii.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\ascii.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Moscow',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Moscow',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Khandyga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Khandyga',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Midway',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Midway',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Thimbu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Thimbu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\South_Pole',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\South_Pole',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\North_Dakota\\Center',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\North_Dakota\\Center',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Kigali',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Kigali',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-15.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-15.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Pontianak',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Pontianak',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Kampala',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Kampala',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Glace_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Glace_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Singapore',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Singapore',
+ 'DATA'),
+ ('_tk_data\\ttk\\classicTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\classicTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Brisbane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Brisbane',
+ 'DATA'),
+ ('_tk_data\\msgs\\el.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\el.msg', 'DATA'),
+ ('_tcl_data\\msgs\\ar_jo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_jo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cordoba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cordoba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Muscat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Muscat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Tunis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Tunis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Honolulu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Honolulu',
+ 'DATA'),
+ ('_tcl_data\\encoding\\jis0212.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\jis0212.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Queensland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Queensland',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GB-Eire',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GB-Eire',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Stanley',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Stanley',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Lindeman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Lindeman',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Pitcairn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Pitcairn',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Chihuahua',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Chihuahua',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sh.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sh.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp932.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp932.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Vevay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Vevay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Yap',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Yap',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Minsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Minsk',
+ 'DATA'),
+ ('_tcl_data\\encoding\\shiftjis.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\shiftjis.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vienna',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vienna',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Petersburg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Petersburg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Yellowknife',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Yellowknife',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Comoro',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Comoro',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Berlin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Berlin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Riga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Riga',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macCyrillic.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macCyrillic.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tbilisi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tbilisi',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Almaty',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Almaty',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\Universal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\Universal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Merida',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Merida',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Costa_Rica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Costa_Rica',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macThai.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macThai.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Rarotonga',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Rarotonga',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\YST9YDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\YST9YDT',
+ 'DATA'),
+ ('_tk_data\\images\\logo100.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logo100.gif',
+ 'DATA'),
+ ('_tcl_data\\opt0.4\\optparse.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\opt0.4\\optparse.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\San_Juan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\San_Juan',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1254.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1254.enc',
+ 'DATA'),
+ ('_tcl_data\\auto.tcl', 'e:\\python38\\tcl\\tcl8.6\\auto.tcl', 'DATA'),
+ ('_tcl_data\\msgs\\en_hk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_hk.msg',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo175.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo175.gif',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo200.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo200.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\cs.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\cs.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Arizona',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Arizona',
+ 'DATA'),
+ ('_tk_data\\menu.tcl', 'e:\\python38\\tcl\\tk8.6\\menu.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Anchorage',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Anchorage',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\CST6',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\CST6',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\NZ-CHAT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\NZ-CHAT',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_co.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_co.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Belem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Belem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Pacific',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Pacific',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Araguaina',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Araguaina',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Thimphu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Thimphu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Busingen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Busingen',
+ 'DATA'),
+ ('_tk_data\\palette.tcl', 'e:\\python38\\tcl\\tk8.6\\palette.tcl', 'DATA'),
+ ('_tk_data\\listbox.tcl', 'e:\\python38\\tcl\\tk8.6\\listbox.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Noumea',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Noumea',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar_sy.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_sy.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fa_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fa_in.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Porto_Velho',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Porto_Velho',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_do.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_do.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nb.msg',
+ 'DATA'),
+ ('_tk_data\\tkfbox.tcl', 'e:\\python38\\tcl\\tk8.6\\tkfbox.tcl', 'DATA'),
+ ('_tcl_data\\msgs\\lv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\lv.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\altTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\altTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Fort_Wayne',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Fort_Wayne',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\El_Aaiun',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\El_Aaiun',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dhaka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dhaka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Anadyr',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Anadyr',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Harbin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Harbin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Vostok',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Vostok',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\PST8',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\PST8',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1256.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1256.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Lucia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Lucia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT', 'DATA'),
+ ('_tcl_data\\encoding\\koi8-u.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\koi8-u.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_bw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_bw.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kabul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kabul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Bahia_Banderas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Bahia_Banderas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Conakry',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Conakry',
+ 'DATA'),
+ ('_tk_data\\iconlist.tcl', 'e:\\python38\\tcl\\tk8.6\\iconlist.tcl', 'DATA'),
+ ('_tk_data\\tclIndex', 'e:\\python38\\tcl\\tk8.6\\tclIndex', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Makassar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Makassar',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Mendoza',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Mendoza',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Urumqi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Urumqi',
+ 'DATA'),
+ ('_tk_data\\panedwindow.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\panedwindow.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Japan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Japan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Jayapura',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Jayapura',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Victoria',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Victoria',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Fort_Nelson',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Fort_Nelson',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Novokuznetsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Novokuznetsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Hongkong',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Hongkong',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\St_Helena',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\St_Helena',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Uzhgorod',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Uzhgorod',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Boa_Vista',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Boa_Vista',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Amsterdam',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Amsterdam',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-2',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-2',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Cape_Verde',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Cape_Verde',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Menominee',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Menominee',
+ 'DATA'),
+ ('_tcl_data\\msgs\\it.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\it.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Gibraltar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Gibraltar',
+ 'DATA'),
+ ('_tcl_data\\msgs\\tr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\tr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+10',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+10',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ko_kr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ko_kr.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb2312.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb2312.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\jis0201.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\jis0201.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp949.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp949.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\treeview.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\treeview.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kuwait',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kuwait',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Nairobi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Nairobi',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Norfolk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Norfolk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Barbados',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Barbados',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Havana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Havana',
+ 'DATA'),
+ ('_tcl_data\\msgs\\eo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\eo.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-5',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-5',
+ 'DATA'),
+ ('_tcl_data\\msgs\\te_in.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\te_in.msg',
+ 'DATA'),
+ ('_tk_data\\tearoff.tcl', 'e:\\python38\\tcl\\tk8.6\\tearoff.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Funafuti',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Funafuti',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cuiaba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cuiaba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indianapolis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indianapolis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Monrovia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Monrovia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Galapagos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Galapagos',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\North_Dakota\\Beulah',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\North_Dakota\\Beulah',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Swift_Current',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Swift_Current',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Libya',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Libya',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Eirunepe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Eirunepe',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kw_gb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kw_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp950.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp950.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Melbourne',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Melbourne',
+ 'DATA'),
+ ('_tk_data\\button.tcl', 'e:\\python38\\tcl\\tk8.6\\button.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cayman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cayman',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mk.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Podgorica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Podgorica',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Athens',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Athens',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Tucuman',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Tucuman',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Saskatchewan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Saskatchewan',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Irkutsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Irkutsk',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_pr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_pr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Kitts',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Kitts',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\MST', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\MST', 'DATA'),
+ ('_tk_data\\bgerror.tcl', 'e:\\python38\\tcl\\tk8.6\\bgerror.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Tell_City',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Tell_City',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Aden',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Aden',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Macquarie',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Macquarie',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Blanc-Sablon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Blanc-Sablon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Curacao',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Curacao',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Chatham',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Chatham',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Christmas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Christmas',
+ 'DATA'),
+ ('_tk_data\\msgs\\it.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\it.msg', 'DATA'),
+ ('tcl8\\8.4\\platform\\shell-1.1.4.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.4\\platform\\shell-1.1.4.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Vincennes',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Vincennes',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Eire',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Eire',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vilnius',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vilnius',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Srednekolymsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Srednekolymsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yakutsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yakutsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Poland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Poland',
+ 'DATA'),
+ ('_tk_data\\scale.tcl', 'e:\\python38\\tcl\\tk8.6\\scale.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-1',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-1',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+3',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+3',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Canary',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Canary',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Faroe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Faroe',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Choibalsan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Choibalsan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Majuro',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Majuro',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\East-Indiana',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\East-Indiana',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Bishkek',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Bishkek',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Paris',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Paris',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Paramaribo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Paramaribo',
+ 'DATA'),
+ ('_tcl_data\\msgs\\kw.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\kw.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\San_Luis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\San_Luis',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Marengo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Marengo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\McMurdo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\McMurdo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Sydney',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Sydney',
+ 'DATA'),
+ ('_tk_data\\entry.tcl', 'e:\\python38\\tcl\\tk8.6\\entry.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yekaterinburg',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yekaterinburg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\HST10',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\HST10',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-6.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-6.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Kosrae',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Kosrae',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macCentEuro.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macCentEuro.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ashgabat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ashgabat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Seoul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Seoul',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso2022-kr.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso2022-kr.enc',
+ 'DATA'),
+ ('_tk_data\\ttk\\utils.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\utils.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Hermosillo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Hermosillo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Syowa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Syowa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dubai',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dubai',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Montreal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Montreal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Ceuta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Ceuta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Baku',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Baku',
+ 'DATA'),
+ ('_tcl_data\\msgs\\bg.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\bg.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\vi.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\vi.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Vaduz',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Vaduz',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Windhoek',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Windhoek',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Volgograd',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Volgograd',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Tripoli',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Tripoli',
+ 'DATA'),
+ ('_tk_data\\choosedir.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\choosedir.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Dili',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Dili',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-6',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-6',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ho_Chi_Minh',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ho_Chi_Minh',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Chungking',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Chungking',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Egypt',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Egypt',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Nauru',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Nauru',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+9',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+9',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Newfoundland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Newfoundland',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Denver',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Denver',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Bucharest',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Bucharest',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp855.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp855.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ar_lb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ar_lb.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Tasmania',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Tasmania',
+ 'DATA'),
+ ('_tcl_data\\parray.tcl', 'e:\\python38\\tcl\\tcl8.6\\parray.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Johnston',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Johnston',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\AST4',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\AST4',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Casey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Casey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Knox',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Knox',
+ 'DATA'),
+ ('_tk_data\\obsolete.tcl', 'e:\\python38\\tcl\\tk8.6\\obsolete.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Samoa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Samoa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Reunion',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Reunion',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp860.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp860.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\it_ch.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\it_ch.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Chile\\EasterIsland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Chile\\EasterIsland',
+ 'DATA'),
+ ('_tk_data\\ttk\\progress.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\progress.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GB', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GB', 'DATA'),
+ ('_tcl_data\\msgs\\es_ve.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ve.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Skopje',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Skopje',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Miquelon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Miquelon',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ro.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ro.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santarem',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santarem',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Currie',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Currie',
+ 'DATA'),
+ ('_tk_data\\ttk\\panedwindow.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\panedwindow.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ga_ie.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ga_ie.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr_be.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\North',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\North',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp852.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp852.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Cocos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Cocos',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Kentucky\\Monticello',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Kentucky\\Monticello',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Saipan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Saipan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Bogota',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Bogota',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Maseru',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Maseru',
+ 'DATA'),
+ ('_tk_data\\msgs\\da.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\da.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Universal',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Universal',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Asuncion',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Asuncion',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santiago',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santiago',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Kaliningrad',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Kaliningrad',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lome',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_ca.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_ca.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Tahiti',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Tahiti',
+ 'DATA'),
+ ('_tcl_data\\msgs\\id.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\id.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Samoa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Samoa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Mawson',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Mawson',
+ 'DATA'),
+ ('_tcl_data\\msgs\\th.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\th.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\MST7',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\MST7',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Yerevan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Yerevan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Truk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Truk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Belgrade',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Belgrade',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-9',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-9',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_bo.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_bo.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Canada\\Yukon',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Canada\\Yukon',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cambridge_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cambridge_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Juba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Juba',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_ie.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_ie.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fi.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fi.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\big5.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\big5.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Banjul',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Banjul',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Zaporozhye',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Zaporozhye',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Efate',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Efate',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\EST', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\EST', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Jujuy',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Jujuy',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Stockholm',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Stockholm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Sakhalin',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Sakhalin',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Santa_Isabel',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Santa_Isabel',
+ 'DATA'),
+ ('_tk_data\\msgs\\en_gb.msg',
+ 'e:\\python38\\tcl\\tk8.6\\msgs\\en_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp850.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp850.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Godthab',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Godthab',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Adak',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Adak',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ashkhabad',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ashkhabad',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nl_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nl_be.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Accra',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Accra',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1257.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1257.enc',
+ 'DATA'),
+ ('_tk_data\\spinbox.tcl', 'e:\\python38\\tcl\\tk8.6\\spinbox.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Puerto_Rico',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Puerto_Rico',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Warsaw',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Warsaw',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb2312-raw.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb2312-raw.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Alaska',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Alaska',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Jan_Mayen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Jan_Mayen',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Adelaide',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Adelaide',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Shiprock',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Shiprock',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Faeroe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Faeroe',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_py.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_py.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp862.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp862.enc',
+ 'DATA'),
+ ('_tk_data\\license.terms',
+ 'e:\\python38\\tcl\\tk8.6\\license.terms',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Boise',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Boise',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\Greenwich',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\Greenwich',
+ 'DATA'),
+ ('_tk_data\\ttk\\ttk.tcl', 'e:\\python38\\tcl\\tk8.6\\ttk\\ttk.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guadeloupe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guadeloupe',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Sao_Paulo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Sao_Paulo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\CET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\CET', 'DATA'),
+ ('_tcl_data\\msgs\\en_gb.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_gb.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Katmandu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Katmandu',
+ 'DATA'),
+ ('_tcl_data\\tm.tcl', 'e:\\python38\\tcl\\tcl8.6\\tm.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Freetown',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Freetown',
+ 'DATA'),
+ ('_tcl_data\\http1.0\\pkgIndex.tcl',
+ 'e:\\python38\\tcl\\tcl8.6\\http1.0\\pkgIndex.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Marigot',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Marigot',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+8',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+8',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Jujuy',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Jujuy',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Prague',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Prague',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp936.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp936.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Porto-Novo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Porto-Novo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Punta_Arenas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Punta_Arenas',
+ 'DATA'),
+ ('tcl8\\8.4\\platform-1.0.14.tm',
+ 'e:\\python38\\tcl\\tcl8\\8.4\\platform-1.0.14.tm',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Rome',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Rome',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Vancouver',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Vancouver',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Abidjan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Abidjan',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Mexico_City',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Mexico_City',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-13.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-13.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Recife',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Recife',
+ 'DATA'),
+ ('_tcl_data\\clock.tcl', 'e:\\python38\\tcl\\tcl8.6\\clock.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Niamey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Niamey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\PST8PDT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\PST8PDT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Bougainville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Bougainville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Antarctica\\Troll',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Antarctica\\Troll',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Mountain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Mountain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\PRC', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\PRC', 'DATA'),
+ ('_tcl_data\\word.tcl', 'e:\\python38\\tcl\\tcl8.6\\word.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-7',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-7',
+ 'DATA'),
+ ('_tk_data\\msgs\\eo.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\eo.msg', 'DATA'),
+ ('_tcl_data\\msgs\\de.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\de.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Hong_Kong',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Hong_Kong',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1255.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1255.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Oslo',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Oslo',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-3',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-3',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Vientiane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Vientiane',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ga.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ga.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Hobart',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Hobart',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp866.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp866.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Lord_Howe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Lord_Howe',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_ni.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ni.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Jamaica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Jamaica',
+ 'DATA'),
+ ('_tcl_data\\msgs\\pt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\pt.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Knox_IN',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Knox_IN',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-12',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-12',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Guernsey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Guernsey',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT0',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Johns',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Johns',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Catamarca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Catamarca',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_ar.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_ar.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\ROK', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\ROK', 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Tallinn',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Tallinn',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\MET', 'e:\\python38\\tcl\\tcl8.6\\tzdata\\MET', 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Kiritimati',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Kiritimati',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Sitka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Sitka',
+ 'DATA'),
+ ('_tcl_data\\msgs\\hu.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\hu.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\id_id.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\id_id.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-4',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-4',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Caracas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Caracas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Inuvik',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Inuvik',
+ 'DATA'),
+ ('_tcl_data\\msgs\\pl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\pl.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\af.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\af.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Panama',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Panama',
+ 'DATA'),
+ ('_tcl_data\\msgs\\et.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\et.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guatemala',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guatemala',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Greenwich',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Greenwich',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Port_Moresby',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Port_Moresby',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_hn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_hn.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Luanda',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Luanda',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Bangkok',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Bangkok',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb12345.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb12345.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT-14',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT-14',
+ 'DATA'),
+ ('_tcl_data\\msgs\\be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\be.msg',
+ 'DATA'),
+ ('_tk_data\\ttk\\clamTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\clamTheme.tcl',
+ 'DATA'),
+ ('_tk_data\\msgs\\de.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\de.msg', 'DATA'),
+ ('_tcl_data\\encoding\\macUkraine.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macUkraine.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\sv.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\sv.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\el.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\el.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Fiji',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Fiji',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+7',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+7',
+ 'DATA'),
+ ('_tcl_data\\msgs\\da.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\da.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Porto_Acre',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Porto_Acre',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Aruba',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Aruba',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Halifax',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Halifax',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Ushuaia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Ushuaia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tehran',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tehran',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp737.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp737.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Aqtau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Aqtau',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-5.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-5.enc',
+ 'DATA'),
+ ('_tcl_data\\encoding\\macRoman.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\macRoman.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Broken_Hill',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Broken_Hill',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Lower_Princes',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Lower_Princes',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Pangnirtung',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Pangnirtung',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Yakutat',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Yakutat',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Indianapolis',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Indianapolis',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-1.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-1.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Nicosia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Nicosia',
+ 'DATA'),
+ ('_tk_data\\fontchooser.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\fontchooser.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\eu_es.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\eu_es.msg',
+ 'DATA'),
+ ('_tk_data\\images\\logoLarge.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\logoLarge.gif',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ms_my.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ms_my.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Apia',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Apia',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Tomsk',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Tomsk',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Port-au-Prince',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Port-au-Prince',
+ 'DATA'),
+ ('_tk_data\\unsupported.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\unsupported.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Mayotte',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Mayotte',
+ 'DATA'),
+ ('_tk_data\\ttk\\scrollbar.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\scrollbar.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ta.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ta.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mr.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mr.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ujung_Pandang',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ujung_Pandang',
+ 'DATA'),
+ ('_tcl_data\\msgs\\fr_ch.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\fr_ch.msg',
+ 'DATA'),
+ ('_tk_data\\pkgIndex.tcl', 'e:\\python38\\tcl\\tk8.6\\pkgIndex.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\AST4ADT',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\AST4ADT',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Catamarca',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Catamarca',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Iceland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Iceland',
+ 'DATA'),
+ ('_tcl_data\\msgs\\mt.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\mt.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Ulaanbaatar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Ulaanbaatar',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Tirane',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Tirane',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Saratov',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Saratov',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\South',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\South',
+ 'DATA'),
+ ('_tk_data\\ttk\\cursors.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\cursors.tcl',
+ 'DATA'),
+ ('_tk_data\\ttk\\winTheme.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\winTheme.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Campo_Grande',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Campo_Grande',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_cl.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_cl.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Tongatapu',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Tongatapu',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Thunder_Bay',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Thunder_Bay',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lagos',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lagos',
+ 'DATA'),
+ ('_tk_data\\focus.tcl', 'e:\\python38\\tcl\\tk8.6\\focus.tcl', 'DATA'),
+ ('_tk_data\\text.tcl', 'e:\\python38\\tcl\\tk8.6\\text.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Samarkand',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Samarkand',
+ 'DATA'),
+ ('_tk_data\\msgs\\nl.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\nl.msg', 'DATA'),
+ ('_tk_data\\ttk\\combobox.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\combobox.tcl',
+ 'DATA'),
+ ('_tcl_data\\msgs\\uk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\uk.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\cp1250.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\cp1250.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Guayaquil',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Guayaquil',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Etc\\GMT+6',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Etc\\GMT+6',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kamchatka',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kamchatka',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\GMT+0',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\GMT+0',
+ 'DATA'),
+ ('_tcl_data\\encoding\\gb1988.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\gb1988.enc',
+ 'DATA'),
+ ('_tcl_data\\msgs\\ru.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\ru.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Auckland',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Auckland',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Singapore',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Singapore',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\Canberra',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\Canberra',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Port_of_Spain',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Port_of_Spain',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Bissau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Bissau',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_pe.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_pe.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Edmonton',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Edmonton',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso8859-2.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso8859-2.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Cayenne',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Cayenne',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Libreville',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Libreville',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Israel',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Israel',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_hk.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_hk.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Buenos_Aires',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Buenos_Aires',
+ 'DATA'),
+ ('_tk_data\\msgs\\en.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\en.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Taipei',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Taipei',
+ 'DATA'),
+ ('_tcl_data\\msgs\\en_nz.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\en_nz.msg',
+ 'DATA'),
+ ('_tcl_data\\encoding\\euc-jp.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\euc-jp.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Qyzylorda',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Qyzylorda',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Lima',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Lima',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Dar_es_Salaam',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Dar_es_Salaam',
+ 'DATA'),
+ ('_tk_data\\ttk\\notebook.tcl',
+ 'e:\\python38\\tcl\\tk8.6\\ttk\\notebook.tcl',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Oral',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Oral',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Aqtobe',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Aqtobe',
+ 'DATA'),
+ ('_tk_data\\tk.tcl', 'e:\\python38\\tcl\\tk8.6\\tk.tcl', 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Riyadh',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Riyadh',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Wake',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Wake',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Chisinau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Chisinau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Copenhagen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Copenhagen',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Pacific\\Tarawa',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Pacific\\Tarawa',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Madrid',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Madrid',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Malta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Malta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Whitehorse',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Whitehorse',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Helsinki',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Helsinki',
+ 'DATA'),
+ ('_tk_data\\msgs\\fr.msg', 'e:\\python38\\tcl\\tk8.6\\msgs\\fr.msg', 'DATA'),
+ ('_tcl_data\\tzdata\\Australia\\West',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Australia\\West',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Dominica',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Dominica',
+ 'DATA'),
+ ('_tcl_data\\msgs\\es_pa.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\es_pa.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\SystemV\\EST5',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\SystemV\\EST5',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Atyrau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Atyrau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Macau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Macau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Shanghai',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Shanghai',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Africa\\Lubumbashi',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Africa\\Lubumbashi',
+ 'DATA'),
+ ('_tcl_data\\msgs\\af_za.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\af_za.msg',
+ 'DATA'),
+ ('_tcl_data\\msgs\\de_be.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\de_be.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Indian\\Kerguelen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Indian\\Kerguelen',
+ 'DATA'),
+ ('_tcl_data\\msgs\\nn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\nn.msg',
+ 'DATA'),
+ ('_tk_data\\images\\pwrdLogo150.gif',
+ 'e:\\python38\\tcl\\tk8.6\\images\\pwrdLogo150.gif',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Atikokan',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Atikokan',
+ 'DATA'),
+ ('_tcl_data\\msgs\\zh_cn.msg',
+ 'e:\\python38\\tcl\\tcl8.6\\msgs\\zh_cn.msg',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\US\\Aleutian',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\US\\Aleutian',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Arctic\\Longyearbyen',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Arctic\\Longyearbyen',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Atlantic\\Azores',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Atlantic\\Azores',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\St_Thomas',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\St_Thomas',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Turkey',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Turkey',
+ 'DATA'),
+ ('_tcl_data\\encoding\\iso2022.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\iso2022.enc',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Juneau',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Juneau',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Europe\\Samara',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Europe\\Samara',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\Asia\\Kashgar',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\Asia\\Kashgar',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Indiana\\Winamac',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Indiana\\Winamac',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Argentina\\Salta',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Argentina\\Salta',
+ 'DATA'),
+ ('_tcl_data\\tzdata\\America\\Rankin_Inlet',
+ 'e:\\python38\\tcl\\tcl8.6\\tzdata\\America\\Rankin_Inlet',
+ 'DATA'),
+ ('_tcl_data\\encoding\\dingbats.enc',
+ 'e:\\python38\\tcl\\tcl8.6\\encoding\\dingbats.enc',
+ 'DATA'),
+ ('base_library.zip',
+ 'E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\base_library.zip',
+ 'DATA')],
+ 'python38.dll',
+ False,
+ False,
+ False,
+ [],
+ None,
+ None,
+ None)
diff --git a/build/网络设备控制器/PYZ-00.pyz b/build/网络设备控制器/PYZ-00.pyz
new file mode 100644
index 0000000..1a8daee
Binary files /dev/null and b/build/网络设备控制器/PYZ-00.pyz differ
diff --git a/build/网络设备控制器/PYZ-00.toc b/build/网络设备控制器/PYZ-00.toc
new file mode 100644
index 0000000..c0e1622
--- /dev/null
+++ b/build/网络设备控制器/PYZ-00.toc
@@ -0,0 +1,133 @@
+('E:\\pythonProject\\TCPUDP\\build\\网络设备控制器\\PYZ-00.pyz',
+ [('__future__', 'e:\\python38\\lib\\__future__.py', 'PYMODULE'),
+ ('_compat_pickle', 'e:\\python38\\lib\\_compat_pickle.py', 'PYMODULE'),
+ ('_compression', 'e:\\python38\\lib\\_compression.py', 'PYMODULE'),
+ ('_py_abc', 'e:\\python38\\lib\\_py_abc.py', 'PYMODULE'),
+ ('_strptime', 'e:\\python38\\lib\\_strptime.py', 'PYMODULE'),
+ ('_threading_local', 'e:\\python38\\lib\\_threading_local.py', 'PYMODULE'),
+ ('argparse', 'e:\\python38\\lib\\argparse.py', 'PYMODULE'),
+ ('base64', 'e:\\python38\\lib\\base64.py', 'PYMODULE'),
+ ('bisect', 'e:\\python38\\lib\\bisect.py', 'PYMODULE'),
+ ('bz2', 'e:\\python38\\lib\\bz2.py', 'PYMODULE'),
+ ('calendar', 'e:\\python38\\lib\\calendar.py', 'PYMODULE'),
+ ('configparser', 'e:\\python38\\lib\\configparser.py', 'PYMODULE'),
+ ('contextlib', 'e:\\python38\\lib\\contextlib.py', 'PYMODULE'),
+ ('copy', 'e:\\python38\\lib\\copy.py', 'PYMODULE'),
+ ('csv', 'e:\\python38\\lib\\csv.py', 'PYMODULE'),
+ ('ctypes', 'e:\\python38\\lib\\ctypes\\__init__.py', 'PYMODULE'),
+ ('ctypes._aix', 'e:\\python38\\lib\\ctypes\\_aix.py', 'PYMODULE'),
+ ('ctypes._endian', 'e:\\python38\\lib\\ctypes\\_endian.py', 'PYMODULE'),
+ ('ctypes.macholib',
+ 'e:\\python38\\lib\\ctypes\\macholib\\__init__.py',
+ 'PYMODULE'),
+ ('ctypes.macholib.dyld',
+ 'e:\\python38\\lib\\ctypes\\macholib\\dyld.py',
+ 'PYMODULE'),
+ ('ctypes.macholib.dylib',
+ 'e:\\python38\\lib\\ctypes\\macholib\\dylib.py',
+ 'PYMODULE'),
+ ('ctypes.macholib.framework',
+ 'e:\\python38\\lib\\ctypes\\macholib\\framework.py',
+ 'PYMODULE'),
+ ('ctypes.util', 'e:\\python38\\lib\\ctypes\\util.py', 'PYMODULE'),
+ ('datetime', 'e:\\python38\\lib\\datetime.py', 'PYMODULE'),
+ ('email', 'e:\\python38\\lib\\email\\__init__.py', 'PYMODULE'),
+ ('email._encoded_words',
+ 'e:\\python38\\lib\\email\\_encoded_words.py',
+ 'PYMODULE'),
+ ('email._header_value_parser',
+ 'e:\\python38\\lib\\email\\_header_value_parser.py',
+ 'PYMODULE'),
+ ('email._parseaddr', 'e:\\python38\\lib\\email\\_parseaddr.py', 'PYMODULE'),
+ ('email._policybase', 'e:\\python38\\lib\\email\\_policybase.py', 'PYMODULE'),
+ ('email.base64mime', 'e:\\python38\\lib\\email\\base64mime.py', 'PYMODULE'),
+ ('email.charset', 'e:\\python38\\lib\\email\\charset.py', 'PYMODULE'),
+ ('email.contentmanager',
+ 'e:\\python38\\lib\\email\\contentmanager.py',
+ 'PYMODULE'),
+ ('email.encoders', 'e:\\python38\\lib\\email\\encoders.py', 'PYMODULE'),
+ ('email.errors', 'e:\\python38\\lib\\email\\errors.py', 'PYMODULE'),
+ ('email.feedparser', 'e:\\python38\\lib\\email\\feedparser.py', 'PYMODULE'),
+ ('email.generator', 'e:\\python38\\lib\\email\\generator.py', 'PYMODULE'),
+ ('email.header', 'e:\\python38\\lib\\email\\header.py', 'PYMODULE'),
+ ('email.headerregistry',
+ 'e:\\python38\\lib\\email\\headerregistry.py',
+ 'PYMODULE'),
+ ('email.iterators', 'e:\\python38\\lib\\email\\iterators.py', 'PYMODULE'),
+ ('email.message', 'e:\\python38\\lib\\email\\message.py', 'PYMODULE'),
+ ('email.parser', 'e:\\python38\\lib\\email\\parser.py', 'PYMODULE'),
+ ('email.policy', 'e:\\python38\\lib\\email\\policy.py', 'PYMODULE'),
+ ('email.quoprimime', 'e:\\python38\\lib\\email\\quoprimime.py', 'PYMODULE'),
+ ('email.utils', 'e:\\python38\\lib\\email\\utils.py', 'PYMODULE'),
+ ('fnmatch', 'e:\\python38\\lib\\fnmatch.py', 'PYMODULE'),
+ ('getopt', 'e:\\python38\\lib\\getopt.py', 'PYMODULE'),
+ ('gettext', 'e:\\python38\\lib\\gettext.py', 'PYMODULE'),
+ ('gzip', 'e:\\python38\\lib\\gzip.py', 'PYMODULE'),
+ ('hashlib', 'e:\\python38\\lib\\hashlib.py', 'PYMODULE'),
+ ('importlib', 'e:\\python38\\lib\\importlib\\__init__.py', 'PYMODULE'),
+ ('importlib._bootstrap',
+ 'e:\\python38\\lib\\importlib\\_bootstrap.py',
+ 'PYMODULE'),
+ ('importlib._bootstrap_external',
+ 'e:\\python38\\lib\\importlib\\_bootstrap_external.py',
+ 'PYMODULE'),
+ ('importlib.abc', 'e:\\python38\\lib\\importlib\\abc.py', 'PYMODULE'),
+ ('importlib.machinery',
+ 'e:\\python38\\lib\\importlib\\machinery.py',
+ 'PYMODULE'),
+ ('importlib.metadata',
+ 'e:\\python38\\lib\\importlib\\metadata.py',
+ 'PYMODULE'),
+ ('importlib.util', 'e:\\python38\\lib\\importlib\\util.py', 'PYMODULE'),
+ ('json', 'e:\\python38\\lib\\json\\__init__.py', 'PYMODULE'),
+ ('json.decoder', 'e:\\python38\\lib\\json\\decoder.py', 'PYMODULE'),
+ ('json.encoder', 'e:\\python38\\lib\\json\\encoder.py', 'PYMODULE'),
+ ('json.scanner', 'e:\\python38\\lib\\json\\scanner.py', 'PYMODULE'),
+ ('logging', 'e:\\python38\\lib\\logging\\__init__.py', 'PYMODULE'),
+ ('lzma', 'e:\\python38\\lib\\lzma.py', 'PYMODULE'),
+ ('netbios',
+ 'e:\\python38\\lib\\site-packages\\win32\\lib\\netbios.py',
+ 'PYMODULE'),
+ ('network_manager',
+ 'E:\\pythonProject\\TCPUDP\\network_manager.py',
+ 'PYMODULE'),
+ ('optparse', 'e:\\python38\\lib\\optparse.py', 'PYMODULE'),
+ ('pathlib', 'e:\\python38\\lib\\pathlib.py', 'PYMODULE'),
+ ('pickle', 'e:\\python38\\lib\\pickle.py', 'PYMODULE'),
+ ('platform', 'e:\\python38\\lib\\platform.py', 'PYMODULE'),
+ ('pprint', 'e:\\python38\\lib\\pprint.py', 'PYMODULE'),
+ ('py_compile', 'e:\\python38\\lib\\py_compile.py', 'PYMODULE'),
+ ('quopri', 'e:\\python38\\lib\\quopri.py', 'PYMODULE'),
+ ('random', 'e:\\python38\\lib\\random.py', 'PYMODULE'),
+ ('scheduler_app', 'E:\\pythonProject\\TCPUDP\\scheduler_app.py', 'PYMODULE'),
+ ('selectors', 'e:\\python38\\lib\\selectors.py', 'PYMODULE'),
+ ('settings_app', 'E:\\pythonProject\\TCPUDP\\settings_app.py', 'PYMODULE'),
+ ('shutil', 'e:\\python38\\lib\\shutil.py', 'PYMODULE'),
+ ('signal', 'e:\\python38\\lib\\signal.py', 'PYMODULE'),
+ ('socket', 'e:\\python38\\lib\\socket.py', 'PYMODULE'),
+ ('string', 'e:\\python38\\lib\\string.py', 'PYMODULE'),
+ ('stringprep', 'e:\\python38\\lib\\stringprep.py', 'PYMODULE'),
+ ('subprocess', 'e:\\python38\\lib\\subprocess.py', 'PYMODULE'),
+ ('tarfile', 'e:\\python38\\lib\\tarfile.py', 'PYMODULE'),
+ ('tempfile', 'e:\\python38\\lib\\tempfile.py', 'PYMODULE'),
+ ('textwrap', 'e:\\python38\\lib\\textwrap.py', 'PYMODULE'),
+ ('threading', 'e:\\python38\\lib\\threading.py', 'PYMODULE'),
+ ('tkinter', 'e:\\python38\\lib\\tkinter\\__init__.py', 'PYMODULE'),
+ ('tkinter.commondialog',
+ 'e:\\python38\\lib\\tkinter\\commondialog.py',
+ 'PYMODULE'),
+ ('tkinter.constants', 'e:\\python38\\lib\\tkinter\\constants.py', 'PYMODULE'),
+ ('tkinter.messagebox',
+ 'e:\\python38\\lib\\tkinter\\messagebox.py',
+ 'PYMODULE'),
+ ('tkinter.ttk', 'e:\\python38\\lib\\tkinter\\ttk.py', 'PYMODULE'),
+ ('token', 'e:\\python38\\lib\\token.py', 'PYMODULE'),
+ ('tokenize', 'e:\\python38\\lib\\tokenize.py', 'PYMODULE'),
+ ('tracemalloc', 'e:\\python38\\lib\\tracemalloc.py', 'PYMODULE'),
+ ('typing', 'e:\\python38\\lib\\typing.py', 'PYMODULE'),
+ ('urllib', 'e:\\python38\\lib\\urllib\\__init__.py', 'PYMODULE'),
+ ('urllib.parse', 'e:\\python38\\lib\\urllib\\parse.py', 'PYMODULE'),
+ ('utils', 'E:\\pythonProject\\TCPUDP\\utils.py', 'PYMODULE'),
+ ('uu', 'e:\\python38\\lib\\uu.py', 'PYMODULE'),
+ ('uuid', 'e:\\python38\\lib\\uuid.py', 'PYMODULE'),
+ ('zipfile', 'e:\\python38\\lib\\zipfile.py', 'PYMODULE')])
diff --git a/build/网络设备控制器/base_library.zip b/build/网络设备控制器/base_library.zip
new file mode 100644
index 0000000..56d58f1
Binary files /dev/null and b/build/网络设备控制器/base_library.zip differ
diff --git a/build/网络设备控制器/localpycs/pyimod01_archive.pyc b/build/网络设备控制器/localpycs/pyimod01_archive.pyc
new file mode 100644
index 0000000..be6a83f
Binary files /dev/null and b/build/网络设备控制器/localpycs/pyimod01_archive.pyc differ
diff --git a/build/网络设备控制器/localpycs/pyimod02_importers.pyc b/build/网络设备控制器/localpycs/pyimod02_importers.pyc
new file mode 100644
index 0000000..038f59d
Binary files /dev/null and b/build/网络设备控制器/localpycs/pyimod02_importers.pyc differ
diff --git a/build/网络设备控制器/localpycs/pyimod03_ctypes.pyc b/build/网络设备控制器/localpycs/pyimod03_ctypes.pyc
new file mode 100644
index 0000000..4a02029
Binary files /dev/null and b/build/网络设备控制器/localpycs/pyimod03_ctypes.pyc differ
diff --git a/build/网络设备控制器/localpycs/pyimod04_pywin32.pyc b/build/网络设备控制器/localpycs/pyimod04_pywin32.pyc
new file mode 100644
index 0000000..bd3e824
Binary files /dev/null and b/build/网络设备控制器/localpycs/pyimod04_pywin32.pyc differ
diff --git a/build/网络设备控制器/localpycs/struct.pyc b/build/网络设备控制器/localpycs/struct.pyc
new file mode 100644
index 0000000..22ee72e
Binary files /dev/null and b/build/网络设备控制器/localpycs/struct.pyc differ
diff --git a/build/网络设备控制器/warn-网络设备控制器.txt b/build/网络设备控制器/warn-网络设备控制器.txt
new file mode 100644
index 0000000..cf0f516
--- /dev/null
+++ b/build/网络设备控制器/warn-网络设备控制器.txt
@@ -0,0 +1,30 @@
+
+This file lists modules PyInstaller was not able to find. This does not
+necessarily mean this module is required for running your program. Python and
+Python 3rd-party packages include a lot of conditional or optional modules. For
+example the module 'ntpath' only exists on Windows, whereas the module
+'posixpath' only exists on Posix systems.
+
+Types if import:
+* top-level: imported at the top-level - look at these first
+* conditional: imported within an if-statement
+* delayed: imported within a function
+* optional: imported within a try-except-statement
+
+IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
+ tracking down the missing module yourself. Thanks!
+
+missing module named org - imported by copy (optional)
+missing module named pwd - imported by posixpath (delayed, conditional), shutil (optional), tarfile (optional), pathlib (delayed, conditional, optional)
+missing module named 'org.python' - imported by pickle (optional)
+missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional)
+excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional)
+missing module named posix - imported by os (conditional, optional), shutil (conditional)
+missing module named resource - imported by posix (top-level)
+missing module named grp - imported by shutil (optional), tarfile (optional), pathlib (delayed)
+missing module named _uuid - imported by uuid (optional)
+missing module named _posixsubprocess - imported by subprocess (optional)
+missing module named vms_lib - imported by platform (delayed, conditional, optional)
+missing module named 'java.lang' - imported by platform (delayed, optional)
+missing module named java - imported by platform (delayed)
+missing module named _winreg - imported by platform (delayed, optional)
diff --git a/build/网络设备控制器/xref-网络设备控制器.html b/build/网络设备控制器/xref-网络设备控制器.html
new file mode 100644
index 0000000..5a1dbff
--- /dev/null
+++ b/build/网络设备控制器/xref-网络设备控制器.html
@@ -0,0 +1,7009 @@
+
+
+
+
+ modulegraph cross reference for main_control_app.py, pyi_rth__tkinter.py
+
+
+
+ modulegraph cross reference for main_control_app.py, pyi_rth__tkinter.py
+
+
+
+
+
+
+
+
+
+
+
+
+
+
_abc (builtin module)
+
+
+
+
+
+
_bisect (builtin module)
+
+
+
+
+
+
_blake2 (builtin module)
+
+
+
+
+
+
+
+
_bz2 e:\python38\DLLs\_bz2.pyd
+
+
+
+
+
+
_codecs (builtin module)
+
+
+
+
+
+
_codecs_cn (builtin module)
+
+
+
+
+
+
_codecs_hk (builtin module)
+
+
+
+
+
+
_codecs_iso2022 (builtin module)
+
+
+
+
+
+
_codecs_jp (builtin module)
+
+
+
+
+
+
_codecs_kr (builtin module)
+
+
+
+
+
+
_codecs_tw (builtin module)
+
+
+
+
+
+
_collections (builtin module)
+
+
+
+
+
+
+
+
+
+
+
+
_csv (builtin module)
+
+
+
+
+
+
_ctypes e:\python38\DLLs\_ctypes.pyd
+
+
+
+
+
+
_datetime (builtin module)
+
+
+
+
+
+
+
+
+
+
+
_functools (builtin module)
+
+
+
+
+
+
_hashlib e:\python38\DLLs\_hashlib.pyd
+
+
+
+
+
+
_heapq (builtin module)
+imported by:
+
heapq
+
+
+
+
+
+
+
+
_imp (builtin module)
+
+
+
+
+
+
_io (builtin module)
+
+
+
+
+
+
_json (builtin module)
+
+
+
+
+
+
+
_locale (builtin module)
+
+
+
+
+
+
_lzma e:\python38\DLLs\_lzma.pyd
+
+
+
+
+
+
_md5 (builtin module)
+
+
+
+
+
+
_multibytecodec (builtin module)
+
+
+
+
+
+
_operator (builtin module)
+
+
+
+
+
+
_pickle (builtin module)
+
+
+
+
+
+
+
+
+
+
+
_random (builtin module)
+
+
+
+
+
+
_sha1 (builtin module)
+
+
+
+
+
+
_sha256 (builtin module)
+
+
+
+
+
+
_sha3 (builtin module)
+
+
+
+
+
+
_sha512 (builtin module)
+
+
+
+
+
+
_signal (builtin module)
+
+
+
+
+
+
_socket e:\python38\DLLs\_socket.pyd
+
+
+
+
+
+
_sre (builtin module)
+
+
+
+
+
+
+
_stat (builtin module)
+
+
+
+
+
+
_string (builtin module)
+
+
+
+
+
+
+
+
_struct (builtin module)
+
+
+
+
+
+
_thread (builtin module)
+
+
+
+
+
+
+
+
_tkinter e:\python38\DLLs\_tkinter.pyd
+
+
+
+
+
+
_tracemalloc (builtin module)
+
+
+
+
+
+
_uuid
+
MissingModule
+
+
+
+
+
+
_warnings (builtin module)
+
+
+
+
+
+
_weakref (builtin module)
+
+
+
+
+
+
+
+
_winapi (builtin module)
+
+
+
+
+
+
+
+
abc
+
SourceModule
+
+
+
+
+
+
+
+
+
atexit (builtin module)
+
+
+
+
+
+
base64
+
SourceModule
+
+
+
+
+
+
+
binascii (builtin module)
+
+
+
+
+
+
bisect
+
SourceModule
+
+
+
+
+
+
+
builtins (builtin module)
+
+
+
+
+
+
bz2
+
SourceModule
+
+
+
+
+
+
+
+
+
codecs
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
copy
+
SourceModule
+
+
+
+
+
+
+
+
+
csv
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
enum
+
SourceModule
+
+
+
+
+
+
+
errno (builtin module)
+
+
+
+
+
+
+
+
+
+
gc (builtin module)
+
+
+
+
+
+
+
+
+
getopt
+
SourceModule
+
+
+
+
+
+
+
+
+
grp
+
MissingModule
+
+
+
+
+
+
gzip
+
SourceModule
+
+
+
+
+
+
+
+
+
heapq
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
io
+
SourceModule
+
+
+
+
+
+
+
itertools (builtin module)
+
+
+
+
+
+
java
+
MissingModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
locale
+
SourceModule
+
+
+
+
+
+
+
+
+
lzma
+
SourceModule
+
+
+
+
+
+
+
math (builtin module)
+
+
+
+
+
+
msvcrt (builtin module)
+
+
+
+
+
+
+
+
+
+
nt (builtin module)
+
+
+
+
+
+
ntpath
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
org
+
MissingModule
+
+
+
+
+
+
os
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
pickle
+
SourceModule
+
+
+
+
+
+
+
+
+
posix
+
MissingModule
+
+
+
+
+
+
+
+
+
pprint
+
SourceModule
+
+
+
+
+
+
+
pwd
+
MissingModule
+
+
+
+
+
+
+
+
quopri
+
SourceModule
+
+
+
+
+
+
+
random
+
SourceModule
+
+
+
+
+
+
+
re
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
select e:\python38\DLLs\select.pyd
+
+
+
+
+
+
+
+
+
+
shutil
+
SourceModule
+
+
+
+
+
+
+
signal
+
SourceModule
+
+
+
+
+
+
+
socket
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
stat
+
SourceModule
+
+
+
+
+
+
+
string
+
SourceModule
+
+
+
+
+
+
+
+
+
struct
+
SourceModule
+
+
+
+
+
+
+
+
+
sys (builtin module)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
time (builtin module)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
token
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
types
+
SourceModule
+
+
+
+
+
+
+
typing
+
SourceModule
+
+
+
+
+
+
+
unicodedata e:\python38\DLLs\unicodedata.pyd
+
+
+
+
+
+
+
+
+
+
utils
+
SourceModule
+
+
+
+
+
+
+
uu
+
SourceModule
+
+
+
+
+
+
+
uuid
+
SourceModule
+
+
+
+
+
+
+
+
+
+
+
+
+
win32wnet e:\python38\lib\site-packages\win32\win32wnet.pyd
+
+
+
+
+
+
winreg (builtin module)
+
+
+
+
+
+
+
+
zlib (builtin module)
+
+
+
+
+
diff --git a/build/网络设备控制器/网络设备控制器.pkg b/build/网络设备控制器/网络设备控制器.pkg
new file mode 100644
index 0000000..1c8816d
Binary files /dev/null and b/build/网络设备控制器/网络设备控制器.pkg differ
diff --git a/config.json b/config.json
new file mode 100644
index 0000000..16561f2
--- /dev/null
+++ b/config.json
@@ -0,0 +1,242 @@
+{
+ "devices": [
+ {
+ "id": "85ce7dab-22a3-4d39-b783-268eb037cd88",
+ "name": "test1tcp",
+ "type": "test",
+ "protocol": "TCP",
+ "address": "127.0.0.1",
+ "port": 19987,
+ "keep_alive": true,
+ "commands": [
+ {
+ "name": "on1",
+ "data": "on1",
+ "type": "text"
+ },
+ {
+ "name": "on2",
+ "data": "00100000080011",
+ "type": "hex"
+ },
+ {
+ "name": "2",
+ "data": "2",
+ "type": "text"
+ },
+ {
+ "name": "3",
+ "data": "3",
+ "type": "text"
+ },
+ {
+ "name": "4",
+ "data": "4",
+ "type": "text"
+ },
+ {
+ "name": "5",
+ "data": "5",
+ "type": "text"
+ },
+ {
+ "name": "6",
+ "data": "6",
+ "type": "text"
+ },
+ {
+ "name": "7",
+ "data": "7",
+ "type": "text"
+ },
+ {
+ "name": "8",
+ "data": "8",
+ "type": "text"
+ },
+ {
+ "name": "111",
+ "data": "111",
+ "type": "text"
+ },
+ {
+ "name": "1111",
+ "data": "1111",
+ "type": "text"
+ },
+ {
+ "name": "11111",
+ "data": "11111",
+ "type": "text"
+ },
+ {
+ "name": "22",
+ "data": "22",
+ "type": "text"
+ },
+ {
+ "name": "222",
+ "data": "222",
+ "type": "text"
+ },
+ {
+ "name": "333",
+ "data": "333",
+ "type": "text"
+ },
+ {
+ "name": "444",
+ "data": "444",
+ "type": "text"
+ }
+ ],
+ "timeout": 5
+ },
+ {
+ "id": "e1e6e141-0d41-4251-8d63-786f3485061a",
+ "name": "zm",
+ "type": "zm",
+ "protocol": "UDP",
+ "address": "127.0.0.1",
+ "port": 9128,
+ "keep_alive": false,
+ "commands": [
+ {
+ "name": "on1",
+ "data": "setr=1111",
+ "type": "text"
+ }
+ ],
+ "timeout": 5
+ },
+ {
+ "id": "77c8ea68-f3c0-4e71-8922-0f23909ee8f9",
+ "name": "test2",
+ "type": "test2",
+ "protocol": "TCP",
+ "address": "1.1.1.1",
+ "port": 2,
+ "keep_alive": false,
+ "commands": [
+ {
+ "name": "1",
+ "data": "1",
+ "type": "text"
+ }
+ ],
+ "timeout": 5
+ },
+ {
+ "id": "51f60dc8-5cbd-41d2-8233-077d206c77b5",
+ "name": "test3",
+ "type": "test",
+ "protocol": "TCP",
+ "address": "1.1.1.1",
+ "port": 3,
+ "keep_alive": false,
+ "commands": [
+ {
+ "name": "2",
+ "data": "2",
+ "type": "text"
+ }
+ ],
+ "timeout": 5
+ },
+ {
+ "id": "441b23c7-cd24-45f0-914c-8c65e076b056",
+ "name": "test4",
+ "type": "test",
+ "protocol": "TCP",
+ "address": "1.1.1.1",
+ "port": 4,
+ "keep_alive": false,
+ "commands": [
+ {
+ "name": "4",
+ "data": "4",
+ "type": "text"
+ }
+ ],
+ "timeout": 5
+ }
+ ],
+ "scheduled_tasks": [
+ {
+ "id": "a07f035f-dc44-4fca-be9a-6f9399b526f1",
+ "name": "test1",
+ "schedule_type": "once",
+ "trigger": {
+ "hour": 1,
+ "minute": 41,
+ "second": 0,
+ "year": 2026,
+ "month": 1,
+ "day": 28
+ },
+ "actions": [
+ {
+ "device_id": "85ce7dab-22a3-4d39-b783-268eb037cd88",
+ "command_index": 0,
+ "delay_ms": 0
+ }
+ ],
+ "enabled": true,
+ "last_run_time": "2026-01-28T01:41:00.285071",
+ "next_run_time": null
+ },
+ {
+ "id": "6d19bd9a-1815-485b-96ee-0c722f26a0be",
+ "name": "新任务",
+ "schedule_type": "once",
+ "trigger": {
+ "hour": 4,
+ "minute": 31,
+ "second": 0,
+ "year": 2026,
+ "month": 1,
+ "day": 28
+ },
+ "actions": [
+ {
+ "device_id": "85ce7dab-22a3-4d39-b783-268eb037cd88",
+ "command_index": 0,
+ "delay_ms": 0
+ },
+ {
+ "device_id": "85ce7dab-22a3-4d39-b783-268eb037cd88",
+ "command_index": 1,
+ "delay_ms": 500
+ },
+ {
+ "device_id": "85ce7dab-22a3-4d39-b783-268eb037cd88",
+ "command_index": 2,
+ "delay_ms": 500
+ },
+ {
+ "device_id": "85ce7dab-22a3-4d39-b783-268eb037cd88",
+ "command_index": 3,
+ "delay_ms": 500
+ },
+ {
+ "device_id": "85ce7dab-22a3-4d39-b783-268eb037cd88",
+ "command_index": 4,
+ "delay_ms": 500
+ },
+ {
+ "device_id": "85ce7dab-22a3-4d39-b783-268eb037cd88",
+ "command_index": 5,
+ "delay_ms": 500
+ },
+ {
+ "device_id": "85ce7dab-22a3-4d39-b783-268eb037cd88",
+ "command_index": 6,
+ "delay_ms": 500
+ }
+ ],
+ "enabled": true,
+ "last_run_time": "2026-01-28T04:31:00.158597",
+ "next_run_time": null
+ }
+ ]
+}
\ No newline at end of file
diff --git a/dist/config.json b/dist/config.json
new file mode 100644
index 0000000..01e6105
--- /dev/null
+++ b/dist/config.json
@@ -0,0 +1,4 @@
+{
+ "devices": [],
+ "scheduled_tasks": []
+}
\ No newline at end of file
diff --git a/dist/logs/app_log.log b/dist/logs/app_log.log
new file mode 100644
index 0000000..2e509ac
--- /dev/null
+++ b/dist/logs/app_log.log
@@ -0,0 +1,9 @@
+2026-01-28 04:39:25,911 - INFO - 日志系统已初始化。
+2026-01-28 04:39:25,948 - WARNING - 未找到 config.json,将创建新配置。
+2026-01-28 04:39:25,949 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:39:36,880 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:39:36,880 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:39:36,882 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:39:36,895 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:39:42,568 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 04:39:42,569 - INFO - 定时任务管理窗口已关闭。
diff --git a/dist/网络设备控制器.exe b/dist/网络设备控制器.exe
new file mode 100644
index 0000000..2b64637
Binary files /dev/null and b/dist/网络设备控制器.exe differ
diff --git a/logs/app_log.log b/logs/app_log.log
new file mode 100644
index 0000000..50c8cf8
--- /dev/null
+++ b/logs/app_log.log
@@ -0,0 +1,808 @@
+2026-01-27 22:50:10,759 - INFO - 日志系统已初始化。
+2026-01-27 22:50:10,788 - INFO - 从 config.json 加载配置成功。
+2026-01-27 22:50:10,790 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:50:25,319 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:50:25,319 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:50:25,320 - INFO - 定时任务 'test1' (ID: a07f035f...) 已保存。
+2026-01-27 22:50:26,688 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:50:26,689 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:51:00,310 - INFO - !!! 任务 'test1' 触发执行 !!!
+2026-01-27 22:51:00,310 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-27 22:51:00,310 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-27 22:51:00,312 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:51:00,361 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-27 22:51:00,361 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-27 22:51:00,361 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'zm'...
+2026-01-27 22:51:00,365 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'zm'...
+2026-01-27 22:51:00,365 - INFO - [调度任务] UDP指令 'on1' 已发送到设备 'zm'。
+2026-01-27 22:51:00,365 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: UDP command sent (no response expected)
+2026-01-27 22:51:00,366 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: UDP command sent (no response expected)
+2026-01-27 22:51:00,366 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'acs'...
+2026-01-27 22:51:00,367 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'acs'...
+2026-01-27 22:51:05,974 - ERROR - [调度任务] 与设备 'acs' (192.168.8.16:502) 通信超时。
+2026-01-27 22:51:05,976 - ERROR - 定时任务 'test1':指令 'on1' 执行失败: 与设备 'acs' (192.168.8.16:502) 通信超时。
+2026-01-27 22:51:05,977 - ERROR - 定时任务 'test1':指令 'on1' 执行失败: 与设备 'acs' (192.168.8.16:502) 通信超时。
+2026-01-27 22:51:05,978 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-27 22:51:05,979 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-27 22:51:18,157 - WARNING - 准备发送指令 'on1' 到设备 'zm'...
+2026-01-27 22:51:18,157 - INFO - 准备发送指令 'on1' 到设备 'zm'...
+2026-01-27 22:51:18,158 - INFO - UDP指令 'on1' 已发送到设备 'zm'。
+2026-01-27 22:51:22,074 - WARNING - 准备发送指令 'on1' 到设备 'acs'...
+2026-01-27 22:51:22,074 - INFO - 准备发送指令 'on1' 到设备 'acs'...
+2026-01-27 22:51:35,427 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:51:35,428 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:51:36,030 - ERROR - 与设备 'acs' (192.168.8.16:502) 通信超时。
+2026-01-27 22:51:43,153 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:51:43,154 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:51:49,671 - INFO - 配置保存到 config.json 成功。
+2026-01-27 22:51:49,672 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:54:03,131 - INFO - 日志系统已初始化。
+2026-01-28 00:54:03,194 - INFO - 从 config.json 加载配置成功。
+2026-01-28 00:54:03,196 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:54:13,480 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:54:13,481 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:55:59,413 - INFO - 日志系统已初始化。
+2026-01-28 00:55:59,456 - INFO - 从 config.json 加载配置成功。
+2026-01-28 00:55:59,457 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:56:58,630 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 00:56:58,630 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 00:56:58,631 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:56:58,679 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:57:33,175 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:57:33,175 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:57:33,176 - INFO - 定时任务 'test1' (ID: a07f035f...) 已保存。
+2026-01-28 00:57:38,937 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:57:38,938 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:58:00,210 - INFO - !!! 任务 'test1' 触发执行 !!!
+2026-01-28 00:58:00,211 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-28 00:58:00,211 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-28 00:58:00,218 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:58:00,261 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-28 00:58:00,262 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-28 00:58:00,262 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'zm'...
+2026-01-28 00:58:00,266 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'zm'...
+2026-01-28 00:58:00,266 - INFO - [调度任务] UDP指令 'on1' 已发送到设备 'zm'。
+2026-01-28 00:58:00,267 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: UDP command sent (no response expected)
+2026-01-28 00:58:00,270 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: UDP command sent (no response expected)
+2026-01-28 00:58:00,270 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'acs'...
+2026-01-28 00:58:00,273 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'acs'...
+2026-01-28 00:58:09,923 - ERROR - [调度任务] 与设备 'acs' (192.168.8.16:502) 通信超时。
+2026-01-28 00:58:09,924 - ERROR - 定时任务 'test1':指令 'on1' 执行失败: 与设备 'acs' (192.168.8.16:502) 通信超时。
+2026-01-28 00:58:09,928 - ERROR - 定时任务 'test1':指令 'on1' 执行失败: 与设备 'acs' (192.168.8.16:502) 通信超时。
+2026-01-28 00:58:09,928 - INFO - 定时任务 'test1':指令之间延迟 200 毫秒。
+2026-01-28 00:58:09,931 - INFO - 定时任务 'test1':指令之间延迟 200 毫秒。
+2026-01-28 00:58:10,132 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'zm'...
+2026-01-28 00:58:10,132 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'zm'...
+2026-01-28 00:58:10,132 - INFO - [调度任务] UDP指令 'on1' 已发送到设备 'zm'。
+2026-01-28 00:58:10,134 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: UDP command sent (no response expected)
+2026-01-28 00:58:10,136 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: UDP command sent (no response expected)
+2026-01-28 00:58:10,136 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-28 00:58:10,138 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-28 00:58:52,370 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 00:58:52,370 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 00:58:52,371 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:58:52,422 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:59:00,844 - INFO - 配置保存到 config.json 成功。
+2026-01-28 00:59:00,844 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:01:14,994 - INFO - 日志系统已初始化。
+2026-01-28 01:01:15,026 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:01:15,028 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:02:51,577 - INFO - 新设备 'test1tcp' (ID: 85ce7dab...) 已添加。
+2026-01-28 01:02:51,577 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:02:51,577 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:02:51,578 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:02:51,644 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:03:00,060 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:03:00,060 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:03:00,061 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:03:00,130 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:03:02,981 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:03:02,981 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:03:02,982 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:03:03,050 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:03:06,959 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:03:06,959 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:03:15,362 - ERROR - 发送指令 'on1' 到设备 'test1tcp' 时发生未知错误: 'ip'
+2026-01-28 01:04:47,076 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:04:47,076 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:04:47,077 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:04:47,153 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:06:50,403 - INFO - 日志系统已初始化。
+2026-01-28 01:06:50,437 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:06:50,438 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:08:01,020 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:08:01,020 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:08:05,695 - ERROR - 发送指令 'on1' 到设备 'test1tcp' 时发生未知错误: 'ip'
+2026-01-28 01:09:39,366 - INFO - 日志系统已初始化。
+2026-01-28 01:09:39,409 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:09:39,410 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:10:26,526 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:10:26,526 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:10:26,748 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:10:26,749 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:10:36,102 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:10:36,102 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:10:36,758 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:10:36,759 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:11:51,650 - INFO - 新设备 't2' (ID: 84e0f5b3...) 已添加。
+2026-01-28 01:11:51,650 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:11:51,650 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:11:51,651 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:11:51,737 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:11:56,557 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:11:56,557 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:11:56,558 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:11:56,649 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:11:58,729 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:11:58,730 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:11:58,730 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:11:58,833 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:12:23,924 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:12:23,924 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:12:23,926 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:12:24,012 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:12:31,047 - INFO - 已关闭设备 84e0f5b3-15a2-4daa-835f-db7e0d524245 的保持连接。
+2026-01-28 01:12:31,047 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:12:31,047 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:12:31,048 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:12:31,121 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:12:32,521 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:12:32,521 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:12:32,522 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:12:32,596 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:12:56,121 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:12:56,121 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:12:56,122 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:12:56,123 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:13:09,272 - INFO - 设备 'test1tcp' (ID: 85ce7dab...) 已更新。
+2026-01-28 01:13:09,272 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:13:09,272 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:13:09,273 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:13:09,346 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:13:16,665 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:13:16,665 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:13:16,666 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:13:16,737 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:13:50,667 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:13:50,668 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:13:50,668 - INFO - 定时任务 'test1' (ID: a07f035f...) 已保存。
+2026-01-28 01:13:51,807 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:13:51,808 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:14:00,068 - INFO - !!! 任务 'test1' 触发执行 !!!
+2026-01-28 01:14:00,068 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-28 01:14:00,068 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-28 01:14:00,074 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:14:00,119 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-28 01:14:00,119 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-28 01:14:00,120 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:14:00,124 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:14:00,125 - INFO - [调度任务] 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 01:14:00,129 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:14:00,131 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:14:00,133 - INFO - [调度任务] 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 01:14:00,134 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: on1
+2026-01-28 01:14:00,137 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: on1
+2026-01-28 01:14:00,137 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-28 01:14:00,139 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-28 01:14:22,822 - INFO - 设备 'test1tcp' (ID: 85ce7dab...) 已更新。
+2026-01-28 01:14:22,822 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:14:22,822 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:14:22,823 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:14:22,993 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:14:25,137 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:14:25,137 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:14:25,138 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:14:25,212 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:14:30,617 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:14:30,618 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:14:30,618 - INFO - 定时任务 'test1' (ID: a07f035f...) 已保存。
+2026-01-28 01:14:34,235 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:14:34,236 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:16:00,076 - INFO - !!! 任务 'test1' 触发执行 !!!
+2026-01-28 01:16:00,076 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-28 01:16:00,076 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-28 01:16:00,079 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:16:00,127 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-28 01:16:00,127 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-28 01:16:00,127 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:16:00,129 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:16:00,129 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:16:00,130 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:16:00,132 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: on1
+2026-01-28 01:16:00,136 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: on1
+2026-01-28 01:16:00,136 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-28 01:16:00,137 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-28 01:19:29,403 - INFO - 日志系统已初始化。
+2026-01-28 01:19:29,443 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:19:29,444 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:19:47,470 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:19:47,471 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:19:47,471 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:19:47,539 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:19:51,521 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:19:51,521 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:19:51,522 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:19:51,558 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:19:53,829 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:19:53,829 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:19:53,830 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:19:53,858 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:20:17,940 - INFO - 设备 'test1tcp' (ID: 85ce7dab...) 已更新。
+2026-01-28 01:20:17,941 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:20:17,941 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:20:17,941 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:20:17,970 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:21:22,620 - INFO - 日志系统已初始化。
+2026-01-28 01:21:22,664 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:21:22,665 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:24:18,576 - INFO - 日志系统已初始化。
+2026-01-28 01:24:18,621 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:24:18,622 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:24:51,390 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:24:51,390 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:24:51,391 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 01:24:51,394 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:24:51,394 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:24:51,398 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 01:32:08,075 - INFO - 日志系统已初始化。
+2026-01-28 01:32:08,120 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:32:08,121 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:38:07,029 - INFO - 日志系统已初始化。
+2026-01-28 01:38:07,068 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:38:07,069 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:38:19,674 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:38:19,674 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:38:19,677 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 01:38:19,677 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:38:19,679 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:38:19,680 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 01:38:44,653 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:38:44,653 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:38:44,665 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 01:38:44,666 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:38:44,667 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:38:44,668 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 01:38:58,771 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:38:58,771 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:38:58,772 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 01:38:58,773 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:38:58,773 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:38:58,775 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 01:39:01,589 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:39:01,589 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:39:01,602 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 01:39:01,603 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:39:01,605 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:39:01,606 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 01:39:08,462 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:39:08,462 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:39:08,464 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 01:39:08,465 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:39:08,466 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:39:08,468 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 01:39:27,829 - INFO - 设备 'test1tcp' (ID: 85ce7dab...) 已更新。
+2026-01-28 01:39:27,830 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:39:27,830 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:39:27,831 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:39:27,858 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:39:29,487 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:39:29,487 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:39:29,488 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:39:29,520 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:39:45,519 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:39:45,519 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:39:45,520 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:39:45,521 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:39:49,536 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:39:49,536 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:39:49,537 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:39:49,538 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:39:53,051 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:39:53,051 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:39:53,052 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:39:53,054 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:39:56,339 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:39:56,339 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 01:39:56,340 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:39:56,342 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 01:40:02,296 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:40:02,296 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:40:02,297 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:40:02,299 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:40:18,353 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:40:18,354 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:40:18,354 - INFO - 定时任务 'test1' (ID: a07f035f...) 已保存。
+2026-01-28 01:40:19,977 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:40:19,978 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:41:00,285 - INFO - !!! 任务 'test1' 触发执行 !!!
+2026-01-28 01:41:00,285 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-28 01:41:00,285 - INFO - 调度器: 任务 'test1' 到期,准备执行。
+2026-01-28 01:41:00,288 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:41:00,335 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-28 01:41:00,336 - INFO - 定时任务 'test1':开始执行指令序列...
+2026-01-28 01:41:00,336 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:41:00,337 - INFO - 定时任务 'test1':执行指令 'on1' 到设备 'test1tcp'...
+2026-01-28 01:41:00,338 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 01:41:00,339 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 01:41:00,340 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: on1
+2026-01-28 01:41:00,342 - INFO - 定时任务 'test1':指令 'on1' 成功,响应: on1
+2026-01-28 01:41:00,342 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-28 01:41:00,343 - INFO - 定时任务 'test1':指令序列执行完毕。
+2026-01-28 01:42:48,594 - INFO - 新设备 'zm' (ID: e1e6e141...) 已添加。
+2026-01-28 01:42:48,594 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:42:48,594 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:42:48,595 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:42:48,638 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:43:56,609 - INFO - 日志系统已初始化。
+2026-01-28 01:43:56,653 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:43:56,655 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:44:39,596 - INFO - 新设备 'zm22' (ID: ceded2c1...) 已添加。
+2026-01-28 01:44:39,596 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:44:39,596 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:44:39,597 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:44:39,657 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:47:39,380 - INFO - 日志系统已初始化。
+2026-01-28 01:47:39,412 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:47:39,414 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:47:53,435 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:47:53,436 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:47:53,436 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:47:53,494 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:48:12,446 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:48:12,446 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:48:12,447 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:48:12,493 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:48:23,925 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:48:23,926 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:48:29,672 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:48:29,673 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:48:44,486 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:48:44,487 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:50:02,800 - INFO - 日志系统已初始化。
+2026-01-28 01:50:02,843 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:50:02,844 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:50:20,197 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 01:50:20,197 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 01:50:36,059 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:50:36,060 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:50:36,060 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:50:36,104 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:50:37,928 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:50:37,928 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:50:37,930 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:50:37,978 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:50:39,993 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 01:50:39,993 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 01:53:59,197 - INFO - 日志系统已初始化。
+2026-01-28 01:53:59,229 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:53:59,230 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:56:21,563 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:56:21,563 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:56:21,564 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:56:21,611 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:56:22,445 - INFO - 已关闭设备 85ce7dab-22a3-4d39-b783-268eb037cd88 的保持连接。
+2026-01-28 01:56:31,123 - INFO - 日志系统已初始化。
+2026-01-28 01:56:31,197 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:56:31,198 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:56:53,987 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:56:53,987 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:56:53,988 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:56:54,035 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:56:54,992 - INFO - 已关闭设备 85ce7dab-22a3-4d39-b783-268eb037cd88 的保持连接。
+2026-01-28 01:57:00,443 - INFO - 日志系统已初始化。
+2026-01-28 01:57:00,485 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:57:00,486 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:57:17,451 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:57:17,451 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:57:17,452 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:57:17,500 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:57:18,193 - INFO - 已关闭设备 85ce7dab-22a3-4d39-b783-268eb037cd88 的保持连接。
+2026-01-28 01:57:24,086 - INFO - 日志系统已初始化。
+2026-01-28 01:57:24,134 - INFO - 从 config.json 加载配置成功。
+2026-01-28 01:57:24,135 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:58:02,243 - INFO - 新设备 '1' (ID: f2a8f914...) 已添加。
+2026-01-28 01:58:02,243 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:58:02,243 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:58:02,244 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:58:02,305 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:58:20,122 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:58:20,122 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:58:20,123 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:58:20,181 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:58:22,023 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:58:22,023 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 01:58:22,024 - INFO - 配置保存到 config.json 成功。
+2026-01-28 01:58:22,071 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:12:29,039 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 03:12:29,039 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 03:12:33,254 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 03:12:33,255 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 03:12:33,256 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 03:12:33,261 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 03:12:38,453 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 03:12:38,453 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 03:12:38,454 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 03:12:38,455 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 03:12:39,604 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 03:12:39,604 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 03:12:39,605 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 03:12:39,607 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 03:12:40,440 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 03:12:40,440 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 03:12:40,441 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 03:12:40,442 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 03:12:41,197 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 03:12:41,197 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 03:12:41,198 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 03:12:41,200 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 03:12:41,727 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 03:12:41,727 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 03:12:41,728 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 03:12:41,730 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 03:12:44,904 - WARNING - 准备发送指令 'on1' 到设备 'zm'...
+2026-01-28 03:12:44,904 - INFO - 准备发送指令 'on1' 到设备 'zm'...
+2026-01-28 03:12:44,905 - INFO - UDP指令 'on1' 已发送到设备 'zm'。
+2026-01-28 03:12:53,391 - INFO - 设备 'test1tcp' (ID: 85ce7dab...) 已更新。
+2026-01-28 03:12:53,391 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:12:53,391 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:12:53,392 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:12:53,445 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:12:56,446 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:12:56,446 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:12:56,447 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:12:56,495 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:13:00,950 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 03:13:00,950 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 03:13:00,952 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 03:13:00,952 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 03:13:00,954 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 03:13:00,955 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 03:13:07,213 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 03:13:07,213 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 03:13:07,214 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 03:13:07,216 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 03:13:07,218 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 03:13:07,219 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 03:13:14,030 - INFO - 已关闭设备 85ce7dab-22a3-4d39-b783-268eb037cd88 的保持连接。
+2026-01-28 03:13:58,395 - INFO - 日志系统已初始化。
+2026-01-28 03:13:58,435 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:13:58,437 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:16:07,419 - INFO - 日志系统已初始化。
+2026-01-28 03:16:07,454 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:16:07,455 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:16:13,324 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:16:13,324 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:16:13,325 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:16:13,372 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:16:36,860 - INFO - 日志系统已初始化。
+2026-01-28 03:16:36,904 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:16:36,905 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:17:02,880 - INFO - 新设备 'test2' (ID: 77c8ea68...) 已添加。
+2026-01-28 03:17:02,880 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:17:02,880 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:17:02,881 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:17:02,940 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:17:19,072 - INFO - 新设备 'test3' (ID: 51f60dc8...) 已添加。
+2026-01-28 03:17:19,072 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:17:19,072 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:17:19,073 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:17:19,151 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:17:35,914 - INFO - 新设备 'test4' (ID: 441b23c7...) 已添加。
+2026-01-28 03:17:35,914 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:17:35,914 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:17:35,915 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:17:36,010 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:17:37,981 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:17:37,982 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:17:37,983 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:17:38,091 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:18:42,786 - INFO - 设备 'test1tcp' (ID: 85ce7dab...) 已更新。
+2026-01-28 03:18:42,786 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:18:42,786 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:18:42,788 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:18:42,906 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:18:44,853 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:18:44,853 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:18:44,854 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:18:45,027 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:22:11,240 - INFO - 日志系统已初始化。
+2026-01-28 03:22:11,286 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:22:11,287 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:36:12,929 - INFO - 日志系统已初始化。
+2026-01-28 03:36:12,975 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:36:12,977 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:36:28,734 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:36:28,734 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:36:28,735 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:36:28,792 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:36:31,496 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 03:36:31,496 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 03:36:39,764 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:36:39,764 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:37:54,544 - INFO - 日志系统已初始化。
+2026-01-28 03:37:54,585 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:37:54,586 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:41:15,328 - INFO - 日志系统已初始化。
+2026-01-28 03:41:15,364 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:41:15,366 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:43:08,334 - INFO - 日志系统已初始化。
+2026-01-28 03:43:08,380 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:43:08,382 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:45:19,143 - INFO - 日志系统已初始化。
+2026-01-28 03:45:19,211 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:45:19,213 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:48:16,772 - INFO - 日志系统已初始化。
+2026-01-28 03:48:17,109 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:48:17,112 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:49:00,463 - INFO - 日志系统已初始化。
+2026-01-28 03:49:00,777 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:49:00,778 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:49:22,122 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:49:22,122 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 03:49:22,123 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:49:22,256 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:51:39,426 - INFO - 日志系统已初始化。
+2026-01-28 03:51:39,603 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:51:39,604 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:53:34,599 - INFO - 日志系统已初始化。
+2026-01-28 03:53:34,921 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:53:34,923 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:54:32,439 - INFO - 日志系统已初始化。
+2026-01-28 03:54:32,641 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:54:32,643 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:56:34,416 - INFO - 日志系统已初始化。
+2026-01-28 03:56:54,119 - INFO - 日志系统已初始化。
+2026-01-28 03:56:54,266 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:56:54,267 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:58:36,116 - INFO - 日志系统已初始化。
+2026-01-28 03:58:36,274 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:58:36,275 - INFO - 配置保存到 config.json 成功。
+2026-01-28 03:59:11,587 - INFO - 日志系统已初始化。
+2026-01-28 03:59:11,751 - INFO - 从 config.json 加载配置成功。
+2026-01-28 03:59:11,752 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:03:14,157 - INFO - 日志系统已初始化。
+2026-01-28 04:03:14,379 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:03:14,381 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:04:36,809 - INFO - 日志系统已初始化。
+2026-01-28 04:04:36,983 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:04:36,984 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:04:54,393 - INFO - 日志系统已初始化。
+2026-01-28 04:04:54,539 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:04:54,540 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:04:58,583 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:04:58,583 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:04:58,584 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:04:58,885 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:05:07,309 - INFO - 日志系统已初始化。
+2026-01-28 04:05:07,604 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:05:07,606 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:08:39,782 - INFO - 日志系统已初始化。
+2026-01-28 04:08:39,830 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:08:39,831 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:09:13,554 - WARNING - 准备发送指令 '4' 到设备 'test1tcp'...
+2026-01-28 04:09:13,554 - INFO - 准备发送指令 '4' 到设备 'test1tcp'...
+2026-01-28 04:09:13,557 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 04:09:13,561 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '4': b'4'
+2026-01-28 04:09:13,562 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '4'
+2026-01-28 04:09:13,565 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 04:09:21,706 - WARNING - 准备发送指令 '7' 到设备 'test1tcp'...
+2026-01-28 04:09:21,706 - INFO - 准备发送指令 '7' 到设备 'test1tcp'...
+2026-01-28 04:09:21,710 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 04:09:21,742 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '7': b'7'
+2026-01-28 04:09:21,743 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '7'
+2026-01-28 04:09:21,745 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 04:09:26,967 - WARNING - 准备发送指令 '6' 到设备 'test1tcp'...
+2026-01-28 04:09:26,967 - INFO - 准备发送指令 '6' 到设备 'test1tcp'...
+2026-01-28 04:09:26,984 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 04:09:26,993 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '6': b'6'
+2026-01-28 04:09:26,997 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '6'
+2026-01-28 04:09:27,002 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 04:09:29,234 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 04:09:29,235 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 04:09:29,257 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 04:09:29,261 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 04:09:29,263 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 04:09:29,264 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 04:09:31,466 - WARNING - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 04:09:31,466 - INFO - 准备发送指令 'on1' 到设备 'test1tcp'...
+2026-01-28 04:09:31,468 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 04:09:31,468 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 04:09:31,471 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 04:09:31,473 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 04:10:21,226 - INFO - 设备 'test1tcp' (ID: 85ce7dab...) 已更新。
+2026-01-28 04:10:21,226 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:10:21,226 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:10:21,227 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:10:22,085 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:10:26,766 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:10:26,766 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:10:26,767 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:10:27,281 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:11:00,379 - INFO - 日志系统已初始化。
+2026-01-28 04:11:00,432 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:11:00,434 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:12:24,686 - INFO - 日志系统已初始化。
+2026-01-28 04:12:24,731 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:12:24,732 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:12:44,474 - INFO - 日志系统已初始化。
+2026-01-28 04:12:44,534 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:12:44,536 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:12:56,006 - WARNING - 准备发送指令 '8' 到设备 'test1tcp'...
+2026-01-28 04:12:56,006 - INFO - 准备发送指令 '8' 到设备 'test1tcp'...
+2026-01-28 04:12:56,025 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 04:12:56,027 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '8': b'8'
+2026-01-28 04:12:56,029 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '8'
+2026-01-28 04:12:56,032 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 04:12:57,535 - WARNING - 准备发送指令 '222' 到设备 'test1tcp'...
+2026-01-28 04:12:57,535 - INFO - 准备发送指令 '222' 到设备 'test1tcp'...
+2026-01-28 04:12:57,554 - INFO - 成功连接到设备 'test1tcp' (127.0.0.1:19987)。
+2026-01-28 04:12:57,555 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '222': b'222'
+2026-01-28 04:12:57,557 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '222'
+2026-01-28 04:12:57,560 - INFO - 已关闭与设备 'test1tcp' (127.0.0.1:19987) 的非保持连接。
+2026-01-28 04:13:09,231 - INFO - 设备 'test1tcp' (ID: 85ce7dab...) 已更新。
+2026-01-28 04:13:09,231 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:13:09,231 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:13:09,232 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:13:10,084 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:13:17,468 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:13:17,468 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:13:17,469 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:13:18,139 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:13:19,614 - WARNING - 准备发送指令 '11111' 到设备 'test1tcp'...
+2026-01-28 04:13:19,614 - INFO - 准备发送指令 '11111' 到设备 'test1tcp'...
+2026-01-28 04:13:19,615 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '11111': b'11111'
+2026-01-28 04:13:19,616 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '11111'
+2026-01-28 04:13:20,677 - WARNING - 准备发送指令 '6' 到设备 'test1tcp'...
+2026-01-28 04:13:20,677 - INFO - 准备发送指令 '6' 到设备 'test1tcp'...
+2026-01-28 04:13:20,678 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '6': b'6'
+2026-01-28 04:13:20,679 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '6'
+2026-01-28 04:13:23,533 - WARNING - 准备发送指令 '7' 到设备 'test1tcp'...
+2026-01-28 04:13:23,534 - INFO - 准备发送指令 '7' 到设备 'test1tcp'...
+2026-01-28 04:13:23,534 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '7': b'7'
+2026-01-28 04:13:23,536 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '7'
+2026-01-28 04:13:24,284 - WARNING - 准备发送指令 '222' 到设备 'test1tcp'...
+2026-01-28 04:13:24,285 - INFO - 准备发送指令 '222' 到设备 'test1tcp'...
+2026-01-28 04:13:24,285 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '222': b'222'
+2026-01-28 04:13:24,287 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '222'
+2026-01-28 04:13:25,223 - WARNING - 准备发送指令 '3' 到设备 'test1tcp'...
+2026-01-28 04:13:25,224 - INFO - 准备发送指令 '3' 到设备 'test1tcp'...
+2026-01-28 04:13:25,224 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '3': b'3'
+2026-01-28 04:13:25,239 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '3'
+2026-01-28 04:13:25,706 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 04:13:25,706 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 04:13:25,706 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 04:13:25,709 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 04:13:26,392 - WARNING - 准备发送指令 'on1' 到设备 'zm'...
+2026-01-28 04:13:26,393 - INFO - 准备发送指令 'on1' 到设备 'zm'...
+2026-01-28 04:13:26,393 - INFO - UDP指令 'on1' 已发送到设备 'zm'。
+2026-01-28 04:13:29,630 - WARNING - 准备发送指令 '2' 到设备 'test3'...
+2026-01-28 04:13:29,631 - INFO - 准备发送指令 '2' 到设备 'test3'...
+2026-01-28 04:13:30,454 - WARNING - 准备发送指令 '1' 到设备 'test2'...
+2026-01-28 04:13:30,454 - INFO - 准备发送指令 '1' 到设备 'test2'...
+2026-01-28 04:13:33,227 - WARNING - 准备发送指令 '4' 到设备 'test4'...
+2026-01-28 04:13:33,228 - INFO - 准备发送指令 '4' 到设备 'test4'...
+2026-01-28 04:13:34,638 - ERROR - 与设备 'test3' (1.1.1.1:3) 通信超时。
+2026-01-28 04:13:34,643 - INFO - 已关闭与设备 'test3' (1.1.1.1:3) 的非保持连接。
+2026-01-28 04:13:35,468 - ERROR - 与设备 'test2' (1.1.1.1:2) 通信超时。
+2026-01-28 04:13:35,473 - INFO - 已关闭与设备 'test2' (1.1.1.1:2) 的非保持连接。
+2026-01-28 04:13:35,658 - WARNING - 准备发送指令 '7' 到设备 'test1tcp'...
+2026-01-28 04:13:35,659 - INFO - 准备发送指令 '7' 到设备 'test1tcp'...
+2026-01-28 04:13:35,659 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '7': b'7'
+2026-01-28 04:13:35,661 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '7'
+2026-01-28 04:13:38,236 - ERROR - 与设备 'test4' (1.1.1.1:4) 通信超时。
+2026-01-28 04:13:38,237 - INFO - 已关闭与设备 'test4' (1.1.1.1:4) 的非保持连接。
+2026-01-28 04:20:33,664 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 04:20:33,664 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 04:20:34,482 - INFO - 已关闭设备 85ce7dab-22a3-4d39-b783-268eb037cd88 的保持连接。
+2026-01-28 04:20:37,622 - INFO - 日志系统已初始化。
+2026-01-28 04:20:37,668 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:20:37,669 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:21:49,416 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 04:21:49,417 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 04:21:50,961 - INFO - 已关闭设备 85ce7dab-22a3-4d39-b783-268eb037cd88 的保持连接。
+2026-01-28 04:21:52,090 - INFO - 日志系统已初始化。
+2026-01-28 04:21:52,144 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:21:52,145 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:22:06,368 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 04:22:06,369 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 04:22:07,363 - INFO - 已关闭设备 85ce7dab-22a3-4d39-b783-268eb037cd88 的保持连接。
+2026-01-28 04:26:01,023 - INFO - 日志系统已初始化。
+2026-01-28 04:26:01,067 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:26:01,068 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:28:27,202 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 04:28:27,204 - INFO - 定时任务管理窗口已关闭。
+2026-01-28 04:28:28,992 - INFO - 已关闭设备 85ce7dab-22a3-4d39-b783-268eb037cd88 的保持连接。
+2026-01-28 04:28:30,342 - INFO - 日志系统已初始化。
+2026-01-28 04:28:30,384 - INFO - 从 config.json 加载配置成功。
+2026-01-28 04:28:30,385 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:28:39,432 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:28:39,432 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:28:39,433 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:28:39,988 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:29:49,330 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:29:49,331 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:29:49,338 - INFO - 定时任务 '新任务' (ID: 6d19bd9a...) 已保存。
+2026-01-28 04:30:00,063 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:30:00,064 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:30:12,855 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:30:12,857 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:30:12,857 - INFO - 定时任务 '新任务' (ID: 6d19bd9a...) 已保存。
+2026-01-28 04:30:13,864 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:30:13,865 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:31:00,158 - INFO - !!! 任务 '新任务' 触发执行 !!!
+2026-01-28 04:31:00,158 - INFO - 调度器: 任务 '新任务' 到期,准备执行。
+2026-01-28 04:31:00,158 - INFO - 调度器: 任务 '新任务' 到期,准备执行。
+2026-01-28 04:31:00,162 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:31:00,209 - INFO - 定时任务 '新任务':开始执行指令序列...
+2026-01-28 04:31:00,210 - INFO - 定时任务 '新任务':开始执行指令序列...
+2026-01-28 04:31:00,210 - INFO - 定时任务 '新任务':执行指令 'on1' 到设备 'test1tcp'...
+2026-01-28 04:31:00,212 - INFO - 定时任务 '新任务':执行指令 'on1' 到设备 'test1tcp'...
+2026-01-28 04:31:00,213 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on1': b'on1'
+2026-01-28 04:31:00,216 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: 'on1'
+2026-01-28 04:31:00,218 - INFO - 定时任务 '新任务':指令 'on1' 成功,响应: on1
+2026-01-28 04:31:00,221 - INFO - 定时任务 '新任务':指令 'on1' 成功,响应: on1
+2026-01-28 04:31:00,221 - INFO - 定时任务 '新任务':执行指令 'on2' 到设备 'test1tcp'...
+2026-01-28 04:31:00,222 - INFO - 定时任务 '新任务':执行指令 'on2' 到设备 'test1tcp'...
+2026-01-28 04:31:00,223 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 04:31:00,224 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 04:31:00,226 - INFO - 定时任务 '新任务':指令 'on2' 成功,响应:
+2026-01-28 04:31:00,227 - INFO - 定时任务 '新任务':指令 'on2' 成功,响应:
+2026-01-28 04:31:00,228 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:00,237 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:00,737 - INFO - 定时任务 '新任务':执行指令 '2' 到设备 'test1tcp'...
+2026-01-28 04:31:00,738 - INFO - 定时任务 '新任务':执行指令 '2' 到设备 'test1tcp'...
+2026-01-28 04:31:00,738 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '2': b'2'
+2026-01-28 04:31:00,740 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '2'
+2026-01-28 04:31:00,741 - INFO - 定时任务 '新任务':指令 '2' 成功,响应: 2
+2026-01-28 04:31:00,743 - INFO - 定时任务 '新任务':指令 '2' 成功,响应: 2
+2026-01-28 04:31:00,743 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:00,745 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:01,246 - INFO - 定时任务 '新任务':执行指令 '3' 到设备 'test1tcp'...
+2026-01-28 04:31:01,246 - INFO - 定时任务 '新任务':执行指令 '3' 到设备 'test1tcp'...
+2026-01-28 04:31:01,247 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '3': b'3'
+2026-01-28 04:31:01,249 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '3'
+2026-01-28 04:31:01,251 - INFO - 定时任务 '新任务':指令 '3' 成功,响应: 3
+2026-01-28 04:31:01,253 - INFO - 定时任务 '新任务':指令 '3' 成功,响应: 3
+2026-01-28 04:31:01,253 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:01,255 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:01,755 - INFO - 定时任务 '新任务':执行指令 '4' 到设备 'test1tcp'...
+2026-01-28 04:31:01,756 - INFO - 定时任务 '新任务':执行指令 '4' 到设备 'test1tcp'...
+2026-01-28 04:31:01,756 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '4': b'4'
+2026-01-28 04:31:01,759 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '4'
+2026-01-28 04:31:01,760 - INFO - 定时任务 '新任务':指令 '4' 成功,响应: 4
+2026-01-28 04:31:01,762 - INFO - 定时任务 '新任务':指令 '4' 成功,响应: 4
+2026-01-28 04:31:01,762 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:01,769 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:02,269 - INFO - 定时任务 '新任务':执行指令 '5' 到设备 'test1tcp'...
+2026-01-28 04:31:02,270 - INFO - 定时任务 '新任务':执行指令 '5' 到设备 'test1tcp'...
+2026-01-28 04:31:02,270 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '5': b'5'
+2026-01-28 04:31:02,272 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '5'
+2026-01-28 04:31:02,273 - INFO - 定时任务 '新任务':指令 '5' 成功,响应: 5
+2026-01-28 04:31:02,274 - INFO - 定时任务 '新任务':指令 '5' 成功,响应: 5
+2026-01-28 04:31:02,274 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:02,276 - INFO - 定时任务 '新任务':指令之间延迟 500 毫秒。
+2026-01-28 04:31:02,776 - INFO - 定时任务 '新任务':执行指令 '6' 到设备 'test1tcp'...
+2026-01-28 04:31:02,777 - INFO - 定时任务 '新任务':执行指令 '6' 到设备 'test1tcp'...
+2026-01-28 04:31:02,777 - INFO - [调度任务] 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '6': b'6'
+2026-01-28 04:31:02,779 - INFO - [调度任务] 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '6'
+2026-01-28 04:31:02,781 - INFO - 定时任务 '新任务':指令 '6' 成功,响应: 6
+2026-01-28 04:31:02,783 - INFO - 定时任务 '新任务':指令 '6' 成功,响应: 6
+2026-01-28 04:31:02,783 - INFO - 定时任务 '新任务':指令序列执行完毕。
+2026-01-28 04:31:02,785 - INFO - 定时任务 '新任务':指令序列执行完毕。
+2026-01-28 04:31:42,828 - WARNING - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 04:31:42,828 - INFO - 准备发送指令 'on2' 到设备 'test1tcp'...
+2026-01-28 04:31:42,829 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 'on2': b'\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 04:31:42,832 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '\x00\x10\x00\x00\x08\x00\x11'
+2026-01-28 04:31:47,237 - WARNING - 准备发送指令 '7' 到设备 'test1tcp'...
+2026-01-28 04:31:47,237 - INFO - 准备发送指令 '7' 到设备 'test1tcp'...
+2026-01-28 04:31:47,238 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '7': b'7'
+2026-01-28 04:31:47,240 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '7'
+2026-01-28 04:31:48,231 - WARNING - 准备发送指令 '22' 到设备 'test1tcp'...
+2026-01-28 04:31:48,231 - INFO - 准备发送指令 '22' 到设备 'test1tcp'...
+2026-01-28 04:31:48,233 - INFO - 发送到设备 'test1tcp' (127.0.0.1:19987) 指令 '22': b'22'
+2026-01-28 04:31:48,234 - INFO - 从设备 'test1tcp' (127.0.0.1:19987) 收到响应: '22'
+2026-01-28 04:32:17,637 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:32:17,637 - INFO - 设置已保存,正在刷新主界面...
+2026-01-28 04:32:17,638 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:32:18,120 - INFO - 配置保存到 config.json 成功。
+2026-01-28 04:32:43,421 - INFO - 已关闭设备 85ce7dab-22a3-4d39-b783-268eb037cd88 的保持连接。
diff --git a/main_control_app.py b/main_control_app.py
new file mode 100644
index 0000000..284f160
--- /dev/null
+++ b/main_control_app.py
@@ -0,0 +1,911 @@
+import tkinter as tk
+from tkinter import ttk, messagebox
+import json
+import os
+import sys
+import threading
+import time
+from functools import partial
+from datetime import datetime, timedelta
+import calendar
+import uuid
+import logging
+
+# 导入 NetworkManager 和 SettingsApp
+from network_manager import NetworkManager
+from settings_app import SettingsApp
+from scheduler_app import SchedulerApp
+
+# --- 修正点:从 utils.py 导入 center_toplevel_window ---
+from utils import center_toplevel_window
+
+# --- 新增:定义应用程序名称,用于创建用户配置目录下的子文件夹 ---
+APP_NAME = "DeviceControlApp"
+
+class MainControlApp(tk.Tk):
+ def __init__(self):
+ super().__init__()
+ self.title("设备控制台")
+ self.geometry("800x600")
+
+ # config_file 和 log_dir 将在 _setup_user_dirs 中设置
+ self.config_file = None
+ self.log_dir = None
+
+ self.devices = []
+ self.scheduled_tasks = []
+ self.device_ui_elements = {}
+ self.scheduler_window = None # 用于跟踪 SchedulerApp 实例
+
+ # --- 新增:在设置日志系统之前,先确定用户配置目录 ---
+ self._setup_user_dirs()
+ self._setup_logging() # 设置日志系统,现在会使用 self.log_dir
+
+ self.network_manager = NetworkManager(
+ log_callback=self.log_message,
+ connection_status_callback=self.update_main_connection_status,
+ ip_status_callback=self._update_ip_status_dot,
+ tcp_status_callback=self._update_tcp_status_dot,
+ app_logger=self.app_logger # <--- 修改点1:将 app_logger 传递给 NetworkManager
+ )
+
+ self.create_widgets()
+ self.load_config()
+ self.refresh_device_panels()
+
+ self.connection_check_interval = 5000 # 5秒
+ self._start_periodic_connection_check()
+
+ self._scheduler_check_id = None
+ self._start_scheduler_check() # 首次启动调度器检查
+
+ self.protocol("WM_DELETE_WINDOW", self.on_closing)
+
+ def resource_path(self, relative_path):
+ """获取资源文件的绝对路径,兼容 PyInstaller 打包"""
+ try:
+ base_path = sys._MEIPASS
+ except Exception:
+ base_path = os.path.abspath(".")
+ return os.path.join(base_path, relative_path)
+
+ # --- 新增:设置用户特定配置和日志目录的方法 ---
+ def _setup_user_dirs(self):
+ """
+ 根据操作系统确定用户特定的配置和日志目录。
+ Windows: %APPDATA%\APP_NAME
+ macOS: ~/Library/Application Support/APP_NAME
+ Linux: ~/.config/APP_NAME (遵循 XDG Base Directory Specification)
+ """
+ base_dir = None
+
+ if sys.platform == "win32":
+ # Windows: %APPDATA% (通常是 C:\Users\\AppData\Roaming)
+ base_dir = os.path.join(os.getenv('APPDATA'), APP_NAME)
+ elif sys.platform == "darwin":
+ # macOS: ~/Library/Application Support/
+ base_dir = os.path.join(os.path.expanduser('~/Library/Application Support'), APP_NAME)
+ elif sys.platform.startswith("linux"):
+ # Linux: 优先使用 XDG_CONFIG_HOME,否则默认 ~/.config
+ xdg_config_home = os.getenv('XDG_CONFIG_HOME')
+ if xdg_config_home:
+ base_dir = os.path.join(xdg_config_home, APP_NAME)
+ else:
+ base_dir = os.path.join(os.path.expanduser('~/.config'), APP_NAME)
+ else:
+ # 对于其他或未知操作系统,回退到当前工作目录下的子文件夹
+ base_dir = os.path.join(os.path.abspath('.'), APP_NAME + "_data")
+
+ # 确保基目录存在
+ os.makedirs(base_dir, exist_ok=True)
+
+ self.config_file = os.path.join(base_dir, "config.json")
+ self.log_dir = os.path.join(base_dir, "logs") # 日志文件放在应用数据目录下的 logs 子文件夹
+
+ # 确保日志目录存在
+ os.makedirs(self.log_dir, exist_ok=True)
+
+ def _setup_logging(self):
+ """配置日志系统,包括文件日志和控制台日志(如果需要)"""
+ log_file_path = os.path.join(self.log_dir, "app_log.log")
+
+ self.app_logger = logging.getLogger("DeviceControlApp")
+ self.app_logger.setLevel(logging.DEBUG)
+
+ if not self.app_logger.handlers:
+ file_handler = logging.FileHandler(log_file_path, encoding='utf-8')
+ file_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
+ file_handler.setFormatter(file_formatter)
+ self.app_logger.addHandler(file_handler)
+
+ # 如果需要控制台输出,可以取消注释以下行
+ # console_handler = logging.StreamHandler(sys.stdout)
+ # console_handler.setFormatter(file_formatter)
+ # self.app_logger.addHandler(console_handler)
+
+ self.app_logger.info("日志系统已初始化。")
+ self.app_logger.info(f"配置文件路径: {self.config_file}")
+ self.app_logger.info(f"日志文件目录: {self.log_dir}")
+
+
+ def create_widgets(self):
+ self.main_frame = ttk.Frame(self, padding="10")
+ self.main_frame.pack(fill=tk.BOTH, expand=True)
+
+ top_buttons_frame = ttk.Frame(self.main_frame)
+ top_buttons_frame.pack(side=tk.TOP, anchor=tk.NW, fill=tk.X, pady=5)
+
+ self.settings_btn = ttk.Button(top_buttons_frame, text="设置", command=self.open_settings)
+ self.settings_btn.pack(side=tk.LEFT, padx=5)
+
+ self.scheduler_btn = ttk.Button(top_buttons_frame, text="定时任务", command=self.open_scheduler)
+ self.scheduler_btn.pack(side=tk.LEFT, padx=5)
+
+ # 新增:调度器状态显示标签
+ self.scheduler_status_var = tk.StringVar(value="调度器: 未启动")
+ self.scheduler_status_label = ttk.Label(top_buttons_frame, textvariable=self.scheduler_status_var,
+ font=("Arial", 9, "italic"), foreground="gray")
+ self.scheduler_status_label.pack(side=tk.RIGHT, padx=10)
+
+
+ self.device_panels_frame = ttk.Frame(self.main_frame)
+ self.device_panels_frame.pack(fill=tk.BOTH, expand=True, pady=10) # 此帧将扩展以填充主框架的剩余空间
+
+ # 创建一个容器帧来管理 canvas 和滚动条的布局
+ canvas_container = ttk.Frame(self.device_panels_frame)
+ canvas_container.pack(fill=tk.BOTH, expand=True) # 此容器帧将填充 device_panels_frame
+
+ self.canvas = tk.Canvas(canvas_container)
+ self.v_scrollbar = ttk.Scrollbar(canvas_container, orient="vertical", command=self.canvas.yview)
+ self.h_scrollbar = ttk.Scrollbar(canvas_container, orient="horizontal", command=self.canvas.xview)
+
+ # 先打包滚动条
+ self.v_scrollbar.pack(side="right", fill="y")
+ self.h_scrollbar.pack(side="bottom", fill="x")
+ # 再打包 canvas,使其填充剩余空间
+ self.canvas.pack(side="left", fill="both", expand=True)
+
+ self.scrollable_frame = ttk.Frame(self.canvas)
+ self.canvas.create_window((0, 0), window=self.scrollable_frame, anchor="nw", tags="scrollable_frame_window")
+ self.canvas.configure(yscrollcommand=self.v_scrollbar.set, xscrollcommand=self.h_scrollbar.set)
+
+ self.scrollable_frame.bind(
+ "",
+ self._on_scrollable_frame_configure
+ )
+ # 绑定鼠标滚轮事件到 canvas 和 scrollable_frame
+ self.canvas.bind("", self._on_mouse_wheel)
+ self.canvas.bind("", self._on_mouse_wheel) # For Linux/macOS
+ self.canvas.bind("", self._on_mouse_wheel) # For Linux/macOS
+ self.scrollable_frame.bind("", self._on_mouse_wheel)
+ self.scrollable_frame.bind("", self._on_mouse_wheel) # For Linux/macOS
+ self.scrollable_frame.bind("", self._on_mouse_wheel) # For Linux/macOS
+
+ self.log_frame = ttk.Frame(self.main_frame, padding="5", relief=tk.GROOVE, borderwidth=2)
+ self.log_frame.pack(fill=tk.X, pady=5) # 移除 expand=True,让其只占据必要高度,并填充横向空间
+ ttk.Label(self.log_frame, text="日志和响应", font=("Arial", 10, "bold")).pack(anchor=tk.NW)
+ # 增加日志文本框的高度
+ # 创建一个子框架来包含 Text 控件和 Scrollbar
+ log_text_frame = ttk.Frame(self.log_frame)
+ log_text_frame.pack(fill=tk.BOTH, expand=True, pady=(5,0))
+
+ self.log_text = tk.Text(log_text_frame, height=15, state=tk.DISABLED, wrap=tk.WORD)
+ self.log_text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
+ log_scrollbar = ttk.Scrollbar(log_text_frame, orient=tk.VERTICAL, command=self.log_text.yview)
+ log_scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
+ self.log_text.config(yscrollcommand=log_scrollbar.set)
+
+ def _on_scrollable_frame_configure(self, event):
+ """当 scrollable_frame 大小改变时,更新 canvas 的 scrollregion 和 create_window 的大小"""
+ # 更新 scrollregion,包括横向和纵向
+ bbox = self.canvas.bbox("all")
+ if bbox:
+ # 添加一些内边距
+ self.canvas.configure(scrollregion=(bbox[0]-10, bbox[1]-10, bbox[2]+10, bbox[3]+10))
+
+ # 确保滚动区域的宽度与 canvas 相同,避免不必要的横向滚动
+ canvas_width = self.canvas.winfo_width()
+ if canvas_width > 1: # 确保canvas已经初始化
+ self.canvas.itemconfig("scrollable_frame_window", width=canvas_width)
+
+ def load_config(self):
+ """从 JSON 文件加载配置"""
+ if os.path.exists(self.config_file):
+ try:
+ with open(self.config_file, 'r', encoding='utf-8') as f:
+ config_data = json.load(f)
+ self.devices = config_data.get("devices", [])
+ self.scheduled_tasks = config_data.get("scheduled_tasks", [])
+ self.log_message(f"从 {self.config_file} 加载配置成功。")
+ except json.JSONDecodeError:
+ self.log_message(f"错误:{self.config_file} 文件格式不正确。", "red")
+ self.devices = []
+ self.scheduled_tasks = []
+ except Exception as e:
+ self.log_message(f"错误:加载配置失败 - {e}", "red")
+ self.devices = []
+ self.scheduled_tasks = []
+ else:
+ self.log_message(f"未找到 {self.config_file},将创建新配置。", "orange")
+ self.devices = []
+ self.scheduled_tasks = []
+
+ for device in self.devices:
+ if "id" not in device:
+ device["id"] = str(uuid.uuid4())
+ # --- 修正点:为可能缺失的设备信息字段添加默认值 ---
+ if "name" not in device:
+ device["name"] = "未知设备"
+ if "type" not in device:
+ device["type"] = "通用"
+ if "protocol" not in device:
+ device["protocol"] = "TCP" # 默认使用TCP
+
+ # --- 修正点:迁移旧的 'ip' 字段到 'address' ---
+ if "ip" in device and "address" not in device:
+ device["address"] = device["ip"]
+ del device["ip"] # 移除旧的 'ip' 字段
+ elif "address" not in device:
+ device["address"] = "127.0.0.1" # 默认本地回环地址
+ # --- 修正点结束 ---
+
+ if "port" not in device:
+ device["port"] = 0 # 默认端口
+ # --- 修正点结束 ---
+ if "keep_alive" not in device:
+ device["keep_alive"] = False
+ if "timeout" not in device:
+ device["timeout"] = 5
+ for command in device.get("commands", []):
+ if "data" not in command:
+ command["data"] = command.get("command_data", "")
+ if "type" not in command:
+ command["type"] = "text"
+ if "command_data" in command:
+ del command["command_data"]
+
+ new_scheduled_tasks = []
+ for task in self.scheduled_tasks:
+ if "schedule_type" not in task:
+ self.log_message(f"迁移旧格式定时任务 (ID: {task.get('id', 'N/A')})", "orange")
+ migrated_task = {
+ "id": task.get("id", str(uuid.uuid4())),
+ "name": f"旧任务_{task.get('id', str(uuid.uuid4()))[:4]}",
+ "schedule_type": "daily",
+ "trigger": {
+ "hour": int(task["time"].split(":")[0]),
+ "minute": int(task["time"].split(":")[1]),
+ "second": 0
+ },
+ "actions": [],
+ "enabled": task.get("enabled", True),
+ "last_run_time": None,
+ "next_run_time": None
+ }
+ device_obj = None
+ if 0 <= task.get("device_index", -1) < len(self.devices):
+ device_obj = self.devices[task["device_index"]]
+
+ if device_obj and task.get("command_indices"):
+ for cmd_idx in task["command_indices"]:
+ migrated_task["actions"].append({
+ "device_id": device_obj["id"],
+ "command_index": cmd_idx,
+ "delay_ms": int(task.get("delay_between_commands", 0) * 1000)
+ })
+ new_scheduled_tasks.append(migrated_task)
+ else:
+ if task.get("last_run_time") and isinstance(task["last_run_time"], str):
+ try:
+ task["last_run_time"] = datetime.fromisoformat(task["last_run_time"])
+ except ValueError:
+ task["last_run_time"] = None
+ if task.get("next_run_time") and isinstance(task["next_run_time"], str):
+ try:
+ task["next_run_time"] = datetime.fromisoformat(task["next_run_time"])
+ except ValueError:
+ task["next_run_time"] = None
+ new_scheduled_tasks.append(task)
+ self.scheduled_tasks = new_scheduled_tasks
+
+ self.app_logger.debug(f"Loaded {len(self.scheduled_tasks)} scheduled tasks from config.")
+ for task in self.scheduled_tasks:
+ self.app_logger.debug(f" Task ID: {task.get('id')}, Name: {task.get('name')}, Type: {task.get('schedule_type')}, Next Run: {task.get('next_run_time')}")
+
+ self._recalculate_all_next_run_times()
+
+
+ def save_config(self):
+ """将当前配置保存到 JSON 文件"""
+ serializable_scheduled_tasks = []
+ for task in self.scheduled_tasks:
+ temp_task = task.copy()
+ if isinstance(temp_task.get("last_run_time"), datetime):
+ temp_task["last_run_time"] = temp_task["last_run_time"].isoformat()
+ if isinstance(temp_task.get("next_run_time"), datetime):
+ temp_task["next_run_time"] = temp_task["next_run_time"].isoformat()
+ serializable_scheduled_tasks.append(temp_task)
+
+ config_data = {
+ "devices": self.devices,
+ "scheduled_tasks": serializable_scheduled_tasks
+ }
+ try:
+ with open(self.config_file, 'w', encoding='utf-8') as f:
+ json.dump(config_data, f, indent=4, ensure_ascii=False)
+ self.log_message(f"配置保存到 {self.config_file} 成功。", "blue")
+ self.app_logger.debug(f"Config saved to {self.config_file}.")
+ except Exception as e:
+ self.log_message(f"错误:保存配置失败 - {e}", "red")
+ self.app_logger.error(f"Failed to save config - {e}")
+
+ def refresh_device_panels(self):
+ """清除并重新创建所有设备面板"""
+ for widget in self.scrollable_frame.winfo_children():
+ widget.destroy()
+ self.device_ui_elements.clear()
+
+ # 确保至少有一个设备面板,即使设备列表为空
+ if not self.devices:
+ empty_frame = ttk.Frame(self.scrollable_frame, padding="10", relief=tk.RIDGE, borderwidth=2)
+ empty_frame.pack(fill=tk.X, expand=True, pady=5, padx=5)
+ ttk.Label(empty_frame, text="暂无设备配置", font=("Arial", 10)).pack(pady=10)
+ else:
+ for i, device in enumerate(self.devices):
+ self._create_device_panel(i, device)
+ self._set_device_command_buttons_state(i, tk.NORMAL)
+
+ self.scrollable_frame.update_idletasks()
+
+ # 更新滚动区域
+ bbox = self.canvas.bbox("all")
+ if bbox:
+ self.canvas.config(scrollregion=bbox)
+
+ def _create_device_panel(self, device_index, device_info):
+ """为单个设备创建UI面板"""
+ panel_frame = ttk.Frame(self.scrollable_frame, padding="10", relief=tk.RIDGE, borderwidth=2)
+ panel_frame.pack(fill=tk.X, expand=True, pady=5, padx=5)
+
+ # 添加一个背景色以便调试
+ panel_frame.configure(style="DevicePanel.TFrame")
+ style = ttk.Style()
+ style.configure("DevicePanel.TFrame", background="lightgray")
+
+ # 绑定滚轮事件到 panel_frame 及其所有子组件
+ panel_frame.bind("", self._on_mouse_wheel)
+ panel_frame.bind("", self._on_mouse_wheel)
+ panel_frame.bind("", self._on_mouse_wheel)
+ # 递归绑定子组件的滚轮事件
+ def bind_children_mouse_wheel(widget):
+ for child in widget.winfo_children():
+ child.bind("", self._on_mouse_wheel)
+ child.bind("", self._on_mouse_wheel)
+ child.bind("", self._on_mouse_wheel)
+ bind_children_mouse_wheel(child)
+ bind_children_mouse_wheel(panel_frame)
+
+ # 创建设备信息行(名称和状态指示灯)
+ info_frame = ttk.Frame(panel_frame)
+ info_frame.pack(fill=tk.X, pady=(0, 10))
+
+ device_name_label = ttk.Label(info_frame, text=device_info["name"], font=("Arial", 12, "bold"))
+ device_name_label.pack(side=tk.LEFT, padx=5)
+
+ themed_bg = ttk.Style().lookup("TFrame", "background")
+
+ # 添加设备状态指示灯
+ ip_status_canvas = tk.Canvas(info_frame, width=15, height=15, bg=themed_bg, highlightthickness=0)
+ ip_status_canvas.pack(side=tk.LEFT, padx=5)
+ ip_dot_id = ip_status_canvas.create_oval(2, 2, 13, 13, fill="gray", outline="gray")
+
+ tcp_status_canvas = tk.Canvas(info_frame, width=15, height=15, bg=themed_bg, highlightthickness=0)
+ tcp_status_canvas.pack(side=tk.LEFT, padx=5)
+ tcp_dot_id = tcp_status_canvas.create_oval(2, 2, 13, 13, fill="gray", outline="gray")
+
+ self.device_ui_elements[device_index] = {
+ "ip_status_canvas": ip_status_canvas,
+ "ip_dot_id": ip_dot_id,
+ "tcp_status_canvas": tcp_status_canvas,
+ "tcp_dot_id": tcp_dot_id,
+ "command_buttons": [],
+ "is_sending": False
+ }
+
+ # 创建命令按钮容器,使用网格布局来换行显示按钮
+ commands_frame = ttk.Frame(panel_frame)
+ commands_frame.pack(fill=tk.X, expand=True)
+
+ # 添加命令按钮,使用网格布局,每行最多显示5个按钮
+ commands = device_info.get("commands", [])
+
+ for cmd_index, command in enumerate(commands):
+ btn = ttk.Button(commands_frame, text=command["name"],
+ command=partial(self._send_command_from_button, device_index, cmd_index))
+
+ # 计算网格位置(每行5个按钮)
+ row = cmd_index // 5
+ col = cmd_index % 5
+
+ btn.grid(row=row, column=col, padx=5, pady=2, sticky="w")
+ self.device_ui_elements[device_index]["command_buttons"].append(btn)
+
+ # 配置网格列权重,使按钮能够正确对齐
+ for i in range(5):
+ commands_frame.columnconfigure(i, weight=1)
+
+ # 强制更新布局
+ panel_frame.update_idletasks()
+
+ def _send_command_from_button(self, device_index, command_index):
+ """处理指令按钮点击事件,实现设备内互斥"""
+ device = self.devices[device_index]
+ command = device["commands"][command_index]
+
+ if self.device_ui_elements[device_index]["is_sending"]:
+ self.log_message(f"设备 '{device['name']}' 正在发送指令,请稍候。", "orange")
+ self.app_logger.info(f"设备 '{device['name']}' 正在发送指令,请稍候。")
+ return
+
+ self.log_message(f"准备发送指令 '{command['name']}' 到设备 '{device['name']}'...", "orange")
+ self.app_logger.info(f"准备发送指令 '{command['name']}' 到设备 '{device['name']}'...")
+
+ self.device_ui_elements[device_index]["is_sending"] = True
+ self._set_device_command_buttons_state(device_index, tk.DISABLED)
+
+ def re_enable_device_buttons():
+ """发送完成后重新启用当前设备的指令按钮"""
+ self.device_ui_elements[device_index]["is_sending"] = False
+ self._set_device_command_buttons_state(device_index, tk.NORMAL)
+
+ self.network_manager.send_command_async(
+ device_index,
+ device,
+ command,
+ lambda: self.after(0, re_enable_device_buttons)
+ )
+
+ def _set_device_command_buttons_state(self, device_index, state):
+ """设置指定设备的所有指令按钮的状态"""
+ if device_index in self.device_ui_elements:
+ for btn in self.device_ui_elements[device_index]["command_buttons"]:
+ btn.config(state=state)
+
+ def _on_mouse_wheel(self, event):
+ """处理鼠标滚轮事件,实现滚动"""
+ if event.delta: # Windows
+ self.canvas.yview_scroll(int(-1*(event.delta/120)), "units")
+ elif event.num == 4: # Linux/macOS scroll up
+ self.canvas.yview_scroll(-1, "units")
+ elif event.num == 5: # Linux/macOS scroll down
+ self.canvas.yview_scroll(1, "units")
+
+ def _draw_dot(self, canvas, dot_id, color):
+ """在画布上绘制指定颜色的圆点"""
+ canvas.itemconfig(dot_id, fill=color, outline=color)
+
+ def _update_ip_status_dot(self, device_index, is_connected):
+ """更新 IP 状态点颜色"""
+ if device_index in self.device_ui_elements:
+ canvas = self.device_ui_elements[device_index]["ip_status_canvas"]
+ dot_id = self.device_ui_elements[device_index]["ip_dot_id"]
+ color = "green" if is_connected else "red"
+ self.after(0, lambda: self._draw_dot(canvas, dot_id, color))
+
+ def _update_tcp_status_dot(self, device_index, is_connected):
+ """更新 TCP 连接状态点颜色"""
+ if device_index in self.device_ui_elements:
+ canvas = self.device_ui_elements[device_index]["tcp_status_canvas"]
+ dot_id = self.device_ui_elements[device_index]["tcp_dot_id"]
+ color = "green" if is_connected else "red"
+ self.after(0, lambda: self._draw_dot(canvas, dot_id, color))
+
+ def _start_periodic_connection_check(self):
+ """启动周期性连接检查"""
+ if not hasattr(self, '_periodic_check_id'):
+ self._periodic_check_id = None
+
+ if self._periodic_check_id:
+ self.after_cancel(self._periodic_check_id)
+
+ self._check_all_connections_periodic()
+ self._periodic_check_id = self.after(self.connection_check_interval, self._start_periodic_connection_check)
+
+ def _check_all_connections_periodic(self):
+ """
+ 检查所有设备的 IP 可达性和 TCP 连接状态。
+ 优化:对于 keep_alive 的 TCP 设备,只进行一次 TCP 连接状态检查。
+ """
+ for i, device in enumerate(self.devices):
+ if device["protocol"] == "TCP":
+ if device.get("keep_alive", False):
+ # 对于保持连接的 TCP 设备,通过检查 TCP 连接来判断可达性
+ self.network_manager.check_tcp_connection_async(i, device)
+ # Note: check_tcp_connection_async 内部会同时更新 IP 和 TCP 状态点
+ else:
+ # 对于非保持连接的 TCP 设备,进行 IP 可达性检查
+ self.network_manager.check_ip_reachability_async(i, device)
+ # TCP 状态点应始终显示为未连接
+ self._update_tcp_status_dot(i, False)
+ elif device["protocol"] == "UDP":
+ # 对于 UDP 设备,使用 UDP 方式检查可达性
+ self.network_manager.check_udp_reachability_async(i, device)
+ # TCP 状态点应始终显示为未连接
+ self._update_tcp_status_dot(i, False)
+
+ def open_settings(self):
+ """打开设置窗口"""
+ settings_window = SettingsApp(self, on_save_callback=self.on_settings_saved, devices_data=self.devices)
+ # --- 移除此行:center_toplevel_window(settings_window, self) ---
+ # SettingsApp 内部会自行居中
+
+
+ def on_settings_saved(self, updated_devices):
+ """当设置窗口保存配置后,由回调函数调用"""
+ self.log_message("设置已保存,正在刷新主界面...", "blue")
+ self.app_logger.info("设置已保存,正在刷新主界面...")
+ self.devices = updated_devices
+ self.save_config()
+ self.refresh_device_panels()
+ self._start_periodic_connection_check()
+ self._recalculate_all_next_run_times()
+ self._start_scheduler_check() # 确保调度器检查也重新启动以反映新配置
+
+ def open_scheduler(self):
+ """打开定时任务管理窗口,确保只有一个实例"""
+ if self.scheduler_window is None or not self.scheduler_window.winfo_exists():
+ self.scheduler_window = SchedulerApp(self, self.devices, self.scheduled_tasks, self.save_config, self.log_message)
+ # --- 移除此行:center_toplevel_window(self.scheduler_window, self) ---
+ # SchedulerApp 内部会自行居中
+ self.scheduler_window.protocol("WM_DELETE_WINDOW", self._on_scheduler_closing)
+ else:
+ self.scheduler_window.lift() # 将现有窗口带到前面
+
+ def _on_scheduler_closing(self):
+ """处理 SchedulerApp 关闭事件"""
+ if self.scheduler_window:
+ self.scheduler_window.destroy()
+ self.scheduler_window = None
+ self.log_message("定时任务管理窗口已关闭。", "blue")
+ self.app_logger.info("定时任务管理窗口已关闭。")
+
+ def _start_scheduler_check(self):
+ """启动周期性检查定时任务"""
+ if self._scheduler_check_id:
+ self.after_cancel(self._scheduler_check_id)
+
+ self._check_schedules() # 立即执行一次检查
+ self._scheduler_check_id = self.after(1000, self._start_scheduler_check)
+
+ def refresh_scheduler_display(self):
+ """
+ 供 SchedulerApp 调用,强制刷新主界面的调度器状态显示。
+ """
+ self.app_logger.debug(f"refresh_scheduler_display called at {datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')}")
+ self._check_schedules() # 立即触发一次调度器检查以更新UI
+
+ def _recalculate_all_next_run_times(self):
+ """在配置加载或设备更新后,重新计算所有任务的下次运行时间"""
+ now = datetime.now()
+ self.app_logger.debug(f"Recalculating all next run times at {now.strftime('%Y-%m-%d %H:%M:%S.%f')}")
+ for task in self.scheduled_tasks:
+ task_name = task.get('name', task['id'][:8])
+ old_next_run = task.get("next_run_time")
+ task["next_run_time"] = self._calculate_next_run_time(task, now)
+ self.app_logger.debug(f" Task '{task_name}': Old next run: {old_next_run}, New next run: {task['next_run_time']}")
+ self.save_config()
+
+ def _check_schedules(self):
+ """检查是否有定时任务到期"""
+ now = datetime.now()
+ self.app_logger.debug(f"\n--- 调度器检查 @ {now.strftime('%Y-%m-%d %H:%M:%S.%f')} ---")
+
+ next_task_summary = "无"
+ min_next_run_time = datetime.max
+
+ tasks_to_trigger = [] # Collect tasks to trigger to avoid modifying list while iterating
+
+ for task in self.scheduled_tasks:
+ task_name = task.get('name', task['id'][:8])
+ self.app_logger.debug(f" 检查任务 '{task_name}' (启用: {task.get('enabled', True)})")
+
+ if not task.get("enabled", True):
+ self.app_logger.debug(f" 任务 '{task_name}' 已禁用,跳过。")
+ continue
+
+ current_next_run_time = task.get("next_run_time")
+
+ if current_next_run_time:
+ self.app_logger.debug(f" 任务 '{task_name}' 当前下次运行时间: {current_next_run_time.strftime('%Y-%m-%d %H:%M:%S.%f')}")
+
+ # Check if it's time to trigger this task
+ # Allow a small window for execution, e.g., within the last second
+ if current_next_run_time <= now < (current_next_run_time + timedelta(seconds=1)):
+ self.app_logger.info(f" !!! 任务 '{task_name}' 触发执行 !!!")
+ tasks_to_trigger.append((task, now))
+
+ # Update next_task_summary based on the *current* next_run_time
+ if current_next_run_time < min_next_run_time:
+ min_next_run_time = current_next_run_time
+ next_task_summary = f"'{task_name}' @ {min_next_run_time.strftime('%H:%M:%S')}"
+ else:
+ # If next_run_time is None, try to calculate it for the first time or if it was cleared
+ self.app_logger.debug(f" 任务 '{task_name}' next_run_time 为 None,尝试计算。")
+ new_next_run = self._calculate_next_run_time(task, now)
+ if new_next_run:
+ task["next_run_time"] = new_next_run
+ self.app_logger.debug(f" 任务 '{task_name}' 首次计算下次运行时间: {new_next_run.strftime('%Y-%m-%d %H:%M:%S.%f')}")
+ # Also check if this newly calculated time is due right now
+ if new_next_run <= now < (new_next_run + timedelta(seconds=1)):
+ self.app_logger.info(f" !!! 任务 '{task_name}' (首次计算后) 触发执行 !!!")
+ tasks_to_trigger.append((task, now))
+
+ if new_next_run < min_next_run_time:
+ min_next_run_time = new_next_run
+ next_task_summary = f"'{task_name}' @ {min_next_run_time.strftime('%H:%M:%S')}"
+ else:
+ self.app_logger.debug(f" 任务 '{task_name}' 无法计算下次运行时间。")
+
+ # Now trigger the collected tasks
+ for task, trigger_time in tasks_to_trigger:
+ self.log_message(f"调度器: 任务 '{task.get('name', task['id'][:8])}' 到期,准备执行。", "blue")
+ self.app_logger.info(f"调度器: 任务 '{task.get('name', task['id'][:8])}' 到期,准备执行。")
+ threading.Thread(target=self._execute_scheduled_commands, args=(task, trigger_time), name=f"SchedulerTask-{task.get('name', task['id'][:8])}").start()
+
+ # Immediately update the task's last_run_time and recalculate next_run_time
+ # This is crucial for 'once' tasks to prevent re-triggering
+ self.after(0, lambda t=task, c_now=trigger_time: self._update_scheduled_task_after_execution(t, c_now))
+
+
+ # Update scheduler status label
+ self.scheduler_status_var.set(
+ f"调度器: 上次检查 {now.strftime('%H:%M:%S')} | 下个任务: {next_task_summary}"
+ )
+
+
+ def _update_scheduled_task_after_execution(self, task, execution_time):
+ """
+ 在主线程中更新定时任务的 last_run_time 和 next_run_time。
+ """
+ task_name = task.get("name", task["id"][:8])
+ self.app_logger.debug(f"_update_scheduled_task_after_execution for task '{task_name}' called at {datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')}.")
+ task["last_run_time"] = execution_time
+ task["next_run_time"] = self._calculate_next_run_time(task, execution_time + timedelta(seconds=1))
+ self.save_config()
+ # 如果定时任务管理窗口是打开的,刷新其显示
+ if self.scheduler_window and self.scheduler_window.winfo_exists():
+ self.scheduler_window._update_schedule_display()
+
+
+ def _calculate_next_run_time(self, task, reference_time):
+ """
+ 根据任务的调度类型和触发器计算下次运行时间。
+ reference_time: datetime对象,作为计算下次运行时间的基准。
+ """
+ schedule_type = task["schedule_type"]
+ trigger = task["trigger"]
+
+ next_run = None
+
+ if schedule_type == "once":
+ try:
+ target_time = datetime(
+ trigger["year"], trigger["month"], trigger["day"],
+ trigger["hour"], trigger["minute"], trigger["second"]
+ )
+ self.app_logger.debug(f" _calculate_next_run_time for 'once' task '{task.get('name', task['id'][:8])}': target_time={target_time}, reference_time={reference_time}, last_run_time={task.get('last_run_time')}")
+ if task.get("last_run_time") is None and target_time >= reference_time:
+ next_run = target_time
+ except ValueError:
+ self.app_logger.warning(f"任务 '{task.get('name', task['id'][:8])}' 的一次性触发时间无效。")
+ self.log_message(f"任务 '{task.get('name', task['id'][:8])}' 的一次性触发时间无效。", "red")
+
+ elif schedule_type == "daily":
+ target_hour = trigger["hour"]
+ target_minute = trigger["minute"]
+ target_second = trigger["second"]
+
+ # Start with today's target time
+ potential_run_time = reference_time.replace(
+ hour=target_hour,
+ minute=target_minute,
+ second=target_second,
+ microsecond=0
+ )
+ # If target time is in the past, set it for tomorrow
+ if potential_run_time <= reference_time:
+ potential_run_time += timedelta(days=1)
+ next_run = potential_run_time
+
+ elif schedule_type == "weekly":
+ target_hour = trigger["hour"]
+ target_minute = trigger["minute"]
+ target_second = trigger["second"]
+ days_of_week = sorted(trigger["days_of_week"]) # 0=Mon, 6=Sun
+
+ min_next_run = None
+
+ for day_of_week_target in days_of_week:
+ # Calculate days ahead to reach the target day of week
+ days_ahead = (day_of_week_target - reference_time.weekday() + 7) % 7
+
+ potential_run_time = (reference_time + timedelta(days=days_ahead)).replace(
+ hour=target_hour, minute=target_minute, second=target_second, microsecond=0
+ )
+
+ # If it's the same day of week, but the time has passed, move to next week
+ if days_ahead == 0 and potential_run_time <= reference_time:
+ potential_run_time += timedelta(weeks=1)
+
+ if min_next_run is None or potential_run_time < min_next_run:
+ min_next_run = potential_run_time
+ next_run = min_next_run
+
+ elif schedule_type == "monthly":
+ target_hour = trigger["hour"]
+ target_minute = trigger["minute"]
+ target_second = trigger["second"]
+
+ current_year = reference_time.year
+ current_month = reference_time.month
+
+ potential_runs = []
+
+ # Check current month and next month
+ for month_offset in range(2):
+ check_year = current_year
+ check_month = current_month + month_offset
+ if check_month > 12:
+ check_month -= 12
+ check_year += 1
+
+ if "month_day" in trigger:
+ target_day = trigger["month_day"]
+ try:
+ # Ensure target_day is valid for the month
+ if target_day > calendar.monthrange(check_year, check_month)[1]:
+ continue # Skip if day is invalid for this month (e.g., Feb 30)
+
+ potential_date = datetime(check_year, check_month, target_day,
+ target_hour, target_minute, target_second, microsecond=0)
+ if potential_date > reference_time:
+ potential_runs.append(potential_date)
+ except ValueError:
+ pass # Date might be invalid (e.g., Feb 30)
+ elif "week_of_month" in trigger:
+ target_week_of_month = trigger["week_of_month"]
+ target_day_of_week = trigger["day_of_week"]
+
+ count = 0
+ for day in range(1, calendar.monthrange(check_year, check_month)[1] + 1):
+ d = datetime(check_year, check_month, day)
+ if d.weekday() == target_day_of_week:
+ count += 1
+ if count == target_week_of_month:
+ potential_date = d.replace(
+ hour=target_hour, minute=target_minute, second=target_second, microsecond=0
+ )
+ if potential_date > reference_time:
+ potential_runs.append(potential_date)
+ break
+
+ if potential_runs:
+ next_run = min(potential_runs)
+ else:
+ next_run = None
+
+ self.app_logger.debug(f" _calculate_next_run_time for '{task.get('name', task['id'][:8])}' returns: {next_run}")
+ return next_run
+
+ def _execute_scheduled_commands(self, task, trigger_time):
+ """
+ 执行定时任务中的指令序列。
+ 此方法在后台线程中运行。
+ """
+ task_name = task.get("name", task["id"][:8])
+
+ self.app_logger.debug(f"[SchedulerThread-{threading.current_thread().name}] _execute_scheduled_commands for task '{task_name}' STARTED @ {datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')}")
+
+ time.sleep(0.05) # Give UI a moment to update log message
+
+ self.log_message(f"调度器: 任务 '{task_name}':开始执行指令序列...", "blue")
+ self.app_logger.info(f"调度器: 任务 '{task_name}':开始执行指令序列...")
+
+ try:
+ for i, action in enumerate(task["actions"]):
+ device_id = action["device_id"]
+ command_index = action["command_index"]
+
+ # 获取当前指令的延迟时间
+ delay_ms = action.get("delay_ms", 0)
+
+ device = next((d for d in self.devices if d["id"] == device_id), None)
+ if not device:
+ self.log_message(f"定时任务 '{task_name}' 失败: 设备ID '{device_id[:8]}...' 无效或不存在。", "red")
+ self.app_logger.error(f"定时任务 '{task_name}' 失败: 设备ID '{device_id[:8]}...' 无效或不存在。")
+ continue
+
+ if not (0 <= command_index < len(device["commands"])):
+ self.log_message(f"定时任务 '{task_name}' 失败: 设备 '{device['name']}' 的指令索引 {command_index} 无效。", "red")
+ self.app_logger.error(f"定时任务 '{task_name}' 失败: 设备 '{device['name']}' 的指令索引 {command_index} 无效。")
+ continue
+
+ command = device["commands"][command_index]
+
+ # 如果当前指令有延迟,则先等待
+ if delay_ms > 0:
+ self.log_message(f"定时任务 '{task_name}':指令 '{command['name']}' 将延迟 {delay_ms} 毫秒后执行。", "gray")
+ self.app_logger.info(f"定时任务 '{task_name}':指令 '{command['name']}' 将延迟 {delay_ms} 毫秒后执行。")
+ time.sleep(delay_ms / 1000.0)
+
+ self.log_message(f"定时任务 '{task_name}':执行指令 '{command['name']}' 到设备 '{device['name']}'...", "blue")
+ self.app_logger.info(f"定时任务 '{task_name}':执行指令 '{command['name']}' 到设备 '{device['name']}'...")
+
+ try:
+ response = self.network_manager.send_command_sync_for_scheduler(device, command, is_scheduled_task=True)
+ self.log_message(f"定时任务 '{task_name}':指令 '{command['name']}' 成功,响应: {response}", "green")
+ self.app_logger.info(f"定时任务 '{task_name}':指令 '{command['name']}' 成功,响应: {response}")
+ except Exception as e:
+ self.log_message(f"定时任务 '{task_name}':指令 '{command['name']}' 执行失败: {e}", "red")
+ self.app_logger.error(f"定时任务 '{task_name}':指令 '{command['name']}' 执行失败: {e}")
+
+ self.log_message(f"定时任务 '{task_name}':指令序列执行完毕。", "blue")
+ self.app_logger.info(f"定时任务 '{task_name}':指令序列执行完毕。")
+
+ except Exception as e:
+ self.log_message(f"定时任务 '{task_name}' 执行过程中发生未预期错误: {e}", "red")
+ self.app_logger.critical(f"定时任务 '{task_name}' 执行过程中发生未预期错误: {e}")
+ finally:
+ self.app_logger.debug(f"[SchedulerThread-{threading.current_thread().name}] _execute_scheduled_commands for task '{task_name}' FINISHED @ {datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')}")
+
+
+ def update_main_connection_status(self, status, color="black"):
+ """MainControlApp 的连接状态更新回调,这里仅用于日志"""
+ self.log_message(f"全局连接状态更新: {status}", color)
+ self.app_logger.info(f"全局连接状态更新: {status}")
+
+ def log_message(self, message, color="black"):
+ """向日志文本框添加消息 (在 UI 线程中执行) 并写入文件"""
+ timestamp_str = datetime.now().strftime("[%Y-%m-%d %H:%M:%S]")
+ ui_message = f"{timestamp_str} {message}"
+
+ # 这里的日志级别判断保持不变,因为它控制的是 UI 显示的颜色和 app_logger 的级别
+ if color == "red":
+ self.app_logger.error(message)
+ elif color == "orange":
+ self.app_logger.warning(message)
+ elif color == "blue":
+ self.app_logger.info(message)
+ elif color == "green":
+ self.app_logger.info(message)
+ elif color == "gray": # UI日志中,灰色通常是调试信息
+ self.app_logger.debug(message)
+ else:
+ self.app_logger.info(message)
+
+ self.after(0, lambda: self._log_message_safe(ui_message, color))
+
+ def _log_message_safe(self, message, color):
+ """安全的 UI 更新函数,确保在主线程中被调用"""
+ self.log_text.config(state=tk.NORMAL)
+ self.log_text.insert(tk.END, message + "\n", color)
+ self.log_text.tag_config("red", foreground="red")
+ self.log_text.tag_config("green", foreground="green")
+ self.log_text.tag_config("blue", foreground="blue")
+ self.log_text.tag_config("orange", foreground="orange")
+ self.log_text.tag_config("gray", foreground="gray")
+ self.log_text.see(tk.END)
+ self.log_text.config(state=tk.DISABLED)
+
+ def on_closing(self):
+ """窗口关闭时保存配置并关闭所有活动套接字"""
+ self.network_manager.close_all_sockets()
+ if hasattr(self, '_periodic_check_id') and self._periodic_check_id:
+ self.after_cancel(self._periodic_check_id)
+ if hasattr(self, '_scheduler_check_id') and self._scheduler_check_id:
+ self.after_cancel(self._scheduler_check_id)
+ self.destroy()
+
+if __name__ == "__main__":
+ app = MainControlApp()
+ app.mainloop()
diff --git a/network_manager.py b/network_manager.py
new file mode 100644
index 0000000..4da0057
--- /dev/null
+++ b/network_manager.py
@@ -0,0 +1,335 @@
+import socket
+import threading
+import time
+import sys
+# import subprocess # <--- 移除 subprocess 模块导入
+import logging
+
+class NetworkManager:
+ def __init__(self, log_callback, connection_status_callback, ip_status_callback, tcp_status_callback, app_logger):
+ self.log_callback = log_callback
+ self.connection_status_callback = connection_status_callback
+ self.ip_status_callback = ip_status_callback
+ self.tcp_status_callback = tcp_status_callback
+ self.app_logger = app_logger # 保存 app_logger 实例
+ self.sockets = {} # Dictionary to hold persistent sockets if keep_alive is true
+ self.socket_lock = threading.Lock() # Lock for managing self.sockets
+
+ def _prepare_command_data(self, command):
+ # Placeholder for actual command data preparation
+ if command["type"] == "hex":
+ return bytes.fromhex(command["data"].replace(" ", ""))
+ else: # Default to text
+ return command["data"].encode('utf-8')
+
+ def _log_with_prefix(self, message, color, is_scheduled_task):
+ prefix = "[调度任务] " if is_scheduled_task else ""
+ full_message = prefix + message
+
+ # 调用 UI 的 log_callback
+ self.log_callback(full_message, color)
+
+ # 根据颜色将消息发送到 app_logger 的对应级别
+ if color == "red":
+ self.app_logger.error(full_message)
+ elif color == "orange":
+ self.app_logger.warning(full_message)
+ elif color == "blue" or color == "green":
+ self.app_logger.info(full_message)
+ elif color == "gray":
+ self.app_logger.debug(full_message) # 'gray' 通常用于更详细的内部信息,映射到 DEBUG
+ else:
+ self.app_logger.info(full_message) # 默认使用 INFO
+
+ def _connect_tcp_and_send(self, device, command, is_scheduled_task=False):
+ # This method handles connection, sending, and receiving for TCP
+ # It's called by send_command_async and send_command_sync_for_scheduler
+ sock = None
+ response_data = b""
+ device_id = device["id"]
+
+ self.app_logger.debug(f"[NetworkManager] _connect_tcp_and_send called for device '{device['name']}', scheduled: {is_scheduled_task}")
+
+ try:
+ # Check for existing persistent connection if keep_alive is true
+ if device.get("keep_alive"):
+ with self.socket_lock:
+ sock = self.sockets.get(device_id)
+ if sock:
+ # Try to use existing socket, check if it's still open
+ try:
+ sock.send(b'') # Send a dummy byte to check connection
+ self.app_logger.debug(f"[NetworkManager] Using existing keep-alive socket for '{device['name']}'.")
+ except (socket.error, BrokenPipeError):
+ self._log_with_prefix(f"设备 '{device['name']}' ({device['address']}:{device['port']}) 的保持连接已断开,重新连接。", "orange", is_scheduled_task)
+ self.app_logger.debug(f"[NetworkManager] Keep-alive for '{device['name']}' broken, re-establishing.")
+ sock.close()
+ sock = None
+ if not sock:
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.settimeout(device.get("timeout", 5))
+ sock.connect((device["address"], device["port"]))
+ self._log_with_prefix(f"成功建立与设备 '{device['name']}' ({device['address']}:{device['port']}) 的保持连接。", "green", is_scheduled_task)
+ self.app_logger.debug(f"[NetworkManager] Established new keep-alive socket for '{device['name']}'.")
+ self.sockets[device_id] = sock
+ else:
+ # Non-persistent connection: create new socket
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.settimeout(device.get("timeout", 5))
+ sock.connect((device["address"], device["port"]))
+ self._log_with_prefix(f"成功连接到设备 '{device['name']}' ({device['address']}:{device['port']})。", "green", is_scheduled_task)
+ self.app_logger.debug(f"[NetworkManager] Established non-persistent connection for '{device['name']}'.")
+
+ data_to_send = self._prepare_command_data(command)
+ sock.sendall(data_to_send)
+ self._log_with_prefix(f"发送到设备 '{device['name']}' ({device['address']}:{device['port']}) 指令 '{command['name']}': {data_to_send!r}", "gray", is_scheduled_task)
+ self.app_logger.debug(f"[NetworkManager] Sent data to '{device['name']}': {data_to_send!r}")
+
+ # Receive response
+ response_data = sock.recv(1024)
+ response_str = response_data.decode('utf-8', errors='ignore').strip()
+ self._log_with_prefix(f"从设备 '{device['name']}' ({device['address']}:{device['port']}) 收到响应: {response_str!r}", "gray", is_scheduled_task)
+ self.app_logger.debug(f"[NetworkManager] Received response from '{device['name']}': {response_str!r}")
+ return response_str
+
+ except socket.timeout:
+ error_msg = f"与设备 '{device['name']}' ({device['address']}:{device['port']}) 通信超时。"
+ self._log_with_prefix(error_msg, "red", is_scheduled_task)
+ self.app_logger.error(f"[NetworkManager] {error_msg}")
+ raise ConnectionError(error_msg)
+ except (socket.error, ConnectionRefusedError, OSError) as e:
+ error_msg = f"与设备 '{device['name']}' ({device['address']}:{device['port']}) 连接或通信失败: {e}"
+ self_log_with_prefix(error_msg, "red", is_scheduled_task)
+ self.app_logger.error(f"[NetworkManager] {error_msg}")
+ raise ConnectionError(error_msg)
+ except Exception as e:
+ error_msg = f"发送指令 '{command['name']}' 到设备 '{device['name']}' 时发生未知错误: {e}"
+ self._log_with_prefix(error_msg, "red", is_scheduled_task)
+ self.app_logger.error(f"[NetworkManager] {error_msg}")
+ raise RuntimeError(error_msg)
+ finally:
+ if sock and not device.get("keep_alive"):
+ sock.close()
+ self._log_with_prefix(f"已关闭与设备 '{device['name']}' ({device['address']}:{device['port']}) 的非保持连接。", "gray", is_scheduled_task)
+ self.app_logger.debug(f"[NetworkManager] Closed non-persistent connection for '{device['name']}'.")
+
+ def send_command_async(self, device_index, device, command, on_finish_callback=None):
+ def _send_task():
+ self.app_logger.debug(f"[NetworkManager] send_command_async: _send_task started for '{device['name']}'.")
+ try:
+ if device["protocol"] == "TCP":
+ self._connect_tcp_and_send(device, command, is_scheduled_task=False) # Not a scheduled task
+ elif device["protocol"] == "UDP":
+ # UDP send logic (simplified, assuming no response needed for async)
+ # For UDP, you'd typically create a socket, sendto, and then close it.
+ # No explicit 'connection' is made.
+ try:
+ udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ data_to_send = self._prepare_command_data(command)
+ udp_sock.sendto(data_to_send, (device["address"], device["port"]))
+ self._log_with_prefix(f"UDP指令 '{command['name']}' 已发送到设备 '{device['name']}' ({device['address']}:{device['port']})。", "green", False)
+ self.app_logger.debug(f"[NetworkManager] UDP command '{command['name']}' sent to '{device['name']}' (async).")
+ except Exception as e:
+ self._log_with_prefix(f"UDP指令 '{command['name']}' 发送失败到设备 '{device['name']}': {e}", "red", False)
+ self.app_logger.error(f"[NetworkManager] UDP command '{command['name']}' send failed to '{device['name']}': {e}")
+ finally:
+ if udp_sock:
+ udp_sock.close()
+ else:
+ self._log_with_prefix(f"不支持的协议 '{device['protocol']}'。", "red", False)
+ self.app_logger.error(f"[NetworkManager] Unsupported protocol '{device['protocol']}' (async).")
+
+ except Exception as e:
+ # Errors are already logged by _connect_tcp_and_send or specific UDP logic
+ self.app_logger.error(f"[NetworkManager] send_command_async error for '{device['name']}': {e}")
+ finally:
+ if on_finish_callback:
+ on_finish_callback()
+ self.app_logger.debug(f"[NetworkManager] send_command_async: _send_task finished for '{device['name']}'.")
+
+ threading.Thread(target=_send_task).start()
+
+ def send_command_sync_for_scheduler(self, device, command, is_scheduled_task=True):
+ """
+ 为调度器同步发送指令,并返回响应。
+ 此方法在后台线程中被调用。
+ """
+ self.app_logger.debug(f"[NetworkManager] send_command_sync_for_scheduler called for '{device['name']}', command '{command['name']}'.")
+ if device["protocol"] == "TCP":
+ return self._connect_tcp_and_send(device, command, is_scheduled_task=is_scheduled_task)
+ elif device["protocol"] == "UDP":
+ # UDP logic for scheduler (simplified)
+ try:
+ udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ data_to_send = self._prepare_command_data(command)
+ udp_sock.sendto(data_to_send, (device["address"], device["port"]))
+ self._log_with_prefix(f"UDP指令 '{command['name']}' 已发送到设备 '{device['name']}' ({device['address']}:{device['port']})。", "green", is_scheduled_task)
+ self.app_logger.debug(f"[NetworkManager] UDP command '{command['name']}' sent to '{device['name']}' (scheduled).")
+ return "UDP command sent (no response expected)" # UDP typically doesn't have a direct response
+ except Exception as e:
+ self._log_with_prefix(f"UDP指令 '{command['name']}' 发送失败到设备 '{device['name']}': {e}", "red", is_scheduled_task)
+ self.app_logger.error(f"[NetworkManager] UDP command '{command['name']}' send failed to '{device['name']}': {e}")
+ raise RuntimeError(f"UDP command send failed: {e}")
+ finally:
+ if udp_sock:
+ udp_sock.close()
+ else:
+ self._log_with_prefix(f"不支持的协议 '{device['protocol']}'。", "red", is_scheduled_task)
+ self.app_logger.error(f"[NetworkManager] Unsupported protocol '{device['protocol']}' (scheduled).")
+ raise ValueError(f"不支持的协议: {device['protocol']}")
+
+ def check_ip_reachability_async(self, device_index, device):
+ """
+ 使用 socket 尝试 TCP 连接来检查 IP 可达性。
+ 此方法在后台线程中运行。
+ """
+ def _check():
+ is_reachable = False
+ sock = None
+ target_address = device["address"]
+ target_port = device["port"] # 使用设备配置的端口进行检查
+
+ self.app_logger.debug(f"[NetworkManager] Starting IP reachability check for '{device['name']}' ({target_address}:{target_port}).")
+ try:
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.settimeout(1) # 设置一个短的超时时间,例如1秒
+
+ # connect_ex() 方法尝试连接,如果成功返回0,否则返回错误码
+ result_code = sock.connect_ex((target_address, target_port))
+
+ if result_code == 0:
+ is_reachable = True
+ self.app_logger.debug(f"[NetworkManager] IP reachable: TCP connect successful for '{device['name']}' ({target_address}:{target_port}).")
+ else:
+ self.app_logger.debug(f"[NetworkManager] IP not reachable: TCP connect failed for '{device['name']}' ({target_address}:{target_port}) with error code {result_code}.")
+
+ except socket.timeout:
+ self.app_logger.debug(f"[NetworkManager] IP not reachable: TCP connect timeout for '{device['name']}' ({target_address}:{target_port}).")
+ except socket.error as e:
+ self.app_logger.debug(f"[NetworkManager] IP not reachable: TCP connect error for '{device['name']}' ({target_address}:{target_port}): {e}")
+ except Exception as e:
+ self.app_logger.error(f"[NetworkManager] Unexpected error during TCP reachability check for '{device['name']}': {e}")
+ finally:
+ if sock:
+ sock.close() # 确保关闭套接字
+ self.ip_status_callback(device_index, is_reachable)
+ self.app_logger.debug(f"[NetworkManager] IP reachability check for '{device['name']}' ({device['address']}:{device['port']}) finished. Status: {'Reachable' if is_reachable else 'Unreachable'}")
+ threading.Thread(target=_check).start()
+
+ def check_tcp_connection_async(self, device_index, device):
+ """
+ 检查 TCP 保持连接的状态。
+ 如果设备是 keep_alive,且 socket 存在,尝试发送空数据。
+ 如果 socket 不存在,则尝试建立新的 keep_alive 连接。
+ 此方法在后台线程中运行。
+ """
+ def _check():
+ is_connected = False
+ sock_to_close = None # 用于临时创建的 socket
+ device_id = device["id"]
+
+ self.app_logger.debug(f"[NetworkManager] Starting TCP connection check for '{device['name']}' (keep_alive: {device.get('keep_alive')}).")
+
+ try:
+ if device.get("keep_alive"):
+ with self.socket_lock:
+ sock = self.sockets.get(device_id)
+ if sock:
+ try:
+ sock.send(b'') # Try sending dummy data to check connection
+ is_connected = True
+ self.app_logger.debug(f"[NetworkManager] TCP check: Keep-alive socket for '{device['name']}' is active.")
+ except (socket.error, BrokenPipeError):
+ self.app_logger.debug(f"[NetworkManager] TCP check: Keep-alive socket for '{device['name']}' broken, closing and removing.")
+ sock.close()
+ del self.sockets[device_id]
+ is_connected = False
+ else:
+ # No persistent socket yet, try to establish one to check
+ self.app_logger.debug(f"[NetworkManager] TCP check: No existing keep-alive for '{device['name']}', trying to establish new one.")
+ new_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ new_sock.settimeout(device.get("timeout", 5))
+ new_sock.connect((device["address"], device["port"]))
+ self.sockets[device_id] = new_sock # Store it for future use
+ is_connected = True
+ self.app_logger.debug(f"[NetworkManager] TCP check: New keep-alive socket established for '{device['name']}'.")
+ sock_to_close = None # Don't close, it's now persistent
+ else:
+ # 如果 keep_alive 是 False,我们不在此处进行 TCP 连接检查,因为它是非保持连接。
+ # IP 可达性检查(通过 TCP 连接尝试)已经足够。
+ self.app_logger.debug(f"[NetworkManager] TCP check: Device '{device['name']}' is not keep-alive, skipping detailed TCP connection check.")
+ is_connected = False # 明确设置为 False,因为没有保持连接
+ sock_to_close = None
+ except Exception as e:
+ self.app_logger.error(f"[NetworkManager] TCP connection check error for '{device['name']}': {e}")
+ is_connected = False
+ finally:
+ if sock_to_close: # 如果是临时创建的 socket 且未被存储为 persistent
+ sock_to_close.close()
+ self.tcp_status_callback(device_index, is_connected)
+ # 同时更新 IP 状态点,因为 TCP 连接成功必然意味着 IP 可达
+ self.ip_status_callback(device_index, is_connected) # <--- 新增:根据 TCP 状态更新 IP 状态点
+ threading.Thread(target=_check).start()
+
+ def check_udp_reachability_async(self, device_index, device):
+ """
+ 尝试发送一个UDP数据包来检查UDP端口的可达性。
+ 注意:这只能确认数据包是否能发送出去,不能确认远程服务是否在监听。
+ """
+ def _check():
+ is_reachable = False
+ sock = None
+ target_address = device["address"]
+ target_port = device["port"]
+
+ self.app_logger.debug(f"[NetworkManager] Starting UDP reachability check for '{device['name']}' ({target_address}:{target_port}).")
+ try:
+ sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ sock.settimeout(1) # 短暂超时
+
+ # 尝试发送一个空数据包或一个小的"心跳"数据包
+ sock.sendto(b'', (target_address, target_port))
+ is_reachable = True # 如果sendto没有抛出异常,我们认为IP可达
+ self.app_logger.debug(f"[NetworkManager] UDP send successful for '{device['name']}' ({target_address}:{target_port}).")
+
+ except socket.timeout:
+ self.app_logger.debug(f"[NetworkManager] UDP send timeout for '{device['name']}' ({target_address}:{target_port}).")
+ except socket.error as e:
+ # 常见的错误可能是"Network is unreachable"或"Host is down"
+ self.app_logger.debug(f"[NetworkManager] UDP send failed for '{device['name']}' ({target_address}:{target_port}): {e}")
+ except Exception as e:
+ self.app_logger.error(f"[NetworkManager] Unexpected error during UDP reachability check for '{device['name']}': {e}")
+ finally:
+ if sock:
+ sock.close()
+ self.ip_status_callback(device_index, is_reachable)
+ self.app_logger.debug(f"[NetworkManager] UDP reachability check for '{device['name']}' ({device['address']}:{device['port']}) finished. Status: {'Reachable' if is_reachable else 'Unreachable'}")
+ threading.Thread(target=_check).start()
+
+ def close_connection_for_device(self, device):
+ """关闭指定设备的保持连接"""
+ device_id = device["id"]
+ with self.socket_lock:
+ if device_id in self.sockets:
+ try:
+ self.sockets[device_id].close()
+ self.log_callback(f"已关闭设备 {device_id} 的保持连接。", "gray")
+ self.app_logger.debug(f"[NetworkManager] Closed keep-alive socket for device {device_id}.")
+ except Exception as e:
+ self.log_callback(f"关闭设备 {device_id} 的保持连接时出错: {e}", "red")
+ self.app_logger.error(f"[NetworkManager] Error closing keep-alive socket for device {device_id}: {e}")
+ finally:
+ del self.sockets[device_id]
+
+ def close_all_sockets(self):
+ with self.socket_lock:
+ for device_id, sock in self.sockets.items():
+ try:
+ sock.close()
+ self.log_callback(f"已关闭设备 {device_id} 的保持连接。", "gray")
+ self.app_logger.debug(f"[NetworkManager] Closed keep-alive socket for device {device_id}.")
+ except Exception as e:
+ self.log_callback(f"关闭设备 {device_id} 的保持连接时出错: {e}", "red")
+ self.app_logger.error(f"[NetworkManager] Error closing keep-alive socket for device {device_id}: {e}")
+ self.sockets.clear()
+
diff --git a/scheduler_app.py b/scheduler_app.py
new file mode 100644
index 0000000..18db9e1
--- /dev/null
+++ b/scheduler_app.py
@@ -0,0 +1,676 @@
+import tkinter as tk
+from tkinter import ttk, messagebox
+import json
+from datetime import datetime, timedelta
+import calendar
+import uuid
+
+from utils import center_toplevel_window
+
+class SchedulerApp(tk.Toplevel):
+ def __init__(self, master, devices_data, scheduled_tasks, save_config_callback, log_message_callback):
+ super().__init__(master)
+ self.master = master # master在这里是MainControlApp的实例
+ self.title("定时任务管理")
+ self.geometry("800x600")
+
+ self.devices = devices_data
+ self.scheduled_tasks = scheduled_tasks
+ self.save_config_callback = save_config_callback
+ self.log_message_callback = log_message_callback
+
+ self.create_widgets()
+ self._update_schedule_display() # Initial display of tasks
+
+ # --- 修正点:在所有部件创建并加载数据后,再居中窗口 ---
+ center_toplevel_window(self, master)
+ # --- 修正点结束 ---
+
+ self.protocol("WM_DELETE_WINDOW", self.on_closing)
+
+ def create_widgets(self):
+ # Frame for buttons
+ button_frame = ttk.Frame(self)
+ button_frame.pack(side=tk.TOP, fill=tk.X, padx=10, pady=5)
+
+ ttk.Button(button_frame, text="添加任务", command=self.add_task).pack(side=tk.LEFT, padx=5)
+ ttk.Button(button_frame, text="保存并关闭", command=self.on_closing).pack(side=tk.RIGHT, padx=5)
+
+ # Frame for task list
+ task_list_frame = ttk.Frame(self)
+ task_list_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=5)
+
+ self.task_tree = ttk.Treeview(task_list_frame, columns=("Name", "Type", "Trigger", "Actions", "Enabled", "Last Run", "Next Run"), show="headings")
+ self.task_tree.heading("Name", text="任务名称")
+ self.task_tree.heading("Type", text="类型")
+ self.task_tree.heading("Trigger", text="触发条件")
+ self.task_tree.heading("Actions", text="执行指令")
+ self.task_tree.heading("Enabled", text="启用")
+ self.task_tree.heading("Last Run", text="上次运行")
+ self.task_tree.heading("Next Run", text="下次运行")
+
+ self.task_tree.column("Name", width=120, anchor=tk.W)
+ self.task_tree.column("Type", width=80, anchor=tk.CENTER)
+ self.task_tree.column("Trigger", width=150, anchor=tk.W)
+ self.task_tree.column("Actions", width=150, anchor=tk.W)
+ self.task_tree.column("Enabled", width=50, anchor=tk.CENTER)
+ self.task_tree.column("Last Run", width=120, anchor=tk.CENTER)
+ self.task_tree.column("Next Run", width=120, anchor=tk.CENTER)
+
+ self.task_tree.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
+
+ scrollbar = ttk.Scrollbar(task_list_frame, orient="vertical", command=self.task_tree.yview)
+ scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
+ self.task_tree.config(yscrollcommand=scrollbar.set)
+
+ self.task_tree.bind("", self.edit_selected_task)
+ self.task_tree.bind("<>", self.on_task_select)
+
+ # Context menu for tasks
+ self.context_menu = tk.Menu(self, tearoff=0)
+ self.context_menu.add_command(label="编辑任务", command=self.edit_selected_task)
+ self.context_menu.add_command(label="删除任务", command=self.delete_selected_task)
+ self.context_menu.add_command(label="启用/禁用任务", command=self.toggle_task_enabled)
+ self.task_tree.bind("", self.show_context_menu)
+
+ def on_task_select(self, event):
+ # This function is called when a task is selected, useful if you want to
+ # enable/disable buttons based on selection.
+ pass
+
+ def show_context_menu(self, event):
+ try:
+ self.task_tree.selection_set(self.task_tree.identify_row(event.y))
+ self.context_menu.tk_popup(event.x_root, event.y_root)
+ finally:
+ self.context_menu.grab_release()
+
+ def _update_schedule_display(self):
+ """刷新任务列表显示"""
+ for i in self.task_tree.get_children():
+ self.task_tree.delete(i)
+
+ for task in self.scheduled_tasks:
+ task_name = task.get("name", "无名称")
+ # 调度类型显示为中文
+ schedule_type_display = {
+ "once": "一次性",
+ "daily": "每天",
+ "weekly": "每周",
+ "monthly": "每月"
+ }.get(task["schedule_type"], "未知")
+
+ trigger_str = self._get_trigger_string(task)
+ actions_str = self._get_actions_string(task)
+ enabled_str = "是" if task["enabled"] else "否"
+ last_run_str = task["last_run_time"].strftime("%Y-%m-%d %H:%M:%S") if task["last_run_time"] else "N/A"
+ next_run_str = task["next_run_time"].strftime("%Y-%m-%d %H:%M:%S") if task["next_run_time"] else "N/A"
+
+ self.task_tree.insert("", tk.END, iid=task["id"],
+ values=(task_name, schedule_type_display, trigger_str, actions_str, enabled_str, last_run_str, next_run_str))
+
+ def _get_trigger_string(self, task):
+ trigger = task["trigger"]
+ if task["schedule_type"] == "once":
+ return f"{trigger['year']}-{trigger['month']:02d}-{trigger['day']:02d} {trigger['hour']:02d}:{trigger['minute']:02d}:{trigger['second']:02d}"
+ elif task["schedule_type"] == "daily":
+ return f"每天 {trigger['hour']:02d}:{trigger['minute']:02d}:{trigger['second']:02d}"
+ elif task["schedule_type"] == "weekly":
+ day_names = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
+ days = ", ".join([day_names[d] for d in sorted(trigger["days_of_week"])])
+ return f"{days} {trigger['hour']:02d}:{trigger['minute']:02d}:{trigger['second']:02d}"
+ elif task["schedule_type"] == "monthly":
+ if "month_day" in trigger:
+ return f"每月 {trigger['month_day']} 号 {trigger['hour']:02d}:{trigger['minute']:02d}:{trigger['second']:02d}"
+ elif "week_of_month" in trigger:
+ week_of_month_map = {1: "第一个", 2: "第二个", 3: "第三个", 4: "第四个", -1: "最后一个"}
+ day_names = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
+ return f"每月 {week_of_month_map.get(trigger['week_of_month'], '')}{day_names[trigger['day_of_week']]} {trigger['hour']:02d}:{trigger['minute']:02d}:{trigger['second']:02d}"
+ return "N/A"
+
+ def _get_actions_string(self, task):
+ if not task["actions"]:
+ return "无指令"
+
+ action_names = []
+ for action in task["actions"]:
+ device = next((d for d in self.devices if d["id"] == action["device_id"]), None)
+ if device and 0 <= action["command_index"] < len(device["commands"]):
+ cmd_name = device["commands"][action["command_index"]]["name"]
+ action_names.append(f"{device['name']}:{cmd_name}")
+ else:
+ action_names.append("未知设备/指令")
+
+ return ", ".join(action_names)
+
+
+ def add_task(self):
+ """打开一个新窗口以添加或编辑任务"""
+ self.TaskEditor(self, None) # self是SchedulerApp实例,作为TaskEditor的master_app
+
+ def edit_selected_task(self, event=None):
+ """编辑选中的任务"""
+ selected_item = self.task_tree.focus()
+ if selected_item:
+ task_id = selected_item
+ task = next((t for t in self.scheduled_tasks if t["id"] == task_id), None)
+ if task:
+ self.TaskEditor(self, task)
+ else:
+ messagebox.showerror("错误", "未找到选中的任务。")
+ else:
+ messagebox.showwarning("提示", "请选择一个任务进行编辑。")
+
+ def delete_selected_task(self):
+ """删除选中的任务"""
+ selected_item = self.task_tree.focus()
+ if selected_item:
+ if messagebox.askyesno("确认删除", "确定要删除选中的任务吗?"):
+ task_id = selected_item
+ self.scheduled_tasks[:] = [t for t in self.scheduled_tasks if t["id"] != task_id]
+ self.save_config_callback()
+ self.master._recalculate_all_next_run_times() # 重新计算所有任务的下次运行时间
+ self.master.refresh_scheduler_display() # 立即刷新主界面的调度器状态
+ self._update_schedule_display()
+ self.log_message_callback(f"定时任务 (ID: {task_id[:8]}...) 已删除。", "blue")
+ else:
+ messagebox.showwarning("提示", "请选择一个任务进行删除。")
+
+ def toggle_task_enabled(self):
+ """切换选中任务的启用/禁用状态"""
+ selected_item = self.task_tree.focus()
+ if selected_item:
+ task_id = selected_item
+ task = next((t for t in self.scheduled_tasks if t["id"] == task_id), None)
+ if task:
+ task["enabled"] = not task["enabled"]
+ self.save_config_callback()
+ self.master._recalculate_all_next_run_times() # 重新计算所有任务的下次运行时间
+ self.master.refresh_scheduler_display() # 立即刷新主界面的调度器状态
+ self._update_schedule_display()
+ self.log_message_callback(f"定时任务 '{task.get('name', task_id[:8])}' (ID: {task_id[:8]}...) 已更新。", "blue")
+ else:
+ messagebox.showwarning("提示", "请选择一个任务进行操作。")
+
+ def on_closing(self):
+ """关闭窗口时保存配置"""
+ self.save_config_callback()
+ self.master._recalculate_all_next_run_times() # 重新计算所有任务的下次运行时间
+ self.master.refresh_scheduler_display() # 立即刷新主界面的调度器状态
+ self.destroy()
+
+ class TaskEditor(tk.Toplevel):
+ def __init__(self, master_app, task_data=None):
+ super().__init__(master_app)
+ self.master_app = master_app # master_app在这里是SchedulerApp的实例
+ self.title("编辑定时任务" if task_data else "添加定时任务")
+ self.geometry("500x700")
+
+ self.task_data = task_data if task_data else self._create_new_task_template()
+ self.original_task_id = self.task_data["id"] # Store original ID for updates
+
+ # 定义调度类型的中英文映射
+ self.schedule_type_map = {
+ "once": "一次性",
+ "daily": "每天",
+ "weekly": "每周",
+ "monthly": "每月"
+ }
+ self.schedule_type_reverse_map = {v: k for k, v in self.schedule_type_map.items()}
+
+ self.create_widgets()
+ self._load_task_data()
+
+ # --- 修正点:在所有部件创建并加载数据后,再居中窗口 ---
+ center_toplevel_window(self, master_app)
+ # --- 修正点结束 ---
+
+ self.transient(master_app) # Make this window a transient window of the master
+ self.grab_set() # Grab all events until this window is destroyed
+ self.wait_window(self) # Wait until this window is destroyed
+
+ def _create_new_task_template(self):
+ now = datetime.now()
+ return {
+ "id": str(uuid.uuid4()),
+ "name": "新任务",
+ "schedule_type": "daily", # 保持英文
+ "trigger": {"hour": now.hour, "minute": now.minute + 1, "second": 0}, # Default to 1 min from now
+ "actions": [],
+ "enabled": True,
+ "last_run_time": None,
+ "next_run_time": None
+ }
+
+ def create_widgets(self):
+ main_frame = ttk.Frame(self, padding="10")
+ main_frame.pack(fill=tk.BOTH, expand=True)
+
+ # Task Name
+ ttk.Label(main_frame, text="任务名称:").grid(row=0, column=0, sticky=tk.W, pady=2)
+ self.name_entry = ttk.Entry(main_frame)
+ self.name_entry.grid(row=0, column=1, sticky=(tk.W, tk.E), pady=2)
+
+ # Schedule Type
+ ttk.Label(main_frame, text="调度类型:").grid(row=1, column=0, sticky=tk.W, pady=2)
+
+ # 内部变量,存储英文键 (用于JSON)
+ self.schedule_type_internal_var = tk.StringVar(self)
+ # 显示变量,存储中文文本 (用于OptionMenu)
+ self.schedule_type_display_var = tk.StringVar(self)
+
+ # 初始化显示变量,默认显示“每天”
+ self.schedule_type_display_var.set(self.schedule_type_map.get(self.task_data["schedule_type"], "每天"))
+
+ self.schedule_type_optionmenu = ttk.OptionMenu(main_frame, self.schedule_type_display_var,
+ self.schedule_type_display_var.get(), # 默认显示值
+ *self.schedule_type_map.values(), # 选项为中文显示文本
+ command=self._on_schedule_type_change)
+ self.schedule_type_optionmenu.grid(row=1, column=1, sticky=(tk.W, tk.E), pady=2)
+
+ # Trigger Frame
+ self.trigger_frame = ttk.LabelFrame(main_frame, text="触发条件", padding="5")
+ self.trigger_frame.grid(row=2, column=0, columnspan=2, sticky=(tk.W, tk.E), pady=5)
+ # 初始创建触发条件部件,此时 schedule_type_internal_var 尚未完全加载,但在 _load_task_data 会再次调用
+ self._create_trigger_widgets(self.trigger_frame)
+
+ # Actions Frame
+ self.actions_frame = ttk.LabelFrame(main_frame, text="执行指令", padding="5")
+ self.actions_frame.grid(row=3, column=0, columnspan=2, sticky=(tk.W, tk.E), pady=5)
+ self._create_actions_widgets(self.actions_frame)
+
+ # Enabled Checkbutton
+ self.enabled_var = tk.BooleanVar(self)
+ self.enabled_checkbutton = ttk.Checkbutton(main_frame, text="启用任务", variable=self.enabled_var)
+ self.enabled_checkbutton.grid(row=4, column=0, columnspan=2, sticky=tk.W, pady=5)
+
+ # Save/Cancel Buttons
+ button_frame = ttk.Frame(main_frame)
+ button_frame.grid(row=5, column=0, columnspan=2, sticky=tk.E, pady=10)
+ ttk.Button(button_frame, text="保存", command=self._save_task).pack(side=tk.LEFT, padx=5)
+ ttk.Button(button_frame, text="取消", command=self.destroy).pack(side=tk.LEFT, padx=5)
+
+ main_frame.columnconfigure(1, weight=1)
+
+ def _create_trigger_widgets(self, parent_frame):
+ # Clear existing trigger widgets
+ for widget in parent_frame.winfo_children():
+ widget.destroy()
+
+ # Time inputs (common to all)
+ ttk.Label(parent_frame, text="时间 (HH:MM:SS):").grid(row=0, column=0, sticky=tk.W, pady=2)
+ self.hour_var = tk.StringVar(self)
+ self.minute_var = tk.StringVar(self)
+ self.second_var = tk.StringVar(self)
+ self.hour_spinbox = ttk.Spinbox(parent_frame, from_=0, to=23, wrap=True, width=3, format="%02.0f", textvariable=self.hour_var)
+ self.minute_spinbox = ttk.Spinbox(parent_frame, from_=0, to=59, wrap=True, width=3, format="%02.0f", textvariable=self.minute_var)
+ self.second_spinbox = ttk.Spinbox(parent_frame, from_=0, to=59, wrap=True, width=3, format="%02.0f", textvariable=self.second_var)
+ self.hour_spinbox.grid(row=0, column=1, sticky=tk.W, padx=(0,2))
+ ttk.Label(parent_frame, text=":").grid(row=0, column=2, sticky=tk.W)
+ self.minute_spinbox.grid(row=0, column=3, sticky=tk.W, padx=(0,2))
+ ttk.Label(parent_frame, text=":").grid(row=0, column=4, sticky=tk.W)
+ self.second_spinbox.grid(row=0, column=5, sticky=tk.W)
+
+ # 使用内部变量获取调度类型
+ schedule_type = self.schedule_type_internal_var.get()
+ if schedule_type == "once":
+ ttk.Label(parent_frame, text="日期 (YYYY-MM-DD):").grid(row=1, column=0, sticky=tk.W, pady=2)
+ self.year_var = tk.StringVar(self)
+ self.month_var = tk.StringVar(self)
+ self.day_var = tk.StringVar(self)
+
+ # --- 新增:如果当前是新建任务且调度类型为“一次性”,则自动填充为当前日期 ---
+ # 检查 self.task_data["trigger"] 中是否已包含日期信息,如果未包含,则说明是新选择“一次性”类型
+ if "year" not in self.task_data["trigger"]:
+ now = datetime.now()
+ self.year_var.set(str(now.year))
+ self.month_var.set(f"{now.month:02d}")
+ self.day_var.set(f"{now.day:02d}")
+ # --- 新增结束 ---
+
+ self.year_entry = ttk.Entry(parent_frame, width=5, textvariable=self.year_var)
+ self.month_entry = ttk.Entry(parent_frame, width=3, textvariable=self.month_var)
+ self.day_entry = ttk.Entry(parent_frame, width=3, textvariable=self.day_var)
+ self.year_entry.grid(row=1, column=1, sticky=tk.W, padx=(0,2))
+ ttk.Label(parent_frame, text="-").grid(row=1, column=2, sticky=tk.W)
+ self.month_entry.grid(row=1, column=3, sticky=tk.W, padx=(0,2))
+ ttk.Label(parent_frame, text="-").grid(row=1, column=4, sticky=tk.W)
+ self.day_entry.grid(row=1, column=5, sticky=tk.W)
+ elif schedule_type == "weekly":
+ ttk.Label(parent_frame, text="选择星期:").grid(row=1, column=0, sticky=tk.W, pady=2)
+ self.days_of_week_vars = []
+ day_names = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
+ for i, day_name in enumerate(day_names):
+ var = tk.BooleanVar(self)
+ cb = ttk.Checkbutton(parent_frame, text=day_name, variable=var)
+ cb.grid(row=1 + (i // 4), column=1 + (i % 4), sticky=tk.W, padx=2)
+ self.days_of_week_vars.append((i, var)) # Store (day_index, BooleanVar)
+ elif schedule_type == "monthly":
+ self.monthly_type_var = tk.StringVar(self)
+ self.monthly_type_var.set("month_day") # Default to specific day of month
+
+ ttk.Radiobutton(parent_frame, text="每月指定日期", variable=self.monthly_type_var, value="month_day", command=lambda: self._on_monthly_type_change(parent_frame)).grid(row=1, column=0, columnspan=3, sticky=tk.W)
+ ttk.Radiobutton(parent_frame, text="每月第N个星期X", variable=self.monthly_type_var, value="week_of_month", command=lambda: self._on_monthly_type_change(parent_frame)).grid(row=2, column=0, columnspan=3, sticky=tk.W)
+
+ self.monthly_specific_day_frame = ttk.Frame(parent_frame)
+ self.monthly_specific_day_frame.grid(row=1, column=3, columnspan=3, sticky=(tk.W, tk.E))
+ ttk.Label(self.monthly_specific_day_frame, text="日期:").pack(side=tk.LEFT)
+ self.month_day_var = tk.StringVar(self)
+ self.month_day_spinbox = ttk.Spinbox(self.monthly_specific_day_frame, from_=1, to=31, wrap=True, width=3, textvariable=self.month_day_var)
+ self.month_day_spinbox.pack(side=tk.LEFT, padx=2)
+
+ self.monthly_week_day_frame = ttk.Frame(parent_frame)
+ self.monthly_week_day_frame.grid(row=2, column=3, columnspan=3, sticky=(tk.W, tk.E))
+ ttk.Label(self.monthly_week_day_frame, text="第").pack(side=tk.LEFT)
+ self.week_of_month_var = tk.StringVar(self)
+ self.week_of_month_optionmenu = ttk.OptionMenu(self.monthly_week_day_frame, self.week_of_month_var, "第一个", "第一个", "第二个", "第三个", "第四个", "最后一个")
+ self.week_of_month_optionmenu.pack(side=tk.LEFT, padx=2)
+ ttk.Label(self.monthly_week_day_frame, text="个").pack(side=tk.LEFT)
+ self.day_of_week_var = tk.StringVar(self)
+ self.day_of_week_optionmenu = ttk.OptionMenu(self.monthly_week_day_frame, self.day_of_week_var, "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日")
+ self.day_of_week_optionmenu.pack(side=tk.LEFT, padx=2)
+
+ self._on_monthly_type_change(parent_frame) # Initialize visibility
+
+ def _on_schedule_type_change(self, selected_display_type):
+ # 将选中的中文显示文本映射回英文内部类型
+ internal_type = self.schedule_type_reverse_map.get(selected_display_type, "daily")
+ self.schedule_type_internal_var.set(internal_type) # 更新内部变量
+
+ # 根据内部类型重新创建触发条件部件
+ self._create_trigger_widgets(self.trigger_frame)
+ self._load_trigger_data() # 重新加载触发条件数据以填充新创建的部件
+
+ def _on_monthly_type_change(self, parent_frame):
+ if self.monthly_type_var.get() == "month_day":
+ self.monthly_specific_day_frame.grid(row=1, column=3, columnspan=3, sticky=(tk.W, tk.E))
+ self.monthly_week_day_frame.grid_forget()
+ else:
+ self.monthly_specific_day_frame.grid_forget()
+ self.monthly_week_day_frame.grid(row=2, column=3, columnspan=3, sticky=(tk.W, tk.E))
+
+ def _create_actions_widgets(self, parent_frame):
+ # Clear existing action widgets
+ for widget in parent_frame.winfo_children():
+ widget.destroy()
+
+ self.action_entries = [] # List to hold (device_dropdown, command_dropdown, delay_entry) for each action
+
+ # Add Action Button
+ ttk.Button(parent_frame, text="添加指令", command=self._add_action_row).pack(pady=5)
+
+ # Scrollable frame for actions
+ self.action_canvas = tk.Canvas(parent_frame)
+ self.action_scrollbar = ttk.Scrollbar(parent_frame, orient="vertical", command=self.action_canvas.yview)
+ self.action_scrollable_frame = ttk.Frame(self.action_canvas)
+
+ self.action_scrollable_frame.bind(
+ "",
+ lambda e: self.action_canvas.configure(
+ scrollregion=self.action_canvas.bbox("all")
+ )
+ )
+
+ self.action_canvas.create_window((0, 0), window=self.action_scrollable_frame, anchor="nw")
+ self.action_canvas.configure(yscrollcommand=self.action_scrollbar.set)
+
+ self.action_canvas.pack(side="left", fill="both", expand=True)
+ self.action_scrollbar.pack(side="right", fill="y")
+
+ # Initial action rows if any
+ if self.task_data["actions"]:
+ for action in self.task_data["actions"]:
+ self._add_action_row(action)
+
+ def _add_action_row(self, action_data=None):
+ row_frame = ttk.Frame(self.action_scrollable_frame, padding=5, relief=tk.RIDGE, borderwidth=1)
+ row_frame.pack(fill=tk.X, pady=2)
+
+ # Device selection
+ ttk.Label(row_frame, text="设备:").pack(side=tk.LEFT)
+ device_names = [d["name"] for d in self.master_app.devices]
+ device_var = tk.StringVar(self)
+
+ # --- 修正点1: 确保 lambda 捕获正确的 command_dropdown 和 command_var ---
+ # 先创建 command_dropdown 和 command_var,再创建 device_dropdown
+ command_var = tk.StringVar(self)
+ command_dropdown = ttk.OptionMenu(row_frame, command_var, "无指令") # Placeholder
+
+ device_dropdown = ttk.OptionMenu(row_frame, device_var, device_names[0] if device_names else "无设备", *device_names,
+ command=lambda selected_device_name, dv=device_var, cdd=command_dropdown, cv=command_var: self._on_device_select(selected_device_name, dv, cdd, cv))
+ device_dropdown.pack(side=tk.LEFT, padx=5)
+
+ # Command selection (will be updated based on device)
+ ttk.Label(row_frame, text="指令:").pack(side=tk.LEFT)
+ command_dropdown.pack(side=tk.LEFT, padx=5) # 修正点2: 放置 command_dropdown
+
+ # Delay input
+ ttk.Label(row_frame, text="延迟(ms):").pack(side=tk.LEFT)
+ delay_var = tk.StringVar(self)
+ delay_entry = ttk.Entry(row_frame, width=5, textvariable=delay_var)
+ delay_entry.pack(side=tk.LEFT, padx=5)
+ delay_var.set("0") # Default delay
+
+ # Delete button
+ delete_btn = ttk.Button(row_frame, text="X", command=lambda: self._delete_action_row(row_frame))
+ delete_btn.pack(side=tk.RIGHT)
+
+ self.action_entries.append((row_frame, device_var, device_dropdown, command_var, command_dropdown, delay_var))
+
+ # Initialize dropdowns if action_data is provided (editing existing task)
+ if action_data:
+ device = next((d for d in self.master_app.devices if d["id"] == action_data["device_id"]), None)
+ if device:
+ device_var.set(device["name"])
+ self._on_device_select(device["name"], device_var, command_dropdown, command_var)
+
+ if 0 <= action_data["command_index"] < len(device["commands"]):
+ command_var.set(device["commands"][action_data["command_index"]]["name"])
+ delay_var.set(str(action_data.get("delay_ms", 0)))
+ else: # For new rows, set default device if available
+ if device_names:
+ device_var.set(device_names[0])
+ self._on_device_select(device_names[0], device_var, command_dropdown, command_var)
+
+ self.action_scrollable_frame.update_idletasks()
+ self.action_canvas.config(scrollregion=self.action_canvas.bbox("all"))
+
+ def _delete_action_row(self, row_frame):
+ for i, (frame, _, _, _, _, _) in enumerate(self.action_entries):
+ if frame == row_frame:
+ self.action_entries.pop(i)
+ row_frame.destroy()
+ break
+ self.action_scrollable_frame.update_idletasks()
+ self.action_canvas.config(scrollregion=self.action_canvas.bbox("all"))
+
+
+ def _on_device_select(self, selected_device_name, device_var, command_dropdown, command_var):
+ device = next((d for d in self.master_app.devices if d["name"] == selected_device_name), None)
+ if device:
+ commands = device.get("commands", [])
+ command_names = [cmd["name"] for cmd in commands]
+
+ # Update the command dropdown
+ menu = command_dropdown["menu"]
+ menu.delete(0, "end")
+ if command_names:
+ for cmd_name in command_names:
+ menu.add_command(label=cmd_name, command=tk._setit(command_var, cmd_name))
+ command_var.set(command_names[0]) # Set default to first command
+ else:
+ menu.add_command(label="无指令", command=tk._setit(command_var, "无指令"))
+ command_var.set("无指令")
+ else:
+ menu = command_dropdown["menu"]
+ menu.delete(0, "end")
+ menu.add_command(label="无指令", command=tk._setit(command_var, "无指令"))
+ command_var.set("无指令")
+
+ def _load_task_data(self):
+ self.name_entry.delete(0, tk.END)
+ self.name_entry.insert(0, self.task_data["name"])
+
+ # 设置内部变量 (英文)
+ self.schedule_type_internal_var.set(self.task_data["schedule_type"])
+ # 设置显示变量 (中文)
+ self.schedule_type_display_var.set(self.schedule_type_map.get(self.schedule_type_internal_var.get(), "每天"))
+
+ # 触发更新逻辑,这会调用 _create_trigger_widgets 和 _load_trigger_data
+ self._on_schedule_type_change(self.schedule_type_display_var.get())
+
+ self.enabled_var.set(self.task_data["enabled"])
+
+ def _load_trigger_data(self):
+ trigger = self.task_data["trigger"]
+ self.hour_var.set(f"{trigger['hour']:02d}")
+ self.minute_var.set(f"{trigger['minute']:02d}")
+ self.second_var.set(f"{trigger['second']:02d}")
+
+ # 使用内部变量获取调度类型
+ if self.schedule_type_internal_var.get() == "once":
+ # 只有当 task_data["trigger"] 中有日期信息时才加载,否则保持 _create_trigger_widgets 中设置的当前日期
+ if "year" in trigger:
+ self.year_var.set(str(trigger["year"]))
+ self.month_var.set(f"{trigger['month']:02d}")
+ self.day_var.set(f"{trigger['day']:02d}")
+ elif self.schedule_type_internal_var.get() == "weekly":
+ if hasattr(self, 'days_of_week_vars'):
+ for i, var in self.days_of_week_vars:
+ var.set(i in trigger["days_of_week"])
+ elif self.schedule_type_internal_var.get() == "monthly":
+ if "month_day" in trigger:
+ self.monthly_type_var.set("month_day")
+ self.month_day_var.set(str(trigger["month_day"]))
+ elif "week_of_month" in trigger:
+ self.monthly_type_var.set("week_of_month")
+ week_of_month_map = {1: "第一个", 2: "第二个", 3: "第三个", 4: "第四个", -1: "最后一个"}
+ day_names = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
+ self.week_of_month_var.set(week_of_month_map.get(trigger["week_of_month"], "第一个"))
+ self.day_of_week_var.set(day_names[trigger["day_of_week"]])
+ self._on_monthly_type_change(self.trigger_frame) # Update visibility after loading
+
+ def _save_task(self):
+ try:
+ # Basic validation
+ name = self.name_entry.get().strip()
+ if not name:
+ messagebox.showerror("错误", "任务名称不能为空。")
+ return
+
+ hour = int(self.hour_var.get())
+ minute = int(self.minute_var.get())
+ second = int(self.second_var.get())
+
+ if not (0 <= hour <= 23 and 0 <= minute <= 59 and 0 <= second <= 59):
+ messagebox.showerror("错误", "时间格式不正确。小时(0-23), 分钟(0-59), 秒(0-59)。")
+ return
+
+ new_trigger = {"hour": hour, "minute": minute, "second": second}
+ # 从内部变量获取调度类型 (英文)
+ schedule_type = self.schedule_type_internal_var.get()
+
+ if schedule_type == "once":
+ year = int(self.year_var.get())
+ month = int(self.month_var.get())
+ day = int(self.day_var.get())
+
+ try:
+ datetime(year, month, day) # Validate date
+ except ValueError:
+ messagebox.showerror("错误", "一次性任务日期无效。")
+ return
+ new_trigger.update({"year": year, "month": month, "day": day})
+ elif schedule_type == "weekly":
+ selected_days = [idx for idx, var in self.days_of_week_vars if var.get()]
+ if not selected_days:
+ messagebox.showerror("错误", "每周任务至少需要选择一天。")
+ return
+ new_trigger["days_of_week"] = selected_days
+ elif schedule_type == "monthly":
+ if self.monthly_type_var.get() == "month_day":
+ month_day = int(self.month_day_var.get())
+ if not (1 <= month_day <= 31):
+ messagebox.showerror("错误", "每月指定日期必须在1-31之间。")
+ return
+ new_trigger["month_day"] = month_day
+ else: # week_of_month
+ week_of_month_map_rev = {"第一个": 1, "第二个": 2, "第三个": 3, "第四个": 4, "最后一个": -1}
+ day_names_rev = {"星期一": 0, "星期二": 1, "星期三": 2, "星期四": 3, "星期五": 4, "星期六": 5, "星期日": 6}
+
+ week_of_month = week_of_month_map_rev.get(self.week_of_month_var.get())
+ day_of_week = day_names_rev.get(self.day_of_week_var.get())
+ if week_of_month is None or day_of_week is None:
+ messagebox.showerror("错误", "每月第N个星期X任务的设置无效。")
+ return
+ new_trigger["week_of_month"] = week_of_month
+ new_trigger["day_of_week"] = day_of_week
+
+ new_actions = []
+ for _, device_var, _, command_var, _, delay_var in self.action_entries:
+ selected_device_name = device_var.get()
+ selected_command_name = command_var.get()
+ delay = int(delay_var.get())
+
+ if selected_device_name == "无设备" or selected_command_name == "无指令":
+ messagebox.showerror("错误", "指令列表中有未选择设备或指令的项。")
+ return
+ if delay < 0:
+ messagebox.showerror("错误", "指令延迟不能为负数。")
+ return
+
+ device = next((d for d in self.master_app.devices if d["name"] == selected_device_name), None)
+ if not device:
+ messagebox.showerror("错误", f"设备 '{selected_device_name}' 未找到。")
+ return
+
+ command_index = -1
+ for i, cmd in enumerate(device["commands"]):
+ if cmd["name"] == selected_command_name:
+ command_index = i
+ break
+
+ if command_index == -1:
+ messagebox.showerror("错误", f"指令 '{selected_command_name}' 在设备 '{selected_device_name}' 中未找到。")
+ return
+
+ new_actions.append({
+ "device_id": device["id"],
+ "command_index": command_index,
+ "delay_ms": delay
+ })
+
+ if not new_actions:
+ messagebox.showerror("错误", "请至少添加一个执行指令。")
+ return
+
+ # Update or add task
+ self.task_data.update({
+ "name": name,
+ "schedule_type": schedule_type, # 保存英文键
+ "trigger": new_trigger,
+ "actions": new_actions,
+ "enabled": self.enabled_var.get()
+ })
+
+ # Clear last_run_time and next_run_time for re-calculation
+ self.task_data["last_run_time"] = None
+ self.task_data["next_run_time"] = None
+
+ # If it's a new task, add it to the list
+ if self.original_task_id not in [t["id"] for t in self.master_app.scheduled_tasks]:
+ self.master_app.scheduled_tasks.append(self.task_data)
+
+ self.master_app.save_config_callback()
+ # 修正此处:通过 master_app.master 访问 MainControlApp 的方法
+ self.master_app.master._recalculate_all_next_run_times() # 重新计算所有任务的下次运行时间
+ self.master_app.master.refresh_scheduler_display() # 立即刷新主界面的调度器状态
+ self.master_app._update_schedule_display() # Refresh the list in SchedulerApp
+ self.master_app.log_message_callback(f"定时任务 '{name}' (ID: {self.task_data['id'][:8]}...) 已保存。", "blue")
+ self.destroy()
+
+ except ValueError as e:
+ messagebox.showerror("输入错误", f"请检查输入值是否正确: {e}")
+ except Exception as e:
+ messagebox.showerror("错误", f"保存任务时发生未知错误: {e}")
+
diff --git a/settings_app.py b/settings_app.py
new file mode 100644
index 0000000..2c62ada
--- /dev/null
+++ b/settings_app.py
@@ -0,0 +1,379 @@
+import tkinter as tk
+from tkinter import ttk, messagebox
+import json
+import uuid
+import re # 用于验证IP地址和端口
+
+from utils import center_toplevel_window
+
+class SettingsApp(tk.Toplevel):
+ def __init__(self, master, on_save_callback, devices_data):
+ super().__init__(master)
+ self.master = master
+ self.on_save_callback = on_save_callback
+ self.original_devices_data = json.loads(json.dumps(devices_data)) # 深拷贝一份原始数据
+ self.devices = devices_data # 引用主应用中的设备列表
+
+ self.title("设备设置")
+ self.geometry("800x600")
+
+ self.create_widgets()
+ self.load_devices_to_treeview()
+
+ # --- 修正点:在所有部件创建并加载数据后,再居中窗口 ---
+ center_toplevel_window(self, master)
+ # --- 修正点结束 ---
+
+ self.protocol("WM_DELETE_WINDOW", self.on_closing)
+
+ # 使 SettingsApp 成为模态窗口
+ self.transient(master)
+ self.grab_set()
+ self.wait_window(self)
+
+ def create_widgets(self):
+ # Top buttons frame
+ top_buttons_frame = ttk.Frame(self)
+ top_buttons_frame.pack(side=tk.TOP, fill=tk.X, padx=10, pady=5)
+
+ ttk.Button(top_buttons_frame, text="添加设备", command=self.add_device).pack(side=tk.LEFT, padx=5)
+ ttk.Button(top_buttons_frame, text="编辑设备", command=self.edit_selected_device).pack(side=tk.LEFT, padx=5)
+ ttk.Button(top_buttons_frame, text="删除设备", command=self.delete_selected_device).pack(side=tk.LEFT, padx=5)
+ ttk.Button(top_buttons_frame, text="保存并关闭", command=self.on_closing).pack(side=tk.RIGHT, padx=5)
+
+ # Device list Treeview
+ self.device_tree = ttk.Treeview(self, columns=("Name", "Type", "Protocol", "Address", "Port", "Keep Alive"), show="headings")
+ self.device_tree.heading("Name", text="设备名称")
+ self.device_tree.heading("Type", text="设备类型")
+ self.device_tree.heading("Protocol", text="协议")
+ self.device_tree.heading("Address", text="地址")
+ self.device_tree.heading("Port", text="端口")
+ self.device_tree.heading("Keep Alive", text="保持连接")
+
+ self.device_tree.column("Name", width=120)
+ self.device_tree.column("Type", width=100)
+ self.device_tree.column("Protocol", width=80)
+ self.device_tree.column("Address", width=120)
+ self.device_tree.column("Port", width=60)
+ self.device_tree.column("Keep Alive", width=80, anchor=tk.CENTER)
+
+ self.device_tree.pack(fill=tk.BOTH, expand=True, padx=10, pady=5)
+
+ scrollbar = ttk.Scrollbar(self, orient="vertical", command=self.device_tree.yview)
+ scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
+ self.device_tree.config(yscrollcommand=scrollbar.set)
+
+ self.device_tree.bind("", self.edit_selected_device)
+
+ def load_devices_to_treeview(self):
+ """将设备数据加载到 Treeview"""
+ for i in self.device_tree.get_children():
+ self.device_tree.delete(i)
+
+ for device in self.devices:
+ self.device_tree.insert("", tk.END, iid=device["id"],
+ values=(device["name"], device["type"], device["protocol"],
+ device["address"], device["port"], "是" if device["keep_alive"] else "否"))
+
+ def add_device(self):
+ """打开一个新窗口以添加设备"""
+ self.DeviceEditor(self, None)
+
+ def edit_selected_device(self, event=None):
+ """编辑选中的设备"""
+ selected_item = self.device_tree.focus()
+ if selected_item:
+ device_id = selected_item
+ device = next((d for d in self.devices if d["id"] == device_id), None)
+ if device:
+ self.DeviceEditor(self, device)
+ else:
+ messagebox.showerror("错误", "未找到选中的设备。")
+ else:
+ messagebox.showwarning("提示", "请选择一个设备进行编辑。")
+
+ def delete_selected_device(self):
+ """删除选中的设备"""
+ selected_item = self.device_tree.focus()
+ if selected_item:
+ if messagebox.askyesno("确认删除", "确定要删除选中的设备吗?", parent=self):
+ device_id = selected_item
+ self.devices[:] = [d for d in self.devices if d["id"] != device_id]
+ self.on_save_callback(self.devices) # 通知主应用保存
+ self.load_devices_to_treeview()
+ else:
+ messagebox.showwarning("提示", "请选择一个设备进行删除。", parent=self)
+
+ def on_closing(self):
+ """关闭窗口时保存配置"""
+ # 检查是否有设备被删除,通知 network_manager 关闭连接
+ original_device_ids = {d["id"] for d in self.original_devices_data}
+ current_device_ids = {d["id"] for d in self.devices}
+ deleted_device_ids = original_device_ids - current_device_ids
+
+ for device_id in deleted_device_ids:
+ # 找到对应的原始设备信息,以便关闭连接
+ deleted_device = next((d for d in self.original_devices_data if d["id"] == device_id), None)
+ if deleted_device and deleted_device.get("keep_alive"):
+ self.master.network_manager.close_connection_for_device(deleted_device)
+
+ self.on_save_callback(self.devices)
+ self.destroy()
+
+ class DeviceEditor(tk.Toplevel):
+ def __init__(self, master_app, device_data=None):
+ super().__init__(master_app)
+ self.master_app = master_app # SettingsApp instance
+ self.device_data = device_data # Existing device data or None for new device
+
+ self.title("编辑设备" if device_data else "添加设备")
+ self.geometry("470x650") # 增加高度以确保所有控件可见
+
+ self.create_widgets()
+ if self.device_data:
+ self._load_device_data()
+
+ # --- 修正点:在所有部件创建并加载数据后,再居中窗口 ---
+ center_toplevel_window(self, master_app)
+ # --- 修正点结束 ---
+
+ self.transient(master_app)
+ self.grab_set()
+ self.wait_window(self)
+
+ def create_widgets(self):
+ main_frame = ttk.Frame(self, padding="10")
+ main_frame.pack(fill=tk.BOTH, expand=True)
+
+ # Device Name
+ ttk.Label(main_frame, text="设备名称:").grid(row=0, column=0, sticky=tk.W, pady=2)
+ self.name_entry = ttk.Entry(main_frame)
+ self.name_entry.grid(row=0, column=1, sticky=(tk.W, tk.E), pady=2)
+
+ # Device Type
+ ttk.Label(main_frame, text="设备类型:").grid(row=1, column=0, sticky=tk.W, pady=2)
+ self.type_var = tk.StringVar(self)
+ self.type_entry = ttk.Entry(main_frame, textvariable=self.type_var)
+ self.type_entry.grid(row=1, column=1, sticky=(tk.W, tk.E), pady=2)
+
+ # Protocol
+ ttk.Label(main_frame, text="协议:").grid(row=2, column=0, sticky=tk.W, pady=2)
+ self.protocol_var = tk.StringVar(self)
+ self.protocol_optionmenu = ttk.OptionMenu(main_frame, self.protocol_var, "TCP", "TCP", "UDP")
+ self.protocol_optionmenu.grid(row=2, column=1, sticky=(tk.W, tk.E), pady=2)
+
+ # Address
+ ttk.Label(main_frame, text="地址 (IP/域名):").grid(row=3, column=0, sticky=tk.W, pady=2)
+ self.address_entry = ttk.Entry(main_frame)
+ self.address_entry.grid(row=3, column=1, sticky=(tk.W, tk.E), pady=2)
+
+ # Port
+ ttk.Label(main_frame, text="端口:").grid(row=4, column=0, sticky=tk.W, pady=2)
+ self.port_entry = ttk.Entry(main_frame)
+ self.port_entry.grid(row=4, column=1, sticky=(tk.W, tk.E), pady=2)
+
+ # Keep Alive
+ self.keep_alive_var = tk.BooleanVar(self)
+ self.keep_alive_checkbutton = ttk.Checkbutton(main_frame, text="保持连接", variable=self.keep_alive_var)
+ self.keep_alive_checkbutton.grid(row=5, column=0, columnspan=2, sticky=tk.W, pady=5)
+
+ # Commands Frame
+ self.commands_frame = ttk.LabelFrame(main_frame, text="指令列表", padding="5")
+ self.commands_frame.grid(row=6, column=0, columnspan=2, sticky=(tk.W, tk.E, tk.N, tk.S), pady=5)
+ self._create_commands_widgets(self.commands_frame)
+
+ # Save/Cancel Buttons
+ button_frame = ttk.Frame(main_frame)
+ button_frame.grid(row=7, column=0, columnspan=2, sticky=tk.E, pady=10)
+ ttk.Button(button_frame, text="保存", command=self._save_device).pack(side=tk.LEFT, padx=5)
+ ttk.Button(button_frame, text="取消", command=self.destroy).pack(side=tk.LEFT, padx=5)
+
+ main_frame.columnconfigure(1, weight=1)
+ main_frame.rowconfigure(6, weight=1) # 允许 commands_frame 垂直扩展
+ main_frame.rowconfigure(7, weight=0) # 确保按钮行不会扩展
+
+ def _create_commands_widgets(self, parent_frame):
+ # Clear existing command widgets
+ for widget in parent_frame.winfo_children():
+ widget.destroy()
+
+ self.command_entries = [] # List to hold (name_entry, data_entry, type_var, type_optionmenu) for each command
+
+ # Add Command Button
+ ttk.Button(parent_frame, text="添加指令", command=self._add_command_row).pack(pady=5)
+
+ # Scrollable frame for commands
+ self.command_canvas = tk.Canvas(parent_frame)
+ self.command_scrollbar = ttk.Scrollbar(parent_frame, orient="vertical", command=self.command_canvas.yview)
+ self.command_scrollable_frame = ttk.Frame(self.command_canvas)
+
+ # Bind the canvas's configure event to resize the inner frame
+ self.command_canvas.bind('', self._on_command_canvas_resize)
+
+ self.command_canvas.create_window((0, 0), window=self.command_scrollable_frame, anchor="nw", tags="scrollable_frame_window")
+ self.command_canvas.configure(yscrollcommand=self.command_scrollbar.set)
+
+ self.command_canvas.pack(side="left", fill="both", expand=True)
+ self.command_scrollbar.pack(side="right", fill="y")
+
+ # Initial command rows if any
+ if self.device_data and self.device_data.get("commands"):
+ for command in self.device_data["commands"]:
+ self._add_command_row(command)
+
+ def _on_command_canvas_resize(self, event):
+ # Update the width of the scrollable frame to match the canvas width
+ self.command_canvas.itemconfig("scrollable_frame_window", width=event.width)
+ # Update scrollregion
+ self.command_canvas.configure(scrollregion=self.command_canvas.bbox("all"))
+
+ def _add_command_row(self, command_data=None):
+ row_frame = ttk.Frame(self.command_scrollable_frame, padding=5, relief=tk.RIDGE, borderwidth=1)
+ row_frame.pack(fill=tk.X, expand=True, pady=2) # Make row_frame expand horizontally
+
+ # Command Name
+ ttk.Label(row_frame, text="名称:").pack(side=tk.LEFT)
+ name_entry = ttk.Entry(row_frame, width=10)
+ name_entry.pack(side=tk.LEFT, padx=2)
+
+ # Command Data
+ ttk.Label(row_frame, text="数据:").pack(side=tk.LEFT)
+ data_entry = ttk.Entry(row_frame, width=20) # Keep initial width
+ data_entry.pack(side=tk.LEFT, padx=2, fill=tk.X, expand=True) # Allow data_entry to expand
+
+ # Command Type
+ ttk.Label(row_frame, text="类型:").pack(side=tk.LEFT)
+ type_var = tk.StringVar(self)
+ type_optionmenu = ttk.OptionMenu(row_frame, type_var, "text", "text", "hex")
+ type_optionmenu.pack(side=tk.LEFT, padx=2)
+
+ # Delete button
+ delete_btn = ttk.Button(row_frame, text="X", command=lambda: self._delete_command_row(row_frame))
+ delete_btn.pack(side=tk.RIGHT)
+
+ self.command_entries.append((row_frame, name_entry, data_entry, type_var, type_optionmenu))
+
+ if command_data:
+ name_entry.insert(0, command_data.get("name", ""))
+ data_entry.insert(0, command_data.get("data", ""))
+ type_var.set(command_data.get("type", "text"))
+
+ self.command_scrollable_frame.update_idletasks()
+ self.command_canvas.config(scrollregion=self.command_canvas.bbox("all"))
+
+ def _delete_command_row(self, row_frame):
+ for i, (frame, _, _, _, _) in enumerate(self.command_entries):
+ if frame == row_frame:
+ self.command_entries.pop(i)
+ row_frame.destroy()
+ break
+ self.command_scrollable_frame.update_idletasks()
+ self.command_canvas.config(scrollregion=self.command_canvas.bbox("all"))
+
+ def _load_device_data(self):
+ self.name_entry.insert(0, self.device_data["name"])
+ self.type_var.set(self.device_data["type"])
+ self.address_entry.insert(0, self.device_data["address"])
+ self.port_entry.insert(0, str(self.device_data["port"]))
+ self.protocol_var.set(self.device_data["protocol"])
+ self.keep_alive_var.set(self.device_data["keep_alive"])
+
+ def _save_device(self):
+ name = self.name_entry.get().strip()
+ device_type = self.type_var.get().strip()
+ protocol = self.protocol_var.get()
+ address = self.address_entry.get().strip()
+ port_str = self.port_entry.get().strip()
+ keep_alive = self.keep_alive_var.get()
+
+ # Validation
+ if not name:
+ messagebox.showerror("错误", "设备名称不能为空。")
+ return
+ if not device_type:
+ messagebox.showerror("错误", "设备类型不能为空。")
+ return
+ if not address:
+ messagebox.showerror("错误", "地址不能为空。")
+ return
+ if not port_str:
+ messagebox.showerror("错误", "端口不能为空。")
+ return
+
+ try:
+ port = int(port_str)
+ if not (1 <= port <= 65535):
+ raise ValueError
+ except ValueError:
+ messagebox.showerror("错误", "端口号必须是1到65535之间的整数。")
+ return
+
+ # Basic IP/Domain validation
+ if not re.match(r"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$|^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[a-zA-Z]{2,6}$", address):
+ messagebox.showerror("错误", "地址格式不正确 (IP地址或域名)。")
+ return
+
+ commands = []
+ for _, name_entry, data_entry, type_var, _ in self.command_entries:
+ cmd_name = name_entry.get().strip()
+ cmd_data = data_entry.get().strip()
+ cmd_type = type_var.get()
+
+ if not cmd_name:
+ messagebox.showerror("错误", "指令名称不能为空。")
+ return
+ if not cmd_data:
+ messagebox.showerror("错误", "指令数据不能为空。")
+ return
+ if cmd_type == "hex":
+ try:
+ bytes.fromhex(cmd_data) # Validate hex string
+ except ValueError:
+ messagebox.showerror("错误", f"指令 '{cmd_name}' 的十六进制数据格式不正确。")
+ return
+
+ commands.append({
+ "name": cmd_name,
+ "data": cmd_data,
+ "type": cmd_type
+ })
+
+ if not commands:
+ messagebox.showerror("错误", "请至少添加一个指令。")
+ return
+
+ # Update existing device or add new one
+ if self.device_data:
+ # Find the device by ID and update it
+ for i, d in enumerate(self.master_app.devices):
+ if d["id"] == self.device_data["id"]:
+ self.master_app.devices[i].update({
+ "name": name,
+ "type": device_type,
+ "protocol": protocol,
+ "address": address,
+ "port": port,
+ "keep_alive": keep_alive,
+ "commands": commands
+ })
+ self.master_app.master.log_message(f"设备 '{name}' (ID: {self.device_data['id'][:8]}...) 已更新。", "blue")
+ break
+ else:
+ # Add new device
+ new_device = {
+ "id": str(uuid.uuid4()),
+ "name": name,
+ "type": device_type,
+ "protocol": protocol,
+ "address": address,
+ "port": port,
+ "keep_alive": keep_alive,
+ "commands": commands
+ }
+ self.master_app.devices.append(new_device)
+ self.master_app.master.log_message(f"新设备 '{name}' (ID: {new_device['id'][:8]}...) 已添加。", "blue")
+
+ self.master_app.on_save_callback(self.master_app.devices) # 通知 SettingsApp 保存并刷新
+ self.master_app.load_devices_to_treeview() # 刷新设备列表显示
+ self.destroy() # Close the editor window
+
diff --git a/utils.py b/utils.py
new file mode 100644
index 0000000..37fca34
--- /dev/null
+++ b/utils.py
@@ -0,0 +1,27 @@
+import tkinter as tk
+
+def center_toplevel_window(toplevel_window, parent_window):
+ """
+ 将一个 Toplevel 窗口相对于其父窗口居中。
+ :param toplevel_window: 要居中的 Toplevel 窗口实例。
+ :param parent_window: 父窗口实例 (通常是 tk.Tk 或另一个 Toplevel)。
+ """
+ toplevel_window.update_idletasks() # 确保窗口已经渲染,以便获取正确的尺寸
+
+ # 获取父窗口的几何信息
+ parent_width = parent_window.winfo_width()
+ parent_height = parent_window.winfo_height()
+ parent_x = parent_window.winfo_x()
+ parent_y = parent_window.winfo_y()
+
+ # 获取 Toplevel 窗口自身的几何信息
+ window_width = toplevel_window.winfo_width()
+ window_height = toplevel_window.winfo_height()
+
+ # 计算新的 x, y 坐标,使 Toplevel 窗口居中
+ x = parent_x + (parent_width // 2) - (window_width // 2)
+ y = parent_y + (parent_height // 2) - (window_height // 2)
+
+ # 设置 Toplevel 窗口的几何位置
+ toplevel_window.geometry(f"+{x}+{y}")
+
diff --git a/网络设备控制器.spec b/网络设备控制器.spec
new file mode 100644
index 0000000..e2e4190
--- /dev/null
+++ b/网络设备控制器.spec
@@ -0,0 +1,38 @@
+# -*- mode: python ; coding: utf-8 -*-
+
+
+a = Analysis(
+ ['main_control_app.py'],
+ pathex=[],
+ binaries=[],
+ datas=[],
+ hiddenimports=[],
+ hookspath=[],
+ hooksconfig={},
+ runtime_hooks=[],
+ excludes=[],
+ noarchive=False,
+ optimize=0,
+)
+pyz = PYZ(a.pure)
+
+exe = EXE(
+ pyz,
+ a.scripts,
+ a.binaries,
+ a.datas,
+ [],
+ name='网络设备控制器',
+ debug=False,
+ bootloader_ignore_signals=False,
+ strip=False,
+ upx=True,
+ upx_exclude=[],
+ runtime_tmpdir=None,
+ console=False,
+ disable_windowed_traceback=False,
+ argv_emulation=False,
+ target_arch=None,
+ codesign_identity=None,
+ entitlements_file=None,
+)