2024-04-23 04:27:42,252 - ERROR - Session id "123" is unknown. Connection refused!
2024-04-23 04:29:24,541 - INFO - session: ::1-1, screen: void, message: None
  User is connected, session: ::1-1, share: None
2024-04-23 04:30:26,640 - ERROR - Session id "::1-1" is unknown. Connection refused!
2024-04-23 04:33:05,237 - ERROR - Session id "::1-1" is unknown. Connection refused!
2024-04-23 04:33:37,221 - INFO - session: ::1-0, screen: void, message: None
  User is connected, session: ::1-0, share: None
2024-04-23 04:35:01,727 - ERROR - Session id "::1-1" is unknown. Connection refused!
2024-04-23 04:35:19,126 - INFO - session: ::1-2, screen: Main, message: None
  User is connected, session: ::1-2, share: ::1-0
2024-04-23 04:37:36,321 - INFO - session: 127.0.0.1-3, screen: Main, message: None
  User is connected, session: 127.0.0.1-3, share: ::1-0
2024-04-23 04:41:14,021 - INFO - session: ::1-0, screen: void, message: None
  User is connected, session: ::1-0, share: None
2024-04-23 04:41:26,897 - INFO - session: ::1-1, screen: Main, message: None
  User is connected, session: ::1-1, share: ::1-0
2024-08-18 01:41:24,297 - INFO - session: ::1-0, screen: void, message: None
  User is connected, session: ::1-0, share: None
2024-08-18 01:44:37,475 - INFO - session: ::1-1, screen: void, message: None
  User is connected, session: ::1-1, share: None
2024-08-18 01:45:04,435 - INFO - session: ::1-2, screen: void, message: None
  User is connected, session: ::1-2, share: None
2024-08-18 01:48:22,440 - INFO - session: ::1-3, screen: void, message: None
  User is connected, session: ::1-3, share: None
2024-08-18 01:48:29,564 - INFO - session: ::1-4, screen: void, message: None
  User is connected, session: ::1-4, share: None
2024-08-18 01:51:10,816 - INFO - session: ::1-0, screen: void, message: None
  User is connected, session: ::1-0, share: None
2024-09-24 07:48:01,088 - INFO - session: ::1-0, screen: void, message: None
  User is connected, session: ::1-0, share: None
2024-09-24 07:48:02,870 - INFO - session: ::1-1, screen: void, message: None
  User is connected, session: ::1-1, share: None
2024-09-24 07:49:58,215 - INFO - session: ::1-0, screen: void, message: None
  User is connected, session: ::1-0, share: None
2024-09-24 07:52:57,837 - INFO - session: ::1-1, screen: void, message: None
  User is connected, session: ::1-1, share: None
2024-09-24 22:27:35,166 - INFO - session: ::1-0, screen: void, message: None
  User is connected, session: ::1-0, share: None
2024-09-24 22:29:21,325 - ERROR - session: ::1-0, screen: Zoo, message: Csv table/Zoo Table->modify({'value': 'e', 'delta': 99, 'id': 0.1732807420057667, 'cell': 0})
  Traceback (most recent call last):
  File "/home/george/Projects/unisi/unisi/server.py", line 78, in websocket_handler
    result = await user.result4message(message)
  File "/home/george/Projects/unisi/unisi/users.py", line 164, in result4message
    result = await self.process(message)
  File "/home/george/Projects/unisi/unisi/users.py", line 260, in process
    return await self.process_element(elem, message)
  File "/home/george/Projects/unisi/unisi/users.py", line 276, in process_element
    result = await self.eval_handler(attr, elem, message.value)
  File "/home/george/Projects/unisi/unisi/users.py", line 173, in eval_handler
    else handler(gui, value)
  File "/home/george/Projects/unisi/unisi/tables.py", line 260, in accept_panda_cell
    table.panda.iat[row_index,col_index] = value
  File "/home/george/.local/lib/python3.10/site-packages/pandas/core/indexing.py", line 2397, in __setitem__
    self.obj._set_value(*key, value=value, takeable=self._takeable)
  File "/home/george/.local/lib/python3.10/site-packages/pandas/core/frame.py", line 4212, in _set_value
    self._mgr.column_setitem(icol, iindex, value, inplace=True)
  File "/home/george/.local/lib/python3.10/site-packages/pandas/core/internals/managers.py", line 1389, in column_setitem
    col_mgr.setitem_inplace(idx, value)
  File "/home/george/.local/lib/python3.10/site-packages/pandas/core/internals/managers.py", line 2102, in setitem_inplace
    super().setitem_inplace(indexer, value)
  File "/home/george/.local/lib/python3.10/site-packages/pandas/core/internals/base.py", line 190, in setitem_inplace
    arr[indexer] = value
IndexError: index 99 is out of bounds for axis 0 with size 99

2024-09-24 22:34:29,849 - INFO - session: ::1-0, screen: void, message: None
  User is connected, session: ::1-0, share: None
2024-10-09 16:40:27,067 - INFO - session: ::1-0, screen: Main, message: None
  User is connected, session: ::1-0, share: None
2024-10-09 16:58:17,228 - INFO - session: ::1-0, screen: Main, message: None
  User is connected, session: ::1-0, share: None
2024-10-09 17:02:49,792 - INFO - session: ::1-0, screen: Parameters, message: root/None->changed(Parameters)
  User is disconnected, session: ::1-0
2024-10-09 17:02:49,973 - INFO - session: ::1-1, screen: void, message: None
  User is connected, session: ::1-1, share: None
2024-10-09 17:03:48,847 - INFO - session: ::1-1, screen: Parameters, message: root/None->changed(Parameters)
  User is disconnected, session: ::1-1
2024-10-09 17:03:48,965 - INFO - session: ::1-2, screen: void, message: None
  User is connected, session: ::1-2, share: None
2024-10-09 17:04:03,513 - INFO - session: ::1-2, screen: Main, message: None
  User is disconnected, session: ::1-2
2024-10-09 17:04:03,670 - INFO - session: ::1-3, screen: void, message: None
  User is connected, session: ::1-3, share: None
2024-10-09 17:04:59,406 - INFO - session: ::1-3, screen: Parameters, message: root/None->changed(Parameters)
  User is disconnected, session: ::1-3
2024-10-09 17:04:59,514 - INFO - session: ::1-4, screen: void, message: None
  User is connected, session: ::1-4, share: None
2024-10-09 17:06:42,428 - INFO - session: ::1-0, screen: Main, message: None
  User is connected, session: ::1-0, share: None
2024-10-09 17:13:45,842 - INFO - session: ::1-0, screen: Main, message: None
  User is connected, session: ::1-0, share: None
2024-10-09 17:21:03,991 - INFO - session: ::1-0, screen: Main, message: None
  User is connected, session: ::1-0, share: None
2024-10-09 17:21:49,821 - INFO - session: ::1-0, screen: Main, message: Screen topology: Press Shift for multi (de)select nodes and links/None->close(True)
  User is disconnected, session: ::1-0
2024-10-09 17:21:50,066 - INFO - session: ::1-1, screen: void, message: None
  User is connected, session: ::1-1, share: None
2024-10-09 17:37:36,068 - INFO - session: ::1-0, screen: Main, message: None
  User is connected, session: ::1-0, share: None
2024-10-09 17:51:23,936 - INFO - session: ::1-0, screen: Main, message: None
  User is connected, session: ::1-0, share: None
2024-10-09 17:51:23,946 - ERROR - Error handling request
Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739258924976

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739257183360

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739258924640

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739257110848

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739257110784

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739258923968

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739257656832

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739258924448

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739257094016

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 299, in _flatten
    result = self._flattened[id(obj)]
KeyError: 135739258921952

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.vscode/extensions/ms-python.debugpy-2024.8.0-linux-x64/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py", line 359, in __call__
    is_stepping = pydev_step_cmd != -1
RecursionError: maximum recursion depth exceeded in comparison

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/george/.local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
    resp = await request_handler(request)
  File "/home/george/.local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
  File "/home/george/Projects/unisi/unisi/server.py", line 121, in websocket_handler
    await send(True if status else empty_app)
  File "/home/george/Projects/unisi/unisi/server.py", line 117, in send
    res = toJson(user.prepare_result(res))
  File "/home/george/Projects/unisi/unisi/common.py", line 60, in toJson
    return jsonpickle.encode(obj,unpicklable = False)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 144, in encode
    context.flatten(value, reset=reset), indent=indent, separators=separators
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 336, in flatten
    return self._flatten(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 688, in _ref_obj_instance
    return self._flatten_obj_instance(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 628, in _flatten_obj_instance
    return self._getstate(state, data)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 405, in _getstate
    state = self._flatten(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 754, in _flatten_dict_obj
    flatten(k, v, data)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 428, in _flatten_key_value_pair
    data[k] = self._flatten(v)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 688, in _ref_obj_instance
    return self._flatten_obj_instance(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 628, in _flatten_obj_instance
    return self._getstate(state, data)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 405, in _getstate
    state = self._flatten(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 394, in _list_recurse
    return [self._flatten(v) for v in obj]
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 394, in <listcomp>
    return [self._flatten(v) for v in obj]
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 394, in _list_recurse
    return [self._flatten(v) for v in obj]
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 394, in <listcomp>
    return [self._flatten(v) for v in obj]
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 688, in _ref_obj_instance
    return self._flatten_obj_instance(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 628, in _flatten_obj_instance
    return self._getstate(state, data)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 405, in _getstate
    state = self._flatten(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 754, in _flatten_dict_obj
    flatten(k, v, data)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 428, in _flatten_key_value_pair
    data[k] = self._flatten(v)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 688, in _ref_obj_instance
    return self._flatten_obj_instance(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 628, in _flatten_obj_instance
    return self._getstate(state, data)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 405, in _getstate
    state = self._flatten(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 394, in _list_recurse
    return [self._flatten(v) for v in obj]
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 394, in <listcomp>
    return [self._flatten(v) for v in obj]
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 301, in _flatten
    result = self._flattened[id(obj)] = self._flatten_impl(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl
    return self._pop(self._flatten_obj(obj))
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj
    raise e
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj
    return flatten_func(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 688, in _ref_obj_instance
    return self._flatten_obj_instance(obj)
  File "/home/george/.local/lib/python3.10/site-packages/jsonpickle/pickler.py", line 620, in _flatten_obj_instance
    state = obj.__getstate__()
  File "/home/george/Projects/unisi/unisi/graphs.py", line 146, in __getstate__
    self._value = dict(nodes = [index_of(self._narray,unit) for unit in self.value['nodes']],
  File "/home/george/Projects/unisi/unisi/units.py", line 32, in __getitem__
    return self[key]
  File "/home/george/Projects/unisi/unisi/units.py", line 32, in __getitem__
    return self[key]
  File "/home/george/Projects/unisi/unisi/units.py", line 32, in __getitem__
    return self[key]
  [Previous line repeated 2910 more times]
  File "/home/george/Projects/unisi/unisi/units.py", line 31, in __getitem__
    def __getitem__(self, key):
  File "/home/george/.vscode/extensions/ms-python.debugpy-2024.8.0-linux-x64/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py", line 469, in __call__
    return None if event == 'call' else NO_FTRACE
RecursionError: maximum recursion depth exceeded in comparison
2024-10-09 17:54:09,709 - INFO - session: ::1-0, screen: Main, message: None
  User is connected, session: ::1-0, share: None
2024-10-09 17:54:19,195 - ERROR - session: ::1-0, screen: Main, message: Screen topology: Press Shift for multi (de)select nodes and links/None->close(True)
  Traceback (most recent call last):
  File "/home/george/Projects/unisi/unisi/server.py", line 139, in websocket_handler
    result = await user.result4message(message)
  File "/home/george/Projects/unisi/unisi/users.py", line 165, in result4message
    result = await self.process(message)
  File "/home/george/Projects/unisi/unisi/users.py", line 278, in process
    return await self.process_element(elem, message)
  File "/home/george/Projects/unisi/unisi/users.py", line 293, in process_element
    result = await self.eval_handler(attr, elem, message.value)
  File "/home/george/Projects/unisi/unisi/users.py", line 174, in eval_handler
    else handler(gui, value)
  File "/home/george/Projects/unisi/unisi/containers.py", line 54, in close
    delete_unit(user.screen.blocks, self.name)
  File "/home/george/Projects/unisi/unisi/common.py", line 165, in delete_unit
    if delete_unit(units[i], name):
  File "/home/george/Projects/unisi/unisi/common.py", line 170, in delete_unit
    units.pop(i)
  File "/home/george/Projects/unisi/unisi/units.py", line 22, in __getattribute__
    super().__getattribute__('_unit')._mark_changed()
  File "/home/george/Projects/unisi/unisi/units.py", line 18, in __getattribute__
    value = getattr(obj, name)
AttributeError: 'list' object has no attribute '_mark_changed'

2024-10-09 17:54:19,195 - INFO - session: ::1-0, screen: Main, message: Screen topology: Press Shift for multi (de)select nodes and links/None->close(True)
  User is disconnected, session: ::1-0
2024-10-09 17:54:33,785 - INFO - session: ::1-1, screen: void, message: None
  User is connected, session: ::1-1, share: None
2024-10-09 17:54:35,572 - ERROR - session: ::1-1, screen: Main, message: Screen topology: Press Shift for multi (de)select nodes and links/None->close(True)
  Traceback (most recent call last):
  File "/home/george/Projects/unisi/unisi/server.py", line 139, in websocket_handler
    result = await user.result4message(message)
  File "/home/george/Projects/unisi/unisi/users.py", line 165, in result4message
    result = await self.process(message)
  File "/home/george/Projects/unisi/unisi/users.py", line 278, in process
    return await self.process_element(elem, message)
  File "/home/george/Projects/unisi/unisi/users.py", line 293, in process_element
    result = await self.eval_handler(attr, elem, message.value)
  File "/home/george/Projects/unisi/unisi/users.py", line 174, in eval_handler
    else handler(gui, value)
  File "/home/george/Projects/unisi/unisi/containers.py", line 54, in close
    delete_unit(user.screen.blocks, self.name)
  File "/home/george/Projects/unisi/unisi/common.py", line 165, in delete_unit
    if delete_unit(units[i], name):
  File "/home/george/Projects/unisi/unisi/common.py", line 170, in delete_unit
    units.pop(i)
  File "/home/george/Projects/unisi/unisi/units.py", line 22, in __getattribute__
    super().__getattribute__('_unit')._mark_changed()
  File "/home/george/Projects/unisi/unisi/units.py", line 18, in __getattribute__
    value = getattr(obj, name)
AttributeError: 'list' object has no attribute '_mark_changed'

2024-10-09 17:54:35,572 - INFO - session: ::1-1, screen: Main, message: Screen topology: Press Shift for multi (de)select nodes and links/None->close(True)
  User is disconnected, session: ::1-1
2024-10-09 17:56:40,390 - INFO - session: ::1-0, screen: Main, message: None
  User is connected, session: ::1-0, share: None
2025-03-20 23:44:16,168 - INFO - session: y4SJXK72n7-0, screen: Panda & params, message: None
  User is connected, session: y4SJXK72n7-0, share: None
2025-03-20 23:44:46,826 - INFO - session: y4SJXK72n7-0, screen: Panda & params, message: root/None->changed(Panda & params)
  User is disconnected, session: y4SJXK72n7-0
2025-03-20 23:44:47,172 - INFO - session: KVyRyeWENL-1, screen: void, message: None
  User is connected, session: KVyRyeWENL-1, share: None
2025-03-20 23:47:51,115 - INFO - session: KVyRyeWENL-1, screen: Panda & params, message: System parameters/Logging steps->changed(15)
  User is disconnected, session: KVyRyeWENL-1
2025-03-20 23:47:51,625 - INFO - session: msMtff4TDA-2, screen: void, message: None
  User is connected, session: msMtff4TDA-2, share: None
2025-03-20 23:52:40,211 - INFO - session: msMtff4TDA-2, screen: Panda & params, message: root/None->changed(Panda & params)
  User is disconnected, session: msMtff4TDA-2
2025-03-20 23:52:40,712 - INFO - session: mw5OP45MNM-3, screen: void, message: None
  User is connected, session: mw5OP45MNM-3, share: None
2025-03-20 23:53:13,020 - INFO - session: mw5OP45MNM-3, screen: Panda & params, message: None
  User is disconnected, session: mw5OP45MNM-3
2025-03-20 23:53:13,357 - INFO - session: oizscQnIuD-4, screen: void, message: None
  User is connected, session: oizscQnIuD-4, share: None
2025-03-20 23:59:09,239 - INFO - session: oizscQnIuD-4, screen: Panda & params, message: root/None->changed(Panda & params)
  User is disconnected, session: oizscQnIuD-4
2025-03-20 23:59:09,582 - INFO - session: orzcMRhYey-5, screen: void, message: None
  User is connected, session: orzcMRhYey-5, share: None
2025-03-21 00:00:16,334 - INFO - session: orzcMRhYey-5, screen: Panda & params, message: None
  User is disconnected, session: orzcMRhYey-5
2025-03-21 00:00:16,489 - INFO - session: 5aL4NCKeZK-6, screen: void, message: None
  User is connected, session: 5aL4NCKeZK-6, share: None
2025-03-21 00:24:12,226 - INFO - session: 5aL4NCKeZK-6, screen: Panda & params, message: Block with HTML/HTML->changed({'type': 'mouseout', 'target': {'tagName': 'BUTTON', 'id': '', 'classList': [], 'attributes': {}, 'value': None}})
  User is disconnected, session: 5aL4NCKeZK-6
2025-03-21 00:24:12,607 - INFO - session: VzcswCxAsh-7, screen: void, message: None
  User is connected, session: VzcswCxAsh-7, share: None
2025-03-21 00:28:14,483 - INFO - session: VzcswCxAsh-7, screen: Panda & params, message: Block with HTML/HTML->changed({'type': 'mouseout', 'target': {'tagName': 'INPUT', 'id': '', 'classList': [], 'attributes': {'type': 'text'}, 'value': None}})
  User is disconnected, session: VzcswCxAsh-7
2025-03-21 00:28:15,029 - INFO - session: Hzt0kfq99S-8, screen: void, message: None
  User is connected, session: Hzt0kfq99S-8, share: None
2025-03-21 00:29:05,216 - ERROR - session: Hzt0kfq99S-8, screen: Panda & params, message: root/None->changed(Panda & params)
  Unknown screen name: Panda & params
2025-03-21 00:29:14,112 - ERROR - session: Hzt0kfq99S-8, screen: Panda & params, message: root/None->changed(Panda & params)
  Unknown screen name: Panda & params
2025-03-21 00:29:39,769 - ERROR - session: Hzt0kfq99S-8, screen: Panda & params, message: root/None->changed(Panda & params)
  Unknown screen name: Panda & params
2025-03-21 00:33:59,507 - INFO - session: 5Bg5XHBYBa-0, screen: Panda & params, message: None
  User is connected, session: 5Bg5XHBYBa-0, share: None
2025-03-21 00:34:01,727 - ERROR - session: 5Bg5XHBYBa-0, screen: Panda & params, message: root/None->changed(Panda & params)
  Element root/None does not exist!
2025-03-21 00:34:09,933 - ERROR - session: 5Bg5XHBYBa-0, screen: Panda & params, message: root/None->changed(Panda & params)
  Element root/None does not exist!
2025-03-21 00:34:54,132 - INFO - session: zfOdQV3hBt-0, screen: Panda & params, message: None
  User is connected, session: zfOdQV3hBt-0, share: None
2025-03-21 00:34:56,999 - ERROR - session: zfOdQV3hBt-0, screen: Panda & params, message: root/None->changed(Panda & params)
  Element root/None does not exist!
2025-03-21 00:36:34,929 - INFO - session: Sy0sP45oTn-0, screen: Panda & params, message: None
  User is connected, session: Sy0sP45oTn-0, share: None
2025-03-21 00:40:49,723 - INFO - session: Sy0sP45oTn-0, screen: Blocks, message: root/None->changed(Blocks)
  User is disconnected, session: Sy0sP45oTn-0
2025-03-21 00:40:50,291 - INFO - session: VHwzxUtwev-1, screen: void, message: None
  User is connected, session: VHwzxUtwev-1, share: None
2025-03-21 00:44:49,305 - INFO - session: VHwzxUtwev-1, screen: Panda & params, message: root/None->changed(Panda & params)
  User is disconnected, session: VHwzxUtwev-1
2025-03-21 00:44:49,909 - INFO - session: kZ3hkwkDXO-2, screen: void, message: None
  User is connected, session: kZ3hkwkDXO-2, share: None
2025-03-21 00:47:49,015 - INFO - session: kZ3hkwkDXO-2, screen: Panda & params, message: root/None->changed(Panda & params)
  User is disconnected, session: kZ3hkwkDXO-2
2025-03-21 00:47:49,399 - INFO - session: OfZ4pcHUca-3, screen: void, message: None
  User is connected, session: OfZ4pcHUca-3, share: None
2025-03-21 00:59:57,364 - INFO - session: OfZ4pcHUca-3, screen: Panda & params, message: Block with HTML/HTML->changed({'type': 'mouseout', 'target': {'tagName': 'INPUT', 'id': '', 'classList': [], 'attributes': {'type': 'text'}, 'value': None}})
  User is disconnected, session: OfZ4pcHUca-3
2025-03-21 00:59:57,926 - INFO - session: TvfkQqrn6n-4, screen: void, message: None
  User is connected, session: TvfkQqrn6n-4, share: None
2025-03-21 01:00:48,872 - INFO - session: TvfkQqrn6n-4, screen: Panda & params, message: root/None->changed(Panda & params)
  User is disconnected, session: TvfkQqrn6n-4
2025-03-21 01:00:49,407 - INFO - session: Mky8ilnDjN-5, screen: void, message: None
  User is connected, session: Mky8ilnDjN-5, share: None
2025-03-21 01:05:27,378 - INFO - session: Mky8ilnDjN-5, screen: Panda & params, message: Block with HTML/HTML->changed({'type': 'mouseout', 'target': {'tagName': 'DIV', 'id': '', 'classList': [], 'attributes': {'data-v-5a9ecb1c': '', 'style': ''}, 'value': None}})
  User is disconnected, session: Mky8ilnDjN-5
2025-03-21 01:05:27,904 - INFO - session: ilu62qmOkU-6, screen: void, message: None
  User is connected, session: ilu62qmOkU-6, share: None
2025-03-21 01:06:43,657 - INFO - session: ilu62qmOkU-6, screen: Panda & params, message: Block with HTML/HTML->changed({'type': 'mouseout', 'target': {'tagName': 'DIV', 'id': '', 'classList': [], 'attributes': {'data-v-5a9ecb1c': '', 'style': ''}, 'value': None}})
  User is disconnected, session: ilu62qmOkU-6
2025-03-21 01:06:44,018 - INFO - session: wJ4I8kGeA7-7, screen: void, message: None
  User is connected, session: wJ4I8kGeA7-7, share: None
2025-03-21 01:06:59,051 - INFO - session: wJ4I8kGeA7-7, screen: Panda & params, message: None
  User is disconnected, session: wJ4I8kGeA7-7
2025-03-21 01:06:59,201 - INFO - session: TnHEUHjLXy-8, screen: void, message: None
  User is connected, session: TnHEUHjLXy-8, share: None
2025-03-21 03:10:41,296 - INFO - session: TnHEUHjLXy-8, screen: Panda & params, message: Block with HTML/HTML->changed({'type': 'mouseout', 'target': {'tagName': 'DIV', 'id': '', 'classList': [], 'attributes': {'data-v-5a9ecb1c': '', 'style': ''}, 'value': None}})
  User is disconnected, session: TnHEUHjLXy-8
2025-03-21 03:10:41,814 - INFO - session: pjulBYBczT-9, screen: void, message: None
  User is connected, session: pjulBYBczT-9, share: None
2025-03-21 03:20:54,019 - INFO - session: pjulBYBczT-9, screen: Panda & params, message: Block with HTML/HTML->changed({'type': 'mouseout', 'target': {'tagName': 'DIV', 'id': '', 'classList': [], 'attributes': {'data-v-5a9ecb1c': '', 'style': ''}, 'value': None}})
  User is disconnected, session: pjulBYBczT-9
2025-03-21 03:20:54,183 - INFO - session: eN4So56auf-10, screen: void, message: None
  User is connected, session: eN4So56auf-10, share: None
2025-03-21 03:21:33,892 - INFO - session: eN4So56auf-10, screen: Panda & params, message: None
  User is disconnected, session: eN4So56auf-10
2025-03-21 03:21:34,377 - INFO - session: dVgqRaHesv-11, screen: void, message: None
  User is connected, session: dVgqRaHesv-11, share: None
2025-03-21 03:21:53,963 - INFO - session: dVgqRaHesv-11, screen: Panda & params, message: root/None->changed(Panda & params)
  User is disconnected, session: dVgqRaHesv-11
2025-03-21 03:21:54,104 - INFO - session: z9bvaTaKth-12, screen: void, message: None
  User is connected, session: z9bvaTaKth-12, share: None
2025-03-21 03:22:50,399 - INFO - session: z9bvaTaKth-12, screen: Blocks, message: root/None->changed(Blocks)
  User is disconnected, session: z9bvaTaKth-12
2025-03-21 03:22:50,547 - INFO - session: Jw7BsBidvz-13, screen: void, message: None
  User is connected, session: Jw7BsBidvz-13, share: None
2025-03-21 03:25:03,653 - INFO - session: Jw7BsBidvz-13, screen: Blocks, message: root/None->changed(Blocks)
  User is disconnected, session: Jw7BsBidvz-13
2025-03-21 03:25:04,158 - INFO - session: 0OMjDmKwp5-14, screen: void, message: None
  User is connected, session: 0OMjDmKwp5-14, share: None
2025-03-21 03:35:05,891 - INFO - session: 0OMjDmKwp5-14, screen: Panda & params, message: Block with HTML/HTML->changed({'type': 'mouseout', 'target': {'tagName': 'INPUT', 'id': '', 'classList': [], 'attributes': {'type': 'text'}, 'value': None}})
  User is disconnected, session: 0OMjDmKwp5-14
2025-03-21 03:35:06,426 - INFO - session: BS9qWm5djL-15, screen: void, message: None
  User is connected, session: BS9qWm5djL-15, share: None
2025-03-21 03:36:11,042 - INFO - session: BS9qWm5djL-15, screen: Panda & params, message: None
  User is disconnected, session: BS9qWm5djL-15
2025-03-21 03:36:11,367 - INFO - session: Frsl4bv3tq-16, screen: void, message: None
  User is connected, session: Frsl4bv3tq-16, share: None
2025-03-21 05:45:17,122 - INFO - session: H2riLXZ1zB-0, screen: Panda & params, message: None
  User is connected, session: H2riLXZ1zB-0, share: None
2025-03-21 05:47:55,058 - INFO - session: aAqsK5UujY-0, screen: Panda & params, message: None
  User is connected, session: aAqsK5UujY-0, share: None
2025-09-08 02:20:01,255 - INFO - session: FvOCkYja79-0, screen: Blocks, message: None
  User is connected, session: FvOCkYja79-0, share: None
2025-09-08 02:24:26,363 - INFO - session: FvOCkYja79-0, screen: Blocks, message: root/None->changed(Blocks)
  User is disconnected, session: FvOCkYja79-0
2025-09-08 02:27:08,918 - INFO - session: n0MbY0f6GY-1, screen: void, message: None
  User is connected, session: n0MbY0f6GY-1, share: None
2025-09-08 02:33:49,372 - INFO - session: RFRVWvXhTS-2, screen: void, message: None
  User is connected, session: RFRVWvXhTS-2, share: None
2025-09-08 03:08:00,807 - INFO - session: 6iWo8yIG4K-0, screen: Blocks, message: None
  User is connected, session: 6iWo8yIG4K-0, share: None
2025-09-08 03:10:01,177 - INFO - session: 6iWo8yIG4K-0, screen: Blocks, message: root/None->changed(Blocks)
  User is disconnected, session: 6iWo8yIG4K-0
2025-09-09 00:45:46,629 - INFO - session: KCpsrvZl1f-0, screen: Blocks, message: None
  User is connected, session: KCpsrvZl1f-0, share: None
2026-02-15 03:47:33,821 - INFO - session: vGW6Ho1iZb-0, screen: Panda & params, message: None
  User is connected, session: vGW6Ho1iZb-0, share: None
2026-02-15 03:50:18,502 - INFO - session: vGW6Ho1iZb-0, screen: Blocks, message: root/None->changed(Blocks)
  User is disconnected, session: vGW6Ho1iZb-0
2026-02-20 01:28:15,362 - INFO - session: rJZcjkWWV4-0, screen: Panda & params, message: None
  User is connected, session: rJZcjkWWV4-0, share: None
2026-02-20 01:34:22,437 - INFO - session: rJZcjkWWV4-0, screen: Panda & params, message: None
  User is disconnected, session: rJZcjkWWV4-0
2026-02-20 01:36:59,806 - INFO - session: e6u0EuBCIe-1, screen: void, message: None
  User is connected, session: e6u0EuBCIe-1, share: None
2026-02-20 01:39:36,022 - INFO - session: e6u0EuBCIe-1, screen: Panda & params, message: None
  User is disconnected, session: e6u0EuBCIe-1
2026-02-20 01:39:57,998 - INFO - session: bC3UyRFY9c-2, screen: void, message: None
  User is connected, session: bC3UyRFY9c-2, share: None
2026-02-20 02:26:25,857 - INFO - session: tKtxOZEZNR-0, screen: Panda & params, message: None
  User is connected, session: tKtxOZEZNR-0, share: None
2026-02-20 02:28:31,516 - INFO - session: tKtxOZEZNR-0, screen: Blocks, message: root/None->changed(Blocks)
  User is disconnected, session: tKtxOZEZNR-0
2026-02-20 02:28:32,636 - INFO - session: fWS84Erqhu-1, screen: void, message: None
  User is connected, session: fWS84Erqhu-1, share: None
