sezanzeb
|
a449755049
|
prevent some gtk main loop error to appear on close
|
2020-12-04 15:06:47 +01:00 |
|
sezanzeb
|
032ebd09c6
|
improved macro parsing error logging
|
2020-12-04 14:52:08 +01:00 |
|
sezanzeb
|
58f4788368
|
some fixes and improvements
|
2020-12-04 14:38:41 +01:00 |
|
sezanzeb
|
28854888a3
|
RX and RY movements as mouse wheel
|
2020-12-03 21:36:15 +01:00 |
|
sezanzeb
|
f1e069cbaa
|
less spam in case of missing read rights on devices
|
2020-12-03 20:54:27 +01:00 |
|
sezanzeb
|
73f3784980
|
more tests
|
2020-12-03 20:37:36 +01:00 |
|
sezanzeb
|
d3ff838aa0
|
some more tests
|
2020-12-03 20:03:53 +01:00 |
|
sezanzeb
|
1dce0e1016
|
some more improvements on resolving data
|
2020-12-03 18:51:50 +01:00 |
|
sezanzeb
|
6dd056541c
|
fixed data path on ubuntu
|
2020-12-03 18:41:04 +01:00 |
|
sezanzeb
|
6c2160ff4e
|
possibly fixed the data path
|
2020-12-03 18:32:28 +01:00 |
|
sezanzeb
|
3e48d899ea
|
fixed Alt_L not working
|
2020-12-03 01:32:36 +01:00 |
|
sezanzeb
|
70f091f39b
|
some fixes, cleaner .change function of mapping
|
2020-12-02 23:27:32 +01:00 |
|
sezanzeb
|
040cea0a8b
|
showing button names instead of numbers
|
2020-12-02 22:41:09 +01:00 |
|
sezanzeb
|
2df1bcc525
|
removed unused empty function
|
2020-12-02 21:41:50 +01:00 |
|
sezanzeb
|
59e893fe7e
|
got rid of the confusing xkb keycode offset
|
2020-12-02 21:41:39 +01:00 |
|
sezanzeb
|
91b9ad5754
|
can map shoulder buttons
|
2020-12-02 21:20:18 +01:00 |
|
sezanzeb
|
cbf97fd44c
|
mapped a D-Pad button
|
2020-12-02 21:03:59 +01:00 |
|
sezanzeb
|
95b09259d3
|
wip
|
2020-12-02 20:48:23 +01:00 |
|
sezanzeb
|
78692f40eb
|
more work for event type to mapping key
|
2020-12-02 20:08:55 +01:00 |
|
sezanzeb
|
edf71e82e0
|
add event type to mapping key
|
2020-12-02 19:33:31 +01:00 |
|
sezanzeb
|
7150be9a7e
|
indicates if a mapping is going on
|
2020-12-02 18:07:46 +01:00 |
|
sezanzeb
|
a0fa0e0341
|
fixed injection
|
2020-12-02 17:40:21 +01:00 |
|
sezanzeb
|
7e30f450ee
|
simplified keycode injection
|
2020-12-02 16:17:52 +01:00 |
|
sezanzeb
|
5d2db7f705
|
better approximation of 60hz
|
2020-12-02 15:27:57 +01:00 |
|
sezanzeb
|
01ab93ef95
|
dividing injector.py into multiple files
|
2020-12-02 15:18:23 +01:00 |
|
sezanzeb
|
39905db774
|
proper test util imports, switched to the recommended pydbus package
|
2020-12-02 14:36:17 +01:00 |
|
sezanzeb
|
8a9b815772
|
tested mapping metadata saving and loading
|
2020-12-02 12:36:03 +01:00 |
|
sezanzeb
|
e7ef652039
|
obsolete reverse mapping
|
2020-12-02 12:29:55 +01:00 |
|
sezanzeb
|
8827e85023
|
test for correct linux header keycode usage
|
2020-12-02 00:58:48 +01:00 |
|
sezanzeb
|
b171845ea1
|
linting
|
2020-12-02 00:02:41 +01:00 |
|
sezanzeb
|
287b1250cc
|
no .terminate anymore, proper multiprocessing coverage, some minor cleanup in injector
|
2020-12-01 23:53:32 +01:00 |
|
sezanzeb
|
3e0428ca29
|
ubuntu fixes
|
2020-12-01 11:01:11 +01:00 |
|
sezanzeb
|
51b6ccfebf
|
more tests
|
2020-11-30 22:42:53 +01:00 |
|
sezanzeb
|
13555a94ce
|
wip more gamepad stuff
|
2020-11-30 21:17:14 +01:00 |
|
sezanzeb
|
3e86e5c1b8
|
fixed all tests
|
2020-11-30 20:57:09 +01:00 |
|
sezanzeb
|
661f56d043
|
more precise mouse gamepad movement
|
2020-11-30 19:54:33 +01:00 |
|
sezanzeb
|
59bb7d5514
|
moving the cursor with the gamepad
|
2020-11-30 19:40:17 +01:00 |
|
sezanzeb
|
1c77934bea
|
improved tests, some fixes
|
2020-11-30 18:59:34 +01:00 |
|
sezanzeb
|
d338ebe7f8
|
support for linux kernel keycode constants
|
2020-11-30 16:22:17 +01:00 |
|
sezanzeb
|
a440b4f7df
|
gamepad buttons as keyboard keys
|
2020-11-30 14:34:27 +01:00 |
|
sezanzeb
|
15a05907c3
|
daemon reloads the config on apply
|
2020-11-29 21:31:28 +01:00 |
|
sezanzeb
|
09dae2594f
|
made it work on an old ubuntu laptop
|
2020-11-29 20:18:00 +01:00 |
|
sezanzeb
|
6d9f1c44c5
|
ensuring ownership of all created files and folders
|
2020-11-29 18:47:40 +01:00 |
|
sezanzeb
|
de9e5c076b
|
not checking for test in can_read_devices
|
2020-11-29 16:23:21 +01:00 |
|
sezanzeb
|
b66e14e57a
|
add_filehandler for any path
|
2020-11-29 16:22:53 +01:00 |
|
sezanzeb
|
be9b069853
|
consistent member naming
|
2020-11-29 16:22:22 +01:00 |
|
sezanzeb
|
a8c96c448e
|
fixed a log
|
2020-11-29 16:22:06 +01:00 |
|
sezanzeb
|
489b23a3ab
|
setup.py dependencies
|
2020-11-29 14:20:32 +01:00 |
|
sezanzeb
|
1ee0e6953a
|
wip debian package
|
2020-11-29 12:16:08 +01:00 |
|
sezanzeb
|
7813620314
|
lint
|
2020-11-29 01:53:12 +01:00 |
|
sezanzeb
|
e6e310c7fc
|
testing connecting to the dbus
|
2020-11-29 01:44:14 +01:00 |
|
sezanzeb
|
b029d7df25
|
more macro tests
|
2020-11-29 00:28:46 +01:00 |
|
sezanzeb
|
d3a1b16d6b
|
testing a short macro in injector tests
|
2020-11-29 00:13:13 +01:00 |
|
sezanzeb
|
cc04f991a9
|
macro improvements
|
2020-11-28 23:50:28 +01:00 |
|
sezanzeb
|
3a178dd6b9
|
improved macro tests
|
2020-11-28 22:54:22 +01:00 |
|
sezanzeb
|
82b7d936f6
|
asyncio macros
|
2020-11-28 20:59:24 +01:00 |
|
sezanzeb
|
c2f6195196
|
linting
|
2020-11-28 19:31:57 +01:00 |
|
sezanzeb
|
52c76fb65a
|
random w, improved parsing debug output
|
2020-11-28 18:52:19 +01:00 |
|
sezanzeb
|
24e3e2f5af
|
simpler examples
|
2020-11-28 18:43:11 +01:00 |
|
sezanzeb
|
f0e57c5276
|
inserted the unfinished macro parsing and running into the injector
|
2020-11-28 18:39:55 +01:00 |
|
sezanzeb
|
82fcafe8a1
|
tests for macro running and parsing
|
2020-11-28 18:27:28 +01:00 |
|
sezanzeb
|
18a5bd678d
|
macro parser
|
2020-11-28 17:49:32 +01:00 |
|
sezanzeb
|
1a16d679cf
|
cloning mappings
|
2020-11-28 15:48:57 +01:00 |
|
sezanzeb
|
ed48306f7f
|
asyncio KeycodeInjector
|
2020-11-28 15:43:24 +01:00 |
|
sezanzeb
|
de26525b6e
|
update README.md
|
2020-11-27 21:57:21 +01:00 |
|
sezanzeb
|
97ae312d06
|
started work on macros
|
2020-11-27 21:27:15 +01:00 |
|
sezanzeb
|
d3b971414a
|
some pylint and tests
|
2020-11-27 00:34:45 +01:00 |
|
sezanzeb
|
ccf1451acf
|
test for the autoload switch
|
2020-11-27 00:23:03 +01:00 |
|
sezanzeb
|
c0df63517b
|
more config tests
|
2020-11-27 00:11:23 +01:00 |
|
sezanzeb
|
cae6cc01ae
|
update readme
|
2020-11-26 23:53:26 +01:00 |
|
sezanzeb
|
a90286c421
|
populating the autoload switch state
|
2020-11-26 21:33:31 +01:00 |
|
sezanzeb
|
007703cabd
|
rearranged the ui a bit
|
2020-11-26 00:07:28 +01:00 |
|
sezanzeb
|
142ecdd0f8
|
switch to autoloat presets
|
2020-11-25 23:55:31 +01:00 |
|
sezanzeb
|
001cc3b8fa
|
access via groups instead of root services with interfaces that are open to everyone
|
2020-11-25 23:36:03 +01:00 |
|
sezanzeb
|
89cb0e00d4
|
wip
|
2020-11-25 21:55:04 +01:00 |
|
sezanzeb
|
3180f8d86a
|
daemon wont create a config file anymore
|
2020-11-25 19:21:04 +01:00 |
|
sezanzeb
|
7e70b00e5b
|
full path to the daemon for loading presets, some TODOs, .json file extension, nested mapping in .json config
|
2020-11-25 00:23:34 +01:00 |
|
sezanzeb
|
a2dc3ef606
|
running without the service on dbus failure
|
2020-11-23 23:42:23 +01:00 |
|
sezanzeb
|
5ab465a80d
|
tested reverse mapping
|
2020-11-23 23:41:13 +01:00 |
|
sezanzeb
|
b56af82caa
|
test for reverse mapping split
|
2020-11-23 21:43:31 +01:00 |
|
sezanzeb
|
327ab9ca90
|
optimized get_keycode
|
2020-11-23 18:47:57 +01:00 |
|
sezanzeb
|
76720b0954
|
update readme
|
2020-11-22 22:08:21 +01:00 |
|
sezanzeb
|
f29abc8660
|
beautiful newline
|
2020-11-22 21:56:25 +01:00 |
|
sezanzeb
|
35967741d8
|
warning
|
2020-11-22 21:54:31 +01:00 |
|
sezanzeb
|
8864c8bcfd
|
ignoring Power Button
|
2020-11-22 21:54:09 +01:00 |
|
sezanzeb
|
8561bfac63
|
pylint 9.70
|
2020-11-22 21:41:29 +01:00 |
|
sezanzeb
|
62ba26345d
|
talks to the daemon
|
2020-11-22 21:04:09 +01:00 |
|
sezanzeb
|
539e31445b
|
improved error handling
|
2020-11-22 21:02:44 +01:00 |
|
sezanzeb
|
1a018dbf90
|
magic numbers
|
2020-11-22 18:02:55 +01:00 |
|
sezanzeb
|
3bce3f50f6
|
properly reads keycode device for devices that are being injected into
|
2020-11-22 17:46:32 +01:00 |
|
sezanzeb
|
6f0e8d97fb
|
wip reading keycodes even though the device is grabbed
|
2020-11-22 16:54:40 +01:00 |
|
sezanzeb
|
6a35d7bcf9
|
reader tests
|
2020-11-22 15:14:43 +01:00 |
|
sezanzeb
|
8c85bf5d39
|
got rid of the interval polling architecture, also displaying mouse keycodes in the status bar
|
2020-11-22 14:47:34 +01:00 |
|
sezanzeb
|
23a08f4c20
|
supports keycodes from mouse-buttons (such as middle-mouse) as well
|
2020-11-22 13:59:28 +01:00 |
|
sezanzeb
|
9996f0170d
|
some comment stuff
|
2020-11-22 13:58:56 +01:00 |
|
sezanzeb
|
855db4a008
|
pretty preset config files
|
2020-11-21 15:12:03 +01:00 |
|
sezanzeb
|
7870c6d83e
|
improved get_devices log
|
2020-11-21 15:07:08 +01:00 |
|
sezanzeb
|
74e98e28df
|
fixed config file doesnt exist
|
2020-11-21 15:00:52 +01:00 |
|
sezanzeb
|
22325c0c8d
|
fixed some installation issues
|
2020-11-21 14:57:08 +01:00 |
|
sezanzeb
|
f91daa2fe8
|
started working on the daemon
|
2020-11-20 21:38:59 +01:00 |
|
sezanzeb
|
6d64b081d0
|
config for autoloading presets
|
2020-11-20 21:38:19 +01:00 |
|
sezanzeb
|
e987f2654e
|
threw some TODOs into it, started on the daemon executable
|
2020-11-20 01:50:40 +01:00 |
|
sezanzeb
|
aa9df32e2b
|
some TODOs
|
2020-11-19 11:58:20 +01:00 |
|
sezanzeb
|
91f304991a
|
testing the injector constructor
|
2020-11-19 11:40:15 +01:00 |
|
sezanzeb
|
4617d56506
|
testing grab retries and capability modification
|
2020-11-19 11:30:01 +01:00 |
|
sezanzeb
|
61d591978d
|
ensuring numlock stays the same on grab
|
2020-11-19 11:12:28 +01:00 |
|
sezanzeb
|
db0876373f
|
removed redundant injection stop
|
2020-11-19 01:45:31 +01:00 |
|
sezanzeb
|
61a231e5fe
|
showing in UI when grab was not possible
|
2020-11-19 01:40:47 +01:00 |
|
sezanzeb
|
855778c52c
|
multiple attempts at grabbing the device
|
2020-11-19 01:02:27 +01:00 |
|
sezanzeb
|
0b713d30c7
|
test for getdevices ignoring evdev.UInput stuff from key-mapper
|
2020-11-19 00:22:22 +01:00 |
|
sezanzeb
|
7567320a2b
|
some more tests
|
2020-11-19 00:10:42 +01:00 |
|
sezanzeb
|
adaddcd7ef
|
tests for KeycodeInjector
|
2020-11-19 00:04:04 +01:00 |
|
sezanzeb
|
6a0c0e30e2
|
removed stuff from tests that was removed
|
2020-11-18 22:33:01 +01:00 |
|
sezanzeb
|
b9787518cf
|
works
|
2020-11-18 22:06:54 +01:00 |
|
sezanzeb
|
d02e3eaa13
|
final commit on sixth
|
2020-11-18 21:39:15 +01:00 |
|
sezanzeb
|
fc52d4fad8
|
still wont work. again.
|
2020-11-18 20:03:37 +01:00 |
|
sezanzeb
|
1ff1f6a702
|
wip
|
2020-11-18 13:17:49 +01:00 |
|
sezanzeb
|
ed24708633
|
saving presets works again
|
2020-11-18 10:33:59 +01:00 |
|
sezanzeb
|
8e24782a61
|
started to outline the new save and load methods
|
2020-11-17 23:49:11 +01:00 |
|
sezanzeb
|
71de04b626
|
organized the archived xkb code
|
2020-11-17 23:48:30 +01:00 |
|
sezanzeb
|
364170c71b
|
overthrowing the functionality completely
|
2020-11-17 23:40:39 +01:00 |
|
sezanzeb
|
7e8c14bb09
|
wip
|
2020-11-17 21:09:28 +01:00 |
|
sezanzeb
|
7dfb65766d
|
started work on injecting keycodes instead of configs-only
|
2020-11-17 14:35:36 +01:00 |
|
sezanzeb
|
a1503c6e16
|
unused time import
|
2020-11-17 00:53:29 +01:00 |
|
sezanzeb
|
d6455b4e01
|
permission stuff
|
2020-11-17 00:51:57 +01:00 |
|
sezanzeb
|
ecc95a6b73
|
avoid jumping window contents on load
|
2020-11-16 17:04:04 +01:00 |
|
sezanzeb
|
098d6fa395
|
loads mappings with modified variations correctly
|
2020-11-16 16:52:43 +01:00 |
|
sezanzeb
|
efce80a911
|
improved get_devices test
|
2020-11-16 16:30:27 +01:00 |
|
sezanzeb
|
899e624071
|
obsolete comment
|
2020-11-16 16:27:46 +01:00 |
|
sezanzeb
|
f2370e4b59
|
chmod proper permissions
|
2020-11-16 16:27:18 +01:00 |
|
sezanzeb
|
d5d86960bf
|
supports modifier-key combinations
|
2020-11-16 16:18:37 +01:00 |
|
sezanzeb
|
b96997630c
|
cleanup, tests for linux.py
|
2020-11-16 15:39:15 +01:00 |
|
sezanzeb
|
719cb75087
|
test delete_preset
|
2020-11-16 14:08:42 +01:00 |
|
sezanzeb
|
9afdbe9219
|
avoid waiting for the InputDevice destructor
|
2020-11-16 14:08:29 +01:00 |
|
sezanzeb
|
6d8fa1cbda
|
clearing the rename field on preset switch
|
2020-11-15 21:09:36 +01:00 |
|
sezanzeb
|
8f0db825fd
|
showing the current keycode, better loading indicator
|
2020-11-15 21:03:56 +01:00 |
|
sezanzeb
|
cee8af2af6
|
loading screen
|
2020-11-15 20:45:41 +01:00 |
|
sezanzeb
|
a381613641
|
got rid of this confusing symlink stuff
|
2020-11-15 20:27:06 +01:00 |
|
sezanzeb
|
b68b958160
|
polkit
|
2020-11-15 18:55:16 +01:00 |
|
sezanzeb
|
2391a5f7dc
|
more tests
|
2020-11-15 12:11:35 +01:00 |
|
sezanzeb
|
18f1ec6121
|
using get_keycode instead of evdev
|
2020-11-15 03:01:11 +01:00 |
|
sezanzeb
|
ba708cfd0a
|
integration test for rows
|
2020-11-15 01:35:35 +01:00 |
|
sezanzeb
|
4c9384f7e3
|
unhighlight rows on change
|
2020-11-15 00:40:19 +01:00 |
|
sezanzeb
|
f5ffd0b1e7
|
unsaved changes dialog
|
2020-11-15 00:27:45 +01:00 |
|
sezanzeb
|
a6091fed00
|
button to load the default preset 2
|
2020-11-14 22:07:43 +01:00 |
|
sezanzeb
|
2f5a66743a
|
button to load the default preset
|
2020-11-14 20:35:57 +01:00 |
|
sezanzeb
|
055132625e
|
fixed deleting rows
|
2020-11-13 00:01:43 +01:00 |
|
sezanzeb
|
dafc157d8f
|
only slightly highlight and work for all themes
|
2020-11-12 23:59:49 +01:00 |
|
sezanzeb
|
0169c9fd76
|
highlights changes
|
2020-11-12 23:09:22 +01:00 |
|
sezanzeb
|
99382dbff1
|
automatically switches to the keycode input
|
2020-11-12 21:36:40 +01:00 |
|
sezanzeb
|
c58c3b5352
|
renamed variable, updated docstring/comment
|
2020-11-10 23:33:57 +01:00 |
|
sezanzeb
|
d4a727f864
|
renaming, keeping unmapped keys at their defaults
|
2020-11-10 23:14:28 +01:00 |
|
sezanzeb
|
d279f2bc5e
|
fixed some stuff that was probably leftover from debugging
|
2020-11-09 23:56:08 +01:00 |
|
sezanzeb
|
fc578d9f61
|
Still moving stuff around
|
2020-11-09 23:47:54 +01:00 |
|
sezanzeb
|
44bc36098f
|
continued rearrangement
|
2020-11-09 23:34:30 +01:00 |
|
sezanzeb
|
a402732bc4
|
refactoring, restructuring
|
2020-11-09 23:16:30 +01:00 |
|
sezanzeb
|
0152e5acf5
|
forgot to change some alsacontrol stuff to key-mapper in comments
|
2020-11-08 21:34:27 +01:00 |
|
sezanzeb
|
7064be391e
|
input validation for mapping change
|
2020-11-08 21:01:58 +01:00 |
|
sezanzeb
|
339154b5e1
|
default keys for unused keys
|
2020-11-08 19:50:30 +01:00 |
|
sezanzeb
|
c4988566ed
|
tests, status bar, tooltips
|
2020-11-08 18:51:35 +01:00 |
|
sezanzeb
|
b88f9d9426
|
more tests
|
2020-11-08 16:27:26 +01:00 |
|
sezanzeb
|
1dd995e101
|
tested the Mapping object
|
2020-11-08 12:48:50 +01:00 |
|
sezanzeb
|
2b1a0de45f
|
debug print cleanup
|
2020-11-08 01:03:13 +01:00 |
|
sezanzeb
|
d93e7f271b
|
seems to be working again
|
2020-11-08 01:02:04 +01:00 |
|
sezanzeb
|
8a496644eb
|
wip, tests failing, stuff broken
|
2020-11-08 00:54:19 +01:00 |
|
sezanzeb
|
c969236e5f
|
mapping is a class now, some simplifications
|
2020-11-06 00:26:49 +01:00 |
|
sezanzeb
|
df7ce29573
|
Reading keycodes from the mouse
|
2020-11-05 01:24:56 +01:00 |
|
sezanzeb
|
b3ddefb98a
|
displaying and saving mappings into the table
|
2020-11-04 01:49:22 +01:00 |
|
sezanzeb
|
0ccc47fed8
|
more beautiful mapping table
|
2020-11-03 23:41:05 +01:00 |
|
sezanzeb
|
7044e6f000
|
fixed tests
|
2020-11-03 00:48:57 +01:00 |
|
sezanzeb
|
aa8bce2faf
|
I just mapped my mouse key
|
2020-11-03 00:43:43 +01:00 |
|
sezanzeb
|
cb700fdf7a
|
renaming and deleting presets
|
2020-11-02 23:52:58 +01:00 |
|
sezanzeb
|
a4f5d0518f
|
linking the whole dir
|
2020-11-02 23:14:11 +01:00 |
|
sezanzeb
|
2952fb47f0
|
some os.path.join refactoring
|
2020-11-02 22:06:05 +01:00 |
|
sezanzeb
|
6406796c3d
|
can apply presets
|
2020-11-02 21:57:28 +01:00 |
|
sezanzeb
|
0ed8b4a412
|
some rearrangement
|
2020-11-02 20:55:17 +01:00 |
|
sezanzeb
|
50d6d21d93
|
using python-evdev
|
2020-11-02 19:47:31 +01:00 |
|
sezanzeb
|
0065000114
|
fixed stuff, dummy configs actually work now
|
2020-11-02 19:17:28 +01:00 |
|
sezanzeb
|
15fec08332
|
creates dummy but working configs
|
2020-11-02 02:44:48 +01:00 |
|
sezanzeb
|
9ac1fefeb1
|
tests for create preset, config lib not needed
|
2020-11-02 02:17:58 +01:00 |
|
sezanzeb
|
02efe37389
|
creating the symbols file, symlinking, more tests
|
2020-11-02 01:25:43 +01:00 |
|
sezanzeb
|
fecfa01bc6
|
parsing libinput_list
|
2020-11-01 21:32:06 +01:00 |
|
sezanzeb
|
26081ac612
|
evtest
|
2020-11-01 20:19:50 +01:00 |
|
sezanzeb
|
2f32589a1d
|
I think I figured that setxkbmap nightmare out
|
2020-11-01 00:51:34 +01:00 |
|
sezanzeb
|
4e4d2cbd5b
|
idk
|
2020-10-31 20:19:46 +01:00 |
|
sezanzeb
|
ac1ba6dba3
|
creating and selecting presets - super buggy
|
2020-10-31 19:10:40 +01:00 |
|
sezanzeb
|
916ec6278a
|
bunch of stuff
|
2020-10-31 18:48:03 +01:00 |
|
sezanzeb
|
382ede3d98
|
show devices, adding rows
|
2020-10-31 17:00:02 +01:00 |
|
sezanzeb
|
ee28c59bed
|
test for config contents
|
2020-10-31 15:29:25 +01:00 |
|
sezanzeb
|
a3f814f063
|
creating config structure
|
2020-10-31 15:22:58 +01:00 |
|
sezanzeb
|
f50a7063e8
|
starts and closes
|
2020-10-31 15:03:31 +01:00 |
|
sezanzeb
|
163f1b646d
|
config, more renaming, some glade prototype
|
2020-10-31 14:43:09 +01:00 |
|
sezanzeb
|
82fad5f26f
|
rename
|
2020-10-31 14:02:59 +01:00 |
|