diff --git a/.gitignore b/.gitignore index ecf7ed9..45b0818 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ plymouth-0.8.4.tar.bz2 /plymouth-0.9.3.tar.bz2 /plymouth-0.9.3.tar.xz /plymouth-0.9.4.tar.xz +/plymouth-a8aad27.tar.gz diff --git a/0001-Revert-configure-bump-so-name.patch b/0001-Revert-configure-bump-so-name.patch new file mode 100644 index 0000000..9440de0 --- /dev/null +++ b/0001-Revert-configure-bump-so-name.patch @@ -0,0 +1,26 @@ +From 696f93e5996634473fb554e07ba2d0775be2a814 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 1 Oct 2019 12:11:09 +0200 +Subject: [PATCH] Revert "configure: bump so name" + +This reverts commit be27b260042e76aba988b88a4f26983247e02bde. +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 2257374..507145e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -26,7 +26,7 @@ PKG_PROG_PKG_CONFIG + LT_INIT([dlopen disable-static pic-only]) + + ## increment if the interface has additions, changes, removals. +-LT_CURRENT=5 ++LT_CURRENT=4 + + ## increment any time the source changes; set to + ## 0 if you increment CURRENT +-- +2.23.0 + diff --git a/plymouth-more-updates.patch b/plymouth-more-updates.patch deleted file mode 100644 index 9269adb..0000000 --- a/plymouth-more-updates.patch +++ /dev/null @@ -1,870 +0,0 @@ -From 475ff0fcba57f19b5713500ced58bbeef11bb4c2 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Sun, 26 May 2019 17:54:05 +0200 -Subject: [PATCH 1/5] drm: Fix tiled mode detection - -The TILE property is present on all connectors which are DisplayPort -MST (Multi-Stream) outputs, independent if they are connected to a tiled -display are not. - -Starting with the 5.2 kernel, it is actually present on almost all outputs. - -Rather then just checking if the property is present, check that if it -is present it has a valid (non zero) blob-id assigned to it, this fixes -us mis-identifying DP MST outputs as always being tiled. - -Which in turn fixes us failing to pick the preferred mode on these outputs. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 88c9d97..7ddd9c5 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -459,7 +459,8 @@ ply_renderer_connector_get_rotation_and_tiled (ply_renderer_backend_t *back - output->rotation = connector_orientation_prop_to_rotation (prop, connector->prop_values[i]); - - if ((prop->flags & DRM_MODE_PROP_BLOB) && -- strcmp (prop->name, "TILE") == 0) -+ strcmp (prop->name, "TILE") == 0 && -+ connector->prop_values[i] != 0) - output->tiled = true; - - if ((prop->flags & DRM_MODE_PROP_ENUM) && --- -2.21.0 - -From cd4a6010942c6765f5659a2eb88686121db4ccd8 Mon Sep 17 00:00:00 2001 -From: Richard Hughes -Date: Mon, 25 Mar 2019 09:39:24 +0000 -Subject: [PATCH 2/5] Add a new firmware-upgrade mode for use by fwupd - -This allows us to have accurate localised text, and also to use the vendor BIOS -logo when applying firmware updates. ---- - src/client/plymouth.c | 6 ++++++ - src/libply-splash-core/ply-boot-splash-plugin.h | 3 ++- - src/main.c | 7 +++++++ - src/plugins/splash/script/script-lib-plymouth.c | 3 +++ - src/plugins/splash/throbgress/plugin.c | 6 ++++-- - src/plugins/splash/two-step/plugin.c | 8 ++++++-- - themes/bgrt/bgrt.plymouth.in | 8 ++++++++ - themes/spinner/spinner.plymouth.in | 8 ++++++++ - 8 files changed, 44 insertions(+), 5 deletions(-) - -diff --git a/src/client/plymouth.c b/src/client/plymouth.c -index a11753a..be74ae7 100644 ---- a/src/client/plymouth.c -+++ b/src/client/plymouth.c -@@ -787,6 +787,7 @@ on_change_mode_request (state_t *state, - bool reboot = false; - bool updates = false; - bool system_upgrade = false; -+ bool firmware_upgrade = false; - const char *mode = NULL; - - ply_command_parser_get_command_options (state->command_parser, -@@ -796,6 +797,7 @@ on_change_mode_request (state_t *state, - "reboot", &reboot, - "updates", &updates, - "system-upgrade", &system_upgrade, -+ "firmware-upgrade", &firmware_upgrade, - NULL); - - if (boot_up) -@@ -808,6 +810,8 @@ on_change_mode_request (state_t *state, - mode = "updates"; - else if (system_upgrade) - mode = "system-upgrade"; -+ else if (firmware_upgrade) -+ mode = "firmware-upgrade"; - - if (mode) { - ply_boot_client_change_mode (state->client, mode, -@@ -901,6 +905,8 @@ main (int argc, - PLY_COMMAND_OPTION_TYPE_FLAG, - "system-upgrade", "Upgrading the OS to a new version", - PLY_COMMAND_OPTION_TYPE_FLAG, -+ "firmware-upgrade", "Upgrading firmware to a new version", -+ PLY_COMMAND_OPTION_TYPE_FLAG, - NULL); - - ply_command_parser_add_command (state.command_parser, -diff --git a/src/libply-splash-core/ply-boot-splash-plugin.h b/src/libply-splash-core/ply-boot-splash-plugin.h -index 3fa56ce..227147f 100644 ---- a/src/libply-splash-core/ply-boot-splash-plugin.h -+++ b/src/libply-splash-core/ply-boot-splash-plugin.h -@@ -41,8 +41,9 @@ typedef enum - PLY_BOOT_SPLASH_MODE_REBOOT, - PLY_BOOT_SPLASH_MODE_UPDATES, - PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE, -+ PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE, - PLY_BOOT_SPLASH_MODE_INVALID, -- PLY_BOOT_SPLASH_MODE_COUNT = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE + 1, -+ PLY_BOOT_SPLASH_MODE_COUNT = PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE + 1, - } ply_boot_splash_mode_t; - - typedef struct _ply_boot_splash_plugin ply_boot_splash_plugin_t; -diff --git a/src/main.c b/src/main.c -index a6f0b01..2f04e11 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -206,6 +206,8 @@ on_change_mode (state_t *state, - state->mode = PLY_BOOT_SPLASH_MODE_UPDATES; - else if (strcmp (mode, "system-upgrade") == 0) - state->mode = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE; -+ else if (strcmp (mode, "firmware-upgrade") == 0) -+ state->mode = PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE; - else - return; - -@@ -675,6 +677,7 @@ get_cache_file_for_mode (ply_boot_splash_mode_t mode) - break; - case PLY_BOOT_SPLASH_MODE_UPDATES: - case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: -+ case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: - filename = NULL; - break; - case PLY_BOOT_SPLASH_MODE_INVALID: -@@ -704,6 +707,7 @@ get_log_file_for_state (state_t *state) - case PLY_BOOT_SPLASH_MODE_REBOOT: - case PLY_BOOT_SPLASH_MODE_UPDATES: - case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: -+ case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: - filename = _PATH_DEVNULL; - break; - case PLY_BOOT_SPLASH_MODE_INVALID: -@@ -730,6 +734,7 @@ get_log_spool_file_for_mode (ply_boot_splash_mode_t mode) - case PLY_BOOT_SPLASH_MODE_REBOOT: - case PLY_BOOT_SPLASH_MODE_UPDATES: - case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: -+ case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: - filename = NULL; - break; - case PLY_BOOT_SPLASH_MODE_INVALID: -@@ -2149,6 +2154,8 @@ main (int argc, - state.mode = PLY_BOOT_SPLASH_MODE_UPDATES; - else if (strcmp (mode_string, "system-upgrade") == 0) - state.mode = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE; -+ else if (strcmp (mode_string, "firmware-upgrade") == 0) -+ state.mode = PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE; - else - state.mode = PLY_BOOT_SPLASH_MODE_BOOT_UP; - -diff --git a/src/plugins/splash/script/script-lib-plymouth.c b/src/plugins/splash/script/script-lib-plymouth.c -index ca7ad77..d578223 100644 ---- a/src/plugins/splash/script/script-lib-plymouth.c -+++ b/src/plugins/splash/script/script-lib-plymouth.c -@@ -79,6 +79,9 @@ static script_return_t plymouth_get_mode (script_state_t *state, - case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: - obj = script_obj_new_string ("system-upgrade"); - break; -+ case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: -+ obj = script_obj_new_string ("firmware-upgrade"); -+ break; - case PLY_BOOT_SPLASH_MODE_INVALID: - default: - obj = script_obj_new_string ("unknown"); -diff --git a/src/plugins/splash/throbgress/plugin.c b/src/plugins/splash/throbgress/plugin.c -index 3982821..86be064 100644 ---- a/src/plugins/splash/throbgress/plugin.c -+++ b/src/plugins/splash/throbgress/plugin.c -@@ -723,7 +723,8 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin, - double total_duration; - - if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES || -- plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE) -+ plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE) - return; - - total_duration = duration / percent_done; -@@ -935,7 +936,8 @@ system_update (ply_boot_splash_plugin_t *plugin, - ply_list_node_t *node; - - if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES && -- plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE) -+ plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE && -+ plugin->mode != PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE) - return; - - node = ply_list_get_first_node (plugin->views); -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index e8b91ec..caf03fc 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -253,6 +253,7 @@ view_load_end_animation (view_t *view) - case PLY_BOOT_SPLASH_MODE_BOOT_UP: - case PLY_BOOT_SPLASH_MODE_UPDATES: - case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: -+ case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: - animation_prefix = "startup-animation-"; - break; - case PLY_BOOT_SPLASH_MODE_SHUTDOWN: -@@ -1006,6 +1007,7 @@ create_plugin (ply_key_file_t *key_file) - load_mode_settings (plugin, key_file, "reboot", PLY_BOOT_SPLASH_MODE_REBOOT); - load_mode_settings (plugin, key_file, "updates", PLY_BOOT_SPLASH_MODE_UPDATES); - load_mode_settings (plugin, key_file, "system-upgrade", PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE); -+ load_mode_settings (plugin, key_file, "firmware-upgrade", PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE); - - if (plugin->use_firmware_background) - plugin->background_bgrt_image = ply_image_new ("/sys/firmware/acpi/bgrt/image"); -@@ -1583,7 +1585,8 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin, - double percent_done) - { - if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES || -- plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE) -+ plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE) - return; - - if (plugin->state != PLY_BOOT_SPLASH_DISPLAY_NORMAL) -@@ -1791,7 +1794,8 @@ system_update (ply_boot_splash_plugin_t *plugin, - char buf[64]; - - if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES && -- plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE) -+ plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE && -+ plugin->mode != PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE) - return; - - node = ply_list_get_first_node (plugin->views); -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index 39bfdc5..ac07bc9 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -46,3 +46,11 @@ ProgressBarShowPercentComplete=true - UseProgressBar=true - _Title=Upgrading System... - _SubTitle=Do not turn off your computer -+ -+[firmware-upgrade] -+SuppressMessages=true -+ProgressBarShowPercentComplete=true -+UseProgressBar=true -+UseFirmwareBackground=true -+_Title=Upgrading Firmware... -+_SubTitle=Do not turn off your computer -diff --git a/themes/spinner/spinner.plymouth.in b/themes/spinner/spinner.plymouth.in -index 5c0b297..5e5078e 100644 ---- a/themes/spinner/spinner.plymouth.in -+++ b/themes/spinner/spinner.plymouth.in -@@ -36,3 +36,11 @@ ProgressBarShowPercentComplete=true - UseProgressBar=true - _Title=Upgrading System... - _SubTitle=Do not turn off your computer -+ -+[firmware-upgrade] -+SuppressMessages=true -+ProgressBarShowPercentComplete=true -+UseProgressBar=true -+UseFirmwareBackground=true -+_Title=Upgrading Firmware... -+_SubTitle=Do not turn off your computer --- -2.21.0 - -From 97a3d7b422c88fb0e874331b7948daa332d7e78d Mon Sep 17 00:00:00 2001 -From: ZhaoQiang -Date: Sun, 2 Jun 2019 19:52:58 +0000 -Subject: [PATCH 3/5] ply-text-display.c: Correct vi format line make vi can - directly edit this file without errors and make it use 8 space tabs etc. - ---- - src/libply-splash-core/ply-text-display.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/libply-splash-core/ply-text-display.c b/src/libply-splash-core/ply-text-display.c -index 83bf602..7bf6e06 100644 ---- a/src/libply-splash-core/ply-text-display.c -+++ b/src/libply-splash-core/ply-text-display.c -@@ -333,4 +333,4 @@ ply_text_display_get_terminal (ply_text_display_t *display) - return display->terminal; - } - --/* vim: set ts= 4 sw= 4 et ai ci cino= {.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ --- -2.21.0 - -From 88f6bac356fdc6df130516fe30537a8fecba0c90 Mon Sep 17 00:00:00 2001 -From: ZhaoQiang -Date: Wed, 5 Jun 2019 10:42:24 +0000 -Subject: [PATCH 4/5] Unify all code's vi format control. Update several file's - vi format control line to make it easy to maintain. - ---- - src/libply-splash-core/ply-keyboard.c | 2 +- - src/libply-splash-core/ply-keyboard.h | 3 ++- - src/libply-splash-core/ply-pixel-buffer.c | 2 +- - src/libply-splash-core/ply-pixel-display.c | 2 +- - src/libply-splash-core/ply-pixel-display.h | 3 ++- - src/libply-splash-core/ply-terminal.c | 2 +- - src/libply-splash-core/ply-terminal.h | 3 ++- - src/libply-splash-core/ply-text-display.h | 3 ++- - src/main.c | 2 +- - src/plugins/renderers/drm/plugin.c | 3 ++- - src/plugins/renderers/frame-buffer/plugin.c | 3 ++- - src/plugins/renderers/x11/plugin.c | 2 +- - src/plugins/splash/two-step/plugin.c | 2 +- - 13 files changed, 19 insertions(+), 13 deletions(-) - -diff --git a/src/libply-splash-core/ply-keyboard.c b/src/libply-splash-core/ply-keyboard.c -index 27395e0..b174261 100644 ---- a/src/libply-splash-core/ply-keyboard.c -+++ b/src/libply-splash-core/ply-keyboard.c -@@ -603,4 +603,4 @@ ply_keyboard_get_renderer (ply_keyboard_t *keyboard) - return NULL; - } - --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply-splash-core/ply-keyboard.h b/src/libply-splash-core/ply-keyboard.h -index dd428c0..008a804 100644 ---- a/src/libply-splash-core/ply-keyboard.h -+++ b/src/libply-splash-core/ply-keyboard.h -@@ -77,4 +77,5 @@ ply_renderer_t *ply_keyboard_get_renderer (ply_keyboard_t *keyboard); - #endif - - #endif /* PLY_KEYBOARD_H */ --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply-splash-core/ply-pixel-buffer.c b/src/libply-splash-core/ply-pixel-buffer.c -index 51f9c4d..aa4b344 100644 ---- a/src/libply-splash-core/ply-pixel-buffer.c -+++ b/src/libply-splash-core/ply-pixel-buffer.c -@@ -1140,4 +1140,4 @@ ply_pixel_buffer_rotate_upright (ply_pixel_buffer_t *old_buffer) - return buffer; - } - --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply-splash-core/ply-pixel-display.c b/src/libply-splash-core/ply-pixel-display.c -index dc088bb..8ef93b1 100644 ---- a/src/libply-splash-core/ply-pixel-display.c -+++ b/src/libply-splash-core/ply-pixel-display.c -@@ -189,4 +189,4 @@ ply_pixel_display_set_draw_handler (ply_pixel_display_t *display, - display->draw_handler_user_data = user_data; - } - --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply-splash-core/ply-pixel-display.h b/src/libply-splash-core/ply-pixel-display.h -index a57b9a9..a5cfd88 100644 ---- a/src/libply-splash-core/ply-pixel-display.h -+++ b/src/libply-splash-core/ply-pixel-display.h -@@ -69,4 +69,5 @@ void ply_pixel_display_unpause_updates (ply_pixel_display_t *display); - #endif - - #endif /* PLY_PIXEL_DISPLAY_H */ --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply-splash-core/ply-terminal.c b/src/libply-splash-core/ply-terminal.c -index f3b32fe..0190f9e 100644 ---- a/src/libply-splash-core/ply-terminal.c -+++ b/src/libply-splash-core/ply-terminal.c -@@ -1049,4 +1049,4 @@ ply_terminal_stop_watching_for_input (ply_terminal_t *terminal, - } - } - --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply-splash-core/ply-terminal.h b/src/libply-splash-core/ply-terminal.h -index 7cfcc59..620ee9e 100644 ---- a/src/libply-splash-core/ply-terminal.h -+++ b/src/libply-splash-core/ply-terminal.h -@@ -117,4 +117,5 @@ void ply_terminal_stop_watching_for_input (ply_terminal_t *terminal - #endif - - #endif /* PLY_TERMINAL_H */ --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply-splash-core/ply-text-display.h b/src/libply-splash-core/ply-text-display.h -index 4a56aba..774dd4d 100644 ---- a/src/libply-splash-core/ply-text-display.h -+++ b/src/libply-splash-core/ply-text-display.h -@@ -86,4 +86,5 @@ void ply_text_display_unpause_updates (ply_text_display_t *display); - #endif - - #endif /* PLY_TEXT_DISPLAY_H */ --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/main.c b/src/main.c -index 2f04e11..6fceb20 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -2308,4 +2308,4 @@ main (int argc, - - return exit_code; - } --/* vim: set sts=4 ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -+/* vim: set ts=4 ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 7ddd9c5..d9d5c37 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -1824,4 +1824,5 @@ ply_renderer_backend_get_interface (void) - - return &plugin_interface; - } --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/plugins/renderers/frame-buffer/plugin.c b/src/plugins/renderers/frame-buffer/plugin.c -index b4050c5..065e484 100644 ---- a/src/plugins/renderers/frame-buffer/plugin.c -+++ b/src/plugins/renderers/frame-buffer/plugin.c -@@ -744,4 +744,5 @@ ply_renderer_backend_get_interface (void) - - return &plugin_interface; - } --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/plugins/renderers/x11/plugin.c b/src/plugins/renderers/x11/plugin.c -index 76addda..7d2a730 100644 ---- a/src/plugins/renderers/x11/plugin.c -+++ b/src/plugins/renderers/x11/plugin.c -@@ -552,4 +552,4 @@ ply_renderer_backend_get_interface (void) - return &plugin_interface; - } - --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index caf03fc..434bcf2 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -1892,4 +1892,4 @@ ply_boot_splash_plugin_get_interface (void) - return &plugin_interface; - } - --/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ --- -2.21.0 - -From 2449ea52006238f6d0e61bae2f0630e02bedc5e6 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 24 May 2019 22:49:15 +0200 -Subject: [PATCH 5/5] two-step: Add support for firmware-splashes with rotation - status bits set - -Before the ACPI 6.2 specification, the BGRT table did not contain any rotation -information, so to make sure that the firmware-splash showed the right way up -the firmware would contain a pre-rotated image and our BGRT / firmware-splash -loading code assumed this is alwast true. - -Starting with ACPI 6.2 tge bgrt status fields has 2 bits to tell the firmware -the image needs to be rotated before being displayed. If these bits are set -then the firmwares-splash is not pre-rotated and we must handle it differently. - -This commit adds support for reading the new rotation bits from the sysfs -bgrt/status file and adds handling for the case where the bits indicate -that the image is not pre-rotated. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 84 ++++++++++++++++++++++++++-- - 1 file changed, 78 insertions(+), 6 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 434bcf2..795bded 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -73,6 +73,12 @@ - #define PROGRESS_BAR_WIDTH 400 - #define PROGRESS_BAR_HEIGHT 5 - -+#define BGRT_STATUS_ORIENTATION_OFFSET_0 (0 << 1) -+#define BGRT_STATUS_ORIENTATION_OFFSET_90 (1 << 1) -+#define BGRT_STATUS_ORIENTATION_OFFSET_180 (2 << 1) -+#define BGRT_STATUS_ORIENTATION_OFFSET_270 (3 << 1) -+#define BGRT_STATUS_ORIENTATION_OFFSET_MASK (3 << 1) -+ - typedef enum - { - PLY_BOOT_SPLASH_DISPLAY_NORMAL, -@@ -298,12 +304,41 @@ view_load_end_animation (view_t *view) - } - - static bool --get_bgrt_sysfs_offsets(int *x_offset, int *y_offset) -+get_bgrt_sysfs_info(int *x_offset, int *y_offset, -+ ply_pixel_buffer_rotation_t *rotation) - { - bool ret = false; - char buf[64]; -+ int status; - FILE *f; - -+ f = fopen("/sys/firmware/acpi/bgrt/status", "r"); -+ if (!f) -+ return false; -+ -+ if (!fgets(buf, sizeof(buf), f)) -+ goto out; -+ -+ if (sscanf(buf, "%d", &status) != 1) -+ goto out; -+ -+ fclose(f); -+ -+ switch (status & BGRT_STATUS_ORIENTATION_OFFSET_MASK) { -+ case BGRT_STATUS_ORIENTATION_OFFSET_0: -+ *rotation = PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; -+ break; -+ case BGRT_STATUS_ORIENTATION_OFFSET_90: -+ *rotation = PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE; -+ break; -+ case BGRT_STATUS_ORIENTATION_OFFSET_180: -+ *rotation = PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN; -+ break; -+ case BGRT_STATUS_ORIENTATION_OFFSET_270: -+ *rotation = PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE; -+ break; -+ } -+ - f = fopen("/sys/firmware/acpi/bgrt/xoffset", "r"); - if (!f) - return false; -@@ -347,23 +382,61 @@ static void - view_set_bgrt_background (view_t *view) - { - ply_pixel_buffer_rotation_t panel_rotation = PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; -+ ply_pixel_buffer_rotation_t bgrt_rotation = PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; - int x_offset, y_offset, sysfs_x_offset, sysfs_y_offset, width, height; - int panel_width = 0, panel_height = 0, panel_scale = 1; - int screen_width, screen_height, screen_scale; - ply_pixel_buffer_t *bgrt_buffer; -+ bool have_panel_props; - - if (!view->plugin->background_bgrt_image) - return; - -+ if (!get_bgrt_sysfs_info(&sysfs_x_offset, &sysfs_y_offset, -+ &bgrt_rotation)) { -+ ply_trace ("get bgrt sysfs info failed"); -+ return; -+ } -+ - screen_width = ply_pixel_display_get_width (view->display); - screen_height = ply_pixel_display_get_height (view->display); - screen_scale = ply_pixel_display_get_device_scale (view->display); - - bgrt_buffer = ply_image_get_buffer (view->plugin->background_bgrt_image); - -- if (ply_renderer_get_panel_properties (ply_pixel_display_get_renderer (view->display), -- &panel_width, &panel_height, -- &panel_rotation, &panel_scale)) { -+ have_panel_props = ply_renderer_get_panel_properties (ply_pixel_display_get_renderer (view->display), -+ &panel_width, &panel_height, -+ &panel_rotation, &panel_scale); -+ -+ /* -+ * Before the ACPI 6.2 specification, the BGRT table did not contain -+ * any rotation information, so to make sure that the firmware-splash -+ * showed the right way up the firmware would contain a pre-rotated -+ * image. Starting with ACPI 6.2 the bgrt status fields has 2 bits -+ * to tell the firmware the image needs to be rotated before being -+ * displayed. -+ * If these bits are set then the firmwares-splash is not pre-rotated, -+ * in this case we must not rotate it when rendering and when doing -+ * comparisons with the panel-size we must use the post rotation -+ * panel-size. -+ */ -+ if (bgrt_rotation != PLY_PIXEL_BUFFER_ROTATE_UPRIGHT) { -+ if (bgrt_rotation != panel_rotation) { -+ ply_trace ("bgrt orientation mismatch, bgrt_rot %d panel_rot %d", (int)bgrt_rotation, (int)panel_rotation); -+ return; -+ } -+ -+ /* Set panel properties to their post-rotations values */ -+ if (panel_rotation == PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE || -+ panel_rotation == PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE) { -+ int temp = panel_width; -+ panel_width = panel_height; -+ panel_height = temp; -+ } -+ panel_rotation = PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; -+ } -+ -+ if (have_panel_props) { - /* Upside-down panels are fixed up in HW by the GOP, so the - * bgrt image is not rotated in this case. - */ -@@ -396,8 +469,7 @@ view_set_bgrt_background (view_t *view) - * panel's native resolution and then we correct for any difference - * between the (external) screen's and the panel's resolution. - */ -- if (panel_width != 0 && panel_height != 0 && -- get_bgrt_sysfs_offsets(&sysfs_x_offset, &sysfs_y_offset) && -+ if (have_panel_props && - (panel_width - view->plugin->background_bgrt_raw_width) / 2 == sysfs_x_offset) { - if (panel_rotation == PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE || - panel_rotation == PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE) { --- -2.21.0 - -From aac0f839ec120fdd4dadd198709216f313bb0ac0 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 18 Jul 2019 17:51:54 +0200 -Subject: [PATCH] two-step: Deal with buggy firmware which does not pre-rotate - the bgrt image - -Some buggy Lenovo 2-in-1s with a 90 degree rotated panel, behave as -if the panel is mounted up-right / not rotated at all. These devices -have a buggy efifb size (landscape resolution instead of the actual -portrait resolution of the panel), this gets fixed-up by the kernel. - -These buggy devices also do not pre-rotate the bgrt_image nor do -they set the ACPI-6.2 rotation status-bits. We can detect this by -checking that the bgrt_image is perfectly centered horizontally -when we use the panel's height as the width. - -This commit uses this check to override the bgrt-rotation read from -the ACPI-6.2 rotation status-bits, fixing us displaying the bgrt image -with the wrong rotation. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1730783 -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 795bded..2e596d5 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -408,6 +408,23 @@ view_set_bgrt_background (view_t *view) - &panel_width, &panel_height, - &panel_rotation, &panel_scale); - -+ /* -+ * Some buggy Lenovo 2-in-1s with a 90 degree rotated panel, behave as -+ * if the panel is mounted up-right / not rotated at all. These devices -+ * have a buggy efifb size (landscape resolution instead of the actual -+ * portrait resolution of the panel), this gets fixed-up by the kernel. -+ * These buggy devices also do not pre-rotate the bgrt_image nor do -+ * they set the ACPI-6.2 rotation status-bits. We can detect this by -+ * checking that the bgrt_image is perfectly centered horizontally -+ * when we use the panel's height as the width. -+ */ -+ if (have_panel_props && -+ (panel_rotation == PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE || -+ panel_rotation == PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE) && -+ (panel_width - view->plugin->background_bgrt_raw_width) / 2 != sysfs_x_offset && -+ (panel_height - view->plugin->background_bgrt_raw_width) / 2 == sysfs_x_offset) -+ bgrt_rotation = panel_rotation; -+ - /* - * Before the ACPI 6.2 specification, the BGRT table did not contain - * any rotation information, so to make sure that the firmware-splash --- -2.21.0 - -From 4b3be154867ddfc3315a39e57d23a374142c7d2f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Sun, 25 Aug 2019 18:01:59 +0200 -Subject: [PATCH 1/3] two-step: bgrt: Add workaround for desktops which do not - use the golden ratio - -On desktops (no panel) we normally do not use the BGRT provided -xoffset and yoffset because the resolution they are intended for -may be differtent then the resolution of the current display. - -On some desktops (no panel) the image gets centered not only -horizontally, but also vertically. In this case our default of using -the golden ratio for the vertical position causes the BGRT image -to jump. - -To avoid this this commits adds an extra check to see if the provided -xoffset and yoffset perfectly center the image and in that case uses them. - -An example of a system needing this workaround is the Minix Neo Z83-4. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 2e596d5..b5ef926 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -506,6 +506,24 @@ view_set_bgrt_background (view_t *view) - } - } - -+ /* -+ * On desktops (no panel) we normally do not use the BGRT provided -+ * xoffset and yoffset because the resolution they are intended for -+ * may be differtent then the resolution of the current display. -+ * -+ * On some desktops (no panel) the image gets centered not only -+ * horizontally, but also vertically. In this case our default of using -+ * the golden ratio for the vertical position causes the BGRT image -+ * to jump. To avoid this we check here if the provided xoffset and -+ * yoffset perfectly center the image and in that case we use them. -+ */ -+ if (!have_panel_props && screen_scale == 1 && -+ (screen_width - width ) / 2 == sysfs_x_offset && -+ (screen_height - height) / 2 == sysfs_y_offset) { -+ x_offset = sysfs_x_offset; -+ y_offset = sysfs_y_offset; -+ } -+ - ply_trace ("using %dx%d bgrt image centered at %dx%d for %dx%d screen", - width, height, x_offset, y_offset, screen_width, screen_height); - --- -2.23.0 - -From 7bd45c782eb7a76005ab7f92de4b51fc2ecb8068 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 6 Sep 2019 17:21:45 +0200 -Subject: [PATCH 2/3] ply-device-manager: De-activate and close renderer on - device hot unplug - -When a device gets hot unplugged, we should de-activate and close the -renderer before freeing it. - -Speficially this fixes a problem where plymout's display "freezes" when -used with AMD GPUs which can be handled by both the radeon or the amdgpu -kms driver and the user has added kernel commandline options to prefer -the amdgpu driver. In this case the following happens: - -1) radeon driver gets loaded, creates /dev/dri/card0 generating a udev - "add /dev/dri/card0" event. -2) radeon driver's "load" method checks if it should bind, comes to the - conclusion it should not, causing the probe of the device to be - aborted and /dev/dri/card0 to be unregistered generating a udev - "remove /dev/dri/card0" event -3) amdgpu driver loads, creates /dev/dri/card0 generating another udev - "add /dev/dri/card0" event. -4) plymouth loads while udev is still catching up with kernel events, - plymouth sees the first "add" event opens /dev/dri/card0 (which is - already managed by amdgpu at this time) finds outputs, shows splash -5) plymouth gets the "remove" events tears down the renderer, but - since deactivate and close were not called before this commit, - plymouth keeps the master rights attached to the old-fd which is - leaked at this point -6) plymouth gets the second "add" event brings everything back up, but - it cannot get master rights, since there can only be 1 master and the - leaked fd is the master. This leads to lots of: - "Couldn't set scan out buffer" errors and plymouth appears frozen - because of this, this is esp. bad with the disk encryption unlock screen -7) When gdm starts, it deactivates plymouth, but does not yet tell it to quit - to avoid flickering. The deactivate makes plymouth drop its master rights, - but this happens on the new broken fd which never got the master rights. - This also makes it impossible for gdm to get master rights, also breaking - gdm, with the following error in the logs: - "(EE) wl_drm@4: error 0: authenicate failed" - -Note in theory calling ply_renderer_close() on teardown (from -ply_device_manager_free()) should be fine too, but for some reason -this causes the framebuffer to be all messed up (looks like wrong pitch / -tiling) when this is done after gdm has taken over the framebuffer. - -Where as just exiting without calling drmModeRmFB, letting the kernel -clean up behind us, does not trigger this. This feels like it is a kernel -bug bug and I will file a bug for this. But for now we should not call -ply_renderer_close() on teardown to avoid this issue (which would be a -regression). - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1490490 -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-device-manager.c | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c -index e2a9eae..160b8cb 100644 ---- a/src/libply-splash-core/ply-device-manager.c -+++ b/src/libply-splash-core/ply-device-manager.c -@@ -169,7 +169,8 @@ free_keyboards_for_renderer (ply_device_manager_t *manager, - - static void - free_devices_from_device_path (ply_device_manager_t *manager, -- const char *device_path) -+ const char *device_path, -+ bool close) - { - void *key = NULL; - void *renderer = NULL; -@@ -187,6 +188,13 @@ free_devices_from_device_path (ply_device_manager_t *manager, - - ply_hashtable_remove (manager->renderers, (void *) device_path); - free (key); -+ -+ if (manager->renderers_activated) -+ ply_renderer_deactivate (renderer); -+ -+ if (close) -+ ply_renderer_close (renderer); -+ - ply_renderer_free (renderer); - } - -@@ -309,7 +317,7 @@ free_devices_for_udev_device (ply_device_manager_t *manager, - device_path = udev_device_get_devnode (device); - - if (device_path != NULL) -- free_devices_from_device_path (manager, device_path); -+ free_devices_from_device_path (manager, device_path, true); - } - - static bool -@@ -557,7 +565,7 @@ free_renderer (char *device_path, - ply_renderer_t *renderer, - ply_device_manager_t *manager) - { -- free_devices_from_device_path (manager, device_path); -+ free_devices_from_device_path (manager, device_path, false); - } - - static void --- -2.23.0 - -From 443415375a58f2f58af9991a55a8f4aaff83a7c9 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 6 Sep 2019 17:40:06 +0200 -Subject: [PATCH 3/3] plymouthd.defaults: Bump default DeviceTimeout to 8 - seconds - -The amdgpu driver needs up to 5 seconds to initialize / boot some -AMD GPUs, which makes our 5 second timeout much too close to the actual -needed time, leading to systems where sometimes the boot is fine and the -next boot we fallback to a text based splash because we won the race from -the GPU probe code. - -This commit bumps the default DeviceTimeout to 8 seconds giving us a -decent marging here without making it overly long. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1737221 -Signed-off-by: Hans de Goede ---- - src/plymouthd.defaults | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/plymouthd.defaults b/src/plymouthd.defaults -index 9e3a342..7f247fd 100644 ---- a/src/plymouthd.defaults -+++ b/src/plymouthd.defaults -@@ -3,4 +3,4 @@ - [Daemon] - Theme=spinner - ShowDelay=0 --DeviceTimeout=5 -+DeviceTimeout=8 --- -2.23.0 - diff --git a/plymouth-update-initrd b/plymouth-update-initrd old mode 100755 new mode 100644 diff --git a/plymouth-updates.patch b/plymouth-updates.patch deleted file mode 100644 index 65026f5..0000000 --- a/plymouth-updates.patch +++ /dev/null @@ -1,25444 +0,0 @@ -From f89858654353d9ab1ca9a2a2a9f758d40f868091 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Mon, 5 Nov 2018 15:45:53 -0500 -Subject: [PATCH 01/82] configure: bump to 0.9.5 - ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 0382773..66d3649 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1,4 +1,4 @@ --AC_INIT([plymouth],[0.9.4],[https://bugs.freedesktop.org/enter_bug.cgi?product=plymouth]) -+AC_INIT([plymouth],[0.9.5],[https://bugs.freedesktop.org/enter_bug.cgi?product=plymouth]) - AC_CONFIG_SRCDIR(src/main.c) - AC_CONFIG_HEADER(config.h) - AC_CONFIG_AUX_DIR(build-tools) --- -2.20.1 - -From 763c023caa5215070047b07c80208b9d99dc8d8b Mon Sep 17 00:00:00 2001 -From: Laurent Bigonville -Date: Thu, 8 Nov 2018 11:05:05 +0000 -Subject: [PATCH 02/82] systemd-units: Also add - "ConditionVirtualization=!container" in systemd-ask-password-plymouth.path.in - -This completes the fix for #27 ---- - systemd-units/systemd-ask-password-plymouth.path.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/systemd-units/systemd-ask-password-plymouth.path.in b/systemd-units/systemd-ask-password-plymouth.path.in -index c2ee420..826a6b3 100644 ---- a/systemd-units/systemd-ask-password-plymouth.path.in -+++ b/systemd-units/systemd-ask-password-plymouth.path.in -@@ -7,6 +7,7 @@ After=plymouth-start.service - Before=basic.target shutdown.target - ConditionKernelCommandLine=!plymouth.enable=0 - ConditionPathExists=/run/plymouth/pid -+ConditionVirtualization=!container - - [Path] - DirectoryNotEmpty=/run/systemd/ask-password --- -2.20.1 - -From 4de54f598b66cd8d8fc55328f99f3b568cc9d4eb Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 17 Jul 2018 09:46:12 +0200 -Subject: [PATCH 03/82] logger: Add a separator between different boot logs - -Since we concatenate boot logs one after the other in /var/log/boot.log -it is hard to tell where the logs from one boot end the next boot starts. - -This commit makes plymouth write out a separator including a time + date -of the date, when the log file gets opened to add new boot messages to it. - -Note ply_logger_open_file() is only called from ply_terminal_session_open_log() -which in turn is only used for /var/log/boot.log, so this only effects -/var/log/boot.log. - -Closes #29 - -Signed-off-by: Hans de Goede ---- - src/libply/ply-logger.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/src/libply/ply-logger.c b/src/libply/ply-logger.c -index e9b90de..03dd347 100644 ---- a/src/libply/ply-logger.c -+++ b/src/libply/ply-logger.c -@@ -34,6 +34,7 @@ - #include - #include - #include -+#include - #include - - #include "ply-utils.h" -@@ -312,6 +313,9 @@ bool - ply_logger_open_file (ply_logger_t *logger, - const char *filename) - { -+ char header[80]; -+ struct tm* tm; -+ time_t t; - int fd; - - assert (logger != NULL); -@@ -328,6 +332,15 @@ ply_logger_open_file (ply_logger_t *logger, - - logger->filename = strdup (filename); - -+ time (&t); -+ tm = localtime (&t); -+ if (tm) { -+ /* This uses uname -v date format */ -+ strftime (header, sizeof(header), -+ "------------ %a %b %d %T %Z %Y ------------\n", tm); -+ ply_logger_write (logger, header, strlen(header), true); -+ } -+ - return true; - } - --- -2.20.1 - -From 059390ac569798cbf40a958ea714b15f313b46a3 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Sat, 10 Nov 2018 16:04:31 +0100 -Subject: [PATCH 04/82] ply-device-manager: Fix race causing undesired creation - of non-gfx devs - -On systems with working drm/kms devices we still sometimes see: -"Creating non-graphical devices, since there's no suitable graphics hardware" -in the logs (and actually create non-gfx devices). - -This is caused by a race where the create_devices_from_udev timeout handler -runs just after the pivot-root, just at the time when the "udev trigger" -from the real root is done. - -This causes create_devices_for_subsystem() to hit the "it's not initialized" -code-path for all drm and fb devices, even though before (from the initrd) -drm-devices where already setup successfully. - -One way of solving this would be to stop the timer as soon as we successfully -enumerate the first drm device. But we need the timer to enumerate fb devices -so on machines where some outputs only have a fbdev driver (corner case) this -would break support for those outputs. - -Instead this commit moves the found_drm_device and found_fb_device to the -global manager state and sets them from create_devices_for_udev_device(). -This way they will be set when we check them from the create_devices_from_udev -timeout handler even if create_devices_for_subsystem skips over the devices -because of the udev trigger race. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-device-manager.c | 16 +++++++++++----- - 1 file changed, 11 insertions(+), 5 deletions(-) - -diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c -index 55248ac..d70e709 100644 ---- a/src/libply-splash-core/ply-device-manager.c -+++ b/src/libply-splash-core/ply-device-manager.c -@@ -81,6 +81,8 @@ struct _ply_device_manager - - uint32_t paused : 1; - uint32_t device_timeout_elapsed : 1; -+ uint32_t found_drm_device : 1; -+ uint32_t found_fb_device : 1; - }; - - static void -@@ -254,6 +256,12 @@ create_devices_for_udev_device (ply_device_manager_t *manager, - device_path, - terminal, - renderer_type); -+ if (created) { -+ if (renderer_type == PLY_RENDERER_TYPE_DRM) -+ manager->found_drm_device = 1; -+ if (renderer_type == PLY_RENDERER_TYPE_FRAME_BUFFER) -+ manager->found_fb_device = 1; -+ } - } - } - -@@ -818,8 +826,6 @@ create_non_graphical_devices (ply_device_manager_t *manager) - static void - create_devices_from_udev (ply_device_manager_t *manager) - { -- bool found_drm_device, found_fb_device; -- - manager->device_timeout_elapsed = true; - - if (manager->paused) { -@@ -829,10 +835,10 @@ create_devices_from_udev (ply_device_manager_t *manager) - - ply_trace ("Timeout elapsed, looking for devices from udev"); - -- found_drm_device = create_devices_for_subsystem (manager, SUBSYSTEM_DRM); -- found_fb_device = create_devices_for_subsystem (manager, SUBSYSTEM_FRAME_BUFFER); -+ create_devices_for_subsystem (manager, SUBSYSTEM_DRM); -+ create_devices_for_subsystem (manager, SUBSYSTEM_FRAME_BUFFER); - -- if (found_drm_device || found_fb_device) -+ if (manager->found_drm_device || manager->found_fb_device) - return; - - ply_trace ("Creating non-graphical devices, since there's no suitable graphics hardware"); --- -2.20.1 - -From 9639ed895331924b24670ff6f814aaa952ad5b02 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 12 Nov 2018 12:50:33 +0100 -Subject: [PATCH 05/82] two-step: Fix animation not starting on later added - heads - -Fix the animation not starting on heads added after show_splash_screen -has been called. Since the core calls show_splash_screen after adding -the first head / pixel_display in practice this fixes the animation not -starting on all monitors other then the first. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 7307e19..924207c 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -1002,10 +1002,12 @@ add_pixel_display (ply_boot_splash_plugin_t *plugin, - (ply_pixel_display_draw_handler_t) - on_draw, view); - if (plugin->is_visible) { -- if (view_load (view)) -+ if (view_load (view)) { - ply_list_append_data (plugin->views, view); -- else -+ view_start_progress_animation (view); -+ } else { - view_free (view); -+ } - } else { - ply_list_append_data (plugin->views, view); - } --- -2.20.1 - -From 75d93c0f30e7455f817c4705af371c743d0b3913 Mon Sep 17 00:00:00 2001 -From: Jakub Steiner -Date: Wed, 21 Nov 2018 15:44:39 +0100 -Subject: [PATCH 06/82] spinner theme: update - -- update spinner & lock to current visuals - -Hans de Goede: Add extra throbber-00##.png files to Makefile.am, small tweak -to the new lock image. ---- - themes/spinner/Makefile.am | 20 ++- - themes/spinner/animation-0001.png | Bin 1001 -> 1579 bytes - themes/spinner/animation-0002.png | Bin 1008 -> 1573 bytes - themes/spinner/animation-0003.png | Bin 1004 -> 1591 bytes - themes/spinner/animation-0004.png | Bin 1012 -> 1594 bytes - themes/spinner/animation-0005.png | Bin 1023 -> 1624 bytes - themes/spinner/animation-0006.png | Bin 1037 -> 1646 bytes - themes/spinner/animation-0007.png | Bin 1006 -> 1666 bytes - themes/spinner/animation-0008.png | Bin 1003 -> 1634 bytes - themes/spinner/animation-0009.png | Bin 1007 -> 1640 bytes - themes/spinner/animation-0010.png | Bin 982 -> 1613 bytes - themes/spinner/animation-0011.png | Bin 988 -> 1621 bytes - themes/spinner/animation-0012.png | Bin 995 -> 1619 bytes - themes/spinner/animation-0013.png | Bin 968 -> 1617 bytes - themes/spinner/animation-0014.png | Bin 980 -> 1618 bytes - themes/spinner/animation-0015.png | Bin 973 -> 1615 bytes - themes/spinner/animation-0016.png | Bin 948 -> 1605 bytes - themes/spinner/animation-0017.png | Bin 950 -> 1581 bytes - themes/spinner/animation-0018.png | Bin 948 -> 1582 bytes - themes/spinner/animation-0019.png | Bin 911 -> 1578 bytes - themes/spinner/animation-0020.png | Bin 911 -> 1558 bytes - themes/spinner/animation-0021.png | Bin 879 -> 1545 bytes - themes/spinner/animation-0022.png | Bin 841 -> 1541 bytes - themes/spinner/animation-0023.png | Bin 825 -> 1481 bytes - themes/spinner/animation-0024.png | Bin 806 -> 1492 bytes - themes/spinner/animation-0025.png | Bin 784 -> 1455 bytes - themes/spinner/animation-0026.png | Bin 749 -> 1427 bytes - themes/spinner/animation-0027.png | Bin 752 -> 1407 bytes - themes/spinner/animation-0028.png | Bin 685 -> 1385 bytes - themes/spinner/animation-0029.png | Bin 668 -> 1348 bytes - themes/spinner/animation-0030.png | Bin 621 -> 1316 bytes - themes/spinner/animation-0031.png | Bin 560 -> 1245 bytes - themes/spinner/animation-0032.png | Bin 541 -> 1185 bytes - themes/spinner/animation-0033.png | Bin 443 -> 1111 bytes - themes/spinner/animation-0034.png | Bin 349 -> 1061 bytes - themes/spinner/animation-0035.png | Bin 299 -> 981 bytes - themes/spinner/animation-0036.png | Bin 83 -> 989 bytes - themes/spinner/entry.png | Bin 367 -> 1431 bytes - themes/spinner/lock.png | Bin 1896 -> 329 bytes - themes/spinner/lock.svg | 283 ++++++++++++++++++++++++++++++ - themes/spinner/spinner.blend | Bin 0 -> 737108 bytes - themes/spinner/throbber-0001.png | Bin 1001 -> 1578 bytes - themes/spinner/throbber-0002.png | Bin 1011 -> 1568 bytes - themes/spinner/throbber-0003.png | Bin 1016 -> 1561 bytes - themes/spinner/throbber-0004.png | Bin 1019 -> 1570 bytes - themes/spinner/throbber-0005.png | Bin 1034 -> 1585 bytes - themes/spinner/throbber-0006.png | Bin 1028 -> 1597 bytes - themes/spinner/throbber-0007.png | Bin 1006 -> 1629 bytes - themes/spinner/throbber-0008.png | Bin 1032 -> 1604 bytes - themes/spinner/throbber-0009.png | Bin 1015 -> 1605 bytes - themes/spinner/throbber-0010.png | Bin 1001 -> 1601 bytes - themes/spinner/throbber-0011.png | Bin 1018 -> 1595 bytes - themes/spinner/throbber-0012.png | Bin 1004 -> 1602 bytes - themes/spinner/throbber-0013.png | Bin 0 -> 1612 bytes - themes/spinner/throbber-0014.png | Bin 0 -> 1601 bytes - themes/spinner/throbber-0015.png | Bin 0 -> 1588 bytes - themes/spinner/throbber-0016.png | Bin 0 -> 1577 bytes - themes/spinner/throbber-0017.png | Bin 0 -> 1572 bytes - themes/spinner/throbber-0018.png | Bin 0 -> 1601 bytes - themes/spinner/throbber-0019.png | Bin 0 -> 1608 bytes - themes/spinner/throbber-0020.png | Bin 0 -> 1583 bytes - themes/spinner/throbber-0021.png | Bin 0 -> 1602 bytes - themes/spinner/throbber-0022.png | Bin 0 -> 1595 bytes - themes/spinner/throbber-0023.png | Bin 0 -> 1603 bytes - themes/spinner/throbber-0024.png | Bin 0 -> 1605 bytes - themes/spinner/throbber-0025.png | Bin 0 -> 1604 bytes - themes/spinner/throbber-0026.png | Bin 0 -> 1605 bytes - themes/spinner/throbber-0027.png | Bin 0 -> 1615 bytes - themes/spinner/throbber-0028.png | Bin 0 -> 1614 bytes - themes/spinner/throbber-0029.png | Bin 0 -> 1588 bytes - themes/spinner/throbber-0030.png | Bin 0 -> 1580 bytes - 71 files changed, 302 insertions(+), 1 deletion(-) - create mode 100644 themes/spinner/lock.svg - create mode 100644 themes/spinner/spinner.blend - create mode 100644 themes/spinner/throbber-0013.png - create mode 100644 themes/spinner/throbber-0014.png - create mode 100644 themes/spinner/throbber-0015.png - create mode 100644 themes/spinner/throbber-0016.png - create mode 100644 themes/spinner/throbber-0017.png - create mode 100644 themes/spinner/throbber-0018.png - create mode 100644 themes/spinner/throbber-0019.png - create mode 100644 themes/spinner/throbber-0020.png - create mode 100644 themes/spinner/throbber-0021.png - create mode 100644 themes/spinner/throbber-0022.png - create mode 100644 themes/spinner/throbber-0023.png - create mode 100644 themes/spinner/throbber-0024.png - create mode 100644 themes/spinner/throbber-0025.png - create mode 100644 themes/spinner/throbber-0026.png - create mode 100644 themes/spinner/throbber-0027.png - create mode 100644 themes/spinner/throbber-0028.png - create mode 100644 themes/spinner/throbber-0029.png - create mode 100644 themes/spinner/throbber-0030.png - -diff --git a/themes/spinner/Makefile.am b/themes/spinner/Makefile.am -index e3102b4..2a008cb 100644 ---- a/themes/spinner/Makefile.am -+++ b/themes/spinner/Makefile.am -@@ -54,7 +54,25 @@ dist_theme_DATA = \ - throbber-0009.png \ - throbber-0010.png \ - throbber-0011.png \ -- throbber-0012.png -+ throbber-0012.png \ -+ throbber-0013.png \ -+ throbber-0014.png \ -+ throbber-0015.png \ -+ throbber-0016.png \ -+ throbber-0017.png \ -+ throbber-0018.png \ -+ throbber-0019.png \ -+ throbber-0020.png \ -+ throbber-0021.png \ -+ throbber-0022.png \ -+ throbber-0023.png \ -+ throbber-0024.png \ -+ throbber-0025.png \ -+ throbber-0026.png \ -+ throbber-0027.png \ -+ throbber-0028.png \ -+ throbber-0029.png \ -+ throbber-0030.png - - MAINTAINERCLEANFILES = Makefile.in spinner.plymouth - CLEANFILES = spinner.plymouth -diff --git a/themes/spinner/animation-0001.png b/themes/spinner/animation-0001.png -index 3819624ea4e32708e4964bd9bf052850d51cac44..6bd823976167325046fb5759916e6883936461a2 100644 -GIT binary patch -delta 1563 -zcmYL}c~H`M7{-5?faDD-w51uES?+R3nn}s7VP2UgR+M52VN!r7M6i~>z$?uR?GOv2 -z_Gr7-YCBY{1WnQ1#LlV7i=s8`K+-hZv|Zd|cIJKOnR!0XJm2@P?=bwllfn-K5Q3OZ -zLI7|?%`5~srosRKKoLdJMXNbnHh|C0;j!`CIXqq_3op!L;kR)_cmY?+%h@T)#*4Dq -zJhl)o6ma-_cHV!AV{+O2txS2hy{!r}Q$@`bv4LO$F$_;6;)6-PL}GZz@^Aui0^Iuj -zNn6NmCX~YAu>k@h{NEwIX$xqzF^9iz$;+I9#29v0i_LSN@mATayiDL9!4U|gsk>n` -z8}yukG!~oB1~T~^UZ#kX!}lc-vIIh3SCiZpK+Ob_Z6~tx!2ch`5kl@V&KYbR`FFdN -z#bpb9X_-8MO#xzXSiw#ZtdXp(BcqChpj>-mT<#Qe@z%xGJMM*&}W-jv7_u -zg`T$W57g{hP~YcJFl%_1z)zE$<{;OY4YX00Ur7^U>FHF -zFe@j^P`iB0P%AV{v-y0!rPE@uxJQwzn<|K?SD+^3gXSUfMs)YOG711Shqg -z6^+&^Q_u-UtOP!Va6uist(ImDTb=4Bf6!Y1o##I=m8f;p;=21LpE@^H<4uZ?%3KDM*1aNj -z&>oraI}TN&%|o(t_kH(Mf&K!i0srcZd569{cOE=qnK}jCMFC9lW<+?dy52 -zht9f3=Pqh%7-5dn`yyDBXG6%Ry&ZuY=rGU+4(o#rh@VZS@+a#QU#LSaoBYIIRzKc) -zyx&MXS$BP-`zF#wqCJJGn2!XLB0s|?!UGYP3&FE>MSomfycz2l<1UWu#igc{p{klO -zIONTJJjbP(G5(J$Lv;_cRNnaE=ojU0Ve!Zp+WwM0yA`wbiE%jD{jy~0ZcoCL?&W66 -zFtRy6b|pA|^TJuX5-~%ci)ysGSi>H^G;5iim>Q*TyZQBJU1$ST*<*Ku<(0(fIi@KB -z+q@e~9@Kr}Ogmz@kRJIVV^UXTGDcUhY)VjPSFI6_t+eY)i)FN)n&qS0s1^S5JVC*d -z6l2lJI|rrvO#8EbCQr1+av{S-()hI0=%kK;7Mj|$3F@VInZ3v$+wTMYR^1p;>?U+l -zEi_9rT$(u$EaRFoJakcW8v7EA3)UsJM{C!4c+w( -zC@*YNJJ-oue_{LzrOH3Q>SO%x{XwnRo2mh4RK0ve)*i=X?%(4fv3NaqDb}BBTs!Jn -zncc=J&lm)IRs|(k!zFW+OK;zFI2~W`Y{c0Zy{1(yi{jdiHFmgMC=3Cu-n$xijJ0v2nrr8B%{ZTTjwR+7N#MNsfvLJ2I -z2A*Ss?5)S*IQ5I|W!<%;ja$$!9@aAw-w#M*xbVXpD#&Elbi2g83Jn>r`sx-m&Ag6& -zlIl}<`*p@bvTO9{ZyUi1+VhG{s`*R0401sl#1o(=8KO$yLv1@NsjF)J%X@(dq8Z| -KT55e{hWsydn70i8 - -delta 980 -zcmV;_11tQi4Cx1uBYy+1Nkl1W@lHcX$V4d?vpKfj>Ka>>+m+n2K|4V7Zrp+5rx@AR -zGNF8?i|5syZGYE+>4KP*T&2HZ`;_g|d3O&9E5fybP1_5SRwQA2F-)(A{S&|nFc}Bd -zazC2L?*NOETx4b%xUaDJcc%koR3pGS+bdDDVS73Fwt$wTrtND$P10H#(r%nwip((Z -zK!U5s-e6fhDpQn~C-b87d>2>(7J;FEsiCzV92kkA4S(Rl7#_^sP_layxDkHs?S!_+ -zlCH4|-+W(}w0g)cIRRXV+%PbZAm%%DG`cXqX?s05SGcv0*kLOu#(*v0$3WRW(kv)i -z@$O-x@5tl;uqtVH-(eJ%cI$GEf@Yrs>pXC#C|4Ch&r6z@?Q!6Is=!?w+ySmh+C1v0 -z2HpsSbblDH0h_?(M(}FqQazegy^jQ(2z(`nTsSiXoKWFyuR+s11_ZOfY*9@VZTgRp -zb6*AZezzXmGqxX3GdlW4RJ700qw>J^6TsVPLO%na16L*O9Jr8Vo=;_}Rm5x@VtFag -z4saUS1|AK`zp;H;(tOtpq~_0NnW$QEErVqVSbs=k*_E`>Bl2f~b>Mg4HQrQe3r-u1KR-bs_j`x*MWC|_kdqhlJz*UhXc0~ -zb$=_RS8g(Aq8MOP(zfkqa^C`;i=m%@M{@s`?RO;I0p@If3p^c&uI|~0B()?hNxEGc -zPc=*w^}Eoqw6?PoYy%$_JLHRT?7tx==}Sp-B3}Ss1@B?t%?zc! -zx8kxx-nC}+SYiP_F5rB!%tF8a3#zl+qfPwO;ly{qry-m&bo%>imaTR^L|f@Hs(THo -z4}c#ce}#K-Y`>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;g_J3rfpa1{>5OhUYbW~|= -zWdJZRIxsLgFfckWGIh##cmMzZ2y{hQbVhPvZDjy3GSO_91poj55p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*GpRQq%Q000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*ylly-7qtR9Fd(mrZM)RS<@gG=wUpYS17-;zuP2tpFezr;{gd(hl67IWu$S -zo|$u=H+6Dya&ls8YimMLkHnUJU2B|nV{4wo*0>rId$SoFgL(~guf)HX&$!WOG=+@R -ztK{4`+jKRmhis_3C(#Vc0$2oxz>7dx>F@_dT(O98qz1+=kNOV66yO>VI0rrkKZ2{^ -z9@qezKz}k<_xe5q+Zs!r;c7uU3aB;`&43TUPe4-1o`eg;%#R}*+T8D207(vllVA-z -ziM0A}6Mv*O65`kzu^XjsqLW}2dRtb{t4F -zEI`{AAm9DAe -zPb;t`PV%~{?^2w^vp^oNQ(|>`del@afCP4E=LXrm#O-~szF=?&Tr0Wz_=xSLvxPjw -zuEIy&VpD*dtKcTE7zOB-(={?PASsE}L?q{)YG|H+#p!K31`u1(JH$2dVDC51GRLR4qZ( -z@%Q`E{Q~AWU@mhgcJEZ3Oe?fqfe9(Xs(uE`IuWNJe3(n%eT!h-A*E}l=^eiU-UJfc -zm{*|PT&sD27MsejH~EwQ-U6xGN`Le}J|%a0&RQSD#%;EWztw9ay-}+-7`uidT9Cj#YUg -z{RB!O=WzZ4J_06^+&D>=fknLs-U1TXrKI{Lv3uh@=Omv4{<`WDd8F;#^nV5Dun0%X -zNWW)m!lT-e6cXJD*tru?W`UEDz!B?n+!lKW7{5$zuch&HUrMV|TVGZ8Anoc~a2BXr -zsH@{NiNtnjVL~$Pb6_6Wxwd`4Y22;k>{}7t`sh9+&fTOsRue6O!{80z-a>rYcI_&W -zS77)0SAd1)hwXaE!;$>*HGlRYarPw13%BEUz}vuS*r}`JLULEf?L7lHq;=7jnQ -ztD8T?pg-OuaA?!6bl1z8ugo?oj;k4HFFQ*|+3fLE47rlJ|dY>W+}!%??x100000NkvXX -Hu0mjfH5k+} - -delta 987 -zcmV<110?*V4Dbh#BYy+8Nkl_ -zkP23$e}yYIqTnAOu3Wjan{J95#fo&HOL3)0>jhh}Hw#+Z8RwRalW8-__aZ}kP(B4520FkmlA5E)DSr=9k^xgd2CPczB-_<+ -zpaM()&7OOcK&jx~&J76VhvRt+xKU(h!Mk~2HVo_nEBzE?Lk#GK0t3^wt2=-67QD=;r}lKY-hIXwkLx` -z`C5xeD1LLvet-VXwoAZV$jp*^x%{&2gSKbl>|G?x3D*T$wr@&WmxS%bV0tOoKMAY@ -z^)O%~-dDr(JHVnOCy|*04)hYU+y{v068Lt2j-;mT%RnY+BMMSGWG=^@ -zeZaj*D$`3$r6G#L^$_CNZ-=#uz&(FcLmPcKFdk9b1b+^N;!4QMA~Gw$?|F1oAY>xK -zHId^R|5qe6c334Rfd`Vi4o)me+8kJjBD8-7&N*(KT~^pOupRPSkx6U0*E{Y7Nh#jm -zsrSj<{Q*a7P%0{6X|+$8ZH(GzLhgYANB@y4+qJ+;eGF^^mnF4!seBB0WI(^^09VU_ -zRX1UNQGc;2jSzrJct4i(6ng$EIRv#n5CAmy0KqgcohVF|H-P0~0!pJ!J+^0UFW9b( -zG!Z4`v$|Uz*nSW=9`b(!z5}inWkb17Kc9&@kVUx4yW~MPWNbx$IRsp?{f(qQ3L_9X -zKOe(Hxu<+CNxEhGSUjKaEq -znGARecr20Ml5|ee#Z-PaB%Nk}*MWTztxtio1%)N&(wD$jaehDW@~|2*Y$`q$o^*g; -zf%hbB4;W$rJ`N5EcocYiF9vKym<61c^i*xZ2Z_>bl5`39BF4H>aAdSkGvG7e)gb8S -z1^cCBWKY-WAX*bR$A7VGKWF>A?VoJF!2hvqKWqENVGU={`U_(I%XE4gBIf`A002ov -JPDHLkV1lyb#9jaZ - -diff --git a/themes/spinner/animation-0003.png b/themes/spinner/animation-0003.png -index 3f1fdcdbc5a52c2f7e8d2edd783476c233994613..205380b1ca8e000f19adb89243a71cd48bfa579b 100644 -GIT binary patch -delta 1575 -zcmYLJdpOg39RAH_E~Bh=5kt5MA0c^STZaoyVzzb@f%yoQ6!aWQ7093 -zG9*bZn_~!x+;hTCgj`$2=z6Ae&T~G`_w&5Z^SCi1TdAM`IWLh*O`s35tS*uJv<=JM7_a#`A5cU$-Cm -zBH|`_!{?Egu3h=p!d(2bw>1}KNpsSeg57@7)vQaV^~;NKn7e7kqP)!TbYm~ZIn5_f -z9$)|~gvO-$kF&s4HsU02xfSbzd6wMU^KSApeCg%s+UQ>G0ceBtkoVDGNb>aj`F_ZbayEo&Ys2sXx^}?D-)H?{P^Lw&UsJA35k^lYP2KzS5}{?L`*{d -ztg*~Km4_~WG$59qvS8_v;XMuv6A-#Ukt=MQMqt`&#co+WKfegP2s>~H!W0BbOInd+ -zw{Oe96JC7Xqln=gSm%M5Dc{(5qqiM4l(Ko9FI`^MP-RqAV>Nl}hbj0>rj?&Zd+*Jq -zsrM(EW;Yx~_BXT+m$x(>5=2ks!>I)^R(sp$mwde^P9H9}OC)0Qp~Q7|{M=aW^)=a1 -z-NZQ4a9zpW(0zp$;u9V|$m@sb62xjKk!>p|86vjMm(He)HfoIp4BLqB?6E!6ggg?f -z5Oq4r9}k^#l#hJFi=@1p2IAKEFqFuJ;az}yJV@t!j16|?o5yHxc(y)dMR-s6`8%3W -zU3c*5t)OAs!;qC7YvZegdH(Z;PD^ezO92dCoYByx9#cR}+hegM=EYeFZ`v^ofd!{s -z=Sn>sMz52K;(o7!=Kx;v%|&pdT^qax8hO(dZ~Wzsbz1s%N<_v!Qi_@Doc(vCW#9rm -zSZ{Eth9%p+|H_S~`^qQ0ZqJbSd3=Si<9YlTrZgp>uKzY6?KohJXPEVS9!D|{bIk7DD60rI39qR;KDWhc7BzN( -zXJRch?VD;~Aae@bEuej+DNbs$+`<-T^7qn`&kO~4@@`2(cm9eSVLR8Qy^5|#fL3bd -zz{hzL&9cC$+^aOgYH%ho<&A`o7=PSXGy?yM8b3sdD+M55Dx@-^EV7+~e}Muc)uM8K -z+E&FlJ$+dIvSK>9$!^@dx^GsiPHfGVbR+uB?-}{$@M{5MmpHCc78?}Oa~p&p1cVYe -TD_)@b0s;4(UOU9j!AXAu;oZ(L - -delta 983 -zcmV;|11S8r4D1JxBYy+4Nkl3NG6o#)eGmZJ4d^A-QZ7JA-MX<35Mbwp` -z3+Yx@T?vY~6S{ZpFVKbJN(9lZNNEGoUr;exm3xUbxcE7@$EM&j3AODX9pqA7bwVFlL -zJ`aIfW)z7+sehxBRLj7Lv>ADCyusa1h8o&}zYiHf}EGS5E -zv)}9scSn+r#(u3Bh5jAuB}Rh|nttqtI+=X+LZb;RMnvO~&WC`r`^=jraJQ5XtsVhH -zwoiEg0DsB_@#L2QhhbcbwCH1^|CTBpYuZ2W?4fp_f8yL<$o&shMx$0H(?l>?4)YJ!^#at;k -z9s@oF-c4tZQo-&6Ujsj@uLG+QakEF}r-1ELy?>=t)FEIiWqDj(1D5t^gZiG@P}kK> -zbyfXRJ)iF{tGCq~>Y4m)PJJ$)pHV+iKUQBUY|SsIuc{Z-m(_W7rW*wlIXGItRp1NY -z$B5Wbp9elHd^b^`YD@hrtGYcu&Z&zLv8vumB%aMF`zX6>PXOO0RBOOOhxC4wb732} -z4S)OsT+Yc^2hIUM04oXgG;l$^nout%^v82f)b<1r5f78=PHNr)-c0A)z~?#tqp-A= -zBBH5Y2QDR&XMx{<#k9YZ_0<1Pm|VS|g;WN90G-_%-*2VPHNbdEl-14PZXy -z`X2CAL^KNlSd`m{0JxDzm6P|=M+so7uuu_y9}%|>6o8076N!XYxn*Cep2f%=0ZEr`3FgS7)y3x2>k#6002ovPDHLk -FV1hEx(;ol; - -diff --git a/themes/spinner/animation-0004.png b/themes/spinner/animation-0004.png -index bfd03b445634b8cc5ec7755643ccc6f7e36c226f..6038af8bd429a28118214dd308533e60107d531a 100644 -GIT binary patch -delta 1578 -zcmYL}eKga19LIm!keD!Tq~s)2i)|Lx?m~Ge#Eq3wVly*~G22wj7+Xap6cuJBbVU{= -zd1kB2&?S0MqqN9V4|L_}X1Cqx-h1x%e81;?&inN~@6YG2@2qBnPNoG1(4y@PWB`CR -zbor?PdHKcw05~(<4>LU|Q6vB!5kn=xk5i~r0uj!j6X9eE6Hbd_QDfqm5pZS%iArL? -z88k|CG>QJ7+J;7vqQgSD-C$Lf@p6?Lfk^`F5J)r}iGwl| -zmO}?9R1$zdVE(<^^UI$4sMyLMyU+>Ca65YSPK3(SU-n#87M%e6BenNA1)$3Tf7Oa4I_LkPwg^Wj+~Z*tH~7)cB1VxI -z<~RbCrcwZDhfcg^3D2M%jpz2*}sa5t1@>3Qvo6#2o1y^SWlV7F3J&F_GZ -z8O8RUl@F|zcV);u9EYFQL@R&+pBvgCy*~QxTX*sM%gfr25JisP6FCf_a`v@#?G3ZV -zw>ubPzq9x#hOkX_&I$wqbx$Y5z_GZB(_Jq_CyI{FmHWQ;`IQcyIoMa9J=fg-oWIY? -zyVtG7f4)1*=Fkmx{w3D9@exAZ2CPnclB-KfE4LaiFzHjgc>SOCwVCO$cF{|HYT -z>K-p1SyXk-Csa|@s&pO>uN~B^mGc)# -zUI4}0&##l#5rC*5P)xE94V6AVS+@YGveVsoFvk=yodQp*p>oNK%8nMvxt-Opc;1Z8 -z5*OR$Fc2xX9M2^GoPk}S${Q4yCQkg+&ph|}TzOr^eva39yil`}mmv0dcD|{k7(z2( -ztM!0L3*1r(L$20qK+Nt**8Wzu>r7?(r7818K(W$6L-BCJ?^MAwmnatVp;EOa;|y-C -zB#@@h)`%Lef7xuk)2;Z%b%{yg*O+9FwBRN!-TV2Ao#E0|%mDF-JW$T>E1UA0V9Pcb -z3Mx5VauWHt%xH}5e1@a>=5ZReI6icL;8@24$#v4yOpt%+wK3iMW-FF1&I`X_5`-_Q -z?W{gZg(L!zT~CZ?y3?eN*!)JSur0)OwpUAhljp*~&RO+ejnkh^1dNX)$VTcLt=@q8 -z*E+_r^@l9bkZqAi{hi|O`Abw5>ChJ -z5}Q^NtS|ovr`g~`jnz6Y#rlhhhZPWJ6k-@Dk8iOyN!uPab<351B*khIJMy&N7j18w -z3l#N4^3-7Th>U5*^H40FGMF{Hl`Fk_VnrCHx-16N0xP!$GA39Qs?43%%LT+bN5n$VMt@G6l#k#8Ws4MWd6d&GvQ< -zSXIAoQSK4@6+(E(Eg3JoPBmigD!&x0eS`|VAjCtTXFkqB3~o(@+a)VAu-hD(Rbk>wia-yg{tWm!%L$2g`w5`Xovtng}lm_1n7V8hz- -z0OpKKZb01e5I|F9gH@k@xnLjiyny-%?d4gbfjCAGpF(=xXE&bvH+0+E7XSbN - -delta 991 -zcmV<510ejm4D<((BYy+CNklXOcO<>Ou9tF96#O+h=W0 -zhD6m`2R4dZGk=@?`|5AI37n5jMFaJm?ea*MEO9BRBJEMF6Syr(pC)zMv~MvaDO4Fo+y0n0(XJM3LW(^GLcLt -zdiMX2)IOq0P6Ce>WOR76ENS~dAqupA2exymYj;3}-3@ZBT;oMxqsn@qUJyhWRO?fY -zCeS(PDk?9(4m?v6&}WjqI7Y)7tJ!W#+LY~=fsaD4Zch-+kna^qzYOU7Brq2ex=-SJ -zz7 -zFW7!!2K;uXQiR~-E+raa{$wKF+28h2K -z4!DwaU?csd(>H)<`MbcYakdj8E&?9|KiYmOf`4+eF7uq($?chr55?wqddgy@4J86E -zCG&fEc7e}<4 -zd0SpA&8A9sE2@`a{g3mf5G-b^nb(lR%~?3L8VnRp*C=>PhFn{uB5Izz$eL! -zLg5;cy0+(m$AaW!p7q$@?>8Mcj?h-$DCUD3$&^AlOOaUu)`CJK<6HAMQ}NTlrE0_i -zt{0uny-iILz@OP`7USE{0qlg;2ELYbt61j4L_MWk1y0BQ{?MOhzz@LtVfN2`oHuH8 -zem+FIR}yaE03_`IU)F5@20WhMD?R6S!-xOx>o_ERB>n#P!#+Uj*1tb_+%qDUIF$eZ -N002ovPDHLkV1kE);u!z{ - -diff --git a/themes/spinner/animation-0005.png b/themes/spinner/animation-0005.png -index 16cbdce0ddb19f52c551b3f852543cef55fb862b..7a967678a0fcc44fc8238e53a5de9a88d0ff5336 100644 -GIT binary patch -delta 1608 -zcmYL}dsNbA9L9ebB9yl>Ov??moNF4OWP+OaOP*HSByW`p;ZJ1>a)fja^Cxt(sT -ztu#DSb9uqk#2loel@1lP<|dSlNv7#?tkkJ!4%>G2p7%Y^InU=g&-eS+yKXXOD%cGH -zDAu7^HUMm~+ITSFYMBiH0Dhd17)~fX4Fqs0=?oC}DV@Qf(s1ky8ZMd6!Lib^8R@4v -zDL76F$Ny_=ht2gwWX -zwg@FwRv1E-8=+%#1_%Q*eHnejolTs~FO<2o?etELa -zRlXk33QXR_PkH^)uGF77sGT>QpA-s(a1Z7SSN#uB2PbEuyhj>7k92iq_Mk7zri^)noeBsfH -z`gHjcSlH1$p3MSe=J5am@|&hu_G=JJupAUtbFVA3I0N%=sE^t_^hLMpl4XtslYf7m -zC!IcNG9~vJ+s+kR;g7?x`<XOHEfe%VMerUWvK1wgM2JJW$nW -z@WV~jN?D&DN_Ca3fwzntkHC4-5T7_+3;AvLEsPIvv^Dgk7V>GXo*S_J%#Jakp|Q@@ -znippalN}EMcCtrtc-mpe!pFG&9PgxY0#77IQ$FT)J=VnO91m68D!RSkOWZU!O(+qe -zDlL5qx*aH63RlhX(y1V?gi`5wQa7XNZzy>;F?N42YIvh-b}-3O#K -z0sS(szrM^0Qq^r*C%r15y!%c5KK%`NzXTGl0GalBQ`w9I2SZHTNmNcIOx%mCh26oF -zl8Y86S<$;@l_ehMm4cqip#JJ7ja1tl6KpSO^#b(eXaUoX8&(T*9$Sh1W?6irU0v7t -z+Yb3xl)a@||GPR8IV$_Fl8Ixn^9c7`QC}J7VsCvp3{=Vk-ESfuEZYQkdisXfD1I6Z -z??Wwcq2UIvHmAdJd4nvw(a4US=9qSUt%#lW6sGHD7+ijT)M)u4fP=L*)m~r41}@)3vg7uAQ)$ -zOKo|$XBULO7n5dPdHS3-Tf(KX$RGw%dT6bB#e}#CQN=b}+Bw(juaAq44*JnQUg7KF -zSm&*|E^pg`jypSDH#aV!4^TAo&=%;Sk&8p4G9E7~)P(iv12aN~Jnv=QkG`FS>{K0` -zI+Ap2LC|tDL2h)%ER9#9dzp10XRn{;RaDt+lfpA1lDk%T$rTC-gaygmmqE^lZf$AM=jBhl5&$M>MRaw9gFKHh=dt96hd&9)X&319hnf -zTXW(v-(>!=Nt$<-ZXNovY>ey|U2Yr0XPstpJ{3sh-@3D>6w-pFI#pYtps`rKH1mmZ -zazF?{g5Jr&HNKwhx-ok!OpM5GecZA?R;@|(nixy0&P6z~LR2sruv*vaS_KyrUJpw` -zyEd$d7ZcoVS|sSFo|i+R_x6^Yj;zoktqQrdeL -zVpN>d`l~G37`wpht24E`SKhT=u~Z2zN}SL-+cq-<^_r;;k*Vhuke>~9aM$>)4)b`E -z*pl<#Us%gTnsrC*IdO6517b>U(yP1svTv$Q{UUg^Rs6)fi17fcd|ZnDqYJVrRsZ3U -z(#8YbE~QZo{lcfW&nlZ_+s|qd4<=Py=N}Z^E{*e;-N=>J6J(i#;g1BuLyiWE11bE! -E0k~D~SpWb4 - -delta 1002 -zcmVj2TH(JM0As% -zt4?4Fr~%s(o|`-X;23bij;4Vdd2!}EdjOdCIRP8P9F)cc(6xaca9mPtg4Wc4S)Y?_ -zP&9yTpzTaDU|!NV+}!7P!{?iY1Bi$ou#!~bsCzps`?}xhXMbx{|MvtSsUqo3N#`V0 -zlXn`xZD$m&LVsy+k|dRZ1=|c@%jf#`GfA_Oj{DtvK=?ZF39t)XmGnVGT#5)JtpZ1Y -zve93+@mV`;`gzrvcYw8sP*RzNWODumW}3;2|Mq~VfsZ78Ea|C;Xaj4>?;X$m@4z4a -zzvDZA^@wOmIwa|&`J$Q!%t%T!2fPcsWgvAudTYR^z<>L8UW$n35DZjY)fRBS$9T$4 -z!`0mYZuYAaIY!O^7lBuR!*)6aoR5evCS=Jv@NnW-#?op;v_?)rM0^cg0Nw$9hjR1Fr#h6X#ce&m&?<(hI;@ -zU|rH@5wR}m&_CoEJCbHx_L3?0Pdl5pdY0{P5!mUgVH!XsQL3xJm%vXE(Ur6Syljds -z0e{ny7VWSlX(=f?z?`Jbh-gc??f@3ujy-Ca2Jnp|YXUzH@b(!8*z|_94m@I!$~La$~oCT05#SWb{W$Z&b>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;hZ+~s_8UO$Q5OhUYbW~|= -zWdJZRIxsLgFfckWHgc!4VE_OC2y{hQbVhPvZDjy3Hr4@L8~^|S5p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*JfQ_JE2000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*ylm21!IgR9Fd>mrZM)MHGgU*BC!bD4G^sh(;~CC~ia$q=XjSbm_-d5US`# -zTnhdH5$O+b6GTcuT#4YqML}D^;!29Of{RdMWBq8=+JB^`Z@jK~=6*8olW6t8otZgv -z=A8SSInN}So}Qkb+T7fnQk+Mk%eoy~JN4SOeq!6&wKmZgoyJi(Zw*~5*>CrlkI;{^ -zr`>ow9wB4rt>oNJx{`A1Bt|QE25tw+E#Uu<_!Ikg!CO?~3gd*7On -zM=SGBBJr2Ot5kJ1na6l0iV$Gqac~$&PBLk*Rpx#LSHUOXYj7TD;}`K1H~{9sP;N!> -z8aPY5kBL>T!r08WdH{t1-T;Tdbzu1|xtUst6JQB^3v@E(O!`404}+J$^T41(IfLR^ -z&VQ{KS1A?9g0-E#AN&QB-z)5akHGub{><24S@ZC$QDOtU39Obx?4?%jWwBQRHTx-F -zv-0|J*laD~&A_tTJdS2~0xY$`;{bgT*OI};&OZu10QN^K?p=(coXLVwwvW`c8GF~l -zL&tFLSTgtEP?CuH+U=6~3h2x0vvTi&AAdpdBm -zCm|FPb-lvwi(nBf03W84kSkTmnYIV+!e9jc0PDa$kokAuYJ%oqg0VMImFT?=wpO^> -z^I#6Qqw^sl&h-Hkywy2ZN)L3?@~zu25rZppW)UYD-53T|7YU&dRiCr% -zxm3XY?}24c_uB(LKo3}f_7J+_taaG#Cum0Pm3Hl1jH(l}T?W2>ijC-%NZ=u`2mGrf -zW5*C{bso-M>!@T_nfdBT!UxD-Ab(!RO<)#0NflA( -zbf3*RCsxv@~-ngB_|ZK|fhWoEYe7;M44@r8D1eE0IsshJQT=e6S24 -zQGaVX*GAGdv7@^5)&}wVzlzXXg^obRn%yFM`+>n%fSLJFodtV=SEKv@(yX!7?kC`S -z6<94vXtyo_#v;a)Z7(YP=8-Q@8uYygvUsmgR -zQIjmXtscnTIAZ8qa1wk2EPtbc{B3ApNlVB~75A)&b`r78{fZRNXnVa4?uI1l*i8%^ -zWkbeb_Joyiu46yVWpEELfPob=b#3!07l6dBC3s@Qzwt`+Vc@LwqA{?^?gsmSck2Bb -z%GT~`v`w-xZ}{0Gsp -z_r9Dft42=koBYy+bNklZ&WMgZ6ZIzStE -zP13UmNX-;*%!cI@Q5L}0zzusc2fQh%HsYP*j#xM?o23Cn#694BpapCLSAZ9Xcs~P7 -zC*I#3mjC+zNPn7?bXC&jzSjB@_{wK9;4MkhK+j&rzptwbob_aDOA|n(jU#GRoK8dJp>Gq+93< -z;A7x1pcWC|4&jXq*aA+u8zy{LI5Mliojf`*;F62Ls}6O|XKKJ35%J9dSuzi~5-w-~ -zD~?<-5k0$RD(8VB*oXiHX>ppBwYaB296}Wo&%@?Yrs1Zu{fsjBft{{dK2!L -z-!m7-x*4q3Co=iL$r1smrbJb+U(HkSlv9wZn+)jJi1?{w3Z{Ug1>0M8eCP#}lFmwc -zq+}6Jdo~zRJ#L7WOHQ-T)d4CI70oEg;H*z46v;bTL9`|1@_jGNH -z0Q78Jzyqe@mZar~Xb+5ltM)SRq>XLca1;0$_zsu_I+p1o&wCcFIa7MpSJ11#QZCbJ -z1kRfEc02)X12=*1BjT>4(+=ypq?-}ZG3bha*S%jc<^CmU%|K@Is<&jf4dgxmnGx;+ -zi+`SkZbd{-Qo}O3ZBH_j%)C9nWiRuBo0YU`Mf}6ne$u3*wB1txza-xO84)|a91Ba% -z@ohg3C8O7r`MzUWp8!rtx^4b%N!oNIx@r4mi3oL^>;84Zvf457<%sAS*nfl-5t6jz -zNabVsjF}YYygAlP=p4@{lTXV}(aKphXK}z2qr_;`R6Of8+I4!Che@i(w-p1Hb3T0- -z0Nq5}oBcgp0HW=%SNaRC%$HHqm+Terb`*Ra-EpCINAZ0&!keCHc+gsRimEo2zSkZ0 -mIrhJN9Vg6JG0&^a9sdBIiOnoi0>*>@0000>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;hZ+~s_8UO$Q5OhUYbW~|= -zWdJZRIxsLgFfckWHwB=B_W%F@2y{hQbVhPvZDjy3H=zb>iU0rr5p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*JfQ_JE2000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*ylm8c9S!R9FdxmQ9P?MG%K~#?|$O7>SDpGzJNxC&@)r@Q{EYdeMV|2k{`H -z2QPjBk6t_k4*?GzL=Xf)#V??s_=cd6gBm0*YE%q~#($T%?q;3!d20GM(=$6J1;6R) -z>Z-1nuI~Q~27|%U_V)IYBp-?_^M360l&jnC6Wv~~*NJ@MLqVW%6#9)K%ZTyNb;sED -zd}Pt@=QA=li9kMNbo27jXtcumjo>zL09*&ogEL?ad<{+xhr^BD{v!O&Bj^p-a0$n& -z40nJ>z<=#v54a3m3arEk{0j`^3-C7hfCNr6?np$L)cni_5a*6y89g084h{k5I=iCr -z1~5+v<`WiP1Rqh6t?WCmOpuEMAZwjG3LXP{!8xETnO_AjRWFR$9lvLh909L^bNCwR -zPck5BVE`=dX6ybA}7jI)AG#gBR?LdCiL6sJh79{C;p3_!X#g -zIq-}vulz3HW>&?~0RNAyn#nv#RhN@_lqZ4&z`~v2fu>-y>GaPw8r)yNMmq+60IuHv -z4ueC$hMgyG&$Hkw@NW8{jnf`LU}nz&ubJ1&=tau@IsB{OI5%hM7NQL{p0#3(fS%x#Q5}wZ~;FYloX0O4djB$*toI6U&v!U~j|CZ@f;D0_~ -zf**tTTX3-Bm#r9n%+|(BY}tw5YHFX|n* -z*00M;8EY~(k4-gU>w%xp@d&)5o`1g;@mOvKi=J1+Q%XjCV7*MutWB-jL)0pu)9-*4 -zup(AR`0+VNkkzosG#SK6<{2Y*j1BwDRK>MAf?~$k#H@I}-vgV` -z4bK7}k-veD()D03Fk6qv)RJsD7~ZT41YLOCvdf^h{LL#>qeF!yh_8@quS -z8L&?4!^G(KLNYi5UIPZ5ihsbCUA+TNbl&?^u_#eFaw~NB8Tb*%TXvsngIEFD=}?)G -zJJ<1UV6{9J$!6U25gJd&jVGUk8ONC?G8emGbYQvnfh&PzKwjCafxTgHI;b;el;rdI -z_TO*`<0Jbkua#aw&CKOh2L4wtGlTIMtb$HFdxMdDx;-8%q4Rb2v1j=GOvCZ3PTOrv|g*ypa{fsgs_sh;%BXjN#|!7+3E^-p`dqUYoW3 -wBFp+@?3Iiv6obsOb}@PMw2Q8?@Yyfpf4bee>+G&nRsaA107*qoM6N<$f`KpbcK`qY - -delta 985 -zcmV;~119`}4eke!BYy+6Nklo+~HUJ9B5I -z3(sag&V9e0_dU;ZE_o -z94N2;G;qdy0)}(90JsVKYDX);N0JsQY*vBHNgcR|`4WhThrs8+K5zuQ23#&wpZ2~3 -zw36!YN5pgpNPlWbdPCBNq{ZZ!8^E{zo&g_wf8^ikkgeHg4d?;=#DBePFw-G?1-NF% -zo07hWh?^0Cr0c+|hWBOQZQvW=17I2WLDCX%+La#xI}xD-nKfXkIGAYy3&635<|*Ks -zq+7sO5%HU(uYnI;*#cNw_iGo2eW -zJV-ZyFMSjn5pin_Z#132!2HkwPB~}|cm(VMTRA#W;^cYY9pD9E(GDBHClT@Elq}gc -zigFAYxt)j@OeCU+_*v2)z)Mc#IpA-@JMGF_nVCnnfnHwqiFg&2G@QtTi1=wnt@yVc -zla68}uzz1n5{d-6-y`DBIR&fZlTo(%5z!Ax&j42o?Z^|TnaQq4#MX?#7l3ES=uNmy -zn{@~11I>ip(q0`+AzI@|E=97qG9b%aa0z&_5Ik49dl7MW&K4}2sG>x~2B!Fl4(gIt -zCAH=V-jvjqG+A#ZI9LZRd5HSJFU2!F!M0`F41ahC+z0j}VpMq{k+cF_u>2kyreQ&J -zs@5oZe#s}SC+R;#lu~g9JZ-_rhi~Z5F0kc(9*;x9m5*$*>WfJ|VZ>wm+RnKlMc}NB -z9y#zZrB6xcJg7rSwZm76Moo=h@qqt7gHm(olttmE$k)!yR*I*)Jv{elgK0A -z&lzy7>b;=qR@_R&>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;hZ+~s_8UO$Q5OhUYbW~|= -zWdJZRIxsLgFfckWIF%osW&i*H2y{hQbVhPvZDjy3I5D|#8vpg3by_Q -zEk%Vif|Xzyu~HOaEX2k_0^%hGrxBykpfQ&jCpqKu?0>W0Z`S$d#0Br{wbx#I-M@Wi -zadB~RVQXt^L6Q$emVI5To^o}oo#F04DJVafg8Xjum-*ZXNlrs9IzjpU5DS{x -zpJYJN+yFS-!`Um~DWC&OYe4d57spn}>~8|sqknY{-UDw^36q#1FSj0*$aM5Hcm$Y% -z&UI+UQk -zbbb#w1`J$&OeXLu_z|q?Q-6Kko&f|7*=t}gunju%8&Bzffd3Gj0aq|G;m%TD{R$2P -zTYvWga6hK65WI~3c>|DIN!)0N{SmMN_5-uih|xY!Aj1<@&1Li -z7PKMk8kYTTpwn}}j4py-z(*LDADqiqDu0O>h;wrS{9biB?{FVfU$g*ZpaVeX%FNnF -z#?^tlV1`|HOqnbdQ6=qK>G%!nN9hw??#&*F9t?ESw$$7by0|3*d|aj5a`V25LL -zhakCQ1-}I2HuxDo$oX`JG;A~o9kxG#&h3>Cjse)yMse(B%qKw43ctp-&5iO-I)7g8 -zKBq0{2M(TxM(hLR-T?F=tDsh)wI&s?92)g|mUVb;0|sIVJ>RRc -z=W$e>SI6iM)b;&YegmOSkAYvo``}FOVQcyzkmUm$JPRb-k!tvQeU>0ROd#Q1rS5bG -zuK@enYy+O`mA4`6B{n)0d=D&{ynl0W5bOc}OUcMJfm9hz9pv_URzvL}>Jd47Yry{N -zIDIpqL!f1z>|Mjxv$1>}jOQWG%(6vH5IX%HI0rg+`W+01@lmRDAM0GwP|Y?@$H9y* -zd)|hy9M}eb1C%=hegy_8e~2J_L{5W^9&oEdZz1A^W#pR)MnQs+m&SX7*nj?niVy-I*k&Hwxw|ZLj_78Iy(!@RtJ9rKTTWX -zqvDh8-r=-82HG66O5`x{7gE_=szISQt$=HY`fKiD@)1+umw^dwQa_J0z7i`X|nazM@0UrF0y$^G@TLh=TqW51Zta%@K6nncUG -zvp2cOszDuDZpppb*?0d-a%c^}VU0YWuR+_2%{bGpeC*3N?^S_ILzMC=_dtA%_JOpd -z2IEZle%JzS`si%34z}VnGWRV2|77D~_^ir8%tp$u$X`tRF6qoRtV`2AGjBAuQTO3z -zD&VagxJvV?Q_re?biEgyv5l(J&io^#64Twb -Q!2kdN07*qoM6N<$f+yhGH~;_u - -delta 982 -zcmV;{11bFC4C@DwBYy+3Nkl)?WJ<9%4v(L(*yfk0I%8N#97iEa~-m<5VVWvVS1yO-b)cS}sh#1S|j> -zz-xu~7A2jN^ns+txIL;90KN*G2aW(+z=gv6(4Qzg{{;95SOgA%i*scF==pO1yd~-R -zDX7^7&KcN!pglJQz)!$$4z>*JNU9aq6i@%5X{iC1fiLF<5E1u)FMuv^&%Eb+%b$Ni -zNIDC=W55DFi+_meG9alY>5Qc33a9)Y_%7jkN7917SAYx{N?HLvHt&xZ_@yL%Rnk#O -zk4nl$iSSwAJ#TVD(pM4jOGF^)5^x4s2TlRoz}LWzfn4>oZO7UJK8=XJH*Wx&1{coG -zei1-s#bOTMmvjpFHX^P|x&oZFs5%kxgQWAoN<>_h^nbF09s@3T{)oRfl57hYJRl%1 -zeg!yf!DUY6A@HM5yag;o#Lp!a@S;z81y}{vEJk^+zCr#K5gMgnB%J_W0G={{Do_VL -zkBDEVbjcOqnPg)*b2lR5V5|{E#GjJ(fTs=Qgezb$gTwZ{KC_QBfp&iCaWz~#NzIu! -zjEFyG?0*$?^WKYyQt)~GZkV(DStQ_YM#QZ-8`i3oKWcO$qFeQ%lZi?r`C9>2CG{fW -z?u?t)fa4|oCV(|b*Q@sHyI!af3kQ>^Dj8XlNtMi3B2n#9NuX{-bmydC*(E({902V} -zBFxNTzgRv~im>Jb49AMFBtUAPec)O|^k(pZCx4yh1K=ibdsG=#N4&gb&tFM|S)JnY -zQoN{S=DrR*0W>5vi-$<9xB@)pa;z5Y^OntI2^f^oVb1f5$hxh#7^?*|b8kpb)$mJc -znr`RzDQO*e92iKt77;y{TIT=jHm!=iV^31cjjiE~WTv%O)(!KFbb-HZ7ILH7Oz6n$ -zAAiSzko3EO=aj8UY8lwB0c<*h|LKM)fR@uY0PYm*^OzM)a!1_q`{7b+damy0o04`d -zytbq}1~LRX4*>9n`z6)TNT_K>#86Ts{XLwirqv(TQrk3^#-H@Npz73B9JD>*mYdJ# -z4!DtCzvj6WFDK39z6Gf((^mA1k=VJp=(R2><{907*qoM6N<$ -Ef@@9F@Bjb+ - -diff --git a/themes/spinner/animation-0009.png b/themes/spinner/animation-0009.png -index c39a878f1197acdfa1dd6faa58bf3daed5234d2c..3e79b9bcdd7c337bb0de3db1fa15ea8c05e38917 100644 -GIT binary patch -delta 1624 -zcmV-e2B-P&2j~otBYyx1a7bBm000XU000XU0RWnu7ytkOKXgS{bVg}xWdJW|Z*65S -zYH4k4VPh|Ia$_%NX>>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;hZ+~s_8UO$Q5OhUYbW~|= -zWdJZRIxsLgFfckWIpP?u@Bjb+2y{hQbVhPvZDjy3IYz!gjQ{`u5p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*JfQ_JE2000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*ylm07*naR9FdpmOYDIRTPGEXQIZB7~=;HG8Pe0K`>yaNI(R!62UTsAQo2s -z2rC;K(Mlmjen1Mr#-J#%5gQ9dMJEzOBk?1~WE^MA9e@n~J(24ch1c!m; -zv=Uq3WAFnoIQLfU1b7PggiOhKc@=yIKGmoG8sD7(1h=E`3eZS0GON3R0h|Z#g9~5- -zBY$)5EH!Q$R>8~QMUW?hgd@ -zt7)3K28`ax_l2@yv`w#g)|^!Z`}0?enL9(=x=fJcLmVcEhmAq!aXb?IBK2{E#q;qi%WnZm><3;NP=$Y&0!1g&)Q-AWQ -zD(Yvzj2$|;mwf*HxNNroN2QNLxky#e@7Ip{v;wO5loj;>C~)`=0f)lNV%cosK;Aod -zpEGm^YBHTqeWwNU=f8GP`4a&+qV5KlP+|$T@)i9vw$bSWdOx!P99e9zprr9n!s~O0Fk&(p~hJ24pcLM)x*b=MY2g?tPnM*pf -zN(Nh88#+#w{TiL3=(rh0tbf1@ZO|M@Gj;}~!@%U%$=3Mousu37fSLoiL2cup{-|gx&a#eu<>kFs;PP<6waUQk?6)r@ -z+n|$F&ySbi3}?eYoE2>t&|oW0BXeH?_>+x?S%)hNQC=&cBU@lFK2afQgAU7iYvEuE -zc~NgO>rn;N%7I*3RGt2;*N?9EqBFJ8>(rS)QYx{t+jX3M3{DM9<=MxkT-o$q?EVjP -WakOlGyGi)~0000`_PTC{cLyO -zN>8@*?ma)g=X<{QJa~j9X;ad9{*NW;MM7PJc?0HY8n=R33SK5hwvC -zf#*ifl_g!1^oFGBG#{m$0G|P_0cGGZ;QP@S{fw@6fwzDa;1KwFAq0Q};Gv&QN$18m -z4?kJJBABk6D~;nq@?61GkLA&?uDrKY-#t$5jE|cHPUscfb#c{ko*r -zCA}l5HjacRfO9tZP|_V>HzELj0nYl}lfVYB1zdF!TfimYviIx)pGQRB&R+rE1FpD~ -z2f$aO0fb)^T)&IJx}=?m*p>7f@B+{R9z?_~N!Ni&M1S0rwBdKB?R-np1>k+)RiI)& -zeV}=yc8;9c2M*>KU -zRDm_1>L5zMap2d8*qu=&Uj{xiPmcNbTj1k}xG`0TBBCv+1JoQy#jy3~P}sXJ$0?)n -z5%7(>>VK%eoJkE@h0d+m48KNLmG+ -zo`Oan*p7(aoX(ek3sdf!0q}bv5tvB`6->r?S23r=MW7f7RFw%EJM-2*L80Ojj9Xox -zl}Ey&xzUe^?wroc){{;|45yNCf`OXbXk}g=7=O{H40G2)){F?{4kU)H4y-yrd0%NB -z0L&d(#LfauNsZAYVx;F!TW(9quyF|72O8$dU{X1p`OtUDnq@h))d%)~Mnnuo5y+G; -zg=rtS7ZF`ab>InLC}}$)dTzC%{~tH(1)up-(!OohGS>UP={b-i0TdEM+Q45HAxT>H -z!GG|XqB(NLncq%e2RJEd&w=eEvb^Gb!*LwgPv*Ez29ejg8I7awx?I`$s`bC;nlAy5 -zOS)s?HGRLV+Ij0g0odXF3EfajO4Eplp`_7EOp+QNSh72$=EO4ldvkvm7`kloZKlJ- -znALQ4+5WY>AvSL+t|ph%p~IcfuuLfxl&Fx!*Rs)YI%Olv82ijHQ|*|ca;GgMn;IalQqC7=U%ERKl5;V^gt5{GkjbaBPvIUwt^wKjy9 -z3k5S+bO4KW{dsX%(JOm%Ez|$83ol9waafd45vTP`=e&(tix&m_6f_n~_@*QVX`%TX -z42q$%=|B{l!HN;A`Cu8 -z9J^!kT@TE(asIf_JA@5wyGk>)>pEIq?ng30?fCtu|5n?@_WXvSsvdCEzl`8~y|46L -zb#?WqN7Akk?MX~Z3R%%np|~+Btho^JvUj^6Sw^w{e4@%WZG_S$D;Vo3t#U4F?I@Ry -zoZ)dwm@jO4oore0=;%~5}D+fJl9a4$KkZcbVif%mfkp>7j2)}bL{&2U+ -zidM8pQ$KY3vc7lD+B`rJW{-iCzJd$XCMR_Q4(VGSZ`n|6YbiEH4^wV -zx7GnLUO%<3Z?zgaX=o|0^TOYuT^TDy5iE!9BT2Ug&D7wc!p`H^7e<#hN79Nuts)v3 -z>jq50mC8u3A<~8Wm;BE3Z`XY)xcZFWkdI?y8p=gMg<_ -zc)z&QIMX35B>MeE)EC&KvH01A@78rL5dA0b6R2g`8-my+35nKX-MUoP@h4KV*moW< -z0d4w<3M}}Gq(*7b_Wd_~+M$^{)Y&870ulIWjJ)A(DI|QVPhoSbf2d7plLAbP+jL3# -zd=CzXggvg@Hj}Sd_h~*AF%kOJI;AScS!!qUHxh3@>&~?$7PylOL)1H4pS!It+p;8# -z)I*iJPuonUyLl%%GUIcYJ~G=#$t)tmYV~^1sikw{yR3O~y*KR=bP+`gv7cQM5qLQ? -zmy(^_`jy|IBvS_~-^g1ol5W<0cgTkKn*aedWBdB>lg|$t^0*ny(4np5+Y?{J&~~TE -znf(Q83R7MhZW@TBHf}&v?no<-kSOsR|Kw7#Zhf@HY{`NsI7idQF{FFDDlUd8RXagv -zmGP-!Tc0x3E<NB&Ikd+- -zCBwt6gSUIL-n_b%D~ZDJaDUJKAn@rwxu&Yji@pQ$u4H%{@`cTeOkOj9g}C}v#)}U& -z$Y$63t#w>h3PXjbsf^;zZ~H2IV`Y2zI(R4}wzeN}vMB#tdIfa3#rmpN;`fDKiuw*}}P)>T%Py=+JeY>O3w%_WB|D!?&= -z__p6dKU#51_n!0?HNl%GVZDpzKVlF+FV~znbbfdW8?gqMKh>I9sH`woGft(q7(JBC -z?~4TYr;wb(47<>)awMa|mT@v6@4*5!#&Mc2H%gx!^m8SYE7~(^_bSljy@B&;nrWWU -zyo+zHZnjW5CNCa&NWKQ@3eUiTH1XHQi}6lvHmm9dDI5;ZwA$?PXv9e=c`ZRdyl=Cw -zl>du)Ve}=;xh5}*=TE0rPV{m_7*fO32deaj%VMAOr_T~;1{q_YB#qwt -z$qcYNN&bX&tPqD_z}+4MPLOJoUMHWPxqH?Du`E5-{UzT;=CpLUVN;Fg&9;$ech{*K -svUj9cZsJXVpWia61YnNiOIsz1a>Jly)nwI3tk@4MZnnnV@-3whkor2qf` - -delta 961 -zcmV;y13vuC4AuvbBYy*(Nklx5^w}2LK33v!RS~!4+$bk+pGz#m$Rtf$z`|H5_wj03D5iuJA -zCR|HWGszO*5P#?!g<*n%QX3}QuIpY0egS?>?6)NCO8QLF+Bgz6O*jFkk~$I5j|e2~ -zo9&rVxC}f6-m|mEz+1pOws{ELj);++-vqt@t^>-+6VR{Vj!t!_)mc6 -z5%G_tJ3u`mo=Ca|oH@X|5%Gtl9pFpzqDVmI)_>baQhyED1~%N^#To)#-~f0D$Rgsn -zq64lufIoq+fRBM!y40eT(iJzZvvxPvro>x>m(jcIvaj@-I+2*YLBXF -zK0^?n0)HQr2p&aABH}?vY5+S4L(2gUfxUVG(G?$x}=A -z&n?Bz%#&di63#sL=-#T3^&ZeE232_)ZkBBJJd92yZ33?VxuiW0sA4vpnI{G8orw6` -z18mcRl-b|5hgP>7K+P}Zo>m7IAxT>H!J>yVi`Q$;{E16dz`h}==OF*`eWKu#-1;wY -zpnqrQBe&it+1pOuJ@YlKojhA}i3aZbCE&88rzT$C^QCDYM=u0mhuw;9XePSwEFyAA -zBzHoLRL6uXW=PYQlS=#3z6**wLZOm<|EktuvLC>fZ7h5%ZX`qM+~m@PODxv-qI|2i -zv2XyXv+gWH)XOjOWpw1r=O`u43_40$5HhbgH(LPyF6d4OZo?=JO6Nus&iy}M -j$BFV~Kz|Z9Car$~V5_=_>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;hZ+~s_8UO$Q5OhUYbW~|= -zWdJZRIxsLgFfckXG4k2y{hQbVhPvZDjy4F;RZ_{r~^~5p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*GpRQq%Q000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*yll?MXyIR9Fdpmd}fpRTRf(UPrC0m`JCxgvb(uYGXkgA#l;6Wt&{~2eqzs -z;3jA(NVE%ESYS~?V3c8+8JVR0aK?GxKA-#E@8fx&d4Kc3ch0%@oO^!V^W1kE(eoIMI&1TO&B`@n9n -z3)}_XpMME{1SsqrM^NJ|qy -zsiPC%DDbYe_M}{=w%(v7CEo(sGq{ul-2Vi;M}H@7s;Fc;+Z~n6Z0k$ldGH|ckoXsv -zghQxP&sw$nCLug)GLo{%$WMTibai(sXWeKm8%coOXTfX006LR<1>3-YPW*Y`)c+0a -z)_!2Oj)5nDiMHb4lHGU*d<#A^rt#!!5nKSB9RUgMK`ZzR80;eW68s8goSkwefzGgZ -z5P!T4-U5<|gzV6}*nh{l-`q6z#J~yydIqF|e~_)(ip3Y;40cz+b{-sg$0qy|HXneG -zfC-Pu;$AhDaivKX+>g~i*LLTDy?+z%zAu1t*m?y+`#c+pL-y>}hu~A-`AQD$oBa!G -zNu+%msoVfgxlX))E58iBp*n|c2(DZyg@3q*t<|3bt<~-oI*fckd(je5fK0$3_Qv2Q -zq5KoLnX5u>2m2Y9t&*zm-S`>R*Uez@&tohP(S>&X?N8UQ!<}}?)|rfzIB;7DsPi6R -zM_}w)a&pMm&;;g}?arM1G&h_Zmu&{f#z_}`?^Z9FL`wwYc9#jPax5o7b;>=!FMllK -zPnBd~i*1w{NZZ}CYO8nPJUp{q@P*bVpj?a-(jID6&c)%cz7lt({u~>u4H{fooypv_ -z8UrLy4PFCdJ5W#h02@QFt~9AzIaif__fEaTml=?+>ny=pH_}0pQdjjoK_~ka;MG>r -z=e3+^PcaKCyp6(yeCz)J8k(&?v43`>y#es0l#0SJIs}e^dymEZvsAB{Fg)*RX5Hg@^Te+V^b`fAWXV4{`@qeqj05a5w -zjeg+oxmv{F$jniA;0o}b)cGzL{2K7L!iUPXK29QgKz+!DLF@s}Vs{!iPx|;Cybts_ -z5XsNm7EU6z{b^u8Uo&4W9i$WLO;q?xC?Ci|M!pWCH1SK|20Dkkk#^u-0#R5QvIm_5 -z2hnR$_ONhRP2>&en -zzQ$yNQsMKBWTY|&;Z~VXQB}we>?MJGw%H%fy77PAh=27hda|jCcytfgDL*Zf$qcli -zRbS61XwFw%-OD-ji!%^Kcn-5;43qBpFhcuAlw64eU -zxQO^^4n{uWZ_o`w??hckme-*7+mD?#3FcnpdRF;Ar8mFxog2k^00000NkvXXu0mjf -D4qxQ2 - -delta 967 -zcmV;&133KE4BQ8hBYy*10r7{z~QGHG5W)3m9nBvxBcK~pNIbfq97 -z)r~7ZgYK)}zz@-d-$C$YBZy1IMXe|zb)kmV8l_D_lF7tLnwjI~O!+frUNZ5*C1LLU -zKdo&c)AT}j*H*r^V2QUU4-w0|L~T|A!2?~}l3V7oY1 -z1)c(?fZrq?j1@qfFUQe3aDT)~z6iXKAOUXob5I!)KnHOC&fA_H=G^vq;OW>Fa4^Wh -zumGCCehgKC1=|`D#B)FmI0gI(+#5RpNu89wol4B5Esqk8b0zx=z>~m4Z2u@}f206x -zS8UJQt_OVGtA7FP7LLj)sB6RaB(MTZ=l&g7E$r89zij)}a&)Ul0M0% -znzru%lad;?C-Q6>xGCxH0Po$fO@9>qJo~ND}ecC|{R|ssk``)O8T>9e;*~SAZ{Ve2la23?V7ec%J&r-JO7{nW6Y5;nV9o@dM9bt0vA(yoR4wx0V^R1aV$2{<;+0B@$MUrBm6 -z(sw~JT`t~Tle812dlZ1A2YGj?sKi>g*JJI3#g5QzO(XXp73^K#Dks^B=Zd}^29O@G -z!~$&QT^H-y*a373tZa=UNO@L9s)_~yV!;r0> -pbL|1={-3Yog83?0T0D-8e*r5zwTU=bFsT3l002ovPDHLkV1mQg+sps} - -diff --git a/themes/spinner/animation-0012.png b/themes/spinner/animation-0012.png -index a0412479f0ba3442324e1cbed1e5e057eeffaeec..cdefdc78205460aac77e50eed3ac35b2f2c15456 100644 -GIT binary patch -delta 1603 -zcmV-J2E6&>2h$9YBYyx1a7bBm000XU000XU0RWnu7ytkOKXgS{bVg}xWdJW|Z*65S -zYH4k4VPh|Ia$_%NX>>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;hZ+~s_8UO$Q5OhUYbW~|= -zWdJZRIxsLgFfckXGHlUCIRF3v2y{hQbVhPvZDjy4GRSwSL;wH)5p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*JfQ_JE2000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*yll>q$gGR9FdxmP>DyRTPHl4N$J4l|%-DBa9^Kz&L{eGb0nH#((C(p~QiP -zkuiigGBIKxG~N;!85_Vxyx@hFp87od+wbZ6PLJtI-hb}3*IxIvzkRx}u&{7oXJ_Yt -zBp-?_`?^*=H(XDz_C-Np!IRg2r=w8ZsJ%e9FKFOJSlgVTen#fm*-8@+);_tY*+hz_`M^j1~{~`BP{2@Yv2ONtd#!?T$g}!3)}%~ -z6!wRLd4B~e?{UTnB)BVBMDHxP*jIyiVUB?(U>VqjgWxG(`<1)D3qApBbYv@j*^h|i -z<|jbaI(ZYk0#1R$;2&W7{{$z&W3UQL)Zpsm4#;nVkHIzYm{`+0V?xs01US?Z;nNoG6BpeEy-P3QzLn2tKSAbpk4tx)O0XuO-Wd{2K -zoPP#afOp5F^e1^QOzK_m4Y&_l=NAoZ5(4tucIG-Xph7!gr8mJ>=-mU`^}&$`cIYSY -zKDZ7lS&U?N-!PVOC110)p$g}<3Up-a46c^zkKi`CCe@Nn;_fB)CW4OkSHTTn<*hPS -z$xrrjk2Tmd@$knMWq!`r_WQZnt{-sj{C}sxM0ML8Sz% -ze9n{=Ui&pL4BNwj?DT2J<+gnV{T4ePXKVtt+dHALuV15H*<8K^9$HHP$Pwtvpno9) -z+wDee1f4ffs(1A=c@MUFg3WOP)m45rxo%VaFUqyitS1O*Bab? -z&d{AD--Q~(bAA67n|kQYw+kjAnSig@aX0g-OfsI;^PZsh=>o_bpc_fQ_hXZX$gFI+ -z33*F>-`i)$dW?3~86w(CsmQhSXMfOo9n^O~L+`~s8L2%)J!9u>5-K-s -z_4OHWv~6tl4k)wrDjC>M(w}0-BQ4?lh@BwV)Gn2)(35anZ-e~5=uzlfn15S&0~Gq= -zHPV=aO#;{+A0>a3bmHZd;!qpEj+U5qCL#6J_WOp+l9&4TK&_tkG?Id6svqm+XxGZC=V -zu@c?7R=zpyf2yCzt1kTiXBov9S`9de+z~|FR?qg6Rh{s8ibu|}Q9LOWp4K~xI_s#6 -z*63#)9kNNX(=rrP{?KqRnOwbD< -z!@c)?KF)KV^E?-haoKLzo;i*U9mDxNuncs8bxG}U?9`8NQhx)QKn>WI)F~d%CV@II -z2ekW~n*g?Y&J79w~Nf?fce0? -zkO11bKU>(mA<1$6Fz^iUATSjl*Lwq~6}m73EZc4YwA+kLY2v6iC=lKD!6)sHuLw}9_qGNkD@3fQgnZn+52)zPa -ztGJ;7ZL}0fRRppoX=g~4JPo{%jHeU8&%ig5em_)*0_UC7c`dw;UODQW-EVHC2=4tS?E?x3-KE<8|?Z1sOd(hsuT08Sr*Mh94x -zv^S#jMStLpw5odos6|`eug5_*d~hFxG=yaLyBgs@vry8~ZXKAbO3(=F`%St#qt?Gb -z;pw!adM2lVUx06qGEf_L>#_Z~?eo!w(Kn(DmZgw$Bp%p454;)mTLC@>zV6oz^#N+O -zSZIGWiYG<@U_Zg%O$p8dS8abJ>8HL3q~}kCwST=*ya{ZCCml(<12VsmA+-v;2D}_8 -zu8{i^_yYK#;#C>ILNN_12`-1xN#KDndR5Y%?a2(IJ=@O$mxJoNk}lbP0(cd;kaFzj -z`9(=rdKZ#f(ROWM9r!KIr-1v)azwly1s<_I9j?sB!7H}UO1cib4P4Clt>(+_plR3) -z;eXntZrff?X)2xnwOBlrWpx+$5O^xJ{}gzuB3=-FJ|(&;>EIp&By}WhW(n!`bVD;G -zF|g4yRGbmL1H2RT47>!qSlHi^^qHiuD(6S;gvE|fm8X@zLD%QNmFxsF!0Rd1*jsU< -z7*Yozqz_qQ0p809Ht<}D!Z-nx&Nc_NUq??6-vOT#glmueX%@oV2r+j?P}57m_t~hw -w{I5Pv8^A+Bab42(|N3=Y1X0V<;&E*J4UvJL%3!$b{r~^~07*qoM6N<$f|xMU5dZ)H - -diff --git a/themes/spinner/animation-0013.png b/themes/spinner/animation-0013.png -index db1f1205099e43dd5ed4fa8b6fb359bb7f57f731..de5aa6ec0cd0e46ab5e254855ce0ae1f01bbe6e8 100644 -GIT binary patch -delta 1601 -zcmYL}dpOg39LImVu!cx9_iMtjvRfBhwQegdQ%-ZT3N^OecC*dolDRyyQ*=2l6-vda -zh*-!7wb2v0kRI2LW*upCgd&$hXX-i6`99z8^M0Q9>;1expTE8>unvO@tHl7ExA(9B -z0Q60k9tg<2Vh#YnHsNlXa8DSE37|r`Y$hr^jLoJ8qXhh5R7jW*#bd>=xlzJUlrWUZ -zW(rUOUKoeNHbt -z4Xs!T`G&EX02)pBc`-PvZc(|GE&H(xpRR=%+#_DjE3Id|C{Aul&&- -z6U<@??5T7%Ppbe1>ydEL90>r>5i)6qFAXla_#)!!Zc}My-umvZ9j}e<6dYRnV8vP; -z$CwW5~3k0WvGmh#e1c1!VR3 -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 -z1N5>+SnO;7A`5c797<2d{!@ -z^TUS=vQ&;8(5cR#8a%j*T!pPPp{3xi -zIb-D~z?;BdNUO*$o>9h(^X-x}#Ds3$(}sCQ#M09)q_eJs;A?ajPx#07*qoM6N<$fk - -delta 959 -zcmV;w13>)J4AcjZBYy*%Nkl_bp%+=vCy} -zK;sm-@g0cqNAr9E*gVb8Q{FucEX6?sdvyjHBODk;fq@0vvty)YHjWq04bS?1lmk7W -zpXVm96nM`%i}|*Y?@jGMa<^4NVlKI@i@sgC-#IJ)|8l^#Y%kbuSEB3y-Q-gh6pDA) -zZUD=r&f1S$p?|+=d*1e9zCBTdMZp>9+uoAYk%aB-RC+Ui+flv{gS~XcY~%;Pwj`I3 -zSuSH1OQlvmQJ5-26ax#1 -z)VUwT+wHWX>PRO}G=T$PB}kQn900q(R)LOc+Gsg&mVfX6l++!QCELJb6|U$cE&Vfz -zC~zLc`yy|{2^sb{G7aD`ozy9!9(xv~THC;2+~_OmXaN1QT2ZCJGE+md-Dw9+Qc=gA -zT}fTpo=d(|~@wMW7w8%V)o!PutgkPk(`J+n-3fZTk^mR?;2YSAc7YepS+S -z+qZ!i(~cK{;tQDv>s1FDrBT@fc0v}m{WS1l?iYdipz$$qWc%|(-cGcy+5Sz^U$$3) -zCxMr`umb@Nm?)KZ;WWCOTY)o -zUlX_vtd_{cl~(>0xB)zrrRHthGw0cguL7?WybXL+Ln=y?06(UN1Uv;ie;x-8O1r>! -zl5URtttb5f{1O5y_JQesngKrnpQUYnJ~(Ag)D5cdfxAIsjsN17Ny84L!lY{^O002ovPDHLkV1k(E%A^1Q - -diff --git a/themes/spinner/animation-0015.png b/themes/spinner/animation-0015.png -index 207553e4efe3f2f8af3c0e4a724fa968d2a21a1e..249e1739d36456bdf3dd36c70537c928e25ee8f3 100644 -GIT binary patch -delta 1599 -zcmV-F2Eh5v2hR+UBYyx1a7bBm000XU000XU0RWnu7ytkOKXgS{bVg}xWdJW|Z*65S -zYH4k4VPh|Ia$_%NX>>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;hZ+~s_8UO$Q5OhUYbW~|= -zWdJZRIxsLgFfckXHS)F7ng9R*2y{hQbVhPvZDjy4HC7Wm=Kufz5p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*GpRQq%Q000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*yll=Sf6CR9FdpmfMeHQxwLlO1odij9WsCahV80A~7!$Po8-4SNPw&lJGeC -zg@go8MurxeF%g$RkD*)ZF2CQZ{hit8sIro;_TFo+y?-v>Ugw;e&*$^ma=Dx-&Lh!f -z-H*MUdTo0@vF+`8o9IiYaTLybL)S|7|8Gyb4V_*^sV8yqA -zBcS{Oc7MRv1o>S>UzF>}+5{5Z5m@1U;7M>lxCIzg7WTWf3A(4;0saA(!G~ZMMvmf_ -z^+-r=%s>pO`erO21CIiox|V9Gw_2$;3HMCEWKHe>n2b8@J^&ws17a=1hH;d&39u=p -z20jf8q@-%+p1v3O*l4RbH}KuSB*KLHPr(J4uz!G&R1+pEcL;7J&wwvr!HcWvhWHxgw<_g9rf|HIx2GLAtqLR71(H2s8jFN%Kid-z^?xjn20uB*Hge= -zk$&-8H$Tt(3i#ZZCeg+lJ%B>mo&Y+uS`#sV)Y$_+Ht6^eCv~Sf0x~CSF9I3#sW}8E -z+JDF}`x3m#xocse7|4Q6v-W_2JM&lVnb(c}R}D;6fKn6V{n=&XH=h_oi -zaSc?0@-8N3BD`N2@Q%In?{IEH!`(UWrGGC3ThDz2eg!h&m70tUKMqc5FDd~ih#6`m -z<&IWjP-#8rE6!o`CGPe6&XFr%7kC{8a8zXBGzHJKTQuX^;m2ydFGuP3MYHeywj?W1 -z&NzzfVcXA5{tIAXCZJ!h!||lo#W>sQ4r^r98pzCbVAg5E3dXu5Nw`>-gaN41?|*`U -z^eOBG6Y~ivsVk5URtDENm1~eDbY9gZ;eK>JO{fms2rLW65+<=|F;_i+LNS=sn~ZZa -zwV5i(1n8?x;Ot>LNDJVbFn6Cli`?Vv>I&30x@5rMcCJ|})j&GarVo^Pn9x|A>!y?P -z7l30g7WRG44X@&6;bxu$GfW@o#DBewl7up1_y~9&SX3{v>Jw5jG$9%J&6Wi_)hjTl -zFCh~tx{`G&ML(@tm4D5A?q3CdOQ!NIil0>Kr|ze7=wqk&@~~nP5F7vRx#xMs1PSiv -z_%-mdD$t7sZUc)f`)Pw%xo;~CD=;vpb#M+;^D;)v@_#GvS>6F| -z3<+38YeuuHl30&|d!S>>r4>u_bKop^3HU{vR*q`+2Y9QEu1kgltg0p99|!gIKTfOc -zW$vh8XRtTGv%sEN7Z`Oh`ZnVwe68+FV`7eIQlYG?Tz#KNqx?K-JKcmg1((tHz&3up -z+Tq%q4-ACbj9!NZQ%REOt$)}%-xS#MzS!OY?@oiqPbJV-Hl1_0B>IdfZCIaYn{~t_ -zYpdP?(tZ(WJM@o5D*77!5p|A76oru-${Ks7%lGl~G_VIO#+S@4xBxDJy)ZdFpEZ6~ -z&F84NG1b+^hCO=0KQd>4<7MC%&`&t7#-Hkboq0t~a1M?VaGgC5WH>#YuS+;KIpdh1 -x&LgX`S;fh)(HO}(4wKL(eeB$i?Yh7@|1X?Nlva;RVp{+J002ovPDHLkV1k0&)RF)I - -delta 952 -zcmV;p14sPN49y3SBYy*wNklI(boB!Owwi^H&5VBnm3tb@IuJT -zd+$Aeo^#G~&I@N)wij*BpGAhwpnM5f2abWiC3R+zGdDqrfPbYJdMN3**j~u{xjc7H -zdGGWFM96vsodfQUvU9|{hk@1HGjLF)pf(BV;(yup!YM+t5W@%ej>ny!WIzY#=D7~E -z0`IuBnzMuZM>89c*zLv(1B*a&LSi-x@At;V|AYayWqa9nbI8j>pq+SX1PaRi8qg{# -zt38yM^~hhz*?$L;aFB2SUE4d7+LExn7w_xI_@yXVj>4n7Z{&U-*p=icZvt!CKarSo -zLud>(8^F5lb_8{8AH>6Bpf9Oodkd&ZIarXPM -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 -ze)vXF)_#>}wS -zxif*Joc%^j@fLn(2BKi3LJ4rtDonFvw2%|Q-RHQ|@x&lM%j3jjJQt)BU -z-G7h(+G{q8LiGaA?fo@t(~W-{yPLtm{K6pzbk}3^Ng$AU@x&-fhmiR=E0(xuZ(d|A -zYi&cSL@F2HYHY`;p216X7@hN91d>pB3(^5k)j6{eK9Z2#peO}G9C&;j);^WH^Fa;X -zb@{AMvS#D6KoN=p{slHCC)vYDfUs;fTYteN;qE1It5+3yH}5aqkhm-9qbnBw -zx^UXuup2WF1!5p5Qb98wSFt3y24l1xn67pa6>%ld(Y4c&4fct2Xuj&*$Cz?R6hcToBok$_(tm+5Pyg5 -zgr=hS^c1)XS75y+Fa~cqEYKK+aI!>3<>4bh1I@wb!0fijea}~^VC(&!8wo591#88l -zGg#;)+1Ug)aBl>!2gARu0C}W84b0cDuYvU-fl&EaEPtBBTy1o9Zo&-bI^Y4~Zv_{p~IV_sL@=s+B-6*E8*MDv;) -z^lU`$uRH&A%=YBjM`e0+-{O4V}Ux^Plm{{atNxZHcsKI`nY -z&f5FJHHPhN+x6?j&@~pn0o(${z=@>(I&o?X77@@4(4M4m@qfCW=bJzS=uerq0dyzk -zEe`;wb_vi1PM6%+3&3uL2RNVg;l_eM;{-6UW4o~gHH`pw5rcIB^nqcK>fNMw-nf}> -zmH8KI1CZpTzRJXQxSh58X1=Mib~cayD;h}ZJ_35cQK9NyuAOR!wtG_+-w5x@)twOL -zM!;PWW+}oCfqw_U2zX-q8%f_w!gi;a+(;Js1*nTWZ)E2qppy(%nc2!?PzqY(|7%NqV;8;+w!hV$8DnRxSLT$3jbvDglk>>|&A2 -zYQg)BihqLp1qCGl1CJ&Bx+VpU_{+30D4lX<0NaPQZ?Ca<-F9?L**A;LP?zNoTfesSU%_ -zf&J{fBk44Y?G}AyRkDXwH7o&a71i)5@CbM+X>5BBcs&*?pq6L*z`%B^NIPlYx&d|) -z0DGb1N;ND2{2XL`;MqjcxEFx^7}FW>a^_!#vUcXzllDE^ClOxH_C}FcA -zwY%a2;Kii53;a=>Wlt&Pgq~5}&vU}109@u81Aj{DEd1B|PdnX0kY4-OEGa(<|E(!z -zGiy|W953?w>-?PVAeCUuOIZ<6F7oF!8^%00000NkvXXu0mjf -D1S8ND - -diff --git a/themes/spinner/animation-0018.png b/themes/spinner/animation-0018.png -index 902c837ef74e618bdffaaab2f1cc04e86e9e51c2..667cd7d4ad375878eb731326ad70a12f5536d389 100644 -GIT binary patch -delta 1566 -zcmV+(2I2X%2d)f|BYyx1a7bBm000XU000XU0RWnu7ytkOKXgS{bVg}xWdJW|Z*65S -zYH4k4VPh|Ia$_%NX>>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;hZ+~s_8UO$Q5OhUYbW~|= -zWdJZRIxsLgFfckXIE)0ZCjbBd2y{hQbVhPvZDjy4I4Gh(S^xk55p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*GpRQq%Q000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*yll#z{m$R9Fd>)=O_(MGytx*qC?1BM_8C5J5Hw5q2y;^`gIJ7!r>asj;brq;gKy)2eVuqUZ2P6y4hgmvg_gM7K_D$ksn^IpA3H} -zxF75Vf39$MdwV;_56+(;AH9P4K%AaR;O(%p!4tumz*-``GxAPwFZe0A72He#k~&fd -z9a_cNOn;!k@j#$QgNuOx4Maw&e`E#gyMfL~WH-1T+)PIn^_%qu)zOC1V%7eqBAyPk -zS~3DW7N{KP76Cu@*qLZJ7dU?-9sDYMFFp-S#AWq32S-TD1BY8R=YI$6{|dC$z4Io4 -zJAr+Hbxdb;i~MqM#k#>Gj{>cOWk!@Jfhh#n%6|s}fjAPt-gAKjBxm1XO6>7~EuD4u -zB?H%jFB9+n9COFrph@XYIUNHOZs>jw1mNiB;Mc%C16$W3;pYQMJRQ*A4s_^zAfesF -zyPjC%D#YFqn6QEhC4j3$b{q<%103!K?vvw@c)CV+BltdeA<%wZkjNi_gr5ms4HUr7 -zIDb1jFja4e1QV14$#9?=UD%xiOB#9a!}gQNZ{h4!dnwRGXC~{aJoq7Cpc?`s*Yr{n<$uIg<)D>P^|ChU$aHJpZSOM0 -zp@gXh&HC8#^J$=y5^$Zx#mHya!$^P-@_%UMj8!eDyT8|#MIHxNXDmBEL*I3{LVOkZ -zLavuA&gm4qHM%ynKl%~0L+4%vm&C>gq-SuLlbK}aCE&a{P^`|ljx(#dS~_zL*P)d;+jiG^ -z_qt|->Y)48S+8`8Gx4s#TP2n%6nUrT)}P`i2if4f29$@_OUun?6DrT{+2C>@5x*s_ -z#1NV>ulAtvA!@KW_#AZJpKU7hM1L-FR<&;g&jzZNMBfH)hCeK$FdG{c)+s*IRN1T^ -zvc2x-{dUi91+NGE_qRn-I`BoH3nSq%0~Vz^DxdV)=$Fxb-ZG%}V%JPf`nllE;7ZUt -zkGPh9iTq9HtQ+{c3$0uNWM8aoUk=_5{1@5_T*ICww7{Wz_QYmAY=oY7%9 -zXMPMm3rw{^`!8h5zY9JHzJCrz0dtYjjbuh!n+=0*3?UD?z#H&d@Je9P4c&a_4hmu@ -z1@>Ry+ra;b;k3S^8-cCG4GxCTW;e>|&}tq`y!ZTkVA}hmVzT`&EcOIG>|vaz#D*g -QhyVZp07*qoM6N<$g8VPa^8f$< - -delta 927 -zcmV;Q17Q5F473N3BYy*XNklMM^{viwG7h -zkk}%A0D`~3Ph!g&i4_YZHXs(j3Iq!TB0ORQAr9E{^4L>s>RQJ)bLVA_WO-)pIj5_; -ztE>CMIhO4Uwmav!L+3Ew11NYXOMy_pok1;B?;pMF749 -ze$MBMz*|d@Zl}0+90%3|AZY}A1oU&!%fKshyx$BTs@0#D|1$t=cWmFYeK%pO)>pvS -z$!9B3*sAB>c7H40D}TeJ@btOup6%`IeS(B90q-Pd4{U!T=^IJd{usCm>;kt#&d)=% -zD%9P0Z{P$tlvGA$r>LA$VwNfBw9*(&rC -z+Z(noMK8Luh*^ek3wRy47qnHa_mhTCQ;Ho)-#2ie6Mv^BA#Ja4QUN#s4kUS|6575A -zyawD#R9gA}zNGJ#RLM=?O1!PsFlm|06(UJL+P)9m36K|pdb)zbPUCG0I0g=YQRVg0 -zy&%S`5^s3H2QQt&Kry)ayo=?_T{)*V=C(p;_y -zFwzo4x}1Fdvjz#7gmAo>%h&(Zy)$l(%}l8U(WrLsOQWw+?a9rN^1XVAt2Kw -zhL@&6r4uP0+I~WaRAcS!lw&*Oo5uS+;8$QPb$@*{$MdQgZD)V0#;IYXcv_FZHQ>1% -zJ_>+8f!`z@7ENVj`>!;cHqgrFP7(G)N&ng&rmt)k?R+O`8Pox^gYX#m8~8n)&hczF -z&j1vWc{-l&*TTMKdl+E*0dO&*bfz1Y0QO>Fl6HHX%ZcYCI@O+DK$B8C$nTW|@7R7E -z;(v{79~D|NegZ%Y?lsJKy%=`YN(1cF>-=^Qu*#WHa!ztSSZO9qj&~EXia^5!Q}n3# -zerEhyXDZ%G-cIUcR>KfWYJOUzX7fA%rbXxn^%`yfF-erP%zMEiaTyfk8?T_G6(QYl -zZaDy9aKGX4I4M&7<)evk|Lfavp?s|-ofuzc{Rb2zuUC^T1Cjs$002ovPDHLkV1m7) -BxFi4o - -diff --git a/themes/spinner/animation-0019.png b/themes/spinner/animation-0019.png -index 7ba8e421289fa4731e94a79a57fb21539080032c..760868a01e3f03eed0b521bad6279d4a38bd5965 100644 -GIT binary patch -delta 1562 -zcmV+#2IcvW2dWH^BYyx1a7bBm000XU000XU0RWnu7ytkOKXgS{bVg}xWdJW|Z*65S -zYH4k4VPh|Ia$_%NX>>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;hZ+~s_8UO$Q5OhUYbW~|= -zWdJZRIxsLgFfckXIr{^ju>b%72y{hQbVhPvZDjy4IbWr4%m4rY5p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*JfQ_JE2000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*yll!bwCyR9Fd}*UOJoMHB|`nHJyRGoq1&L1N;<*TT3r{^f2(;=;s;niv#h -zAtEU97{?jEU-kW(>Slt8C;8@_I(6Pv_x7Fr{r&yDiC_Vap6CrB0KlInK#M@L6bWdG>^e?CxzvB90- -zAh^F;t&V2@|BxR&g4rPf_mWtG7lLPk7X$030);p~@~PlK@MoZyn`yxMkw)myl4rYs -zCdUIEK7SiL7wBA~Cj$j2=AS@f`om>?X5oK?Uk`rYok(;W;(Q`4;}^`RoAfBMGr=qD64Ql=xb7Yw7l|-a99DtO1&8~AQA>I+Fk0tLC&u3aJ8K0a$D_gX -z!G&PeX9nSeq -zIcqd21p|q7>C#EaP;h5^D=>}XbmW(VvjI|gle2j>csn>uzF(4S9EIGGA6~*JjE%GE -zO-Dz%Q3!rJ5bz*=Mm`EpXY9Zf-U!|dOpp$VtDxV4OYyxcFIp{CbOH<|XvdQL70~Ni -z;(z;+H$ZfIx#h=hdPKHA1rnJS(#R+_-2Hf+ue@knj4rZPmhSOhGL?I-@5OQ4hX$C7 -z5JMr+@%t{g8SqtrBSj{3E)yGfZ}<##{w!mZzyuV4TkGn9;NfFZQ^8b&T9id>`CSfh -z$sLC&YVNh*G<%@v_{q@cn6uGIoSY9|&3|={evrL+pB(b&{u)?_t0_mIm@^t?H|{_b -z=qQy-E-Bt)IEa38=1rFUk#tT>r?`bAc44T5^0Qn?%H<%wivT0lke(pOU@@71nt~<)5 -zlTTygESuz`$QObu*}op{2TBue_u0UnV%bZoXtE>mA@k+J!`8H!z&!e83V*%>{Khvq -z4`)dK!2-7%(Zfvj!=3+E!PVqhpH~)gZaKC4g?pE)`f;QI*orebxC09KHn^D4`=uO- -zakOzE%IR~^9;x_wcRD_#vtq6&|;k;zVzi4yE(G8koR^FNbt8U<^)0o$l -z!!sQ>@~ -M07*qoM6N<$g0WB70{{R3 - -delta 889 -zcmV-<1BU#n437tpBYy){NklBI1`mdWtQZ3?zLn=?h8YZ22xw0)Ll*qf9O&jU-JZZFI8S -zV&D<*H823K0pI5~dgPm21SXyrFz*!spaN=#`GKU5v(3Arb^wf$f12JY0DcGlwxS8} -zP*SCw-Ch*$zYIE1zHezXqAl19KVSv!dc?PP$YQqo;XA7x%X_h@tdP}0Dm -zEj(HyrpfohDSvGB7m~&~Fw>201CRXuM$(TF@kc};=?QQLxa9xt0Y3v@*^uWpdSLm+ -z-lvh7di_7ZObxgIoO$sY@JP}f;8{fcBk39NC2$IyM#OKDz6Hh+(HhW3!70avo=h0{`RBqE3V6>!Ujd|;27Js9>ZNyiG90gDzBJJ$l|@D{L)h`;u% -z6)oWEO-C{O^Nl2Ak-c9=#Os~~Ym^{Ar|@M&R3Yg)@R?76vds&h<);xb+jH{^!1WDe -z*8p!zqkp`zrRt#AvmGeAPpL0}qD{dSlT6O>0^UW$anBSSWYnBKHBfB>VPQ^KMMTvD -zgoSghy~8Bw(9OnyQ}il7!y9CWmTgJt1gN?UDLaJ6ZYahEO6B)H?VA$Z3~Wp#={+Kf -zEZkRdc(1#xeYsZ8mGxoR~H86 -ziRU?Brb#GQ2G+%7?!Z8+lLB@q>DYP}l9o=P(nh6Bicr(lz1q`JGBt|`Ny=(iNYaS` -z7joWg=rpd?U+lmGd7HJ^Ad;>JFx_@9*haC#b#2y~CKh9-Nsi#?JO-q3p6^0L{%4W3 -zV7+ff6>yvbXNPBIKyH;Qw|KMZT2&>zW1Y!0o33O3%k4N}zF5ceyFC8_QK+?Yst*bc -P00000NkvXXu0mjfSNo+$ - -diff --git a/themes/spinner/animation-0020.png b/themes/spinner/animation-0020.png -index 20c00389fef232ad13c1e327f5023e50b6443431..d228ed84fbddcab44ada03bb79b5c3d842e58a24 100644 -GIT binary patch -delta 1541 -zcmYL}eKga19LIl{X-P_9*X?1h)y2x5ilsa&Caq~I5+=5pwi%lZv6&SKp^kAq>*10L -zk?uS{lyZ{CuBnzwb-R?wB9DnXb?&+6d_L!W&inN~@9*cYZ<>~5UAl=7fUsS?IRK!& -zX?4|roIEH10CwDiUfe@;1_eL{hcYS15IU0?5QyZ22O?>7E|SfNVunU=gOS`|3X{S? -za@cehixU2yTAX1}SV3pvyFjWc=xUX70G9$_P-q+yjYeXyFf`hF?>=i37Ag#BOHqY3 -ztcE=4ObUQPS^pRe>edujrebTp-x406f*6#JXYOs4w{g{TQd!{vzz?xNp|DH6IFbtL -zuR>BFg+&1ZSafCpmmbQ3VNp~z2d4WjUKQB18aSppkrFQa|4|E+l`X0Bt%~b?Z;uLO -zP&hDB0F$j!0FA*3Bv1qZfXeaC4xV0+RGClO@q-&Q$yEE#2}bHh9wrWf4F|@OlWZ5J -zWBVRm>?`$%0`@?YV6e5=cZ<=pubz*hjLf}BL&paq#$Ux!X*AmCqgG*SD4vg%@+GJ%XT#NhMz{JEFMLv5aiO+6)aCCGFhG(PAlzUr<% -zNWp;k3q^t9bumgeV>8jVo{#ac%Gg4zt_ZZ6+4(KXOxa?ldTN|gF>z3;lAaL1ay*Sm_*B|SNBRM5TUpnoQeglUxDLUnwzD7yr -zRbjlS6nEkBKugJskxT5|jZM|@$;pq&+^ezjXV5oQv~NVEvL@uRTMQhM^r8P~YibdG -zY@2`ibPQD#1247_O9+Z{?Kp^GcJ^@Kdx_e?*;k|D|1wMsu*JydLo0Oj$551W_5VOyqo+&&3^tzp4gORd0 -ze0t<&gMMTwI6q`3i3q`Q(bCNwONsZtxLrZ@osFNa6Ld%t|GB#>KT}#3HaOC$%+s}7 -z_h2hVfSuo?>`b%(7q)+X4@dhswF!^imN+w(OdGd17?$SP_0(R=Yt(ZM;zq&A*o_bQ -z@!*oFxEQ^>!*R&AP^%1(A@IhpR#$yM&Y$<3G%5!-cMsO?>_uF3(52QoT#2-bG@0L# -zbXu36m3LT{UyoTSnEBPa9kyOxp+4kg<|~KR^+|9mrUu)!b}p=x4jO-O6gm?7St||@ -z!M@Lrw|HD?+!#kL?tC*0x*ewP^EyJ!&L%~!%>aX%^iWtub(bd*C3S4g^INB0S)a^hZm;g@T@agI-p?(y -o371Y3(aa~CY{RNPj#n)CXIMlD7V*axRUaIHKS*#ccO=LE3y4X;+yDRo - -delta 889 -zcmV-<1BU#T437tpBYy){Nkl09 -z#6}$8{2uTH@B;WMA|CByr`O@6FXi`|k>v?p*@lIq;Vq)xd|6 -z`WSL?G!QaO!V2&H6{c$6osw -zxC6ZFq%MK4BjSaf4}k_4Wc-;l -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 -z9`%Kp_n+lc(EwyTVVjT-jqz@fwk -z2yZRX9Z<`XRt^7SSbRBAlxEEf7s9k;u?d&bq%3MG-D5j+@D8J8_FicUYeW;e{$NRE -z7pfp*psb%ra+xn5mFcKirE1?HGcQJ{^jQ1zQ$BTCDn<5+KDi&+K!8!Ry4?w7`80cl90P?{pD6v^K$ZjsEz6 -zA0Rqy<;^r{Dk_$}kN&o;aHMphl?5|yBsVlp%+gHbT_XJPOMv01eu;=27SIL{subD< -zxRThEB)C511oCzV02361zDlj>#*sd%Ck-CmXhLiQtWA -z`|Jz;@>aoJZRJZNFOamtC$KS)HptlYDp9lRiCcn8qJ2GftXkaGPnwpOU+Miack}DE -zLG=J^#CM~|rFq<+#^EA@bS=~<<2~={0I_B|t~P~uKd?f$9DXDPejqAs{N94|`L0ig -zUl%^SEg9SESdE0hTkG?O?owW@*MV$+v*f{^rKQb&R7Kb91ebTh9tvxk$Nk8*NW -zEx2wQ`Tbh-nAR*2Dh;0w*Za%K+rhk^tM03d?$kO^!NZ&ye=*g_Hz^Bzca2@;-=pi3 -z=gG+v0Z9&z?}xv@%iP;}l9py7xioNVuV-VVU72Hu_V#YiAZUKFRBPu$G+?Zp0dlf6AI*7V6Y)9tw-x8??vJ0C_r2yz6&=kkXqeN<~q -zy<5T4Ch8JMv1LM^o}uVPP8Gv~B(LHJSACLXCegDgNCiEKC%MCsQZr7v?I7p>x&WY> -WPbGIwK!Oeb84yW~AzTjKUHmVCd$36W - -delta 819 -zcmV-31I+w|49NzNBYy)BNklvC>>5J7fR$Z~vZ!Jsx*Ibob#tHf#^)w}EG}F*dWw -zE_OO=oEXppTEN`Qmf`hK&bz=NFbU_{z>(ganb~3|05UMrzJE@15^=7`?1=-bwD>0iJ7b2lx*B2=@EH6TLq*vobHj -zRB!;5yHCxmG=DSXu&Z||3zxusQ8WSW0QUs60KTRm-2E7M13Z#X2TpPTrsd*q}VtIYHQHN_1f5(NVp$O~<*T4-OFhLsKC -z)Cc|m@6?K;pchw){8Q2tTVbRtBi-!PMV;dnHjaV!S%004fiGru-Y7(7R=WE_00x1x -zZJwFvH~@YDpGC`Zt62~`W7Fuv*$2wxxtSG>!$=BOC(Grw&I5?oz|)#QPt9y>;{4Vc -zIi8qVwZpXh5L!DIz$x&t6ZF2df@|AjY^RRu)zr`k7+9$MItmthQ1DW%xGJk>z{w^> -z*pcvTOMgLIT~+OLBT`mk8*W?&I-3NjQd^c`zSQf0hDzct0&U6IMi@eHZGkD=eU=B2 -zOYtz%>?p-kX+kX>irh6d`!%v&0MnF>d>ZyMn}zOz3ysr*Yd=2GfNE(rRN_3PeWqbm -zh{kRhc4?p$P1A4@cuNH}i2Ed72a5b6%V^)-3x5H-6o8@V@Yt4}EZUT&ykG|5_Ec&0 -z0_bkg|8|Ph-LGUP&6lJJ*&Vbcs!)*h7Z9`v8c~d=nwko+1>a@BC?|bY7{i%PrJ&8onpW -xoh$*=6;1%x3!Sm)x&QNZ96H2+qNz5Tp1+RyhMYIb1bzSj002ovPDHLkV1kICk0Ss8 - -diff --git a/themes/spinner/animation-0023.png b/themes/spinner/animation-0023.png -index 27f73d18cee5ba995a375da61b20703a986f5cbc..8e77aa140cd3f80f32987569cc3938742b68961a 100644 -GIT binary patch -delta 1464 -zcmYL}c{tR09LIkcX(GoA+Zc*nSGneD8OoV!Z0ZR)$~DGdn2Q;=F*6<=(@M-zHe`FS -zDecffh#@0lbEGAWo3xI|eP->bXP^B(-|zE&p7-nhyg#46zBT*W?`Y@eHWFmkFr%{NA2oi;YCmul<`P1?p6=X+s-M0L%*(UE-mgZ(=R!{8i%28_o -z-E56C7kO1zD4%|(Er0G)EKjf8swymFZgE?f6fZe+7K_E1Dq)Lj1190Erm>r0k&$vHbad&^b?+>gb2 -zu$K?OLnc7Q(#>&Ajjwues=_}Pdb1HS_9KSvwV>ADO$@OXVAz8?U&`*1lt@Y6rb9hW -zBtx)3%xm19Ix4eS0I|?xR8guT?3o7t4L1po<7MS;1hh@)M)kK7 -zw3vRP+d!9?o7de@j+0wM`)Nnc2~U(bWP)^y*&4JfT@1lk-DPuBfQ>8|R&X?4FA1ln -zI3>0tGfeIpjNKb+IgVQ@T<~41d#rR=E$yz8;#$uGgHUW=ze4|Ni1%XB#*KvpSm{g_ -zD|Gx$z14EKe|o8GwJx(;RD4-auxo)j2n*S89W`!VbaF<I66~twxT%k; -z7MX|N7Z3fsd7ONs{k(CO*Jl%Oq@TuwYeQ(%cYU=vA^${e=mI0o!d!4!s!|s1(#v}2 -znn`zkii%px8aejljLZ0{PBBZ0y)c!al{@M`v$F$frHwU&**0(>-BJZ=vy`jMamS6; -zh4;gtk3-k1ba@EKMofRpfXjKGRl^dQo3=(bEFn27BznsZrb!bM#D(eaXdb&LH|%tA -z8#=|&A5vsipY_-T0_j22KrS~pPqdPt*esmbF71^mdQRACw;>)(R$vFLn83jms?}TB -zhD%tMx|vU(kyJEtp{fs_7d!f4L*%XiImXm - -delta 803 -zcmV+;1Kj+{3%Lf6BYy(`NklOpZT0R& -z@F0i?34)Mh;zD#LGrgodSS>|6Jv}qghK7dzYJXMrKDfkVW~rGam(ih181DjGKnM6K -zDc?j-+G0e0MnEpf7RYvh9+21Mwt)mVlXS6>13(uT21BzI1Ap5Ct_S_!n+|r`G9A8q -zW|po{njx^`Src%v?0lO81yBaO^vtXcOIJPe1eo}{nFC()dB{Z9-=^qCz{vFq_$sMf -z34{S~07U>?UNhV`vm!Vpm+t`AJn{ti;cx7k>i?;vq7K3cxYEq#l5$Cy**tVZ;@^d% -z-+&AlxP0Pe8-G_pnAt9{4_tBC_rTGzE=Yi(gD#U)npp<)tAHdGW;Ovjl5)>rB|DaM -z?tt9)u1Et`iod|)3i=+EYMqcd7COJ7p`rl;12;4ah6gT}xSk{6pqdR@G+y12dUhsF -zh8O7A1s(^(0>;26NoPw3k*Buwe|=Z5?vn>xO@Ra8q<=O^+jl|e3|lq&AiLwTKbFZV -zv`AB=#k$6W6L)~!5NHheSkj5S=A)KzJZT#!3yg08&m4q{0?&ZgsT;7Ca%{4;d*QX( -zUXcT|tAPCUKa}7WaJwO^-+<3;3bZNfF|!+HcF*y(erjE?YQwc~U}krL=iY|Lz&qe@ -zk$l=Ph<|#u(Wy0YaN%^V^b+g=_s#6Bq%R9I;5|QZuNRHtS(piB6G`>+Dex3{TsqAfI9BjYISWj< -z%HC8`+>{TzoQI9uu%R1<;q27+|1dfrY1VXhV@?=2f9$WSzU;%)#0!m#%Ox$d=T*YO8V$xqovz -h4jhxOy0~tn;}@(|cMD0SwJ-nx002ovPDHLkV1k+Nd)xp3 - -diff --git a/themes/spinner/animation-0024.png b/themes/spinner/animation-0024.png -index 88ad349e71b683e0ce9f9cb82ac32795828f66a5..ed52d3d40d594dc4ff4c0f9b796b3d0243a9aa81 100644 -GIT binary patch -delta 1475 -zcmV;!1w8tu2Gk3XBYyx1a7bBm000XU000XU0RWnu7ytkOKXgS{bVg}xWdJW|Z*65S -zYH4k4VPh|Ia$_%NX>>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;i7=LQQi~s-t5OhUYbW~|= -zWdJZRIxsLgFfckYG_Iep&j0`b2y{hQbVhPvZDjy5GzvLivH$=85p+dZbVFfnWpZHv -zLt$-Ya$znoFf;tnI8y)s02OpaSaefkWo~5vVQy({VRUJ4ZXh!-W^i*L595LW000wo -zMObuFWo~3;a(`55ZDjy3Fgh?WE-*GpRQq%Q000tnMObu0d1Gv4b0AY;ZE$R5a{w_i -zIDVEGD*yllY)M2xR9Fdxm)mX=K@5g>)ASI+83Ym+EpWvJ@BbWq0uBNs6me)Np|oie -z{?9xAt}|W0l6O3|$G`3IZrZkO+h()bG!U}MI`8wE{eRHoo8#Cw`(+>NLx-~!$k~xS -zWP7$rmb%rlX(y9ORA75|YIu(6t&5TkFdP{YsdYLyk*;f5(;!1$uO)9t$N(7sBj3D& -ze82&uBU#vBJJ>|%rs6f5LL_oYhuDu5h#njVV;^L2)=Um29Y7cX;XE=N-PF1#o{8s* -zu`3RJ9e+>uNKA3JJAk7zu4N8M2dIGwPA32*3G_|`86x2`UCVkbo}I$e4;;swOJc4b -zV8Dn02pxe<*mlL(@2}VEsSCpa8IA%!PQ2o9*LB`M|rc488n3-P{~4$YMW -z(CEAeGwiLrO(Btwy`%zwp!;_&WD>@cD&D6FJ<h%s$o|7&~(5%(dG53ze9*18AZX>@VcM -za?D8%gr@@V>deG_ckqE~aO*1@{Ur&mhRS^n{Z%jv(nmbn5+o%kPsK-K?r1A-7{z^IFz}e1fsqRU?It#i3=yxZrhjZuLU!nO-7_3Zf>E7;@`_w1=QAakL0wE= -zY$z0fL7`nWVV_Zr0a!CQd)w;6+H!%D%ZB37*;C1>Z8Qh74c -zi5W1WxaG_OvG^MRK<@j8_{sxkQ0W5L$p~xsuwb;oD>|qo!d(N-#PjDBErytIz`2U} -z(Bz7x3(7GqZ*>4K8(1NCBRubs#Xc*s`$yHjoWsXtJvz(1trtos^4>D51J(g*z4x54 -d?-($4=ntcar~ZL!Kg$3B002ovPDHLkV1mW>hFt&v - -delta 784 -zcmV+r1MmFQ3#JB;BYy(zNklo`t=B`cPF@14gvb7le?TxOP=S#OgwvQ3Nw+raiFPUK6B -zD6AH6usJb%Zaf37+wlK~1A#aORAFQ3cab7AvvL7p`@#4u -zVsB=dS4{@|k~FWAFcPjZv#F#~5@t3FtWFqLAv2}F?}e;hNlM0tz@6a0DR9|V1wCNk -zkxnI5?nFNYB!8(ivx!4h1%js3mu6PD;akBu0doSe>M1PZdyg`uGfM_rDj@UhB*XoX -zxeB-dMhRjqIHcc@or$Efqe^ZAkAh(VW8hrURjUwrIwziqA}HP}*W8U3p1Bb)ZmI}% -zlw#`|eb~F@&R-?QHew(gx5#}A7*l`{-1$rUrLVuyFwaM}CwkQ@D?*p%ce#DH+ -ziG7%a$CkjMH9KvpDy#LDBvyGB2&z@_4_UYi>?~+XW8ka{342b$YDMF>U0KiC_G(FE -z=_dzP;enYw0N(oEAHZkev}u3dB1F9!X|$pa4E*<=tKzAd9Z9-u%s>Yzz7CqONQ$5M -z+A**TJbw?33*ZX)1{@|{MF)z|4GCQ?HKX+XFC5-t@#p)%J3sS4(!P`MrOR?JDCC}` -zfh3Mu3Ez3` -zT@IW9=U#S0;EkERceqZ>Yy>=Zh`!$#$t0PinST!ywIR}2mWZj0fwgbV5G_MCXlG~NdEa?vp3gJS_xsl?R<2hQ8}R^Gf>#I! -z0MxX%p8{~c90>pbo=XVk9*mA-0O+WACIcN4&16z&Xbzi(j*RA_6XH^t@rm3hG&hRD -zWN^@&glHCv!TwJzsc{SzoyxzXD6c|pS9wsl3;+XK;m}rAXbe{0%F5ox&K|@fc`?2D -z@{rbcC?J~206@_G+r`*CDa{O#Gw9b{*c3U$*rYqh8_T_2+n&4JVpD)`VhMuS%@G_~ -z4tH-uGL6Av02EdUc*?JJnTxzYTUX0Y1ga= -zCMplR01K-29)nt&kn3YqtW2FzLIR<1`g-7oX(Q2<-uFgZ1i!xY7? -zd~Y~*9r7pD+UxMgKF`BEdtvFo0+^<1ry68Xc7znSObBluYNeGrG>(;xrkgFF?&qp0 -z%viStDfW)fh0&ctElUtB?tw02`B!h;9wymWivzWSL=l%3L(D{mBb9=CJK7ct5{}tQ -z3j1;tNt0bFgUW!B5Zxz6IqZ@)R%XX1J5Ia9@1DtDN>Q|Gso;qu=u6s)uQ&*u-a{Rp -zePM;csb&p@{NMpPykBK9dGaO&(w&1Jcn6QX><R$`1K -z!cw%Wp!B;dgtc6K+bo(lRn6XCw*r&Fc70J~6s9B+xgz_uAtz!IN$?dJ5KucYMB7Yq -z8r1pllEQPVf|~sFut!f>detuZo`wzm65=MRwdeHkBVwzO5Lc83PIP6TB(&lzH{b47 -z->+Bj!YKx`6(gzrU7?}a%!{;-yhNCAX+}WwinXr>ftE#)fjRG{6l2W63+)zQ%MZUo -z(j1DNL?=%-W^V#5OvZzA%cc$R3mx^cWq$s5sl4_P@p|>D#FS!8JDQl1qG32udK@Nw -z+Vdn9d$|_Ch6EpG*X6%aN}%Wl_8XSZ?Vg`|Ky66eFck-9tuHl{p!2VI;|4yMXk_>q -zv1Td8&OWxMP>mX8-o6&T7#On5EX{7u2ZOz~r;<0YjwX=sYT5hiWCyMB&ei^Bnj4$5 -zyz)0qD%FMO$L;y>sv?!j7weTi{7OMM$>VXXM~9$a$bZMvO_~PSy4<_Xb&{&_)ZTxN -zkJ~D3uK9FpN{Ldhqx8X9>J)9&(V|UK&2cfyzPFMC?@o7<5#5%AU=IhQAovX3X#cx| -z;@phzu0HX!tjhQO7ir0oKi;jly@N+qsH2^Ur=_6|Aj3~W91ZD~Kbm_8=TSBpKB_2l -z0&k~Z0iNAijsir;(R9(4wFUCCxTgk`oE;Lxjb+Acpw>h28}oSwlu~kor({rk4qlj! -z;T|H%a9jjmv&k87N4USP9tycLV*KbaQK8}X5p@^;zWUyey_qn?aV*b(t8@Dh>Bdap -zmTG-j4RS`Me&n@uQG1qWml0q(@FfWh&8NN2Ste}h%-9@LP=|?pGV*dep3maOE(+hf -zwMBs82g6{JDyZdNX-!FCsCZWNDJ(S-k`f&uFjan=Hod+NpMDeH^b7UOeRpzFwpH$f -o!cI)AN(ZrC&zZllW6yy>-qY)ef<`w;xcuhOV - -delta 761 -zcmV`nGbE?I)9mi2ERf@XaJ-airyT`y5kEC2uwoMFfad-h>20#GrN!DZH6l)HN -z@6;p}%vmTR2T%|68=ipeGyg6DEC&`g1u*gNdjM6}i<|IQNPo(Q=%P`W`rcocKn-9O -zpq?1sb*Qn$fAa*)T^Xv#`)IQ;qrL3o|33``;mE>CrmAu9L{imqI0Ns=uWs1$rZ9^R -z!L1}MN!BDGskAeVTH)Xc?%My)0`Fxi!n&B+P7AYaCcp+YGfA}rtz31gP$X+fi+@b9 -z_CS*3RQAd2Q-6dr7=_6e2#ZECGMr@!&^2^?AT7KYD -z`xo0!NPiwn+5_+gz<$^f1aM4p-nR{FXPee>7B(UO<*SbXK6`b4b+Tzqzc<`>l8ykp -z0PqgLUO?lK2C86aj?YO*a79v*4m`kW00#iR1GqKkGXRH@zL~DMq#Gkq1Gsv0B_k=4 -zmH*Ut&1&dFUePN6M*-&7))0Yq`~Gy(WtE=4o3DJICmCQ?00000NkvXXu0mjfT?At@ - -diff --git a/themes/spinner/animation-0026.png b/themes/spinner/animation-0026.png -index 88ca75ebd3bbbc21cbe2d5d57d9ce4a8cabc59ef..1bfd5dcaa6cfebe4fa8fbe8a4c53a2650e039182 100644 -GIT binary patch -delta 1409 -zcmYL}do+}J9LC>q*-WfPE{%f>xvtB+W0ska8DixmRw9zi+Zc>yhMjqt%+O%9re((> -zjV#iraVjlEM=5uO6I+rs$~8jkmN3ntZAYCwd(QWJo^zhhbDrP#uiv6-q57};_y98T -zP$(M!)U~%40hE-Y0RSMuULo*zG&&W)#w9SQ*mxR)0a37Q76ltigRzP96h=Z49EXMD -zs0=C_%TA;*nN-$)YJZAOWk#RM>{C%xp|`6%A(#p{fH)!+hr>GHF*uyF<9=rlkLJg> -z=PE*|?a(nAg9?D4^OtdOBIox{DVW;lTUd|+Iyg-e+{zW6*0y(0VX+|Ki`au8e(M=A -zPyuzfVIYOdqyi9=#(-d20uzG=V-nezT~nEgfcAFasNzH_i~s+l_8`G6@X2ch-~G8g -zg+iyYF@X>xQK10Nfq3>J+6DkrYb_DWWY@Rr4cPGP-f(EuKmTIHhqE0ym{Zf;1*M -zPE*rKDd|zmKm?%2F$eTFBE`O~uisoWmZ`Lf=GR{`>ze!yyeqlJp+OmNmt^&;@t=(@ -z6>V{d;&N=GlIMcSZ{~dcTHA%@O#%R)o^?v*$(ek+LC8jhIvKpa&~R#jn{djfI2w=}o;BW#K;1@k3d^ig -z22CE2a<;NhfPK|=y%y)^wit3NjdRgq -za}!KWh%Ik{S>xe0H{#1z2H$f<*sL>EHJ^3qf`cq*IGjhte>G5OP -zxN}@drCw)gJCL%jqhZOiJ+Gyw-x*`Qteg=h{UaZN5eSYyemNbxAF;N2ddNG$J?Suc -zAA}95GKs<8ZX)s+d^^8U)>Wrvbd_P}H@bvIJJS4VK2;W5uI -zSw@yQI2MPvcuQ8tD}x;a0P%%pFDXGab3Duc=!BJOY^nB@c`16c5Uhb4&4o)vv;xAk -z*)!ci;-B+5W`Cnqjm;Ql={_>sRKtJtNa-8>ZF^>VSJrdSX8^rnD?Bu+@OkSN=dV7C -zxo~-q)DLND&3hwAqFGDVyFcbX<}ZERDB)@YckNJ@>jkDYqXOgh%k4UjKqMV>4u*xt -z!_xLwR%tCvPvmtEos|vmxi&MndaJiYi@h0{t?$yKBDO`X%^A9IWu=Z??Oh8mUgy^Y -zAjlm?6}9g}-cAI_y^2ZZnYD4_fzl6ZT#L4AGb0TM@bvfU;)tM=ddYd*K#MjH%ad-c -z@>FHbO3Xq@&f5Xl9qJZ$Pd7|UB)?!HgsW&(<=_;1ia(9;&TCf -My!7K#7=6>i)(L>z)3 -z4hbZVm+3AJc_SXp^elGzH16%auBx{f*keeVNvig_quR$ffEqx(j}u|Q2ms6g5I`iU -z4(Dlm(#Uh;9k5GkXJ|X}VF&JR0f>)5!6?3M&+M@@5FNAx5PuBbAzEqQ$x}1g0g?dF -zWR%PXgz49tKK}pFfD;Z(I39)Q)`FziVVs$!qUYY$t6Z3&Ah;x{AsICA^+Z5> -zrthw8iw+By9Dj5ObVD*u%#wLTHM#SlL;1;|&3T)Ysk85GChSh$`%*E+zP^i&zEGrt -ztn|`Y;(R0(rF#>}$O2zEoSUgmn5gFi+twlDt2a_64xe~XutSc8YDWq}PY!s9iV-kY -zCZx23@ycReli|(M=Oi6SdII3Yer^FQ?YssX5(}Rkx_@1CaA5VKO~)%qOOj0~6~pE2 -zJbgAK8%byOlHY}wAGN6#z%hVByDPagyaI4ns)nJIJ|(>c@Dad9(kGI4l4<}mlJ}D4 -z0A8D+E0R}|mgdOZMZ~eyl~rFgOtz^l$43C(JKBPzQ=5yDzSx;yPM=7+CApFG6Tnk5 -zT<0B9-hV)}kf%&AAM9`ha0}oLz#CVzo&opkPdB4Sa>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;i7=LQQi~s-t5OhUYbW~|= -zWdJZRIxsLgFfckYH#e5ybpQYW2y{hQbVhPvZDjy5HO4@a-b&K1F@e{28{#LM@oNi*ZH&5Qqdpq|5v -z#JmeXBY!ybJ^V3zohh*=Sv1o1BMDLhXdk{E8;W|QszzfN8in3QeHjKljQ%FPrJ+q@ -z&ph-HMPM4*IO>Lhwrr^9a!_})az2fphJ93uKE~I8##~5WESf^qFmjoyT$_j3eE{@3 -z1%r^p*J0$EZsV{)oe8`OEf1jQfbZ;P*ygMa@PFC>$|&|E0Zh6k3V#XjZQ7=u*D#(B -z)_*e!&{$ANKqYndTQ)F?a`>Epa3>N!hrim?0@?&OV21!lYC#qR^{=obN78oWRD~ -z$oQCa{Z{z~u<3f}$gL|VWqH#1+@8Azewi~fvB|qsE41d^l -z!K(yv6%aw4`H}jN1`pG0=FxaeO>?H^e+aG(5&-e&O#UZ4DY?go3q3_%s8Y^9O-vFEC -zVdl>3)#l#qfrJ>IBBdbv0XCFPAXq667 -z!@#u<{{TW0!0-~hcpw?4_{j%?06=CRYm&|6 -z(}MsYj`yzjc}U>HK$y)#K+3@MKY3v -zq{a1xb9V>=_$@Pl(9| -zM42Oz8rjzAe1F%{F(1jc=_~!MJvZ1hMxl|&=xt{{W{o1EwI%j0B7-iv3c}DV_v{d+ -zz+D@WBUiD`-Sw^=v2PUFnBUfAG*xKE_@x~xde9JnJxNVKU^d|Q5JvjDNb~!A4z(a{ -zMZHD~0K_2@7629ib|g2iM#2sUHvqm_0($^INIsoWd4Dlx4D%M_4*jJUis -z3(K5F5I`_}QI{G90N(*D?RgTL9e}?8){+*sM$4X-J+E8yBPVvjG^J`&!yBtSy7xVR -z-y}DZmiGNY(od2*Nx6y9!Gd3#T}iSu6)hS>%w3Wva-3cd0R8}YFeRJ=`0PbS(mMd3 -z07OZ*4u5U{cq3^~vX-=SQt##Z1c5tqQUO?z^p}n=t}P{its$0MC365PvrQUuCF#+i -zuARQfUsQ4@LKT49mcCxwB&4?7nP9!t^&?VGb~bInnN1LkeAQWZLhJF;jq3`)y2oT| -zq)j_uKJ?3JXcaF2yiI%Cs@K3JwscZl7z!6(%Tfj4AIa^|LL+%F6hh0*>g-=eYXHBj -zcaJSP(X~xChL{ouCM96^fcuWGO91cf|9y+y_SI!p(v|rrrz+-uI69885HhPO00000 -LNkvXXu0mjfFm*{f - -diff --git a/themes/spinner/animation-0028.png b/themes/spinner/animation-0028.png -index 6bd4cc9330abe5d547de97dc0deb497bed4adfc5..eda5e3f2f3ab415780c5c7fcfc273bea1920cf57 100644 -GIT binary patch -delta 1367 -zcmV-d1*rP11?dWqBYyx1a7bBm000XU000XU0RWnu7ytkOKXgS{bVg}xWdJW|Z*65S -zYH4k4VPh|Ia$_%NX>>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdIXW;i7=LQQi~s-t5OhUYbW~|= -zWdJZRIxsLgFfckYIHxK6bK>Lqu_-Tiqa7nLjKONyM -zCO>6;)k#UFzdq`erRs@=zmb^#NOVW$Zu3N>S^-@-3g=fPv5;NAXMW -z=iqDbzu?P$f4(?lVk=0)#MN5#U47d1>PBXz382cK!4E-r68;|i9DE5DkXV2pGEMAy -zdxta<(|>8R`kjx`nG%HlKKMsa9}=>O--7Rg6UPC60J>)@>r)_Cau|*2i~tHVtx3Wb -zAm7+M8so~EKhxGaRzzHFW3{uFHHbI=7es3^B -zub$%9L@dB0{{%V20%CwcDGEqeo+h@zs9hU?>3<|le@D~;RQfCUCB9YF#_^Nq(Atg< -zO)!YfP`C!e-==E=E#Sa`84$LBWK90p$*UkS7RJkj@M(mn0*ReXM7+A@AYq7^A43|r -zG(CwPI_XxN1QX^|Ltop9ysf=$aX)Ud8t6%GW4!eCU!#AS6SsfoI!%urzupFoTbPOA -z(SH>mANb=9zyxUK()zi2-WH!(VB@u6pM1ovAfebB;&#keH;^|$Kc7QKC||u5+>@1U -zn6J9wjvzfgM-c_w$P;TYeVlPi+*n6Z0cIW5=htAOhW++&Em80 -zjP0hK9uquB14(f-)t-7?{DV2`uI0NVtABu54Bn#-yZweC -zI00wAoZh>S&DY{K7D~)d!5T7@Tn@NxyN+;dz<;wiicImrEjXzYSXjC36yswJ1!;nO -z(rSd*>aLjMrSpwf#-{RoLw-yXP80D2#M=ms#^R3{{B43k$oJf|o^4I|Z;bWdE`O9j -z0zi10xKDxG6hkhcuv24;62EozHc<`q#w$Lt=f{&IzsB+@XmbQ{8_2vJNRyyX#(QI@ -z@B{}yM;za(&lel8k)DnpB>oyA3Bj|0h_w~gIe|u5HF~C2w&|zTAzuMCo${nO-ooEe -za1R6$Kr(q^nB1mZZ&U?t3&E!OgnvC{@+wYYVQau6g2s{L55dPE3Ee{20^-bq%|cLZ -z>Yt+fx)!&I&|@BtDbCwPcT@a}=9e)CMp6Qt9tr|bZOBZ`ozye&?$+qMb-Y!5HbJB^ -zJkCL;q7i--b8z#EiKaxKhQc)PMq$9B@Z?8^22X;Hs}4QTpK*?i2A~W8(og`C@?5X3 -z+al2wOj-VH19)kG0yG0m8Gex&Wc$r9{o!X0dGx?BJ4|n)v@Od+XTcxo^~1+v=;UWC -Z{C5GqWb>{UMri;5002ovPDHLkV1jT+WpMxi - -delta 662 -zcmV;H0%`r}3atf@BYy&PNkli)M@M%ML(eb|5d&9R-mn6$Bsl! -zFUw#bjxs(R3igubNeDHey_LautB8K>T#*s -zIh8CkDwf8F34i7%3wMdzT}oZt$67{kp|J2?t@m)WQjs?KD}d+9oFmEOhJsZ)T_h7F -z9RU2OOeBB-z)zBw6%hzCQ67Wk~K1a -zug-|vxPOcmYF}UAD{JsY$c&gG<<7%mp53%>=4~iAkX(D0?&=8**S&jnv1>}Oa>k@0 -z3Y)s(9e_ud%crKOyl-NC`?lHuIZw~E^eg*`xmNt1KckD~e=?FSRnyTmu4%OardsF9 -w=fU8)A(yRN^c%P7*IH7p_ru%|NNxNFW}9j5=?@GUrvLx|07*qoM6N<$fHq)$ - -diff --git a/themes/spinner/animation-0029.png b/themes/spinner/animation-0029.png -index 2999ed06001988014fa95f7c497419cb2d7e430e..33f2683016b52bf778779348c8c96cdabceed39d 100644 -GIT binary patch -delta 1330 -zcmbQkdW36&ay0Hi1+GdGpNz`zQEj4Utcohbs!ae&=Y -zln9hGvMlLP<_C%ig2bGGLPd!T5K7O$!1&Jvi(sInC`d9mIW;epAu%sAH?br$KTpBf -zAg!QSf&Xz6P=PQ=K@iZ1sYUe&OZ5!QJVSn$0Of_irdKBCq!ud#C*~FaX$C_hi@IqN -z+6)ZLcRXDjLn1h9r*#KO8}hh%F1T>%`v3aW<-t*G9G>ql{*p+&xj=G#is!YxoA%Cr -zQ?~o=)t4o^oHmHop4XY}_*bAKlTrE2na=P1 -z1WXq3UA)Em*mj$zLVYXa&xs#RnX7ewSgqV#p&Xihe6OYHf17DqP6rYqHgP=o-J@G@ -zAkKK+Tb}l$>x(;6wS(Gs2^i-6lRJLu|2z9*?j0ua -zo+EkYAGkhtc%;bfto+U9cj@`GGfpf8*2m}F{=-!1 -zY@f^XnZdKGUL+S~g}>tKIdV4NDXCsy#`^;H3)3V@w;b1d;I!uo>%2-?+eV{fGuP}^ -z=Q|zV&3oy``CUi!4K}8QPhav_zNoF(%=6H%KiR$0+YX7nm-@|Q`O0#|)wiqeau#G- -z1?PyRFn<$XP_A9TzJ66D&m~!b>aJ`nM!WSK2l$?C*A!dxJ=Uu&qTl-bt*nF>er-)# -z>zBnl)g@VX`gC)wUpAfN{<0f_RXnp^i{DPGE)p+1s -zZ@RAiO@ZabCZ)giL@p+|PMpBdb6!{KrOPXJE+Ow1e=@Ic%{a-pr~JIth84bxTN!W8 -z6RH1uXd}0X1B;7ulDyD_Cs*gVKI&fGQpG1zW-DC(X!d$jPQ{O9J2wRLESP`9Ln2Ah -z`oX>{>{?Rt(LU|>M6W&4pLCJqTd+ag!N4SamMf2aetLepACR6OxP9{7L+-9@#YyWD -zch6M*>dAjjg>~7%QyRxVIe*gUYirfAlVhmtyK%+Ad&&BZcJ*<5e{UG+8$NvFY%HX> -zVc(R=wMn;Pz3bZ^2|d~ockO{mw~Ibo^!?nX#}+@D5B+yOzul?whN*1wVn)#!j}va+ -z)V;T975lLj(G{)x*vig1O)`GbW6o?8XW@92^X%f4pU?eaF;LRjrgA|tfBJ2lF44hdhR?_qW3i$v3E)M}(plIuJclyE& -z7+PA%5@JArWsBsH!zD++hL0pl;uas=5Ig}$cAH6Rjh}ud2wadtGJ>c3u7!5X0hp7{ -z-Is-lbq+w&F3nZiKf8o)dxjG}RsoPJbF%Wz`J~HyJpkh_JAWW-*@Wyh$N#$?FyqgL -z`arUTDkMimnP}K90GMq|--OQq_GWaJ^o!(QlCXeuS2CbJ*ktyWTo-zyL<*8aJOJ2B -z+DjVjjK8ah{g%TFkjqdusJfBhx*0?^SiS@JVg|MB8NeR^Kda%?&~c|kE@%u~e04bD -zos_)QRANOrDMB!@Y~D -zer+8^y0Q-w&m2h}*KW(k+$bbPNsj=2G^$Ymypp`E2;MdP3PA2FKLM%2mfN)RTh*@= -z3?md&5NDF74HUG%mnBX3V0>LatO+L^40aTI8%DpEf`177H;-XIV*Fr3Xy=-cEBe5z -zr38SIZUzxY&ioK0RsnDXa4^6knHP-W6tsb#h+6$K|@5)`8(0KI&>T1`Vh~-id -zJEw|!SGHo=&xzO)mGo9w{+7KHsx1%-c3S;vW)tvePVO1SUdrnuUrsw$omDTVo7Sw` -ecC#-aQ=k8l5OG^l9jNvI00000Hi1+GdGpNz`zQG41uI_MWG>3jsxtL -zqC}viv4M#Hs#icUL6Dd;P^c)80Yd2+7#RP#U=a+I6a`5JC#UA6G9>0@<|dY8=I1FG -z8>AH!EAT&V0xA#&DF^~OF}0{3VX2;hxn1z-M?iTYu<4b_IjO}8!HKyAK$^kO$f9nV -zgf;^M^BzwZ$B+ol)@j{Ew;Xs}nV0(B`v3om-!G4bd&=)4xsz9HK{DO#zKZq -z|N85%tWMLe?0moH_rl}bpI_YmyHx(`(!-IgMdc~{nf3K)hyAUKmfP;#6AQ?uGL* -zO+ANJ7nl0o%6ws5-+Y$i{0YxL%CB`_3s(5J&Q~!toTaC)H}&&Uf6w_^2YAn|D -z&wlR5PUiYeYBx7>6)j(Q>sIM;>$e)VpWWw9<_(zF&|ebj@2L2s{fQW(x&5*e*VoqC -zu^yf|`^e1qcQvfoew2sx+WukNP`-?Jx=vDe^J4iwE12XK{k~f*XnUakJ!e(bGiCpn -z>Bahqx=qI>CDnfF%XMzGd0xGEdGUeQ2EC2mvJ!tS%4JG!eX^Qom-S@tJI1G$>jgRW -zHvDOn3pn1NEqXAx&3-kP0|#T?)Hh4_3!ak`^=d9XaP94h#}k?FsGa3~?xZK|Aknhe -z@0CH(<=5X9nQS<{m@(vY)77-UFY9-5Uzo9r`SG4LCA`r~o+|d;>DoKl*TZA_O(CnW -z8@ZEZOZpaBPCqBk+39=F^3&o+4m?+HNb9TG?`5z`jqI>dFPOu?Q2L=xMP+d!EqLygv8P`Z$-xQE_XZKg|4|Q)&58@Y58V -zdM0%tzv90e#bV-qz7pET8PMV)DE4WVQt*dcnbSE7^!vM*7?Kqyb5}lFdc&$oXc|A) -zyvqFA{ro-;dzB8oKe5j6!Q`Vys=m+AIkarmi?zYEk9nW-xe2&VnDf8o^o%IgPQ6u1 -z`^8spT==?jLb}d3pPbs336psg?A&# -zeU5|nk$#^4Gt#P4xEK#D3YZk-azyJ~)6*Z1m_zmYc$hvfdlaNo-dJz{j(Hy2>BXyD -zRG3?2KKMO*>d~?I!uh%!tJfCsJdd4(Tm;wn`7t{zngkz>WqNMs<6l%CNNG66d%XYmp`G6+mKW62^#2IjUH0Kd -z_kqnbPP}GY&Gu7h)1PG$4iO@T{rX0&7DW!LH{|y13s<`-W4npXVvG4)!>O6(Zt*@$(Ga!0hhn>gTe~DWM4f -DqE#_G - -delta 597 -zcmV-b0;>I_3he}tBYy%kNkl4>@%%7fDu} -z;F&xmlJ9o+J_B6wNTMWOV}sW?2axRRLQ-4o>gpounzS{4^yByJtzM;ye;kOw3ZYcK1wy3BU`0p8#GF1ho?!th}%Nb+wd -z2Z|!8Q4KQC^?yz%>E1w0?wkOAw;Zo@$&;LjYUN7i?VwG`=OZ?)w;$-@-`tL0rJMM)XJQwQJz;GN`rp>tT$c0-e0X|Xd4zHQW(5abTp -z`MW{@KpZS5gg`an9G)>$KB$l9s2TjzAK -zL3AkhTl?RZR-A$wIj}ysK9I^pD~`&D4YDTy$--4z$4(M6SJ1&2&sG7|-tK>s6mx?| -zwJ9B?WosgO0J8_+X1P~NLE_l3B8ZZBk~I5G`3!)?bza$U%YOj)t)?t4rbG%-%Pls# -zXeX?&Urwutc%CBAOSj_GTC*BUEE-9-8Gw4rL}!y8?i+akz#J22Z~@`SdwGRT&wyG^ -jR^GeKzvD{=PVe~#0SQ-xAG)mK00000NkvXXu0mjf-ZT+= - -diff --git a/themes/spinner/animation-0031.png b/themes/spinner/animation-0031.png -index 9a4974392a82aad3c7c6820ba8f9f982f9b2abfc..f6ed4b2b3cbe1611c2530eed5d67900ef2ae557a 100644 -GIT binary patch -delta 1226 -zcmdnMa+h<0ay0Hi1+GdGpNz`zQG41p-5-f=lljsxtL -zqC}viv0<{utQw%0AV|y^C{&cl0HO2@42=I=um}c9ih?AAlT-6j84~j{a}!H4^Yavp -z4blpV75E=F0Tl>?6a)dCm|9eiuvE{$%roS72~b`LYeu80U=p$;a<;`d+*fKC$$YSJqu0w&E-Y2UP>pBWsS|)qJqW|4c^BJQkNV -zIZkJ`H5NXpXZty`KI{EYz3*jJ4?O$ca+WenF=eM`^?j+o)WZ5m?azij>ys}gS(hG* -zH}_lr(v#Jl0&nu%teF?}ROa9rjs{_b$(z -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 -z?c5ONT4^Js>%@&fjm|N)iq11k-rRBGr -z_AgV*iZ*7dwC8+FeN2T$Ac+~DH1@}G0+~AnwDhX4pzrZtX~0)j3`xp~@%$nX?0@FaI|5-6z`OY0Th*OW -z|4@ijFSGaDpFt$0oSd~iMij7c?x-k<6({e!hl5_ZQSG@|FY?i{e?O`m2c9R;(FK1e`a06(4EF -zzyzcnN+iMV?Tgr$CB9;$K|2-6kQN&-s@%PznjK2jfO$m|w4AGPC%K~N0F@R}!<&;H -zXs06-9{p$3t*9fsM-rH7L|2p8X9C|GO4buteT1&qEgL__4~=g400@xrIwhi**8l(j -M07*qoM6N<$f_iAeZvX%Q - -diff --git a/themes/spinner/animation-0034.png b/themes/spinner/animation-0034.png -index 3b053defea6d5b6c5cf6408acd8d81598935db6b..2851ef3b109f69058707a6400a094ee5f2d4c16a 100644 -GIT binary patch -delta 1041 -zcmcc1w3K6lay(xpiogF1BB8uFfjge!6FzaDGHJdPEO5BWk}4+%uOuG%+FIW -zHb^TdR^Wf!1XLglQV;}mVro%6!csj0bGzWvkAU(*VACs;b5e^Hf)jHKfHZ@lkwx7! -z32g=jroEmnjv*18OQ$zZdZobQy7uw^`c1WSPAtsidKEo$C8y%f??PSg@@{Xt`>l4r -z;Ro4cbJAyj?wCBg@XXmt%i|SCJj@#A3(qu;so(B)@AJ?4J$K)i-?_X&kGlDIS%vvrup0G+=^Z0X&)qz*?QF05q`CUxb6|=u_<0xQa -z=*<1I^zD_kZi{a?vD9VobCxBuRf^8| -zxN_y&zP=|*-W`uU7SFlvqt)_l@`mpOZheZIv$pi>8>Nl4J$GlnZVG$gQ@`ufTGK*q -zo_(8{oYWTX%f6Dn|54=h&+kN*h%di(*HBWfN -zwrg#}%I7aD6Zij25dNw<#YDc<&_GbIxI9r^?a_e~TZ4Vq{@da7L)L@wmgEJUZ+iAD -z2M#`#kUilPlT+sQ=u>0TlMU;9U)$m&{Q03Vn=^n38_mAV^gRmU0 -z&c>V9`#HPyGCD2A!h4?vPv5ghRQdeZ$L|?Ky_Tq+G~~J@F6MqE>v*2xxhGfBcs6b* -u>YFBX;-p%{lUvJoRL*RPSS$Qpp7Yh?GFj7Uz`Vf4z~JfX=d#Wzp$P!7#=SQH - -delta 323 -zcmV-J0lfaD2;BmZBYy!TNkl#RKUOfuY8a@#NU$MB)qiGe!JqT6<_$9L9hFDL -zfT7lhG-g~Lopwgnw~irM5RXIW|J{p?XwT0QYg})RVnphnRplwguyX(qQS&7gcsbi{ -zDd!f#n+}%%hEaLigzh=a%=?Ks5LQx7yz{1#Iyj0$F(d<6fm*d@uJb7c>aCXQL*r~E -zc2lYk71;E2D{tT< -V!X$#D9)17-002ovPDHLkV1m`|l&=5) - -diff --git a/themes/spinner/animation-0035.png b/themes/spinner/animation-0035.png -index 6f402ff606f16fa7e385677dcecf3fd5e5e8740a..2bd3b0dcbd17f182023d4d609f1103a8b128c7e3 100644 -GIT binary patch -delta 959 -zcmZ3@bd`OAN`(_kW-nPUs{r(Uy_lUn_8@2T#%WUms$j)^^$T@^HP$U&awcFk^mXyl30?; -zU}Ruup>JrYZ)B`sXlP|>X=Py2##bM%4^$)oQWTPzo62BdUkRtBcQLaqCNavWf{ -z6eR*BjZITj<5GcQf*>(xpiogF1BB8uFfjge!6FzaDGHJdPEO5BWk}4+%uOuG%+FIW -zHb^TdR^Wf!1XLglQV;}mVro%HJ={_~19Q9J(~p4iLSWM?lXFsw6@n9U3xG6(p^-)1 -zGzo162But37srqY&b8CHixwLQxbRN>Eq^o4_Tlneex^BGtGb?Fzid0n;NvEp(~rMa -z*+%@(D?XMf>@Jt{slzuW>CAVT1mPc?Dru4Ss~fBB=J%J@#}?X8tDR}`eX?iG(N+FF -zm#-Fauxj12vC6NnXKl)9Gr9J^x+`TzvX}W{UZ3)dH|I7yiujil%gHTz{nqxnb*%gO -zoc2gNh|P}HS-3QRZLPk)fMffFdaDNBdV%wbl1t=UABlXOU3y{d^R$n>CBJ2ymptot -zpLp_()dzdIz5_My)atoj{<293Z{^%~!}gH#oqG!ZSGd=`x^&+^!O0~1#i69FUypvi -z$8zKF~OrmlC8VgLRjzH6VpWtZoBTBO}?vZ@p>U+%YlgW2b#y+O$= -zv3$4QEK`qg*!tkewOL25TwcGU=jd9i$T>f|nzy^(m#TdkF85pL`Uh{jzx7*}AK$FJ -z=DXVV^={&xMegP*w)lbF}lF|jo1oXN54nI!Y} -zOOJl#FK3R!Vsl#gf>Z>?%k9fU1Ft6q35xJk=g5HNe_%h*d+Y65e -zI{j_V&C>4~C-D`z6}aoJ&*5P(bbj*jj-nd-o+5w$19y{IZ`CXhjk)cAfI+dQ?Z7=l -zk55n3zW$az$mq7IbN7jv=HJ)0ZZEp*&FA;#hii&sk*l@FyYs(hp8YNMTp{Z7-|r5- -zQ6(G}j|>Z?+ny%acHGF`9IoxR`k6(x5T{r|^VZdSEPfrCba}e}Z+`c6bN7BpcgZiB?Qqj|Pc_~9XDnl{A7G24KYGI9>TVcqmaOi6m;Pic6MT1_iY!I4h -zG$SYcUUZ&mRDu*�r8T6%e!$%`lX$e55AQv%p8fT*;ZPWPfspvXa4-Y~c_L%oOeP -zFp`wOtrUEx2zL#ZKV2_uk-naI=T%aDx)qNEEj0~i2D>58Rxoa@8;qRNjPVgWelI$A -zj$8RvykjPKCoIUZAa{AhO2pJE5M>()+l5Fax`uZV!Kl -WtQ~;0BIp1B00{s|MNUMnLSTXgsm#qUEy>U?$wVr$A1EdW5_1L$6(ur2C_MuM<3ATHf`O8vAj#n5)Vx%N#JtSh#FEVXJOyKe -zw1Q#<{>M!~1;QW&K|m*_7KPNqE!8tHw+lY~2q-TEHoY=AC$(51I5D>XNHZ83S=3FF -z&}Lv@D)n@642j_Eoz@tn<;cV0`uBhQvy0{5F16U!MzzB?-_P9p8I!7I_1-tVTJ$-*GJii4JBPsygKXObQ_G0H -z^_AxyR#vm;SZ!H-vCdjAhJSkKbouuTtxV3F!Wjt?z#1YW5T>TuN<}K%VobiaQvg4#jTH}cLdIwX3dkb -zTK@29`uCgL#ZFf5xo3Y^s_e&p?-#ER*H1Km{nhZzGrsOvm-$iIe?BwmU$rmPeNe#8 -z^Iqv`#adVWglmHMvHVU|MiBFROOYp*l$Ufki_{`I=^`l_9F&yOZE -za{IIy@N8e+cU*4H;^%A5&A;6I%4xx$g6~Q!+091}|G9i!{gvSByP4-?@3-XzKfdy& -z@k^AjgPG~?*dyLo4}7&xblvG4Fn#;HUvu`p+Wp{{+NYB|7ZP$W#P70u_GQt@v%>!w -YGgoPHKfXE*l!h5RUHx3vIVCg!06jvn00000 - -delta 53 -zcmcc19y~!sU&_ -zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3vdk{c@wh2L4lT|!Gj5-f+`s_Y=kzX#0Nu`@F@ -z$pp&XSRe`X3Ft6>{+QuE6cXhS)stnj3nk{5xuB7*Te-dIiu<`s=hH{e@<8KsFhqj4 -z-2U2;Q-NF`3LcNVKFfo*V<#O$bT_<(=EW;(FpWiSJuwOhXr7qr -zj_Y|esldc|-cllNl)A%btkWRTsFE<<9I(dEoe -zgg7SfDVRA+mCRXiglV?yA*Y;kDR5d~xN -zL@AZ4)L6Az^_ps~r6GMZdteIhDS(6$N3){5a^nt}+9nTxcReb!+``#K>T -zJf!+2O!slwO{wCx`&jo$HGD(&Ni}>!_enK;L-$EFd_(t1HGD;viYf&7K=Hi3d(5Oa -zWSW@9NmpZC7i4vAmU@Kl5rN@9@=uUoliKY^ok@@KqbGcx&jSk)z@(0e9l;_^b>6 -z0|^X|qww2t`Tzg`24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf00007 -zbV*G`2jUAC4mu9y$&hLQ00EmxL_t(|+U?xUO2a@D#qo0|6R8UYan<*K96|6A)Jjcl -ztsv5me2j~vlh}=!bo>7;vkV;W+`};T^!O0w^SN&C?v-V^WCHM?AeH4&t5u=paw&U# -zc@F++Cg*dRks@GpmO@Znm9nOk?e_cd{j*b5*OC}WK*CT`?law7&*Z)La?Z)>Mhqli -zJd@pqwnK>||4dTYBS@dK1625js&Cx$xJf!6UlW!B1ypb -zw&8S&^Rjk4#fe0afN?o8=`?!=I}$+x()OdlM6xzX@pwm)fbm>B+DU!c&{cT=63T|Y -z{??!74nRVXVr!@NSmy{5kQk&`HrQF&K#+j(g~PD^CP=^qJ5p@zM38_>f)vM-i5&@; -z6r@3G7Z)dT1f-P>r`GQL;wpggbwhu&Gf9CR379J0wF?Sex(E_5DM+UQ#f}6_`R8K#%}PY9EU9b@wnNEd!9QX&RMfDfhYlPPx$DM>^@RCwC$+rdi1Koo`HbH<4ap@InFBPjU(TNi?lU>6~3Q;n$j0#+CoZS75L -z)2-nDEefH#fuFfEB)+}5E?1Wqnw*{sz|y>(>25leA0O^Zbu?i`fWWd2^(mK9%FFvl -z_yhRgiX_`QJ2_Tf*CI)#4q#n_(m`GYVgdnrk*s3KF$_}(uq}|~Ln07Bah%FA4BMR2 -zfwE%_C -zX>@2HM@dakSAh-}00027Nkl&+RXA8IVqnqX6v=>l1nbR5JHIG;|dqPa4jg>4yoY)0000< -KMNUMnLSTZ!>UDtt - -delta 1891 -zcmV-p2b}oH0_YAdiBL{Q4GJ0x0000DNk~Le0000f0000i2nGNE0QjwuMF0Q*0drDE -zLIAGL9O;oE9DfTF000XU0RWnu7ytkO2XskIMF-dg7Z4XH8;4t{000K)NklTY8UYZEXeh#?k8iL_#(l{Zo%*%QryLl_}#u6xTUhn0xXURTOF5_3Xx -z;WlFCwAbCkid;Al^?|*hMI=O#2nL5l#`vc#6Py02s((4SyVDo~{$WSc(x#fgKZ6c*ar$;)SP6Ox#@J9d`7#R2~V{C$RzFRJr|LNYg4WOp$y54C&q!Y+=I-LOU -zw}%fO{$p}-5)%^>7#|-;e}BJ!PqkV_Hk-xn?k?WFdxsY*^eXlMukpePE4hlepZI0!-rR#sN< -z{Q2|mbzT3t)qa&W03UgPwryj7e;0qHH*aEQW(EM3)9JLK>-xX0Y`9aYRN{w)g|d`VT9zd@Ha6ty>Z+WdpU@0hxxKwDS5{W! -z+<)BMRw|W>wfH4tb8~ZBD=RB}HA!k4qtw$>ev5L;}%h -z6q!s0hGC#oD*n_eU=XxaD*j{`1~QopqJPmS5{U$o$>eukLkb~AhKGl7e0&T5*xTDP -zU%%e|rIV!m`t|lNdwY8(03075V|aKNLWq&BA#L0Ks<*e-uOA$|*K}Rq>jYBQ^}U0G -z_nKGl?d^qa+h27JsVE8sfKsW{cz{xLb9m2t?Ro8Y1<4pA06+-2Qb?~oul*~5{D0gD -z>k^V(*nX#w^gJcHRq{*icLYf(CAC@&08pt^Kq(>JK@w7_Q~&_AS`C!aOWXV60%LJ; -z@v%ec^2FE}rlzKRqj#&O5W+8CyLJt)UcJKZ!2z!I^?m>3$&;VkT41QEy7=ciU*pD& -zQN-hMjEs!9Daq<;xNEigsruc!cYkr?#&sA*Wf4Gokd|e|rl!6|u~n7>)`>cs3duilbO8#oAt~nWhQOIXLJ3 -zdeK`S+O~aqmEw7a5WmhC1-rm*!C@zaz_#u7*OQiIK?s3-J`c`07-OK6qJLJaK?ng= -zRiSAbG)?ot2q7SZKnMZO9WdH}c0UEA1PB2o1o@)^Ow$AajE#+T2YLJUZG^*NU$tAe -zZuu%Ss~7~;Gz~o=tuf3B17ivpWuS~fVHAIe#=toTAq1a3eL6K-Z9#I*k;~;UFfia> -z-{0SdloE=fKvmUq&j8>!9DhP}hm|MmaX9BVIy!=7S&dohdeXB(14jBCan2#7 -z^dTuhOP-8Iqn&TWIOn)?=MF-lkPj3NhjDUpa%yG=mGsV`PzaGoq<H -zQ=aq`qLhL$=7W3cIgSI<1nLTF$&;g_qunW)OeUeKsy|WU@i;8YI@gnmqWI^Yo}QLH -z*|m~y-@ZjpPmh1CRDUY@zc^Rr$?@^=-@hjrW1T}H*+1 -zw1)s72q97l05Slo8(Jt7LM#^ZeWqzD%4Gx9Y88Y4rg?&5u>i+$nqJij*Q1|b0w{`t -z{{DVY%Ajc~B9RD&hK4|CW83lO%^PT%2KP?_3xMqg0ElKKJr$L$t*sv`mCD~u(?mX> -z_xCT}UdF3?Yk$b#o`-V|+qU62jvrpV`TF(i*AWhfVVdTTZr{QUPfg!{XOwJ;kQ>3W -z;sy(}ab_#ydW*Zm=m0R?u$s!j@RZ~L1i8SI&7n3$5Rx`cx}f<*6Qtb~&N;yYippS; -zY@XdT&^Zg#={faNS;0#LO`y%g7_0~HIWxP-MR~I6d@NZR=Rh_CUslF>d9suDI^+sc -dqiiSl{tA1=D}U-QF|+^x002ovPDHLkV1kE4d!qmV - -diff --git a/themes/spinner/lock.svg b/themes/spinner/lock.svg -new file mode 100644 -index 0000000..19c3df8 ---- /dev/null -+++ b/themes/spinner/lock.svg -@@ -0,0 +1,283 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ image/svg+xml -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/themes/spinner/spinner.blend b/themes/spinner/spinner.blend -new file mode 100644 -index 0000000000000000000000000000000000000000..314aa4b9f885001f452dfb95ad4187ebcb5e029a -GIT binary patch -literal 737108 -zcmeFa3!EKAl|SB-38V?IJbVxZVGzaW3JHWqRLHy%xL_b56G-qiOlEE}1Cz|`%p?R+ -zb7fJl=mNe2ix^Qc>Z&L{BCyE-KCZjy58V}lAmWN^*7yE>fR82r^R23H-|D*E_jcbq -zlbOlf{!Gv5sygS?sdG-9s_w3?+qQJcg^QQ0IBCPv2sbrN?$no4?p$Uw_5yj!UpGo2OfA?{jBSt?gP`? -z2M#&p5Qzrf-a4E-GLWz4|=+K4887*Zco;?*FrA&u*SIYt|NlEq1?{F4y~W|A%eGx3|E)jg5`F -za7sFt<^(NH@PUu)kM~8=w&2+>{9&s4KKt^_nKJ`BA9T<`EwCHyDD8U&Z7g@fPlyi) -z9?%JVfWE`>sj4f=4L#WQpKAV1o11p1z75;JhOUiiyC?`7N9DVG=o|Da(4annQ#L+` -z>{G7)L+7+P`=V`c+7fnRxuL1p|G|fLCav_B2E-Ba6&%G!%9Z_54j-`ar^GW -zLTPJYf3y*DPNoxf=a>!~;hHvqosb7zGY^pVV;RbAIvY3cnzpv>D0~s?b3zl@|LF@t -zlM@}Pn1DRUF`0BqS$M&Fo7NE5meB0ijgN=~S -zQ_2&K{Wc$=RsKZ(5WZ#mKk9((Q77$=Jn&)Klz9`WU)GJb+V-Dl|CBfx#CqCU^f_w# -zfsr}X&xr#(=$HKuxWq>pPS}C%l(g~>K-if1xF){K3${c#VmfeGj(nk4^F-#MoOTyE -zo?%+rwiEQMZz7?{bQw?RioUV0A?z)B8-@L7H|UXmKs!3+qtL0HM?BaF`8*}R>i!QN -zup@0wUXrioA9g-uMj9usE2a0fp6&XKt^)f{gdd8YnxP}u5fCy74Ecd;W2T93+L4RO -zx67=48}xhFR_Ih3<?`vcGQR)!&L*MN4l3&&jP!8QehqMoQFdt>)XX7NfhFqY>DY{71{{=UQ -z2~vle55SjjB8_tJ0&kow0~~LCyZoU8+y48~|DaRYkG8=z`V(X_a>d32gBz3+pEj3t -z5bKExzhXJ+LH$t>IM4&^0UDgbV;ALu{eS~qf*y6D9Q@FqnFqY6G;nc(Klp$i5NYIt -z@4mEy$a@)2w9)mE@kqnw($>KCQh#Kh2aa17m4@yiJ5S(1r^q*Dfjyah+`LmBhQ19_sekRLD&9M~Brcn}x)ycUR9X0l>uxJYK_BAOq?Lzww6BzRP%`eW-7|&PujN{Wzg>`hk7zmN5-|5ubU`wVRJJ -z`vhMXtV9o~`_HWwLO#`20Hm!Rt?ZG`_tK^THJs_{NC$Rr` -z`kQTgX@3xN-D~I?av9lj_O-|wDznqz1KSw-p#LKeC+tU`03GnkLD&QMq!&2?o4dXM -zd$NDyIx213m-OICI$Sd!^uQOWd|*87BJB(84_%LkzuC4&9XzFd!5pC6HEci{T)RGk -zbejH;x@cDyO4%;f1&B2G(>6wyz!zv&!41vzL5I^WXDk42h3jV03fu`E<6#%HPudgM -ze?0uGobAy@qvOC2px>x`$x}81K4}DZi=BpzjBiBtf8e9shL8{Sx%tpJ_(2|=QcqxW -z`U2%dxou}RZR1NlYF+?Z;^7+p0R5vL!Ecpx-~*5i_8$-Xhzx=KrS389|I{t`;zWA^ -zrM)40yX7`6ui3vr3qEma;sXbIBOdFp%YhSh+PJU{_|S&Hm-67A&$c^kYp2=A!2>7C -z%3Tv5{N*~*2jB-|b)ucpp1}TN>0icwOYAJ|55|6@%aCsvnR0+p*R&`2fZk2RRzg?O -z|DjvK5BfjpSP$%Cm&4xB2l7x4dBVn$ubu^g2J|Sm?M`1oIZoh%53VVPn@`_BxzIPG -zK7k=001a$EmUa@k0{f#aW8qt{J$O;aMt`Axk8+-Nxv^geSK6&?ZR3+S@<2~IrkQ8s -zp^Usx9(O{|tP9uRO`C#7$|A>l*bXOXaN0h>GSEg{6CY5@mED1B{6ftGCBGT8V__rk -zkOR64>_1k1#rA{0eInmZoBDHrQWnGoT+?oDzR|zpi)+{JNZa)Qhj;>2|Bosc8G@J& -zJlGrhz%}Sm4mpLt>i@_GADr|JJB@PCz+Nb~@$7tD+w``*CBGSTh#vxXN?Q2^@L|8P -zu$Rag*dOhy)wf_bqp!Upb6`h15B1=*^K5(b8s$;f;2ULk@onl|0YzQ9g-u -zt*6ur8wB>R)t{t2@YhlBwNJ>6G|FsyGOt`Ya9}$?gRk^yu1ov?It4$_(B8GS3-rQI -z`2l=E(xK6I@CUbDeN{fI-#2Wo-BC$K+s -zT8mH7Mu3nHP~;s2v`@5wY5D{3cuiX1l)ENAXn}_`Aaq_!JIc|*UZ?|pfO_P5i^v&z -zmXG$KjJ^oSYviMxIDir5%HEQ%>}_b&a{$Bx$yeh5=%lRbIAHV}*uNG(f^hW23Klp+lU@h`Pk7?;e=AF`R)En3oHbH-uwg%%mu9**6 -zZG8HJTMioF!QR48*&DRLM;RdWP>tMnJB3GJf8o0q{L-ExJNz`T5%}PQO?XWhWoI{! -zxPUfa_uBZ}Xj*y45+8Ph9Dq1QW@T$!!(PmHuSJHyXK)QV<_S&6-a=c__n}*~1N;H2 -zIiX+M{L96{~t<_<(xS*vr;~)KOFa7r7zZ -zDDB3+%rxZYH6U<_BX#GPM;trP#RCq@p)<63GM%s?Vu7*YF0?)B8hDPqRh$4V+J`n- -zw6T4kIHXCd3!~4#{?8wH(x(ss*gK66g{R*GJ{%QP%a=P}5NRQHvEQ^3af49m4I_O36Cw;$n^(S&GABgDR -zAs-O^JY)NZ(3On)&; -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 -zpY@Ruj^YtgG_=@-ubXk80v+-o#PD!k@a; -ze2lP?Ft7)0LI@hzXSG1`b>kawaO9VbT|8|Pew4dXe4|`}y^MVVd!1nHW$Xx9?PFEP -z3VCLg9fHBC9RjPd*B)c9%xpdWW!id_y$Ed?qps~a^DGO2_9B1Ui}esS^Zn3x#O&0N -z^^rg8BO}UD_|H&%RZlihUz0GWo+|kV>ks_H_(R|yFEajN{DyK9uIlLM9_kxZv*#+O -z{8i15wj00j57z$i^dCmlcuGk5lE8y3B-)GoX)o48RDZ?T^=HHn@@IXlhjJ7~$JRfn -zr%L|8`UC$k{t))K0GNPPackiD3l8V3E@$Y04`lq;~8u}@&Hmze%+?C1(4_Ui5Gss3IV{L;kx{Lrgj -zgZq}b=D85zoE?v={!Hk~x%viupR@4B()%6zi5TrgzH#>A^R=;fUeYAOQtnFjqFj&@ -z_aAH*=f7+p+h6Paw?Sqxxc`{@Lj4@IaHoEb%lcU#>u0@`tJeBG&mNh{UH7Y;C0Dt5 -z?pV&h{g-Mz5K|&o%wq^n134a8<|3?B -zdoGx!f3sfy@ANoLxci&WQS&)M;>E#+gFWwXQ#jK?V*e)Jxc;3fjBPxo+?Dz_oDXmR -zW%zj!>&|@iEH!>I?f+%9dJmR)SnH4ZmEf)3srNQ~^447%FK1wp%C=`Qw|M3M=m(+a -zSucIvVQ1s~&I1p~x%BJ>3l=N_y!oc*DR{(;Chs+e*)yvmujza>Dvi(GU7UMLs@c{D -zp50*#s&vp^FLDrjB#l#hv*O)MT;w;Ivqd1zIo=WS|21kZe34uo(%I|=FfQP)6S1Jg$X$H@(zTGcy!np|&bT>~W= -zkoi;`-gE1*mE&srrR__Xbaw25o2R4ihbq%L@EL`jR5-mxtIdh|4M^DLCWV_Ft -z{|ctk!{HU@wxy?vr^uhL-}e$0UaiwE#Vfz_tX<}mxtV(QwFrL0XV;BhWAGfixT3`6 -zQcq7K4Fq#|%;jU+ZSqUw)EXI^)PN*GsY!_8bDD>aPdDFmlRR&I;B4i85)iN!26^I> -za(bwHk)(yDsa4Y!+OVFuMNY~CTHwKtHC;ja7G=@U;HtLB({drtHG>bJibEowH&bPd -z(Z80K*$%OYHzxow~ -zs=DCc9wS%pZ^Q2kT)BuxxmAr5|fM_sC?DRqg=F`D;Mosv?CT@ZW=3dT9Sk>A=eYqpZMP8+foeKcR%_wHJ_aO -zBMl254*O^3aQ$8n{Zc(oZxE^jf@kXuavYC%a;*1kRH&ZE%R8H9`vk2%>v&UDFEDN` -zhyTFh58%CMVclDlzwrqZdFHPV&*x+woP&S5{fqejE(4REBh8fg^>R$I8M26y2+k5` -zK0sD@pQ_$ap|`4|Ih@WpX|LuqE0TVJaW!Zs8^QO;{zHFL-&b1r%^1gsH%q36Ow);Lj8F -z=OsaYUzBT>u{xyn!FHEIZSVN|_3aCf4&5h`^d -ze_d6NkAWd*Hx~v7!3F)3`b*-U+k~2a1xDHra3wLy_?`c8?SK9^XMa$|&9w%;&cN#o -z%ouptO=?}8zsRINc!%15z`w_&A2R$tXW-*cT@JoH{KxKAAB? -zSgIA;pZZH;|M|j(_qX7v>~HRS{T(JQ-E81a6OUeI{KASu+k}?y`MzlQxbOS=vujhl -zbrB}c(Ye&gs4)qBZ4(}plX8?7T{RGUqQ>-&5E$QP-MJ{C#KdZEuU*-zSP!G0*LP -zOcybD#ePWrCFzIi{>R@h97-^flTJx8gg*D`kR> -znBpF_?lGkvtO(ONx9D$d7QRhG|IVCxw;ZI`>t}bq1NX{2tJo&5IrE9|Gi1tZ-&ga! -z(=X;ew`K0*8lRB(F5LXQkEpQ>dYNmAb~FgSBn{kolU{6CvxNPXuxqymE4lIL$&clVNd6Tbalf_E{8&y%exxTqmb0GBW6AmX;w)^>Lb;~zkY^M;cf|#=#v?l< -z%RT!0v)yWMv?#ps&MQ3c8*0r{=5jrUimR_FuAo9b^o_BD^_*$+RJp{9!e1*yUH1JwMc5S`=vTGyP4rM;> -zd?WUU>b?;R%g6Dpm+kaSe?3H)3B}pq@+R@6eFiin`Y>#(3VJ7h$Du#Gd}JeojpO(;Gr>QD>=E#_Aif -zNbq!}H@EfuGE#b8plkFQZ{{sC@7-8nZ`Zr=l -zpR8Zipn+fxZ@#mNVr9LonLz*Ou@9H>KOq*}S%=7Vb@6nRp+K8s!S?z$V!`)r#W~>g -z`__&9s#?fz#4>aA`*imkvBJ&a`P{VsM$EiN_8+W&BQ_S_h%wIHCk~7;f!~Pb-|)z1 -zF&!KMHGix~9_m -zAN7~i|L8YK{14xVabCAeu9d&?8?ig}b42$WvCN0U{x{y=h_Sx$^3UxbyE62fu+!Bu -zb-UC1C-s-aKetIGdE-~8uQ$Aw0~2$pP;=s>^AEh -z{onmYjP&E?_iw(U?)QNKs_=WGza)OI<^{%2P^F5q6}}PUeb0E=zhKD|sA1Y(q_;oy -zm&E?~MvV8jP_eRq72k+0mqnOdC;I|n0zQYEb+h1`19c75HBi?;T?2Iu)HP7oKwSg-od)pSdz-W>W7ZRLPX~8h;bh&5f^t%B8i?(g -ztb0*#-I{&B&u2=6T#FM0EAIX9fgP7$Bk!{+9ToYkPWC>j5})4BCfh?o^ND}Iwda)Y -zMt;v)zMbjs_cKO+N$&UYyeDJyloX%(NQ%#PC&7P_$isEJz%TVDPu7J&Cpf4Zy77net0hm%FDeZ3Px_y1$$ALZ>gD&7>m6uh)??6U()R--+=zfABXmXB|Y&; -zPd$-uK>v$qdg7Cw@{w<_7lyOe0QKhtIb-zfu4N*hvEB=#cZ0SQA?v|&FdUSN<>lm> -zh`liAXOnF&4E85?uL-SHv2)29WwRHC>3^AHoV_qiKKZen{PMe#?_IG_h)7R<|~d22Ne7>|E7e7%pGMGBhtk4*iHwW5xdmUh&lahP3;8$@RT3;&oUrscT^W)Z~ -z-D{WLPci0K{=MX_pR2UT0&AWQuy~JY-)}~>e604uIQ)lu)HgDB>^$!y*U0lE9yi{o -zpGRhfcVCM9Ju52NY5&{{qwwO3LVB5WdtrQ8KTq=w%zPvI`C9$=lIhuXm{0@ty)Y6g -zDvTEXy<|QgFZUiTOkZ1S&n5bKe8xa>bN8Ge9_4cJi+d=LLv3*GYAx6Hi^J~=T)Bux -zxmds13>sxh7&S4BE|=i}o$racuU&*naX^YL7HR>Vfk@zCUKUE0>MG -zaX33RLXl}12)Uk^Der~M`ylSovHLSGRP)@;hn=nWep?at&-}6V-*M(|FBj*e^*uVu -zxLRZp_vk3R=|Sah?j9Zf>)suDPdV-P=rHfM{m1lgC=`{NtN)I(C?oanIGZ@SjFWEdvx%=XWZ<6)28~k95{Rx -z_BZ-VVt@5J&gT9$uz$6CbeQ$K!5$qZ9WBZ0$h|Jy^^TKvj}EgglXA1!Y|mufql4?|?E8H_Qz9(?9w_d~lGecX -zi?fNIb5`10BlEYz?zVqRhWd43MLr#AQ-4YB_wl@k -zdPeB;f0(i1bG?5 -zwBDm5e^{Sdvy(B9{FqOEEGNIh4tFiK=ErhE@*_R@v7Ghf?@7*2?a^V@f={(QI=0U_ -zTJ3Eyx5DqPG*Lk*A@q&0i}i5N4YxkpkN7MnKC2}k+GlBp=lxDPtH0(R_3r5(Bp{>j -z`oma(suk$MHoWH*x1ryVovi683=HVQ;(~Kwh(&DG3Ou- -z*$459W3FAQuMPjwf+?6Y=O_Ai-U#70z0wY**BC!=o7T~_ez3o9!#X!VY5D+#h;OZU -zG_~R?@I&Kw^h09NKba=9{P5)Y^G{)RYB)Bwt@~kG#cw}CuVp5rA2PkK{cxE?iaW$f -zeY1z#N2NjV4gW9U`I_6#Wo_+U>$5{$p88+CD~^pH7Nv_G#f#+=edYJ)affoC{eO`Y -z@ma@cYNWx#+_kh^GN-`t=aqM~#EXfz!PCZK9$?(zmbq!r*?IQ0TgEzEoKig99^h5R -z)m)?T8iZcX1!C7bP3;T76M0C>Fm$J!p9CJ#f_J){FO~Fm;Qi+$>^R+lYU~gHrB_e6wI$SH8f}mUAGUCVWS9IHipV@F#b$LizQgpOk`o2KKKY4@}p$IQ4DjALex?6~_fYaBbZ -zmgqO_#Hg8nzJRqsK`5Aw#3 -zV|rywxSW(z7ykFVA8FBc{8#<7_V#Z@wK&lUIT{&;{qNV8rwxVCmZyyyKdUY@z=g%Q!~%7eUkKNx39ZtaJ2L6YtKWy;X0G& -zm5)U(*KobM6nSy^N$Fj@eV?w!@$u1laScgw{)~4)95-=0h~s8mrtkcQ8f&oP_@sKS -z#CB26$p-!3zALo10ptzOx7h-`=daJlOYP^zK{pKwJI}uMyrgsQD7<PuVh|EV6wITtUT8zbiO -zjMHp5E{9__X>1((I{DnYR5tLAlPz3_mLe`ME}ya!CdDKEzJv8RK0dl0oB8s*>ECH(k4{6vxg1zI)ht -z_O*P^^YTaApZVazuaiQq7bA~pLda*Xt@eOdn4iW;la~gU(h%mFfB*5Vuas2IK208x -z0CU89@unxv{GUT!g-_dZd-raM(3MS=>^eyt$M=%5Ua9_kJef)r*31;RL}mQs_Zy6l -z&sF-D=i?`h-@2`0tj#r}eqV%QT!4I(4c90~`xq~f$MWErkQsA6YRb5;w{Pw#Kw}?f -z4660fejta~`LopTRqy_v$vpdLZuh|mS0-d+Nj6qw?*t7M#@g0LoHR;B1 -zHw_9q&%Tx~CW~WBz`8N)}^!a)ylK9D^7iCu$60TtEvb8?HG9 -zF<#i^!5C!rcicf^jab$XOVm9Rpt|?sWB+?Z2kRaDTdCe#*T5k -z#v|X)?H~6+TfhC3`fbF_{TjmGjL%syJ6eOh2P%#I7%zA#+T7ahcaMg-gvXTdctcDZ -z$G-NwrehW_zGd6zg8Lr1z8`s{B(!9++7ptEr~<=v=z_SsxO|J9x{Su-{S7MRxv%eo -z%$_i1*9q0{gOm|d{Tq|}AQK;hF{pR^*8LV^ZSg*caRCjF8iN=w?DCEa<^D*J^UEGl -z`-&YX*P!)R=rnMnj*byjA}W?A9mVqxOVaX!fqk -zoOP{w*5$ua!*V>`-?}P?%QB4TO_HD-vy8sxzQNrChZOo3JOVm{N4o8%9pp!AVAaz2kpZ8iBI~4UwK@$pL|JAJGk`3 -zCw=Dkx_of4R2_ZJ{-Q*4%f7*Vs7IJ7nf;(ZuuB -z34-tur5j*SpMRDC8v1k(a74s0qQr1_sU}~VcB7qWH~InXIoTwSvs*Gb53=^|Ohz%; -zuxK~hiFTu$w5Lkv(BE#nk7axJZfoDWSHH)4g*b4VapIqv$tcEP97ky2vA?n0WE0@M -zP|GzEdm6l1-jNb|4it`0&cI2OB8;;e`y1ld(-CwoH#c3ZVRB!=ZU`ETyN`&tM%`rv -zujam{EW>dxoGp7n%`R!%-u0fhEuwDd1><4fjDH*tIsfN4$#Ib5D(4mM_)dR%w#4qQ -z%GoGqTf@hdJW)QFKmQiBhJi5i96fINM@5Za5e;y%*gwgK{WFqZ?t1B;IL2T+^v)Ds -zG9CsH&p`BZkg*sKZxua4pYE~0jfb=o?Z)=fo;v*{(e>OQu6iEkF|+SS*{|h%Mox)` -z-iPJH!8m%5P6p|BnsgXwyWK3hhTS}w#~`j=r_L}YQc*sQe7hffSh%C>ge9sKUnL7oS=rof-BEEcLfuS(~QfE(=2EF -z=KT`ypBS%sKSO-Ly|Q;B#(l(<1{m$YkEw4aqkP&Q(R&XP7Ut;qTsW?_I88q6@A>CP -z@Eg5;G2|`A=}{-GOXL2dojBBe%VqBsT8Yzyk@qd$fpV9Dv*d`<4Ute!T%6Y2iuWz# -zo}{mk|73t1Uuh@WEpv?V2jdr7*4MRpqb*;j+)d!pu8wHEGU& -z&ot?Lbg*#ezw#~2Lhqf8I1Ql%%GnL|pdUoVY0d3`;J$_2)7mY6#DVKYTIK``@jBm54JtkPt>zDg_ijdi -zyF*&S{O?Jl(28Te^#%BU=-7Mvku9MNN&M4+xm|L9DW^UT{{GUPxLW+%?=4#Jh41X# -zaqC5j&pB82HQ#XlIg3ts`PWqWZ7VOm=l0{X%`ZFq$wh`#fvcaq;a=RYo+I=bq4}cV -zNkQ&(;dP_XZx^cA~?K6TM9 -zkzv=N$KTexYu-;6efadRL54;D^s5iv^QpGRmfe{rcZv*3CJ1oaitAfNhSrXkd}z^E -z=FDwA_3C5p+5N0<-|@=)f}J-U`Ps7@{_k5#-ly8%ci(f5n$dRs>Zbe7`rAiF+qS=_ -zZS7~g`!ZXPZM$OTwid{sPjIbWAGNkeOELZaU;CBMDgU!uo;1(4pG}|qI@kQVMQ1iI -zyz7abzyA04?`-_lFLuJWNPpvf8(+z5LUsScgurs~$wE`_ZJ$OzHupzAkV5q1N=Fd~ -z{%Rjht=JpcOo>Ch@SHb#FJkf_wE0zc4f(W;`0vj-T(QZt!8ZE0r`{;{QE^9{9EZ!3 -zNtuvUamRsXq1_G(RT7ad`wnVR3YFbA(`LP)jfaB{L{O#r=8X_ -zzh~hYXDsNRf7&a$dwR03n7`)K?rhJQ*|n#i{)*01I!~WJf3ut?Up}~Qk_bOGVu*h( -z4bB*r=yPVADD~CLn&H7`XK)%y*|eO!n;*@{?zj8flzNv>w%0MT!+$Y>MxZ#ysn3M -zq$|8$uOni+Nbjx(A|C1Hm~|WEM>@~jtwIgvYfX|#JksrMG{5O*>Lp#n|h0MVfzt}bot-w^-knRI{8(_u$%^ubaVD-I`Si3(~K}3@kq!1$$Cl0 -zrzF%1@kmEJ@?*MbhJLyNI;_VE`n_~y^yNKY)$5^%&wk^gH$+ -z@+Cd-NxzxviHsbir(e7D#3%jJ|7ZNq$iaGDe`Ni{Cw<{DO;5h8H;$h8q~HB5tv~Xm -z-q;RTe&Pr8U)J>GOM16oQ2yNppY%Jf(CZD!m-5Ha6QA^%|J8mGcE_@v+b16@D)ay($%aO)>N>383)^-sRke;hsWNuM!s -zoqRdoxbcGaBR=W(eC&N{4=D1b-^9@qpY)q=+@hX0lP~Gw>zZ(asf8q!A|NG5K|K!X1 -zJ6_XPfnBi;kDk}?qb -z*d~>c51)r-PKe?+b=E_kBD#b=-D7`S|3N#^ZuA4%({2Amr;|P>ik5T#Sr17&(Qa%n -z?WxnUPA4}Iybspvc4n!xy&m#tItWs$`B*(vCJT%`!ah&9Qn)9-_ -z`wRNh(Q>!^u$)*?*4FT^>K-e~2mPgbJtSe_MDyN!Zq)b{G$;0g<01L5f99k3O`-LW -zJB>cwhVO6VA?-xFvAwjXPDibWJmG$nrCASo8<~e7o{#35-SvSQo -zKloR%oqM?4+_Z~7S<~omSP#kmTVD@ZtEI}Xhb)-5%s8ESN`J@2`0d{J@jl4C4~CS- -z$#{?ZmOJH~C9kQPW_%mf&v5n5RfNoc)4*X!0j`HpL3#`D!#$~UgR0~7j$E^)etUVnrCdSpfo -zQ}N*VN;}bRYzytF(xbDqopK*E_VNupuKg&{Rg{uaR{?JJ;QT(M(GAP)F&43LZ9xj-^~|| -zooF|A6Kn1-_MMGS7sKI87|H8;){q3bB_ -zx|Ngpe=uJ(cB0+r2ejv8YePA^!FK2eQTO%QVl%NyZ?ZKhl{~Z??L@ngNvPkcz9A(o -zS1+Eu@xR(X{o=1K9{j+r)|KrWO}`^mG-Q9pj~hSL -zh||W@*X8WS_!VV0mz$d|t!Z-Rz;0W`KN)xTh?q${k#n7>Rvltx@;<=Is$bSMP*DTR -zV=&;a>V3SKmvElK^_QH#a6JOoV{pFWt}j3}cy7=qC*~Ky`tr*xI(>pp=dQp1W0Jx9^|jZqyL%$@FA_adv}zv>V19_uv@Be4U>Bz0Kbo^Bt$jFZUhih4(eKu)Tz1 -z_8sTw!Dn3YjowT~L`sjb$aC9r4;o-Z-t#@~XzT;f}f(Jt1akfA9 -z%VvJZ`O`UVXB_pLH;yil?>I$<*1wbQI8T=EIKO_?G55^)Zs#d?e*fH^C*C%C_EB3O -zSKo2I>cj84@2>TKY<+A)+kJoh>qkak*l=Cj)(`xD_g;KQOWTXa@H@`qzdvv<+jHi+ -z{!n|q@U!rDsfEv!ewTXOXZl-(hv;N_9!bC1jKb5;f@{%R`R_P0Z#?N$fBsQ>^V`06 -z&(06e`{6Fsg!!#~l#5R`9_BmhJ5Dq2{ecuZtZek)x`>14-u5v$zvH}7i8%Sct}m(nKKw$_CG_bYarfaa-egbHZnP8aM!9KEmFD^qZ-cR)v0Lte(E5_C -z#X*Z~6oh}`h%VQC3@G;clA9WuX519PFUqGCbNR=9a6zQq!rY>{lhfpdup7RsT=*UR -z9TC=HMyM&s+irdjjV%H_o-Nz?q(|9iNiatICWbe85n@kF9Dk=l$$!d9xMKfn3+7dLzkYk;^HfXm7L=KoZ;Fh!bvk(4CAZBV_7 -zo@2g^-EF@8FP!=f_03!6F|&5*jrXc_Ili@g^G`YWt#aWZ{mo`+eREV6{Ju%9h)22| -z-_?DL{1meM8#pvfM?BI!ZNAwjKhk;LYvj$o{_U|Qfy5)7Z+@$R{D6yN;LtD~@krO( -z{ZXY)^3znFcl5z?Bn}k6i67x(M1$sd&rJwQ}$L%>SC-G^2 -zS5K%H^u#B9-h5k5zVw4Qdg7CQtNG0j@})nx`eyya59t3%%TKe)6GSSwHbf-+Q8t7vxL1UHg-s_@pm=6 -z`d;&mG5L}{PJZH(e(TG%{NzjjqaV5T6QA_{O#MwP`O^O6af^JZfA$ZT -zp7^9^ye41L#o0f=mjS~bGsu^6laF1$TH|WQ1>Ot!r-b)}VZGEp?cv(lbAwVHQOi)*_V@(mx(sS9mU{Ejno>8D$@KAy8! -zL#C;vXxL%qxW}S6(Ql@#oN=6JHp;wO_9%U! -zH_(W)ly5n^oh^L<@2lStL8rOl8)2Db%5jYMM8qAFDhmB8Tx@=0$iPtH1SC}ahuw@k -z`ki29L6)yrwtUHomFF$#=v=D(a_pZbe_jV`e63^G;MIeZ|*t6x| -z)c8T@mXCFseowjR_nFmN&ba#8E?&8E*@epKy9YLmWH*n*VMgcIO5a{hrH&{M$==T^ -z#g|?t`Ghu#xIo2&`lG(6zx<_If7GkXXvLBX7cW_Xm{FDbyjtm9d8$c6f9R{wAEC|1 -zUV~`o+t<_|^+o;puQUB5#t)0_@9A5g-7qX6ci84z>AF_>#Z}cBmTFMqF7$T3#5cf` -zO`Ic^-u0U)4GXW)dLg9#n5O>1RHdn6`_~S2tvfMFL3u(ch@Q%6b36V*3XNhDSOFhX%T{!^73+uR8kWQft%l -zw6%s?vC{Y-a-;MY_YBtNLj6%+)L;G$CjOazY}4SnsK0@YBZC`LjvlqsFRQB7a4X*a -zf4cvEQL>}-XMYtQrYxqYKkAG6D|DLpXZ)~8p|6Vi8y@LeKj;=$OxH?(L3X68r)#9E -zVnt;Tj;Y{(`i`Ou11X~Zs4wcz?=t<@_@T?iZhv+tJ22cmFnE=VR3=?3eaA>OwK@Vt -z=nqem8UHw6cBn#0>W})O{xWN{{;1awktB-k&t^Aevz@(NeTnXO$fs8NOv?ILuMM9x -z{TF#r{a5apD<0Gz^+o;VyG{Hve&{lC+dnLwxIg*uQKJ8}^c^YdbLB_+a-+XD$aR$d -zo)typE{s_33X;=Sg>CZ`7Uz9ApMt^cMtn>$HAJ4WE -zG1t@|^+o;pYfbz!e&~|B?H}&#>KV8)`4qZV`i_+Kx$+}@*WdK``(C+@@;`jCZFuH7!k6pDRDo^DD%^=SC4Z -zdDI{EMg8S_P5d){=#Z84-{FmGhBpqa?dr~U4tIBr$mm#Jhpzt8(su;)$xkCDsLz!j -z>1Rji&mMn|iXw9Is6Xn9`YZIA_-FjkAuH8i_fR&wp>uc;8XU^5?H6AxcTZfRzm)VH -z3cslX^~rr)#rja(mBxG -z-M+SOlL`o*ZPX<%*BImzlPl|c4?uAskTqKKS4>W})O{(MirU!YzcvJ(BR=^q$K -zGl6#XmzKUQWqq#vNcUIJ-wUFMoIL7}`l9|a4O)NHt3zh#Z>7xFs -zqd%vrTEikOub@A*9w1ColA`{oFY2$*Xx2j*KXeI~wVl7DeWmsOqjO-*llm9Oj-XBG+k8t@@f7BQCmpM@Dk9u|KitQg6>e?{8c3>z?@AbS|=~q@&Yq%A6 -z%JVC{cl(iK1Kt}h_L`hDlKuh4uMDLAm{0vhkcP5~?eEF00R*S5<3Rpw0^VJ0Xl7nWFxvFX}IIu<5_X4_#ub -z{e8oO{atC^eSlZ3^q2HyuN)j08fjWwRrRVl?G^O*BDc{IY3h&qqWYynHSJ2;y0cQLK^+$bCfBs=6{uw`XIjmf^yscHO -zAL^0^eVekKBLf5dE>f9vt@N#`)~1!|Y7GliY5h>S{msaU`lG(6zs%t#{uw_cKH;im -zD_-5PytRD^Zb8;}^;LS_M>@iq=?8|cP!DU#unKsWS$_pmK0n1Z=YO-2sBln!)ED)a -zKf=U6FjIj -zkNTqi3P+mwXZ+Bn!F8zp`W3p;V&`Dj@Nj}?R4e`RWYxH0hte&^|Ki^N`XTJ-1ocOK -zQGfokP5d){=u$6Pa>iH1$V)QGfa8 -zn)qk@&?PPPAM^UsMT|+;O5dShmd0>Tmc2vfFYvpY1f9^Pv>qwg*`aIdkNTqi3P+jv -zXZ$ckB#F}Y>o-U)UR=6Xdj0+=j(f8FTa5mI9X0+&d~Q&}nEIo>s6YRCCjJ>ebO}q_ -zKQLJKg|EY)R{CYBYI7<#$?fL-`EE%=e}MMEd5oRsUQ>V67xkAh-&attE}b2}5d3g2 -z>f)43*GfMY_rLFsSbqSSsW()_`iNkm -zPTzdz8c8IX^uf6D$(rx#bBnxI`Dlc&&1T`Wk2TIR95c|rpnSRhPO-RW -zuza6;Y{N(+&SH(cDrYy;^DQ}F8DTfg4SNRb7gq^;5 -zA9d$>NI!f((ze|`YwT0R(^s@xOnIc;KG$$;!{;LSRk9n_Xniw+PIJQ-+xqye*BgOl -z3MVn3-DoG;Epvgk8||r@(6mHi8;-#?`S%JhoK_{}{#|4~ID8e54hOIPwg5)P$rXp3 -z<>4$n;_QY#k2twkdQnt=)7)kTbAaWuPc3CW1#)ON+KG0f=(MLww=^#HT5c)EN!V>v -zr!!)c6>{QPziyju-j%4iu1E4!@uj(pTvG9)gG9e;($EQmIwLd_hTc^ -zdF$2Nzm7}J^)~cmhh!OD$^}#v1e@18us%EQ^1k)!ySnFf_h!4VknarVt=oXyuAVEq -z`bN4=>XT2ePa5gXN>;1RnkQ?|`@7ckXHVKVc+$wgNefP$C!g1iY#g3fp}Kl;T?2Iu -z>}MJ&QW^;anDokUB|un;`TJ;o@@AxK0MQD -z6u5H67uC-X6eTLkkY8?or`bS%nYl+>u3-@~*%j|0$cOh3g(!Zx+vOe|2cMDEu!o&@ -zrtm7XdI2o%y{_*e4w2s@tbPx>xMyVh-5z$vPPCi0kNBtY3!Q#kbp3woS&P^$_wD;p -z_G>wxk@HA7KP)E>?ls7JKc?Sn-=t_%`LFGEvpgd!{!a7C8SiVr86X80Q9g}AyB|c| -zv%B1W-*8a`_n?|ddx8G8TqI{d{-H>kq#=!ywnfPV^EdzFjo08_bvP>@^KR@PO!X$O -zTpfp5`V0R~GxjE7y{Czip=W%rkMnRN5A4w*1xzoHYn0EG6BPc9`gfYJP7vcke)m^z -z=RG(0*+=bZsqYV~-=y>;j8UK86RzKX)UIF3AN<>@5dPbWdtWR1+kbXtFxve5sycnc)d(k-zTQfQwe&5M*F@9YZA+)wz>F-ZQ -zpib&6+KqOi-6%Bsos78mdfqkCzrL^f*YUXn?ms>^E9h@Wh`x@N6Z6t@4Kd>)@^CQC -za^yX+cguNu_iovuf8RXQc0MwtvmGw|ZKiN^Zs&BV{ExF65X#xj<+${qs5ezXHIw!N -zc3UmMp5x{cxn}GyC$tR1Q}W=vZoGt#-q-EG#u;X?<@|{AAEGVwd0)AoZqVSpy{)0; -zLtjT4FW(lLf>)csajQwQF9@+ZzNWm=B#NL}E?cgdg}5^dabM;~?cQB8aTbwy73I?` -zLp|sRQO^-Hx8hoxh29?%7zu(O-jh$$>ycxG> -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 -zYbd*+yFy2agM;_E4`z!TVxJ3IW`*r@F -z3jJ4p5(Yo0*R`QL8(EQ)S)#v`^vly#=hUu~mq)}ulu&<3)&o#~)ED*VuQu_|#6f@g -zugZ@fYr3vTq&U-(68)v5Z%bF5sWl8Ptf0Ts!|0JI>W})O{_>s1|BN5zXFVFyU-8DR -zr%#?5;Mb>9O=fGQUtCqKVHMnL^mo2=RE!@d2OU(>=GHD|)BDQGbQY -zw4Ujg{$X+YlRXj#Hzs^)Rct^}f7Q`1tE$#w{kVEdZ2#5%7xSG(hzb3V`l9~)H75R< -zew=TL)1Pb>xqdLjGfASTzv}2O$c}XNbd7W+sVfd=O$Gf$eRtyWqW-8a>M!48;vfBR -zZoK}oL)n4h?t#GyQ@&8uw*IQ2?~r**`dULGc;`guPv8G)|9e3gJu*f8QD4+wrrY#i -z&l+*`nr9U@ab*}g-y~*6aArT%wGin-(`myl8<6`|!w=&5NHPj#VMg3)ZP5d){NWBpj+pm8J -zF6HAp>$m8uqaTasf1j`5e`-An8yo|vKkAG6%lDc1XZ+A5clDR@^+$>R($bH``;Yfk -z(BE-xqa)JPAN5836)rdZ*Z84J>gq4$fri~95X -zwf?AAmzAr(;oh#Efh&{W!qrOOk+MElexzSpL4U_b5jlC(AN583W!9VcXZ+A1EAgMc -z4LyBB+3t}}^&YMAJjT^uTKe-$eNE~`T;=*)`H^m}pg*j|sdP|()ED)a-(cdO@k5u7 -z+y3E=Ys`-kcFKPCBltPY4dp)1sg=GXs86c(?~iuJkjBR#8v -z{$3PCGk{b -zW})O{`^fQ{uw`X`MB+0(?2kfW^((jw^R1Kt9Vd<)ED*V -zUv1)_@k5tUss8i~#KntC*GjMFFLB(H?i12*)>gYVCu#f&nL`lG(6zs#FV{4;*& -zvM6o;)cY;(cgg(+^tM|XM`*Y6*>)o4n);)@sK5N1P5d){=#tyaZ;-}8 -ze}MM!96J$nP5n_{)L-E(CjJ>ebjfY~P1WD>{-(@dpf{{D1?0j0`&?#}fz%)MMg942 -zH2ZGQ4;z0RTEDS!+48nlwTqnI@ltJnS*9Mhs8;$`c|5Tx+l1{eUDk=yx0v?(jAN583<=?9HN4@4h5dQvS)v^_@?pWU1z64u`uJ4lV@X{SM)64I>sfRu3 -zstsYk%e+7OqvS$=?)M&tg|KzP-(tQq&S@Cv&*W2o8B+0!AxqQeA>8}cU -zz4EWAwWsH#v{kc7-a|%zw*TSzOPYiFqrRv=@}R!+Hstj8O4 -zSvWY-mrefWfGzVp`XAyS{Lfu)FIg22>W}@E`YT+c{geILWz^BWI(k%Ql -zjB2K@uG&yDauwnq$B__`lc4^nFY3>~R_l*?b;!J+{Tny*rCxj`%xa~-SgNhY=j?X$ -zRQUer02?{xn);)@sK3nHwEn19mpo|y71^ugO-JW&HeGXSrGK@mwy7g!wV`HYD(FwI -zA_|d|B&a{?i~1|P!}MR{hc02z{%(9on)>tAqW@J%KNjDwt}x>Ve)A0RZ>Q5py^1KD -znSZWliz -zTxa5+>Blakp#6irR}J@drw-+{(w{rjwW)6;>1sJwdYyiLg#K**R=it4D?sU+!?Zr#r*ldD(ElCZxK;{ -z)ED*VU$6B?y}J4{>qi4Mr2PEUtCfB%zF+-jg#PUQtAAm@ZFx9N{ZU`kU*-lA|BN4o -zsjT^LTE!VgRV$wKWAObi{EyGA2yOkzPjFN`s6Xn9`pe&F;-B$Dml1wTPCMu>9i&w38hjHA&C8l -zs5e48{xycMqZ80yL5jHF)*<4w<@`2y?{V=`tTY(z9~c?#jAmUiSH$02uC9s<5+I;` -zXb|_Md_-uH)JY#qP{kxcIb8O0J3MHc|Jc2kW538P>l@@Zii*eTFX;WypqCwz&HX{S -zUufpP^?sq;N0j@7a^KUq{eQW?<-0_2Tjar2qd4E)4S!VfsQp4O3-1@|zd`>VG+}<7 -z`JJ!6sQo>~es8-~{qFUg*OcEclzh1VUM7lP?lbLLBV({%sCTCDDzth5%r$%FcOm3g -ze;a3d_`SpG_Y3V3T|%GkQE9(W|6;TM-Z%8Vd%l4#pS0=x!Fu1l{4c}%%Es~8WBe_y -z9DcYB{nOZqb|XIRsnd^(uHSzj%RIHu>m~Oi{cAa&krQh+J}f5=?(53?IHvJiA*F}5 -z+s%#g7;d;T#A@zJW4Hepy#f8#H!y@$ -zMWXP;JiX7Wft6Tn-cfnq#N}c)_Fp_hlw`$2)H|h)t-sX!WfEpK|D%47Ezb`-x;OR@ -zR`c>9QUmte&U05RJW>g`D506+gPtAqW7Rl2A6yICsz&1+Ts4e+nKPNl&Q<(bDEeh>Xkm7`UP -z-lPNildcZ-?^NY)8wsax|C#z7i$MMxwLGjZzuT$r503m#{x~e}FLavp{-X~4gO0o= -zt?O^_{5#q|NBv=!=E9C6EP16o|J3#9ueyDbzWp8H@&|4Cr2Mzy@hc7Ia|NLzeUN*c>u@#U>hYxT-x^k;-=1JR*(OG$odUbvtAEdi_SE%kZkNb*f3eQ1+P#)TzmD{8<@~cLI4we7 -zD0;eVxt<4L|71N6!0#Ua**kp(PD5yey>=peje5`zE{LE5w+7T;NFMYap$n@V|8>T0 -zhg`1usc)b`uNwIOqwSUdbuzp4-cxxVpzLPsM7y#7(wbHqpvx?SN$8&GEPMn`WM&V{vx=HUr}}gw+4AaA^lk$-*W7>hj!c9qwV%f -z9oGuq((&8>xrTc_@go(V2}8m~B=Z09l6x@zWX?KB&kG;_nVN^p`H7yNxFr7k;&@?~ -zJ#Fg!|JnN%z$%KX|INd&;tRpn_#{?q(Sjn1L?gM$P0)))ak*d!5`_a4um$hf<2VZgE-Znc2`9WTgAJC9%Vt#=9$nK&mGEB*@i+GVAnO`{j -zHX*s4@;B0VN0uAU8^c!&l*NFrAq(Kl@*7RhQ2uuzkO`NQqKQAo189%XJ|S62X}4%M -z!qt{FDq3K@@3c?9eR#s^J^GD~j$Qr4y0U|=i84LETk!?jn|aMc)SM9pPgHAP-IzS~j(w}#+j7PB -zmb@QHOx7J^9de>jtwYB8WUM#F`s3uoY8^>z;%mNj6n`aK*c#hihunu2(Vta3-dRz> -zwyk!(e;sn{4`Tlgf4vGPUQ)iE;BB%Fc|g&@zIc&K*!{+Y5A1&J7Y+QX&Z<@XWj(~i -zpZddkyYiq -zvYz#AS?4XjAqkzjl{izaH%czMz^8{GCM&a8ceI?82t7e>$=^%)5Pd5Ccaxp=-D};r -zj-l{Jp0NAGbcLNi{)$55Ct{oLs)a>tcihWacUEFOV!czqKR=-pqB3oATnA7OOzT;-EK=*y!DrRe9k0(^L>WQ9`7Qyy`2ru^ -zr*61gIqZ{y{Z)8R+xfG8#BH<3#UnEwK4RU{ML(-aY*Fj+;oB?KJ}~h4-0Au`r#4Kf -zA5RD7dRTl;mt4Q55pSgDZ**zp)jJX{Y<`^+&n@BT8+SWQ0e17?ffwus)uPs>~J#sO!4CUwAdKhy4Et{M-gNK@G)jq{%r~jB -z^`ZJ!OdL&h&7laWaDS(V=yy!@jX8St^ut1beVaDx^U+)KH%B}B03{w*zLSRxe^zEu -z-|8qM=r>2uHRsEg{xgU*kBhpa!@ho>SK7_v-J+tx1u90o|JbjqehBp>`6t78!Wu(k -z0Cw0ngWrd|VHFDcyNlEtHBYpauslyBzHvOUYhizjf9Wo$ePc?FCulsOxT#i-X&)=_ -z?^nn7x`Tt>peN`p@xL;j5Phn=%&wu+5U2ZFE)=S3M_63-2E8dxBkwGON6$48ug%B#0?xq&n|=q=#6(i=(9tG8(d?_1Lh{5sMbk05VnL7yt+XcuQk&Ed@XLpxc)WX}863>uH{dl&fu?c@p6 -zPSQXl&1KRX$Mbcnx2Exg;^yvJ^H{->`lZ68$JRkk -zJIVXV?n*y)kBYxo1udL&1-;?9JQh#AcQKUTyU3^au3ZZsE99S_l0zNojqBSXq&wZ| -z+#V}9(ZF3t4|mesz)9ZFk?v`&M?<@fi_Cqzz8bUZiO7 -z`(H`VxJh)1bM@S^=#2VVG_h7j=epE)H7*nG$Y~8T>yNbPw2qnQPHj5Un%ppJ>hyDu -zv{ZCQT1S)*KGKqVbB{D}2=9dw2qmy1OMuQrRA;5nJ>nd0H+E!Mgn17o5K5qP5}+Ya -z3y*`ms45EBmQA)AMOGjFnBZ|dR&u_%$u~B9a{~!%s_<XP@K$=4Ss)oz($9`IgLyyrX>Zg&!+X-`ZB~to*ub207mVG2X;G -z1o+?`BJqC)eyvy2dm6j#U`sXeI^sohWbo78{rGIBuG>-t&5?CvOO>dTZ#RAAYyk09 -zzPtW6wpPs{Ctt{JF1aa-x#Z=fMCb{6i)~SQgFaP?Cq}LKPg3uG1r~=tbi!8eTZ9$=tuy|^&g|;Vm=UU3GzZUS%Pw0evHO+m_^?-j|4@~duYF5*o -zBV+Df_AAf$e7*s=Dcn9+sBh2{^kz%_g+5hmWb-z0sq>Dm!UwBx{OYy0(~U~2$@1-&7R=kgeyqqp89L|1Q*Sg#b_PCt-z?862wv)=rB1bg+CJiUAA4SIs!AR*`z -z;e7G^J)4^(n>5ca*PlP2T6XrLtf2 -zf8(|j?%7(5<@)vjm1o?4iSBVOl5g(L<=^L?-)UUx-YIYV=jn@oUQ~Hgb-abK3)6n@gwg&x~B65#y`-i=p0(U#V+pr4aTQv2w%nc&Za;9!$FaQ -zqeELxJ?ZW$=Fv9xZEyM={)1w_?(8&-3E9({Jt$gp!~w9L6{ObhX7+3ld)A`ia(X5}qIA7>tw -zSG{|~Q^|XZs@h_2H4_iffo1i-XGS&gsP^*Qk*+U$^w(aUIa$y4o+^jANK4K8dO6(o -zhb7flJg|TB9S^UdQdzZXc9KiZ1-9`S9LX -zHShG3|7mtx8JCjl@iwlh>q?R(hNR3lFjg&mh4lB -zp+FJ6jkp7@0&DuLxsB5s=aK#5d9%;$h-nXeK6uKc$%D@sJakh1F~>|9Jf-~DV~?IZ -z_?Y7+PnlAG+~9MDOs=0YtbXdyp~p=)YQoULgPZ8r;{-+Jb5!c5RGd~Gxox5!-}gU@ -z71KCBGMLI4mvN?XT{>Uqx$sig<4(1#QmQh^8`K$xC3MX-DAugbp0sNVoHHd|uIg&s -z*xLH3ljhB6B)i*V^oN}Yb6lNq$*0bC-n;D=l|SJ3%3t}YI*T;9UfJd*-%x%g-a-4| -zXTos%Sw;j%M=z0A-P0-^>DW?7p1^?)xK)A!Kj0g7^W#7VT&!8e2Y$d=)|t-dEyM>p -z;HIrnIPe3mVK+Yxbil1zt8m~4+79dPBpRXFf-aU7qE108T%ekbXa -zcwO8KD)BB3bil=)Q8@4eu3`Je;NPAVMuF|BepJ4F=o1RZeYf&)LG_S=PV -zZaP5+++x9jA8=%6=v*Q`&;gee9QXmZ-!6=E;{zRV+n!hX13%!N->J;GM0}tFZq<5) -z13wox#_8aI108UvpWp}F)*?-wQjdWH9rz)1L!8|y)E^x{3Vr6(4$`H<&M+K -zc+dl1_p-u+FUmQ}Gx!1zdf-#EZVW!1s*J -z*>CPk@rh+_AAvv-KOtn%YqYoZ_}K -zz5T11iT$n1F(r^5iRX^JSk9go-}C58xpdlJs&7b_`tH$jQbvzGZS;t-<42Ad#|Jad -znsom3b0;-UZss_<($J(?gvm?G=zTaP_B6l%?{tKj?$j1r>VbAx%b%QQ@I~fcuX<> -zQZ%WHpmJa7Y5z^-Ug!2oL3ZUnwnUZt*yF0dNF_urR?hjIbH+G){rUC|que81DEEn* -zR62v=J1u(hh??R?a)r_Y@|W6}jW -zK?mVn@uyF(pFg`{PGebZm!fx4H?srz9o#`4_%Y-Mc|m@OUrGIya;UR%^FOn}8L!Wt -z)HtmZ6*yP?DNd|qqdOO?KNn*O0P_pU~LQFheKG5Y81}?ZjF(zH_mrCkXv6d@sfR-ax=LS>c;$!j-vODx@(l8Wydb~C -zUDEzZIn-H=9dT;y2&eqX`d!@mw0{d|euc~5WSM6H74}p@nEmA4QZL1a{BR%g^I}Zb -zZvLmvnKZM0!kqeH~+I6<~DNgJGp-D+^)#4YxvO=EBC&gi`Act{vGtcGzHh8gZv;b$S?70 -zY5$}i>x^9aHOyyJAO=ZZh2zH!o&NsW^_j3@)adH+@Q_d%jD)nEGjm*$f9OZz82 -z -z`Juc)ezAw7{gZmE^YZ4ueolSE+{q2IJM#{lD}G#KS7P<&qFu@#-!;i^cR#r?1o=T; -zkYD0qY5$}i>tHwk_4Vi1*H4%>X?j-QtH38$e5{l4AzrWlra^xE9OZ8hFLA&%wm$DTf*?U4D~kOY&J0=FVmb&Z(c;(I=%e`E?RM&Y>?G -z$MMm7aEI~f>F01o2lA8c%uUeLJ;)F8g8X7nN&6?|Fa?kcJ^zzto-@6E7Fi)oo;+h7 -z&&KEgEu1U9TE$m(T9)x?(L2HZ9mwyiCXjXy@`Jn}zr@qh{z*C1U}@#={Dv9xX4W^( -znLb&kG>3KhbryemC*w1vqNoG;?QH^S_aHyW3-U`gOZz9~P=lq(Prf3ZGh<$M!)RT8 -zoyE)dqiDAA>FMY2U(kQhHTqv~`^VQEImi$4g8X7PDElVJRp+DUe@gxA#%U88rcRhT -zy?(|NojN_7E54TFD{Giao7QC&UwR5G>-i4k$2OB4Imi$4g8ULUiaoKEL!FPF|8r(E -zG<0S_n=3xr$@uj2bNK!a841^Fd!Q}Tmc_4wWVPo<7`ZsP@=+`2GV{E1zP -z)t`%>cObw0{N%BlQW*|56VV$ -zKHgLU=;DbE?ElDgx1?x#CA>7mc25 -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 -ze*U>J;wqEgs)#L;!i9c -z6FFqyZ!kk!K#h -zqVkrZk5?W%@bSuim$W=};epE{ZLznS411SNcS{WI>ZUPG;Uc{gdOZt`eEJ0yx!UGzyrSjX;(s=K9xrPYnO)m -zly*gmUpywAzGu!4J3vz5F=P0T&Y-_yIS+q_L1^ -zIS?P{fNK&Q_yM<|mmdc@;8qF_{D5mL^ve@;z_keu{9K%0o}dHHMm-TcaF+FRXSM?Q -z108VXf&)L`8Vmh6&;f_~34Xv?)@tVx@qrFF(19PqjfF0b_iaVJ$G(-@B%PoymvX9? -zJC2v}pa*`yfBfyqV!`X>4|vc6Unh9*1x_!Az=Iz6gy6v!@$2Ogc+dmCO7P%|c!Thu -z2Y!p-!54BvJ|I`b4|?EB|EuH&zQC7ie^fsf6)z!@)q -zFXGkPFO(n91K)Ou!h_->SZ$G`6|%73ZoKPEovHR5Zc -zLEr+}cX%%KguL&tT`+b+d@vts -z4>s|;yGC)^P_6vSv~X}d{Dk{hc545w%L&`jzQZ={In2Lw7c}1hd7eqKWO?dNadW>L -znYrtz{0l>G&=d5AasYkiTgrpE0%JO`i1X(2-h0w0l|3ASKD{kE*MeBKj!LpL3%@dBfqqLhjZu;v)XsK>-}L7$&%%%yPnn`LQl{e@(X>cu)gmw>+L9~oi*({jCOQq -zVTSMnVD9tzn?gL|-*?z9c#ul*gFZSHFqLV3;;jdTM!osDnYkMx%(Giu-$qkIiu(I1 -zr7xRym70Z~;lAK~htV#hosMl)?KIwB^!Glz|KNSfD|8-TbHCq8zh3kX(^z6EA#}tA*Il#6Lw_G -zSDQ7x4XpV-$*Pfl?Cw!s+F$6+{9Luu%%Xrs8RR>9yVohjX{_jM&h&e@&H{M^jk4H4$qEsPgYk9WB7 -z;&#^uT4-jReoh72Wwg_YyHz`laU;fs_+Ekcd(3|$xm+&Kr@3w(FYpEWW4yp+}dgIL4CI`G4P9TqWaEG+UY9&+zRzH=x>2^c51x%Vyzl4 -zif?SE3yb$9X>?}12zds**DG!qEwZdl+=FtEKld?Sgr1jt^1i)s%%>3?eu`Nw0auyenIKd5h} -z^F?}ZI`{<3y3pZA<9y~sy&=d5Ql==&ODw*W}I!PVy6&!egPx!_4Y+l=Y_bTKU{`OwSdC^o~o?$v8s2Ob(e^1>H+-Kf=A^Yb;geYG%Z)s?Ne??200TkgCz -z`oZ1SnkR2OF#4yWTP-FS#iH(zmUEPuzO+ssNpv)*{2diILAgSCCt=C#|(QYMYxXh -z%U#Eb_i(&-<2@Y34e#f$tH=8|-oIgI0($m&JhX=V>&Wlhm*2x*atgX>43+r4*a5=- -ziF)sfU14}{_C^wLjrX~P@WJ@f%x`RsVzZ%I`8m9Y!>$B=+Ix6z_9YjPELonq3wjUN -z>GC}cy+KdV8`2GZI^mRk$wbkg=q>)5&%Wf*faaCUCp+_V^<9@qy!IuJ6*Lw;X5eQk -z(++d`gL=?p)SI81nL9Y;ug`jGBDtU*|DBR*5K~$Ps9A8_?rBfVH!3SD%gj%9jJvZh -zXq?tCD>$zMY0i^><4(1#Qc?ic;bUEX^0#XJ5!UPLoV@GuvEP_ZlTA1q-Fx{YW~udO -z_TtNBwwb&Outb8w4zoyUB*%dwykjrlwg^>=n0pUDsxkjan -zE;YB8^Bg$P0av<6;lK}IUYE~&fdd_IF~NZ!aF(^+89D+7I^b3c4*Y;y(94el9dK=e -z13%z+UA{M+paagnR^<=;T%12X&;ge?eotqeB>1_wLwxxI9dO%5C>;0!x1g6F2Rh)U -zeOKYY4>-&EzN2Bt6Li2W7998iH^0P>108Uy9q2dQ$;Dgc+ -zdf;OpDm?h2K9x$lqsI?=;F|;wzNlA_qmBnX@QXiE@q;ho2Ok{|df-cc^>e5H0bkTl -zyLForQ -z@Qa^Q{Wtic{zDFW{GbOuDR}S&J}Cd72fprk6+if*T?#6Hpa(uC;}7r!KB)YG9(asj -zz!&KUA3gt|2OiJC7v;{RKgTXx#z}a8Pu}kzF9C=8i~6j$2e3zFJEw!GXIAUl_bB4d -z!St?^Sf|F7@a><p(p4qA>{!2)bsyk -zhfQTV`!w~Ob?wj-^adF~pDN7j9(p_W4yka}a3_2!H4tYwBS_jwOv*Wr0om=TywpAt -z9~$OEh(x!4C@vve`j2Q``$q=)Aia6pFW!q>cRDvctkdUfn8zLbqK0<2=dNpKn}=fO -zoz$y~4%f9y|A+oC@qp?NF`s~b5dAsE)#w)y7s}JusVqHDKebNjPA5I4GHB0~bxPvL -z7O8&AzRuKtA(mjD^}L+)3_hrzMt7tv`gGpf}_f`c&cO8k*->gJ)`; -z(r#-x+?jRlKXVy)uGD#8s_>on(75E?1F6}bf>DYs+oyPkM-WT!ShW97DPkGDHQ8Z4NLAv91n(ZTo6i%c&1;+Ol -z`w_AK6+iiNX{VRu)=q;D>U-iB27awWYgM{8R6BlrSAW=>DZ@4Alby3p33k8m)4n^h -z{qGQ3)6Tzi7gXPwlH&<#rxiEX{ukUy?A^+te}$f)x7dwJZ_ua8l*#^A?ela65nLxZ -zA0a|mDq)O&VgI|uEF^vW>)8MPwctAIuLk-|dgExh9+=wcbo*b$-4KPOK0iI^4SIs! -zY^lG{r%HYP+y8Q1L;Dr1xAc*4chwv81ihh@L7xcci=U~!L2ume=x&J92f24uIRCX~ -zKM-L5EB9glyZ69DtK8hFt0hbJNxOGbwf`KKSivdInJ7P8d}O5b?K_$;Uw}71`~fYBTYSih^7_av|9+G0Y2!_+pKJbXmzL%;3y)b%!3g6SL)Sz2IrBP@ -z@Qh(R^Q|RbH!Hj~tA1iovY?Gywyx;Xr6HMr7bs9*SFkw_)*oAhU#eaCzV5gcunOAMOQ!a -z%6`KhdbP55bFa~bm5s$MPI~vc;45pM-Kj8IpV+v%WYeZg- -z^;Y2(29qT_wqmQy$7ocWDJP=+&<}N!I)YZ?l+xtTx8taQ|*7%Zur~7{+A?d -z5+np4;AgV`-803H&IhQUI%(dF#sDro|8{8qo16V_85uoIj0`3_bGC7J=Fn4xhHTHt -z_FettCbv_*AGZh2_d|K_#(Q}3A@v@Pc~gA%#rrtE!{WPeDpI=O_4d5y)Ol3Sccn$- -z^Ghn65^owqC1#2JulUKE}QZ#m+Q?{`Zed1 -zUH1Eh%rDuOq|w>;aE@mTNs#5KJH^d?4>xnyQTZ3f`yBKHy~UQwd$^PfmGW2(&Csop -zT#&gUh2x9X2IcA*d4RnR5H2&wQ}yNXh)o!^uTvp?he}!p74R=T22+^^701K%faeo+ -zr?^oJ^1#epN9A7_dV`*zH(Tm2^qFrd57HagHMCzQy{Vd({vMuh`Rgb>&>Qpwy#WV( -zT2`OcmbK7R-y|&cZ3Ue_dq4g5ARy|~uPMxq@3BJ|&-vcw_5~x`+ZQZQ`@F=WC-Y6J -za(!rzmtx{*s%uOTq_-qJ%cM7*qaJ47-NCWm>ZmpzM>1%9hNtbk1!s>_$VRv==fd%`z(x;FfM}Km6t!4Q?{=;^&F3@5>HR?;AMI-mv-p?pOl8_j#d=fk -z>fXEDrg5vr<0I9&C5_zun0ySOpM{>FH`HHay~~4)1nCXqqs)5iLE|H7XQ4N!2Ko#f -zAIX{Jv#70~Pd|)>7|$|fhkFRCyXtS|@zH!<)@5`-dINE0y)l)VSe#$78z9}v$M^{S -zWjH>{O?~F^QAyhP2;(7)j}R-yO|aL1{RZsrFpmWKqpA3Deel|G)E2WHhk5L8KP7e? -z;wNJ=K04JfoTSKW#a19Y4#)jsxSI -z3sqC83xMZWz2|e09Y?u!Q6c|yQgfMRD%KnSvbEy?_wK4U=m~nWrT#*nN^<#c$AR%t -zX1%44kGiYgpeN`JB^>%hIA8pZ+DY^~dV0|Z;l2vzzt-$k0d^d6A9ft3ecT4F=wF5W -z!r$KexY2j+)%-r$*?rt16KboEZo03val=MRquR&q=O@N}`=0e4`-yMgvs>TVJ#gQ% -zIkb=4?`R*l-n5U~%}Z|`a?d-5G%xwj(&3l<<}tS8up&R0x8}f?+N%36+iA^l|6SHP -zX4stQ<)3U^ec_*qqURPbchaD~9WXVmqu%;b<^PWn&ilB@xOXG-LQ*sME{&f4{M^T_kCT_}VaE~f$9;RkgjO&zCY#q!%l?Vb|pKI{eoJb-}HOsuM~gFf?L(TKaa>dkl!dj -z6IW+Ct&<7h_r)?|igaMVl4+8z^!U^)HE^HVxH!-O2mOMd -zi|gmZfetv(fgi%rUj0&X;eB6FZm@4co1_!;w#Y|MH|LY_pa*`y6jlDf7kUZ8gC6)g -z!GkaKt>+){gC6*{dKEwTLQg?>&;xHzRe114x^+1se$WFyP4M80c!Thu2R?DWiXVKD -z{w7T?h(AS7^_Qz~(}fBTzL0+q9`uO6?qY=pU!*$-4|?Fy{-pRy`GFo$u8@Av1CQt6 -z3;9Eic+Pmo?oQe{%$wR;dk4Ip56A`l3aAl`(h!H|_xn-};e9)z1)mkNOik~+_A{zq -zfS)`~&6CB(8Rj_=Nd}+uvz#IWAIt|N#+djmCwmfh8>*Fms}@#wgZ@@?rpP(-rt!-O -z%jYSI@7Q9iu`Szg6W(>biIt=TaMw}!7lz)T -zC+H330Q$_gln3c8yL9%PeLJ8h=neUYKAmu!>RY_QncwDcd;9X5_V#iod>j?vs1)Ki -zsjRc(KA0W8{h+?#xq6!VtLD4O=Bt4A%BFoi$zC#A@Kz!JQZ%WHAibf!ar?E+fYZ6@ -z;Zy{9e!=yP8x6F(f28z^xHG1ln)7by^t`ptw5;WZoS;8M|A+oCDg9wg`bqSI=ud;j -z7bs7AQQQ3({dnJwXu+=>S)0mW;!tI01>gR*d^bAX)PET=pxr{d3O=ZxNfW=ceLHgK -z53OM}PJfv4xi8#){ozuPr$S?G%!jF)w2du#}%VNFtUdv(Az8z>s -zVP}Ofe{)QCN^kysJE8?wlBBOpCpM1pn9N%bZXw<2PUohFb^3e_bA204jScGWtCUc^ -z?J=d@AQBT<{@?q8_w7KtjCL9VLi=rN?@eg0@je53_S-wlG_9K8?>i9 -zBch2(qUZ<{-t+s8UH%=9#<5VTUQw9O=Ay<&arUidSGg&6*oS&PdRY!u6l!> -zpf~#_(VMT{IelOYd2I-CK -z8rmdD -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%0AI)-a@6w= -zdf?IifG^?=!h;@o@CRR{AL+nzPQSDNtF&{N?@qM%+dJTNIYKYshyCvO{WY8YU+wjB -zuC@5d$J9Jo>`Bx7G-3(%IX}y(0D%wY0}_v$_${wdoHkS|pZ2G89KtFT^cVY4I`iE) -z&lLc=neUWK2@0NSJk9-c&5%@ -zRr|k&=UTf``68~kzHvv3_VDcKDrWG$?DXdx{}+6&HQHsg(?~zwU+~_ezdzx92K4Ofb~=2n -zwR6ASOQo*uMzPZoKhdh%=fpF)wbS5(`W{!dtL -zxlpNLJDtC;MauHgPKVRR=Vu4m4fHfS9q0*qOa4~r4f<5N3hi{19KQU&sBh2{^oDj9 -z`cx^+e>RV5<(}A9#H@7=2%U6DUd41*9ub)nKJ#+?8^cH;cV-!8q(d4BWY -zoriq%X1}9n-20bSwvS*uW9a%}B9H%tcrl(a9A>`n6R&p_K7PeB6RPH~U)}nPwypF$ -z9(m@YC6T&6+}M2GxKB6@&HFubRHW?UqR88WPmfR2D=%xNG&C=} -zvU14Bv+p|ku`zE{Q5vdFU*12`ckHUl#z*@KxMTzPgum9WXe$VV#y|=+mCs%oJeja}43SWMD$NygG -z&CkROEMI;ex_3z`KP0mq(q(ItW1{17l$+4vk?RN5MkXe{+H&|A2Q`nW8QaWd3p~}i -z)=v38hVI4re$I9}^1jkD?R0h(6WJJzv*VE$)~_FKSr^K?5=&2aLHg@s_0~zV3}>>_ -zDN9WR6k4_QQzy-v(U>LIo<}x$#-s}-oHM6k{;VVFo90;M#~yq1V*qvzHN=z={)2AZmqNDc!T!F*J-_Be(xxw8%PK2Lsm(;ytL}t -zZ>Iw~;I;@3{D9Z(bU+7OX^qM^_yK2GZO&X3(g`}?VuAxd;G(_!IM4ytBslN`PPfwm -z9dIiJ2YxQDt%%=gkWSD6*Csgdb8&-wIM4w%tyake{D6!08sw7;=zv=+IPe3`vXp5y -z(g`}?k|(M7zz?`+i5~|#;7Ug-9QXleSw}jTh!1qYZ97@vz%PX>Ig+I5$`f?JrRs~s -zo5ES&bgCfY108Un13!eVl5f%wM8(H;OQooX#EluQlrZQ~PW5uY@j7--8s0udXRVFXWH%jB)`y=z(t%JoqBsAUx=S -zUnzL-Mf#BrJ$}#wZ;w{}3HYMDY?5-Q<3XRok5hQ?Mf&x6g#6n=4}4<0!hJ#I?l_*Sr>VdEPF1y#-pAbay3vBq -z3i+3!NnHf#&D(xqAB7Z%E_7~s*h`zw*IeJY(Lnp#bM4NQ7SKLICmo$Tj{Xn*VN&`- -z^pofZ(XW@vxTH-RpP)P)L2dUY`W4YHT5z}1UYp9G{Y^P{T>RJu)o(sB -z94Pj|;wS$g?ergWYp1~n^*yoCz_039`IfSw+DV|5gWXx{i^Pl19T(sEmd15n)%Rk0 -zg`;mUED4c@iV=T<>N`L8$`kY{-{I!Ix0t!7sPpy${VVhYy~Q>uy+NNU1F;%v8P>R& -zVf~%$3A<1D%304uKH6!7kM)yDNVU^8g;YCTNbU5#WJAWkbeBnQOwI4_YUbRJRT`rh -zM!(}Z)p$G8`m||w_v>$Tg9Tce9Kq1>4Dy$C+H1$=+m0XfDK$p3`F_n6W4UPev^3!L%)fKq?<_Nl`{~bE+hP$J)7d>?i -ze-Hh<9Ogv){7Z@oB~F$%&+B45gz=Fr-(@jw!n`o%xA8u!&l7Vz+`bGXrSW@gpFVV> -zu&Cf0x9g+wqLD|u -zNb$1XMiXbGV;AXX_4JIKHG5tzR&R(0d=U>ah4@dJQ$LB8qK&SfHF^3BJnV#za)@$= -zatIbEpO#ftZCS5VIouMZ+}GT8VZU{CpZ=)!s7iXtM@6(`uBxK3Rm-J -z|8X9h+GhI*`Q9OZY?O=}$K*Cn1Rt~)_NfMbt>=qAHc;EaE`R6I_9R)dJkwkcn@5A5 -zpts~{N^j7o%0JJeow-(ILDO3to`i6kh@O!%><<@(0+Xy`Y?d9>VgW}ZhYO3kBTeFoNJV0}jHW!Xnn_EXhU;a#6${$8Ua%wa>< -zVJ4Kj)36R>qS(JqQhwVd4bJ+EBRD9qE -z-24)MIzb0qo8Z9D#rfj{9dO&eqv8WU7ssc&sCj@g@<9h&+gVZ`BwnUvx1g6F2Rh)A -zXDb}|DHQ+xK9vx6-2>==+wxtBPvQk`eu*CkI^bg8Q#kMgPG6q^I^gUH3I~3`&8PJl -z?4Wnh0aq?K@B^-*=&L>)=ztp_^$h%6-0e=yL42SCE+IJZ18zv6UoM~n4s_s$@Q^~c -zyg2JQq~60GeDOI-E}%!f(90dCm+_znJ}LN>!WZRSFMq&;9{810RQ%wJcu}sAF5p2A -ze4F6G7x4z+K@a@4OH};ei}dT|8S#T2_$^bWIqfI-LViJb&;#F8ukhfDbO+%<4}AF? -z)qaC7+9%XgU4Ebke$`xs2VclfuV2VN=z-rNc<@EML3q#upPZ-S2Vb=3dObz_pa*`- -z`I3K02jUOHgC2OhN#Vg4>DKEz;s-tO<$?!al;0pc=z$+_fr=k|k?tUTir#5mX^ef5 -z!hi+!lBXNyuMkNFpYyYv$`JVAJ -zxQ}Az*ePNEW%y}!Wqj_SO{-V^9<^aedaZzu=Q -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 -z@cz2oAD%@&wXge0&SO&2_AR -z?CZX{rPkTE1HRD?z3b;AMk%{2&otM=_H~Dzptr<7l-{6Em4CLgTD-=U1&5FEgxx26 -z1-odX^?TeTo0;o!{aM%Y=^FDs+qe7kf)cZZ_pF; -z7L)o5edb&8gY<@d-GlU|zSyUKN6feUb(9|H4SIs!fP+4R?W|ON^X}`8`hYL6{4>RxX;8<^t9lG?Fp`BH3TEke|&&6P8rHzk3 -zk9h-(i!g73c>{g^fpJ_;ze_&P7nJZMYRN^;h}~4S?a|LW=R>Cak7RuGZ^L+onRnn& -z?``3OdY}B*#P2W~)3DnhRVshay$PBx2s$58^|~r|-Qh3v20cMKpevX-@i})O|gidXV22&iLpsdjFSx^DmU#Y|5Uf -zz_JhB*O`w%E(_^m3IdMr<<<|)lQqeC_I@>cR0b+zZ(JB*9AC44>Asg%uDt5l$dBTd -z@8_t(%aR%Fpzf-wu_v7U{qWO$>C<>Ta`CB$4cn#m;bD`GiI)Gc -z|0}}=9Qn+!Wj8J_KlFS1mQOln&9D>qeQnswm8*skT{&O>e&$ad8m9f;-ZkvK -zx@8V6^Q&$uDCcJ!A3tOK6CZu*Jil>TpYkQgJw5E3)`!Dx?)}a%4%du4g3=x>pIVSO -z?&Rs?kAL%?HOKGuk3A|rjE$_g;fa$f#dp%*;vfFF;=S81t2k=Y`4xTlpHMNs?W78l -zX~nq9`&I1ma^H&kcKvF_rbqUvxbMTgE1o^$YZdR+^{ND3DtSXTLq%3pQB5zcvOu~N0~jlF;7{ckuj$7ZyX31Iuw -zGQuJq*mtE((nXInx0hqT3LNNwTf9c4AN&Ab(94el9dNOA3I~3`(Rt|36f)ui9dJ#8 -z13%yv^z!3C2b`T$@qr(3^J)JZ7UBPA?@IvVs;d59HyDcu2ufKBWiMgrUg#8>Ch3v_ -zEwp8mg2QAoNrp}`VP>+mRKjWi5k!lu0v2ioDT1`Jjr+Fmf86vo#cD=cPgKhC;2REDRs|z-;Sh{d<~DNd{Um|Yuh3_ -zpQMv~SLl3Fp5(KvaqJa(N;=8ct@BBFlCN!x?0k|=@_nH5NqLfQ`mnEO)hFpB-zYuK -zq&z3zDjqq~PDv;EWPD0_l5gVBY`RD~$tUTgJPA)6>c|V;KP2N`-XC-5%pv@om86$( -z;gvhIm-FlNlD|QRrCgD7ulz}VNiX@Yko?+}dcATe`6a#N@7DS3a<%*y$}j09{|7q1 -zlq>D`%Cpoj=_UWz3PnFDSLjzLzoeJ^T{^#%EA1|nU(!qddvty&SM-y2TuJ*Sz2py6 -zsrK9DYWjJ{m*ki9lD|RcmvW`vLir`VFxX{s{B%}$Zx^?I=$o{yQ7+arCe!uq5P6w@;B_N^Xqb@ -z|6V;H?U(eD{|cR7%9Z{X$}j09|A`tuNVy_^qMt;sNd1yt@^|U{cDY*q3gwsdl3(zP -zlq>BnlwZ2Bu-k&8nN!}L{*eM$?Nj~p57QGit=^`yc)MYC~tR#C9b_*SKmJzZhd+9NTS5f{HOA{e+xb5CG;Fgv;;l97fJ*k(M>5( -zx;NLR7ls^OPn{4x3Eu)*4uqeZTFVRZ&0jk=pZ8}8pM-DHf8nPJV|s+Cmps!i;eV;4F-|echjp&|dlAF8pwaN&Q2cq57Jl!9j5oY5;6TCuJU# -z^*|wfE%LMv$^T$)`KIZcy*fvfW+Oyj49q-~8ojcmc2I)h=C*jL*E~ -zb$+)>6*B+tAMf0KUirsEt=EFkY;o0owL(O;Lo3L5oDJc)`1i}gK@1;!~itnWj$t%-=@96KPiMzYj(|ebu -zrvthi8SmX=@|1V~lv%3XT2FU=IXmp`R31P2iHp}Qr(Q;RNl%NLcil2^=*|}Ya<4+; -z9Vt;yAw8{1bJi_Vx}UL<+ltRFM&?)Hlklx;PsKOkr)uF>={-K*X1(l$|Ha`8DB?2R -z4ZH&k*N>EAzd!bSI{Zd{B6;yI?PpwOy*UJbI-|=e#y2D@{@pF-eK1mbo+@0mZF*ke -zoA62aR;|ac@Kd#X)Bj!?#+vA_eDkXsX}L)F^U62jlkiO>O!z6`O~oxX-h^*hA9$~c -zJO??kD!l1)EzniqduclUN$L`MvEzaJ&UAXGd{Af71`fQs~$3+zdiP?E5?O-UD*M9U0zCYI4zVUbKKiO)-`jduE -z-blf6w&CMy}uTn4vS$!#8kycj)-q1HT;qWj|Z*{$AQatACO8y|mN*c6-GTjRB=D -z=qK+t*Yar@%$xkZG>vb~Z8T -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 -zLE8~*yF#_LD`ZK@Q|8EFh>o>HDsvFcJ9(; -zT&elzg>8O2vs2$zsa1UTctipxpTch0aqj#5^GkW+7HWt4zG~B8(l3`Y4js@E(9fC; -zpM1BnP`jOcgF`uDvPuK9%@Y8G`@2^!)6_i|9R5fRm$aT)D2=WJB5N -zKAxvNIMkDYn+*44s*PPikw(+U#V6sHrmZU(dBGp-PYM0{Yge#wq{fXljyzf8NR2PE -zYqu=Ik@0Xk9c>y{m1s)St6$T729pDdBdfa&j&x)P+;WdauV2EF4q^3YaHK;ECG+mE -z*Ply2mB;)V3K$9)3izRb3rFtlJ(6Tucy^?eb53sCzHSZh1oizoS*LNN#+Tj}R4$sE4A=A-JGzS*P#hWfoxzcU1r?DY -zJGk63B!0Q)zOU{X9O$+Ge-!ka9qAWcMQmN9JNia7|>%?RV=RxvyMkp1_ew -z$XI;?osYDpcyIX)^8m_y_QG#=J00Vt>cawXAT!I470LO62w^OkDf%q$=I%qn^( -z2QJ|g_NVDt9s0mrK;uRmN3PL0QsYaN&-txfG(VhL>V*5@V;q_19B^NY;{FAm+%#~c -zr4OVG<6a1zy}We7jxKQG^2X -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 -zndP;7Ylt<6x4azP@nvF1`anonM1Jcauw -z(tY9A6!PcO0V?iG))Lo!&~-Td%a@*#@f8?vWqrRF^4Y!u{%z^Y0mcrYh&n6R*A}JYM;C51pR*e=Q#c -z-D!)>FBLC6mw9R8T26n#i63Ns^UV?L-|*qkdmo*!;ZVQjT>N|M-cx>m*E*yx-{$Si -z53jGvz+cnxbmqTrtzMGo?y*B(j({tZOPXEYhote>p{9pDzv)gW&J@)*_cRA6I -zCan7~IrLuCckn&uPy5@2|K+?7PMs8dbKJjum-EaoE)G`g^b)6^vhc3p$M4d$o*rqBEfJ__z~_ijNX -z9x?sp;IunC*}wmat)|!2hkTdwrC$!6J}Eqh+p}`Uoxy)T_e=KwVfF0b)%z&AISne@ -zp6Hy=x)nQ&WIAv4*ow?4hrh_>e7yeU%x~Ylf&G5U+4|Wn?|p6RolKM6FZfsHqT!!# -zU;c6OmiLa{S;>{3a*kQ?Qs&}qRlR5ZdRb*fv(a6A2!^UgL^!H(`v -zIPZD?{dsWol|N_yovBZPJ%60(yI+@lvc>ejJpN7Y%Uj=gCRkD19z^|beP@g5Q{O+y -zH^27(@_&Mtl&N|j`Jc7H4^wNo4SzVhJb2t+{Ev&-7oN1PeE$(lho!$rXKp$9k6g|{ -zXFikZIp-SR{W@g$uzUZu{jJQeM{a*BbLO-E;=Y8=9eVGG(Q7&051rrq##5OGufLk> -zeej9XGjIOpN%kLi_HpaJwBs<}{QCIW!-7{v-s8N}et2_mzezW<|FIq43m$!Yko|tz -zbM#k+PQNRp`0{xBt;{0m=2F!xir(W{87&P+LXsLKOOx;-{l;6!hbSTZn}~A^3E%N -z&K&vsx419chd<8DUwe~pe*Jjc$1?Aazntsc>+XikwAX&i{`a<9xNh`<|M+gtupdti -zP6)is>E9oHW3VE#iv5juycN7<*<|14Tsixrpz!5@8y*h+ZB|_n{90J^VQ_WLBH#Ra -z>4-Ojiv^DcTP*!q9-IUZqk6`priy!LW%)s+Wvy?^VvI(X|oN{77s -zj{}1@{Z3&9DWw?xS^32Lbzi$r$>HhW`9|it%za$uelM=iTr~GPzWWv5?#;~n&<~g| -zw=H}!v(@#_abG6y@wfw}|8ltH -z+_K=CbJg7U|K|QM_`<7d%2Goxb~*;1)|1UzR_0cktG)9vehIp1k?B -z;N?^2`R3R6FL*lGQ?nn}yU$K5gXMSqfcT -z6mB`;n!7Ty|L1()Il -z^X2_JH)I}ee3<+4(j$M&T>GDMIo?luUfTI*neyeGT<^NWXJyW;Q8;1c@bY!H|5afj -zKjrN5-00u|-+GA4S=ex4uxG@D?0;t5L&05sv5W71egEm-2mgJr;>)^S*905?R1rk| -z^WS|kIOq78zWMd!`Uiuz1ysFTS9JxS`_s3%4exw&=irBHmCpCmucuxwUw7L+N)B&2 -za7N~Pqi*7I*6q4F6MCu5cfVpgKbkq>xHjg?kN@|s%n$3=b6?i&{77b5eTQ#;o&V~p -z%>!AmYbhy8#1!+pWT -zC13Mh&W``?4nDNLocnU!^y`C1K742pbbb7*-NCx6rgOX>I=@+y32y)U9k|}Pe>f|+ -z^mH{AKHhJK;7&)Z^WC17w(0989sL_lKVthSnI#o!UjFNg*JkeCw$XPvvttirc3x7? -ze0gZwwV7{Ezmxm2b!ubgsy$*H@26jP-*|Oq@gYmO-sK}FW_G{fD%G}Ur>uLpY@_e? -z?Dehff~P$E3r>H|cFTiR3zo6}qNZO2A3t#$-{ow#`-b4tLls}nIq8bvP8-Js(T_)_ -zuMbWwJH$7?um+5*{R-FH^H6K><6%lBxBTbU!D+AE=DR(!@145t@Wj2GzW&1lGPj(% -zlKq#hUYXf_LXGcoF8bp=ncuBAp84|paW`d7nDR63%kzJ{JM+;cC;H}BsOkHedrvr( -z>wV!LV>5~SFJu48`U&ffJoawi?HM3BJpD`M}#U7oIbR`SQuP -zugT2)(kkxDxP#VaGApY&UV2q*J{`5sMVYyAs`>bpJD -zw;d7OamyPx{o-gic+sUw1}bj7K6uevLw%QXas4g9%lA}#nRi83@Xh6;gXqWHb8im* -zW!}NQ`8EBp9|iZSQ1!mNg!AtI&`z28 -z*C}k)IR3oMyQd%JyI=P$zbR9;dJ6O9r$7IGX8U1RabM0k@5an&_Z;GzU-$q0?9A2Y -z9l`Zp_p7gGu72-q_J3{q*mb9$rPjQD`gQ&t|D87X61CocJ#=jF-XAUIa^9Kz!{C3b -zKJ?w5J<>M>SJxfHeL4Kb&fuGe?GQx$D~8?>tULAqj`!1^#{aAguK3vpT<@yjqTmlZ -z7IJ&$9Qo0-XA+ePo1HbbGxN%&vpL>RIZvdn&wTX! -zzTBQ2pZ#uT@!eN)UtmMNa*x^EM?d9!GVkB(-g -z^|aTI`zQOC506e;apA|l%X#LSw-23mqux&;`pACDvqU%9XYtdoD%p?J`;QPF_kNG; -zQ#xfSpWcrwbvrt%E^i%v!VMpvbLrW%pD3=MJnl5rLx<%#cZB&>{+!fiKhmLv*4?sH`Jex!~!`;iXkis3D@9|<~T%eI?xW0|aIi_^#KM;51#*^ewvAG04>oIYkhvN(Oreq?d_nElA&^fCL9#p$!T?nlm_ -zZCRtXp#7qU&gJL%4$&6-!3qB|jkP-uui~&u0}E_|j>-e^&jL -zdcR3Ti~7upHh<8KE9JXhc&)gO0Pki;F{l>BI$^e4}|uW);_y4v&b -zXR!DI!j)P!$|%O4>XwK2xz>TG$4?n(i=T9b(x5+hwi|!>#?Kgv$Dj8?dD(Gt?jd*Y -z6K%X~>zu!R35q-CT8i{re_9gll^>^ZVeyyJ?sp2tqs5;;v6^P@tLiNdw$wiHcWWoSdM%3p7?2qdw2Mh4fMxx -zXWn$yNr;>H!m%5koAwos`@zax=OT{E+VHh^9;A0H(;GQ1_;@_xsLl<){>@yDYdiac -zQHZ0x?G3R#evIP~){svAwKh2x2AQt9@lzAn+_eLP;3_h+KXfx6yZ=c;-?CfdDCG(>4TC_5-s3-$5$+H7wx;3(rx*W -zqVokS6rE3?@($JfnAxiMu`kv8mgZahG{v`9seMC7DE^*xlH%{flxBvOgI(t;Ie6pm -z56)=N^78R`B`>ECT^`hO^}#45S28YS-js16Z&N^v2jdca!sCL(Ov2?<*%nasqWuaZrU6!@V!kb1^J6BmF$j@&cp?HFY97Y;^_XA=0@%{sZ;r|l-A`Cy?S&1KqhEgg1o^*8euNRfJ^dmK -zKlCrc@PCbdl|Ei&eVzOWBYsEvMHqe>kQ|18C-Nf<|IYM_F#NmFFT(KeO1}uhKbn3K -zhJQEuMHv3w=@()6aUl#p`0@n#WPXEOfbObKNR$6M?)drP=KQz%6pKC-!$S+^CYr{~ -z2}hy_9Uo1mqwRev+?815UvP=YzoMrrp~q|2?}_hg&|b&rb&I`@dFLX=6|%nZmMiO+ -zQV&)-|1#{N=-8Cl37!uglzRMjm%~ -zQ}Uy2(w}1E7U?#J>(F7j{245MfL^7RjWUYyr@P&(V?ZPK1$u3&>lo2@GGDpdJs5t` -z$Bfqq2uQe+DjQ>0Xx1@i9rM|)V`ScxaWUBI7{Mp9j*+lg$81{b7@6NT_jQcm5|RH; -zeI29ME%rL*-+CQWU|+_yj`8`XUwg92@?fss6tBRBPJRz&Ao87}@9mYgcm3shJ6)-m -z@6*VSb_=e|w~pzW_%ip$-4^6=hc_j^yFXuqbxhYGx%?R{ehdWPd*e@F%E0u;Z(AYz -zrO*rYz^;bBeB);f#pBO=q0a2M&&Pg@=xMRLiN2HhD!Weu9}<0RuVb`+HtQJ6GW#)> -zwW;jK$h;}zV$jzy8lTwf7#%k2m`!UPBlFwlzK#)GBJ%&KuVeJOMb#c%)fr9(YmOJr#@nJ-;$ -zaj5G+I*_T(WEM`{wd$~w&OXz*4-8TG%4_4q(59<%hH};KkReLb1nSiH6Xo8TuV2T{ -z$4Iz{%jJ$>sufA4Z$aNY3wrDNPA5NT(A%}(*u@Ru+Gujjf<$dJos33%%aG?jXe@Qj -z%5y(o)D>H*^GjW0M_dQ`t5%>9$M&xgo=PUSOsTqJRZCT%LD4_Zq}=MitM8t7|LGO` -zdtlObaXm$q6da)r(w0<4zRch^KTn|P_;nIov_Ek0a(n+SU%pb}oUzeaj{5&Z6$*Xh -znngd~TK;E^bNI(P?Q^)vv46{8H&K -znh}Q3zv|~l{RDak8fS5WW|_2-NJ;0{RkXasrlX??^OsQlj?zE*?-q^~x(76!h3+Ds -z!jG>1WYhilM7*W3|75pH%`ZI~X3ZRMy6-mPY~OU3cJ$R1x(l6!?oy8MBk)N!-Dky8 -z&2bX=#%NPo()PtIHNVs~#JZp9KK9REc|SfHNhkV@tsw6+MxIvH{lDsa;JwMaw4<*s -z=#J-0oO+7Yt}*?{W|IZ)Z0_XHCwe{_ -zk~JR%ex~$m;5I!k{XE;X3o76Vysh+(xTD7HS^3@(7t#3nZ04hx_f%BAyZQvGe@4}f -zr>=I5W7UC~_nc1mkIaepc2CBq&_~8+*R9#}QCCm)_@qa7yhZgXTxx!&GNl*CzUdvG -zbK;3`nyTsBAO&45>+GtoN3YlG44|@szd(09i{;d##wUb#@}zfVO~g3yRNw{858;o< -zvG6T0t`?BrM$rKd~}z)eRl_v?mgQK9WZ$#JAn%8gSLU~7y)N;V7tr`XTzed7eht+bP~M-YjDW@uHlEOS1j!%x -zxd%_&=fxA1soJ_@li{XRb2#ZA47zfRsa!m3j<+AZg@Gq7i{lAt -zM_*lAA8P$4`cTRdJsG&eqYoeP>ciQMu~aISXp)@%-2UZq%HDp=5bHY}6n!`>TOZ!3 -z_1|4uFK*0sos#_dw!iAK2Y-3Zp2U~WMju|j%WV(N`(!GO-D@fjoL=dY57qw5cljyZ -zucZ6MFIyjK`p9_e(sYvCU4iWJ)<10{rCC;~`K6?R)`y_0W&NwN;oo(iiavDe=|vxE -zeh7c0{{hXnz{qU=ET+AlrusCt5c+kMn%}8(CLxs})|$7y^A)duon$_J;Lq|M?ynr1 -zUizu<$Eip7V_8>Sd8Jza?wy`zj~}g1y!?@Fb#0Z+pHlT*srjW{13h0sCtW^zluI8C -z-h74ifUM(WJ>a#!%f6tE=SA=9b+datz~yQCy_6^GbE(HJN81~_#7?L8lf30geko7r -zF734ERlRPpak{prsCNsgb>~dVEc?sAQlRV@`olGbe-SstT0La-kihWk?EO!DE6c&& -zIWEXAUb^E>KR6sy^$phVuwlc7Z@>NayY92kK8H-5I(6~%>C=}Sc;JCmqehL|Yq07> -zxx4JL%YLVva>|v8CgM#A30YXf)ari9~v8YHE7I;V}OpOm+7p5=}kr?d|w`X~KjFN0!o##ful8 -zcg7iKP??FI+S=NllTTjKbNung_fUM#!i5WajydKS{(~QJxVL1<5^h&K9`9*uYyG&c -zuI|>Yw%Q6}?E4A?0$-*&H-fH|zvmm@_y*T=d&5XXebA{8v#?LE$Qn -zpEqw_&;0rGdloHP#CbrUrluzF=qbPQfx6q;+MY`$lT26i>xd(c;5uf^n9&mq273-U -zn6} -zmgmsFLX4m`6Ukec*T)`vEZ2=bqkpIu^&EWg!96tIdJZ_?fUG~n;U3Z;EogN3;fM9i -znl+2t@Xc?2ljQgG9*m)U^>4fFwxdYaJ_fD8?<0__Cl_t->4h?RrT)I -zv)_LE_3XRvzFB{WLz|EWX^}_T0J(r{o^;YlERPry?)pcJ7!g>pV#U9u@72|Fx!vF= -z_$+lxy`*1y^8KMrNF!}PUho3_Kz}e!L4)PXmwoIWlayyVbO!E$P8d(f1G*n{&_P^Y -z{<`sc%OM4QR|RgKQ8FdKN5Lz_JV8L6*>W -z&=uu6ecrog@4cPBefG(22ht)B@`47SBh3>m&nKL4LQg!t6m?xI^+RVjHa7A&!MH_R -zF}BBzJD6n(eJ@nEw8PzoLiIxqF|O+C>q!n8H%k2^caI70At#Vov>7r4Ub^d-`n+zw -z`Y{%S|L$=Bok|1!IjO&;rRAy9PCKm!w1K_>t&q>n``-GG_DCA(KllfI4W3q3R02XgbYEBWgMV<{CVp|Snj#UKE^S|b9Hq!%QyH8oCX{z -z{f7&k3?7_#;)%=y%stblP2+Ls*1;%SF$SRDFvrk1yVzYf -z{J;jJgFgffATQ7r?ztCj03A>^Xd&%Dol-C2W$u|YX(H=z^aFhtxnHs3jE^wadh16R -zb2H=sm<6%|KA;Uk2goz}g?6AGv_<|92EV~C=q|_)>c;p7Pl3gN=g5CnzPb^Ic@TO5 -ze860}V8MLO57~tbLzYoC+5vi?E%<{UaiBNm4F~_sWm<~N16viUTjIe7lEv4ck3k2t -z9b*#mi~gV;pod^U)CWKMi+kneGl*_gj2SVPhC<)uIiGOH|0{;Qq<*+qYmh9wMsoyX -zP{<@?0ytFR-zuKZ-53}$2AM$`U_R(_(45u|!0*5DTeq|WW0K~n+i7lK{fV-G?IA}P -z$B<{p2=oR15JrE|R>(QlBH%Y<$~)Gi4nHn*6LdB33HpNZi}?%fK|R0|_`^B~@sJ&~ -z8FPwT$M~tMP#Uy<%$PCbFm6dUUOMB9<%A>KS&u=Np>3p7fGuC6cH98|6)LOLc(et) -zLErY=bI(bn_YOhZw%&T{e2<&S13d%vUo+>^7;vE*+R$FhyE&*%GfeV^+2{?2UP7U`3H>x!=(&d+HN -z`uTo+zFhX50_Q);-(Lw_qFgjc9{<$SvL+^+Pa@9ySxzF+7g`xV}E<$*aPviM%=`TSDz3%@?= -z^Zi{HIeJIh_aXC~p#A=W^j -z?{7FJdfQ-+Pi($9^{DZQ!=zuceqN#a=bXnAeh7a=j)iZ5@!8|D)bq-v<`@2a*5~`( -z>lA5|AJ@hU`ux7oUGfS)x|*`bg`!*N3xB>})`>zdzpl_-^s<-kQcj>TAKm3{-`#Py)UTkhQcSYPq^0uINvY%r94@mOFj0wK=vK=bKGK|_m(I5r97d# -z)ML-9x_yFsWc}_v-!J>ikWEPb7+s*aur*yU;(`%@!-f~#hnBr_tb_P`zbpOVj40jE -zL2_`u!JO|m=lk7fo6PxsbG{#E8*$bUXAg1a59j^N`F?Z0A7?+!`Tj$*o^vth`_1`& -zbH3l4@ApDqR_|M1OWTt2wgIofX;dK;Ym%aJ$7_bMHL6OK7T*^-6fOJP{2^YP{2^YP{2^YP{2^YP{2^YP{2^YP{2@N6Quy`0>_Ze -zL+lWHP&opFEcZpzL}UcMH` -z6X`Mi{I->p0axmi@}<5vbbZneu5Y3{XaD?CpOi24Rqw9)C+*<+CiSllcP^<<%9r}q -zG%98($3!6 -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 -zjshskn`%rXu1u5{EIMCElPo*G|i@4*Ekb -z)ec%))54D|59Gm|M?ax95D-Y8ejreFq#=HFdvrPb1$epO&34r}-5uoDjFpZ>%82)A9B&iMUgxYAqiv|Py -zkU0r$RnQBDv)Wi|C_>7H3`DgPUAq@3+l%T5>sU;Oo=9mx@*$zd?c;VcOC&;j1 -z-=jr%2Tk^gX6g`$R86Z4m9kU=b!}-I8FEw`XbC~fQvz>^Cdv{cKtv!c)!U_4xvY_^Q%(yBJ%=%P%NmJLq$V1Huc0nVK2lZn@BFV5xS6*D8YxC1ep{RV`^)n -zlX`EdNfEMO#mxc*_ug~4yN@X=?Jiy+7E5P>zrncbTTP5fwWdDAxVOf -zgdrze(OR~-MQEx{ky%P>CoJ7)Y?sxxK?rqZBmpJX#J_00lKEDP6ksxjTii9OpDM4j -zVpeL`h>Q?MnW7#d;_H3-evG6YilkKNxYBh^RCBn!=^r61YWSVln=k`3yF_JN`l -z0p<`=L@C;#nG0x{Mg`Id?>5mw#)QB{C;wBc5u#%pG0JgNUjl)^iNJN@uS;`0V5cQqHJocFUk0%kc7^_!l~FnU2#AU -zH#AKvacUTiJNq6nqPc_FtuPE~Okv*Bc#4)}k!W?81_c2_TF}z?fKPKR9&6M-;UngA -z7hB0DLP(IL8r0QAHZ<`R(9lGX!J%Y*ve{u;Bu+L89>`>#Y{aUptS+8tV_}TbK%%im -z8jtu*wsAzB8f1; -zk0hBTsDEVKOLa67LP~aon22n{fn^0PChB0l10v}`Kwcseufw#_2nAAU%x|g)Z11r2 -zOhyaRB=w8h#JedZqq1;8C&50NDH_5t -z#U^+dw!_$u%3Kj)UNbroBtqFKB4i?GKvzZ(inI$M2Yz=-8IAdNQYQ2ZuMh{CpUgeZlu8jU&-A&Y5*ct`o+MQNn$JDN}gd)&Dx -zUbRLiU}}*cl+y&)Aq9s}8;wLvLnHuPxtc+wa;kVNN7uD9MR*Qi>k$(mRL9f1^4qgL -zW)CI_&m(H0<~Ybc_G)507_|-48@6{ZV62Zth>+UCVuuxRXw!jIJ*|nzPVJ}zRz2QG -z)=bS|y%7ZKYnleMg$X7_n-(5yNH&DG{=)5iG_~A@J4GeysAUy(Fi;rO{~f -zEZF`P7~)w%d5>=d5)8$maZ})1n08n~8i|!f -z06KWSwg?Bi^g@z0x}9kr+o04p-WA3kDuwjaVK<&5NtJ{c7ttPW6TvgWG?dhZa8!sl -z6bS05l8{LNjie6=;IYdmoF0lzkQocnp)gMru7-qaB*xXrP}tM!Pz_DCR3#)I9@=-o -zDj*b@0Q^HEpdCX&livv{0%Bg)_X!N?K}gC=nV)O}7|KgcAe|m=Y9-TM8E>4>bV>WW -zuvU{&uK|Q<&@c^)N7wvJ=mf?5Q~NdSy$BVBf;lrJRMduA~L#yoRRu55y}^sAw)}HIITPvN0W@V6krXd -zXlJ;F?KjDYT9)b?wWNRe26^}f&t6RXW|Drz1)9NW`=(Z@lNK6L818kn4XS+FuAp@e -z=j9DMOnx-Lw4e7@qm1gX*J!bqA%}`o7zaeBy^JiJM(UMxgPNLnUBJ6&YDY0d+Yw|8 -z5{)I}hIlU_(ge63Y!Nkpr+CJJ4)p6MH(n1H1HkC4t#T^*n^mvV>;$lO7>UUk!F;{hfeeX4%|?y -zMJ51tTS;m`60IueSOD+uDmk}jbu}x~&6Y;U9OWSmnj-UNGYma?8BOONXoQiKsf~`f -zu(639vM;Gfp#2s;rbC7#^0%?2fwXGJdA*pn-$w8lSnXqFW$`&!g -zTxvU=<~t^7qNV|iBVmVS0Emc}{MrkN&|WQ7Dn_kb)bv5tK-vRj-23}4|O|9XHBezL}Dpy?F!UtjaNnz -zM#GBsoXV(!wrG<5ZagZP3{h!T$0cZ4ONWeT&9zvLFwj87!Km6{-P -zAHRHl2JU_ -zX1qLf-&25(8Z?1t|9C>J!l`P#GNTxDcPiUt$;w6?qop#ePNaWvXPUC3!nT94${@0i -z&4|1(4EzYQ9UhF%2v(j -zOD0eawC7brK!9d1oUx!2fKXLf9g(N -zN|cv6sy(pdGf3gnNNSUny)-Y;!WjqhX#DcjkAp|fnhy4Qo<3X)37MI=L|Qu$a@R8$ -zCQ1T_ipu0yOJtmqRSBp!w6_ZINe3hmO|Fh;Owm~bI#6lB!z)(;0JVf`XzdB`U3>i8 -z5RKdvHwF}=dTV20McU+24MAuQjztKfuwke^5vHR#TpheBDRB+~NHx18wCnL?&)e(D(gDl-k#B8_(JC$SlW -z>443p6d5)M(Wt^{)RSn?*$w*P5daSj6Pg54H4!za!?aBWqag+$o3+s?R*F|wF}9K_;yf<`PIm7{YY5!$xG_K_+**3?WVu;>=;0>J|7Oc)v~sA-;N -zDlv`3NqQi-ahh$&WiPK*B|ufviV+Z*7Qwh(R@X=)kZihPQn@(48Vc980!7u*&I*AK -zEV^YW-QKZ`mPmXSjv^7FY|8Fc-x4Ep1JvStKn9wbN$a~~NDq^(h=$hjY=pIgoZJr0 -zmNNs8Dl`vg`W7?Nhi^8|v`eEZ28(ONaDR?gM_}q{PG)7eC`vXUI>X!)J3bn3*Dme; -zaCjM+IFh{Oa*T71xu%ATMXlr|tqUKf;5lmb%vRh5w8oFnaXzb+%nOatc}=nOv9Q2n -z{#;Cp7S%gSfHUOLV+rQrK!${mky)1Or+bTetCClMIPgIcykFzY$Mc%%&=f8oMkfka -z@IleKaB>a~d+}YyxYSQrHE>ou(wsV$426nJIsi(MccDIIORyZ9=sZm=79+Mha*;Z| -zCAO06gjumVCB(Wuk{>)5P-l14>O`Fjq9s_8P)D*JKQ-7-PY^d~%|^#rXkAQW -zh&DxGgN`ToG*lyDBpOz!G_jUlJp-obEQl2*WJ{~ea6+HLp*eXH_=fZ(gS4IAJVzaR -zCLfWXjKYx`9TTZh5p|IW^N`$XT6^JP%-XgiqaAZFPG*xbqRr+up<8WRWk))iIwqQ2 -z%sPT@Y58cI2P1hrO7!Mc>H| -z(W1_E4+rGQxI$Q*3!(06pOQzbo@`Q#7_i2yQA3@&tgSb+$RrB{(UvX#b&bu@dMq?y -z1WA%2BTEKX1wUmMzdBZ=i*0GAr6V1~A~OQyvXR1^PMXPE9jx;Slws;6CXgy2+a)b5 -zRK?&JGz@D_dQO8!60b5s@?Zkix1nW>o8hB1c^s!0$j?X?M}uuosGTqwV$>NEm*om; -zDTOomWJeXALLgfU9f^vy^UQ#gv|J7~$+1X;o5J<+j^+ksGNGA~xJpA)2OAlcQ)-%l -z?8%yhH>o*FhXJBwvf*O2pANPXb9I2utGPN%!F*uaWPsph0 -z4P`LJ%0#FYE~?|!D&*5rqb8Q-|IgTa0N7QO@Bee}mV_1}pu`>{Dkc_40I@yCT1lZCSL_JkkKjYgDymkM!)^JHgJlPd`#Y -zOAR7b7aa9)3`gz-zbqM~sFyH85mFVU{vbr^gO0a3kzHdGBJCtaVK?qWN3{=emCRmD -z;!8P~9Q2NCV}lic3CV@X&y}Dl%9`yedebf^ -z3Ret<-Q`S!Ju-yTVu@F27gp<*bd3*h&9WO-5~Q?$8Fn;FP>|u9GLibA(;!cWwnZHm1X@fLPsRRp$|%y2epv=ZvELY;(gkjx6@Qbk}P -zhZfhUYhbW{3iPMt;3dr%YiWhv&mmU$(Om3R(uig(mXlMm@5@qiBX*Tt>fbBntEQ#M -z3*k`legojo7*>b$jrE2V0Hixwa2Z}BA_(OP!ntTG)rzxCj*Np0EvIcEl*GIdW;Huu -zy`=>;?~*G=FsMr&oxQ1hz$-TDKt{*(#Mr*K%(_Ypt&xW!W|ifdX-{=$56M!5j!G4q2&4DLN@Cl!d9;h|30%E*& -z4T>zsfu=$(%hWwccFC?$7W#~h7fc9Cy~xD}IidJQCI*;B`jfIXint!9m7zO^i?gZ- -zb-Am7(IY}YPnX;`G)AUM;08(NGP_uIwrZc{pe8ROfAjlAB@fpbBa};{F9K=MC>2-v -znL+Z0hN0+d81G)MU>(bVo`A|1mb1LP%!S|s++4{p3NtK5RWg=d9Tl4zWm}Ya0Txke -zFE;v^$Ev*Gdiu~lP$zD-aKqkMv)3vIG0JZk=*B9u#id -z4iH5gD1lQ6QEI!_NEs>t8c}BVqBTSu>_l2#$Ow&R%n+EPs?3nWD6YH>{b9VpAutAr -zOtM%VR!GdC22!ned)TSrIdZ8m3)UQBNk0)M4vjr>r>Rb+oAzUg -zIYb;BMjhT<86FgkF*BujjD;`6AzH)q1t!RoMfYQzQKN055~A6P&85&y4z<~2Ai?$^ -zk;J8ljB?`8S02+qDh#&z8d7sxOs~qP;#wXV@E3b**QDlai!1m=+1sR7i|J8Nic=wOw0-xRZ6$M=fb!&_Qdu(2vJ -zB4R(qj9eQw21VsrLmxRsrlpkMFxpUdhEb6*MNJU+viNp$D9ak;Dt`CEgG032wx^LC -zGeRKowJ4ZWRYp}%)x}lbwaUtd*@go|2Kj?Eofr%9j*cojl~kSMi~w`LsKz6oJjLKD -zCRx~7M^`-VA3{yW#oV0@-zXLfd>QV_)!rT&zH*d$t|iHoSjiEP5Nphm%tf -zti3*Qi9A!Hs8*#Rzq9=zrHcph}6#OYKWW6EBgWVWhROmbTw@|o)Nb3Jjvuc9_3 -zOxiZg`$I#TL{cru2$rC&Q~lOW*T`Z*8G)kYYLDPRh^Qek>S02VbN1-%O%iaq25E>6mkgZ&GOD!3(&q<^O`U=O;QUi6+I-#W9hSs!XCBg -zm=9qhRSVWAB8M&cZJVr52m3MwWH%aCADiz7UF)JP$(RZ29FWhEx%S*w -zprsO;ikh2EE$cu;g|NnDmZp@gmdxkOg-k7lPR*Tjj%I?TnC1()o-86;3=!f8dJEJTQ`5MbGaC>WKG8w1C`8p0}Dw5jC^e<@bwuqp}Ee!*w>rDK7 -z$(wXYrx!8{nWNOL$jXS_HPzn=!wQ!zCHqlT3~`)AeITuBwzVJ>g4He|AmSE)#MPvW6SiL%$fdQDuS`_=3snG9f@$$1Kby=(0eIyTv~%fCD8W$lc793~Tn%qQ5D?K#v% -zg@-Czt2$N7P0yBuDVSZa1x21DuHDO*g}QZzbXt}4i9>71$Q{W65KJ0ky9;+lkS!D? -zfdspKh26NOf!6~wsH*6DY9Xz{3Ri$Fss&3`28i6TmA9g$<>ZtTghdvz!0{r2EWBtA -zWV9f6Gj?tj)2f(+5kdC`S?FUeI&7iD%D%T8=?q%Q0}^~syrzD$7Mz*xQ=*a16n1$P -z%qXsNnwTIvr;CAZiUPurFKo@C15~X{@K;Aa3a2x!^LbUBOQ>e;A%PaU7zLmm+{VUX -z~=UMPUGOGq^`=&a{!i -z@Yu#!L>pt97kL%}BaDl1$OeRrGTdqfOGb%20lV~Gz{9rkKs|H -zD!hJzJlQZH*!Ae08fNE09>URJJ)J@hS%wF9%zm*~o5sGxkqUd_sl)45H(?&%Uj(Xh -z%Hmc}hAf{YR*z<uoI@UN8 -zlP@omO`c3NJgkz!d-UgXh)m}qNaQS-Z*2Pd)xbfHGG$~F4EEQFL?&Af;n-iw2uj?N -zQ#0c@-lxUpEF|p5?I+F4@J5gwt -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 -zSDx0$qd?ruJYps3kgqDqlg#d -zN#3$IV3mRuF0@$36o3XgGZu=H{aPysHjI1WT7Ioe>HEDjdnH;Amp7b9Tqb~%W;;gh -zSDQn;7WN+4LquxD>!FtDSKq!Dw5l^ -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 -zPxkz|g}G^Qh6JMr@-&Db$wC -z9IEXu9E1c%Hm*U0W64~x??<8|)Fl#1h+@s#X;5DvU410M@#0>JgryKTuBduQDh#$? -z%Vi{)3Pl4C<+(>cL;hYfx*Bt<=qN&BWe$?5Ee6#eI+fg(U7WL$R(xqU9|#jNi2Us^ -z@4l$o*B<9?(gAPcbSFhGXix0)us)qg!;mU+J3!i}uMn^(AsOrOg^-Hq;=}MPz5>yU -zz1=pxd|CPX5uq_bvVfMdYHr`A0?y~|yj;cpsj+=1sl}VPYSt;j*sFOw{7E9|W5r7A -zTVRq~(EFaM(C&y#d^}v3I`0W$OpUl%Hx_IA9k4H#BFMlXm*6B!GNf$!_%GsB_m*Ao -zC7iQSn00;G@-Ez%O2R>7B0)###t}a1Eh@L4qk%fjBZq9#(JgUn8G* -z-|^Z2MW{TdRA=!ykH#9;7%WYw(7YJTo@gKT3S)W61GigBSA-xn{)&_{~6ssdn -zm&>-*yI0}@vRvTFI)0~M=$lZof6M+ -zO_fw+5&@2vLoHUXWoH%6N`-kQ(u)u>OD{7@{&Yk?=lxxh66E#e!Huegle--}nk}DQ -z&d;tY_w0k?kZBU@5t3A&J!*aHNI~TTM_?4JfjLOdlF&dh0RHwS5vNu*fZf6yigs=SDDrK(Ml^l>8*rPEc{ICEG>hFFj|U>j2@03Y1-F3Jt8za=?p^xKzB~ST({vX9&}|)4)R?@8Z&kyYgmzW<)#;!H^j8PuI5s3d0M)A -zSfZDytq?kho%4jzPRzk3rl1@VA5IiN{uB^BgdN;APzv8Zi2Z^^5h^FCS?tO)K-0_W -zqne+W%LIYaH}~1AYbC%`{)}*D7}%%1e-;#4yj6QZy|NhR)=_<{N@5gYW$E2iyZ9ut -zS7C8#5$07{vD0ZuBvlFq?s_wq*c45e-#4L*Eyyf4(Q%-Id)&pxK>! -zulTkzo_PT=NrdMm(Gn{T$~8w`s;7;WFS&SOf_T*NMO36wsk>!x%gYuc<#6`_J5Uu7 -z0nR6!GEKvrkUq0jVWQE)d^bQ!YR0Q{XXPlprRb7WpHN2JW7S|0!_XuGBNrcl4*XSf -zmL`#rc730)jr8GU(-saDYlrGn@~9{gnHq4DKvEF~@);Xd|C%ER!dZWl{Z7h1}kV3XgN(8)MLT{skLy4s4riZG#t4AK9xYdG}}a -zUeM+s$LLMfW1;FuNHo#4UgT~R<5Bg{?roKm!zJ-{SV)F@x3pc -zUnFGNLeJ0FU4`s-e(>q-?BEkA8112GDjzHmQL%LlQ&)taa-)TgN~$w_p-VL{^kwK6 -zg;pXepAVTtGW>iZTi5bR&8R%e660!-@@)(AnB~J4VMAC_1yPD}fgHkO&q6Rr0cWXA -zR@(>{fPld17S7a$6Rn%h4Qc5yskLvwV1&dI4--k;l!Cd2%8QhbjX+Rx$c!Ee3*Agm0smiDz-JpwG_072neeHuA5wXe8WrDN} -z*EkzAmIYP{qf82YUp|piO=R8Dyu!$ulbCFJ3=Cz{_Ld9K5Qj9wyhkHo^V~6SwFp9^UilDjTWoy12eii4mwQJ -z*x4g{hJ}FIsm^RLwvZ24$Vj{<`3aqmoIrG^ZkI!?F>W=Y5WfkjDunqjwc*yuT{}@@ -zaXaY*uWIbPKvADV!0-`Z$oKi^0j11U6XIeYjbylV#k*ZFs4_Z$vkxPB9Pm958u?Vh -zjuEb3A3$r0h04y*kIE%V8P&HAkScI~%ZrU4Y*{r}(Jsqa!f9iileAK4y42gT+RNm` -zNPHKzaAV^bUTz(Oq(WrC${_=;ln-q*tlhEi -zUdnPRa^?%LVg>RR<$&BB%qxAtIX*!l6*FFwr(yF!d-YXCh%A-?PK;UM^y!qC%B&P@ -z&O9;gavH`LV$^$RI3*~Q^%~1w=P7G9HJ-Qd6sc+HB2xq66avFp3(P9w>*T0T^I>() -z2!(Yg{VPiYqFi4%OOPVVsuV;r?)Xy}XQ6fdEh$6)=nBeLYm>YbkKMJtm9UFb)1b_- -z)NyX(JDcp#A%$|3Skmd{bqCXxhwfh^08EQmJp07rwE2*DR574%yV)});=3-kMN(nCK7Jjq+HYnlo8A*Gud=G*l$Slz -zWhNmYmo=M~cAFTq39-3m`&i4;C}dA&*4dfMC(-Bcku?ws?D7;fz~`bJ#?+HZzM}19 -z9rZ&<$lr3sceNc@F<}&_M3o=wkv9K+su<;rpQKSAKUu#6;i(uZg~ho9PY5T}63kP@ -zc)NEy|?)L2ZcOC|=r_Lu?-bQze*!wyONXVk81PvHh-l~lngT*fu$#bszFuNBOVtE -zFan2#GgD#UG##GYJs=rBo`^L0!gQehHW|yrOISw7R~#%iice2l7mzRC(X=pMM{S{; -zEL$#U#G~w82W&ub;tZ&uYNF~|)1ej9Kjj-IB!lL>g65BqDPIE&cProUg9?Ih4R7$L -zG^O@tt1xU*k;ZU9VY_VZB(!S_36Hh%mJFBKhrNg1W9{^sW6%De>F9O@>9AK7zsAl0 -z5t&5}+2j0-NhH+r-1kY~nER&6IF%k1lLp*E1ngA!bb2}NECnwNX%SY$9&4dPsORj= -z^0p#bADV(o&O+RL4S0zv9}cS!W08#o?qs!v21=sz;wig$NCrwyCDzT$r7#Zp+bEWS -zltN(9^8p!QTpb9OZW7rUghDOAw@gMr&M%Tcv0LIIrtqMHblIQJ(HTJ(;koxHO)Z^{ -z+bXoo06+)B>p{cq-4|?fk;`j*oQ_qB+9;gbr&)f*s>+;Nwzvv+*4#sE!%t{^voq)N -z5Ln41_QK*;qFIzq{bzolfZFXx&wCZ5% -zwYf?X!lfmAPTZ%(e7yte4{rUKM7KmXI?)9gC+27CFrS@Nt~*XnI~JxLi^wc4XYM7W -zzEbszYUI4BNd$>NOAXxoJDG}e|{IxYt@s3Oy? -zaRgT=3)ZzxGx&COyWRhMdBJxYkiyjhb?GkU_@qsAMrB|YSy0E}5ePt^-a=TZ9XiC) -z+Sf7OZEG0PVqHxe6N4_Rd8m3A-4&rov4U+Yy#yXqixNCtZAx5elgZl>n0ufttgRUnGXS2 -z8p7Iw&|0XVu*vL0#wfOMubbhr4eH2i#mm?HNFUW*;}Gt7Yp;kc{IOj)39Stx -z4SW~Zp;SA6G($2WXgA5QTqFF#ecIXLD0%piEyEJiEs$!sw3P}6>nl2Fh=y2GP(>Ik -zMi=CMccWuCv=mwt*2t7DMFqWtf>V31$61He?G*l~+)P~<`ZAw1Io&ko5WQ7-!--&G -z7>hq`AD+b-vqv!WJuy?VF|n?#cM8r02udd;5qVpn54f<&tH$`BzV>zHS-a;5QD}&7 -z!b&hdLv@?^

Mjx#W^RKl(LgH|CK=#o(is6u{amegi2zIOorQriX2c_A6 -zNSgg^X;ky}vLd9Ok3!nZijafTw3nqcrL5e>mZgghL2Gq0tBWB_W#ZBb;%in1r*iG4 -z51u9i*P*1&y0YG?>=IDDSOThYOF&zx^}s`3jS`_3*k?6rd6%sgbHpgs^f7uztDg_X -zPw}Zf(P`wQ^!3pB{IVnjHP;~<|8hOS9o!8#%vNHbHz>z -z;bx#afMPg^CktB33x6uxxbm#*lq+sHDV|OoEuw%oB^k -zNfY1a*gKV<$o_S|qb`6b4H8|SwN6z~n4aX;v0>>aN@%wL3eV7Ghoo -zE0KHv%lVVDdt2XlaVnVO@XnFo;#BaWRxnPHVGzG;^tn9}KEGp!&gs+)kgW!^QQn(ro4Eh(5?sVKXS+Mi%9r%NMl;cFM^B5eo`XFE00<8eCs0HWU -zm>w_WC0e>9ne?E^^57;k^CjFdcs=0;JsB -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 -zw$jJEdnL&i -zx+WcWm_{(t%%+^P(na{^c5b=vf#Xg*?$YKpU1t*7N$V12?B(st8keLwlz$Wc6Uk$C -zy1a8v2mSN#Eon~2c4~V$^}MWcIyKtzz&XsSs5A2wmwMzHJ*epx-rY_w=pU2V|JHRT -z&BDfPLheU7moN)&={%8{qSmU-Gnsoc8LP|EEsa}f`8YK`;MhyZ|4gTuLrv%4qrLpQ -zxtVAIwP!BxrO)?L!*R+zk+-%`AN|dw<(lJiYprbO-2?R0mUI{Y(Kbq)tx@Sbi}z1r -zcCiZ54g9M1Wpq`hX0vAa%uda1<#rsubJ8+OybCR1m2}PSI0AK7S<(txYLnA#iUB&Z6Tyq+XOye5nJ>$jf -zxrR}>nsL3Fn8YtB$m254(JLwOGOwLW=^?O8V@u<5moPV%qfwsgHM9lSUjEc0F`oK8 -zjz9Xi*@50YIYXC7x8WaBg|xupHDrnBlL92yNIV+eyQj8TzY3t -zccMPvpT-TU4`nA(-Q1X)&UfCi+ApFW7tvp;kK76s7PzQNBcEnNgoj)Hn0E@F%_KXK -z+)oFR=hMw9t#KK3=b3sotY7-HW}+@lK+i@xDs=z}Xrvl -zG}8>+GjQLI_~M>{>lo5%SLjTK0fz%eq+|J=LD&q!W)L=mu;a+%_Pl$0;_l#7M^fHV -zxMl%Ir{hU?Jasvqx~T6HB{j)CIk)3@r@VPQJ$x7-%&)y_j?*>M9SOM;aA)$n3vgFL -zIvsjP=Xp0ux;rVlNHG`pJ@R|=@ZS?Snp!5Hf%^nAJ56W04><|f-WQk;ETEqE -zBd`0D_5r-}K++$E`y@&|nfDd~iwHX<-7TF;`qRkgLBQ$MK>hS!;34=Q3Oo$=!>Q3D -zc-|NPeR%f_YS*3SG1r=DF|Y*CD5yV{Qrp`D320E$Wz=*zy|e;YSxbKw?p44efwO^Q -zfYsG_bfz`9&jHo~>nQJ0w04HuFe|MmuO8B?>+Gx1vh -z&4zP -zu*Y@1pXcjd%Gw9)2ObYR0eB*5o&-FZ(eB275pXf^6yT|ZKMh#GEa+rLJe@SppkB`e -zE@4(^4Ll2YHtl&1@Lab`eK{jN4|qN^=14$$V}qIV0%pzuX3h(lIWHpq#lTAd)#Ii4 -z-Ip<=?ppO@^wG;5Hv`NwBfSE6CGaZX)xc|j*8;BtE(2ZpUa9mH5knw*i}hw*&8>E&oT|j%Fsmla^iqybHJzcsK982Y4^=KH&Y-&aFz%1ZsU^Z|&;27Xo;5gv+z#V|&fjPh(fjc#pc8_2G?grc)n9Fn{)X_YaE#iiInN1Q`sfmN -zjiadl0BHw-UyzUXnf7@q8j^MrzYW+{^tPCbze2p^Kh$=o=@BhfCIn_Y14~% -zz8H83@KWGqz{`P4-LLBFN79Sx>y%zW`d0!A*oBWL>{ShggPTeJ8sN2*q49nl&&z<< -z6ZQt+jli3LHv?}0-U?g}ybX9e@DAYr$ae&ICw07{v6>lM=56HpF4ENd_)7fm2Hpd_ -zlsdeZ=lg*710MiB2wX*89|E>gmk$H#gV#06{L#Fbkv>A$M}dz49|t}GTn&7Z_df-E -zn)g2gd=~f|@Ok>Z&zdXMeu^j+$u -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 -zNN4s_()|qhIdCKJ3*eW)O -z2;2#{GjJE+uE5=R=kCB<-1h+H0rvz>0PY3c8@LZ}B5+?|KCl3|A8>!*0l))!|0Lk# -z?#{H3x-0@t={}}$YWH!C)4Ffpco6>6iF;y)DQD6)h2QCD50TaL^>8E(^=D7#h3+(H@TVp?M -ze>~w&0G`-=8uVGAWrY9!nw~`1le=f7i@NXLxVZa>^px(oji>Ui_UEVZ6b+}olug9k -zhG>#|G@jmlhsHBV`^@e;H7@B+jXz*@^epmtHt-zYc`oog;-3$^05|}=5O`7dru1Us -zv@gAcv@h+R(|B38_*2=x-LdiVZt+lur%SubzWa#uitc%hS9XhEnw4JFePeoc_dOf0 -z>4u7DoK|+;weh;{6B_F8%V^*0fj0ne1l|O^8F&luR^W2rZQbkA+e!b9?t3-8gM}e#8pO5kU -zIDj@heS-OSHSkH&ev0R(fzROnEbuw{SF(f8Dwbn+KTr@sCY;a>*6 -z0$dAx6}XP{Ujx1ld;|C<@Gaomz;}S_f$sv}>%MP8e39no_woM#_#u7%BjCs6a|8aL -z06ztOM%d4J-U$2x_$6=?@T>0mjfdNsY5{w|tn_Q%`wj40;CIBAKKVWVKLFYjZYHlk -z0)GPjOglabTt&=_y5^<7bRV1kN}lf^?ca!xxrN;VX>I}j0jR#;qn~BN_)p6C7w~W3 -zMrPepdG8CP`48}4;D7i@CQ~->6!?#)L=!uq?;xG9M??-W;{l+@Bhri+nqSQ{lkmfU -zMI<5ZnpQ;K40Hg1fsD+}+*X -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 -z)Ds{4E~|Fzf=qS2eQHR>4-eKGsc|p{5DWlRt -zyAl5*>{r#1xE*E8WfXCb=6f;*`>`+%`|%J=xLxGo1oC*I{fauteodWhzpPHNUspre -zwLwpvxUQ>Hjks=j<(YM`uRfG=@3zrirOZu3w#++9923clfz;d6N$U*c$(o@9%n_zU -z-c0Ofp_8eXx&Kx6!Oq5R4$OslFdw}Zpyxv5ErP|^ErF$6FN5WzX@xyVSqZCPHFj$t -z5^`xb)wTFt2kY(SNe68u?G|OByxIbN)1tSB(>Y?WduRi3Y$VJk*i4)rTH1jir+i5I -zx1j%4^5+-W<}HsN<|oawq~yGxJKnsxt8TZObH4lNtL`A3JMk}lr(Kx4yV<$53N$Nd25I7m1%-|nf0(ETv>9=%)?;U*}koCwDX@gxLFE5f7_F3R&o_i$yHtEA%LiS}NEiZ9zag*I&v_aA9zWojLd-QnF5UwAf -z>qC%p=nhhL9}$=A?|zK=1p6VBf~SOS$+LQf?$7OS>7UYH!u=)4{w&#}`a9Pp2rqlg -zU*X@w=_=Cqe~tYg$hpP);o-CuS-15DI~n_62Niy#|0L_e%{*M{|DLo^kJ~>f?}*P_ -z=k2fjY2=%n(872V^4@bV`yfa9i$CTpAeZ*Hq1)fc{|NtpoM-Y0^E3QQxG$hMK2p9p -zdey;`1V8Y1&<=$Fut1;@WXWFon3%B$8w9aI_K?QGj0?N`n5sqI -z*JA<$agT?athS8rkoQcbCBb?sbV>+`fcnV@ml%JtZ!rmGQsOzry0GZ+Ge1q%O((;D -za@t_41U3TDAbLODL%wC6zQR0*j#pXai_7rzK1}NDmnt -zfy6ELvL=LbijEnv&x9#sIhip%oOZ)nY5drtWMsiUEB<8cBb&pHZvT~GhWBs^j-NN) -zNJ^526LCygdX%i}$htw>ImC#|73DvNaqo`0&&ho*N6e^u8K?7bijMi*gUDC29?Olt -zJVw~q>;e?Mm}fEanYk8pPK6#d>E}zExia-^8lHYygk)5UDftOk03tYv$CMk_Fbg{3 -zX%5m_i148hhM&TiMW84Y<31dULkTDer5y2%=TeYoS=x~Ry_s|7x+dmoEg^ZvxE%Lo -zLE05vv5-Bi-2xJkH|8Eiu@8ZA_$lv5j12ZqAY1mCS9ByXp7kZ;I;o*&MMpBjPS)*& -zu*yQ-k4orQ*^vU7v=6ziimYnLs1B@!C*OSUkXdKeaHJ%y8hgUz-rVO?lW?`5Hq>zh -zYjvR>)aSkdG<1Zscf@S#RKaY7?8c5Dr3o}eUNiheKyzpTEqNZTfHTw><7Gb%bwz9J -z+dx}r2koH)NL?l^4{6s(`&jDKj*gPFP1!#TortS5{<>gx#q0*%x$c446SEg)Z$~M$ -z4`yHJ2mN6HZUe!?$$_%=TI6}i>p|qtVBBS&Q%hU8GK6|zc)-7kl!u{?LWUV+oUkNo -zsm!x1WzD{a6PJ=>4kPSv7y%<;6pV&3Fc!vVBWyGbya`zgdd6`iKRbV!d* -zGjN;9^(>gp^&FTB^YA;Ld|ve+-|Q^zN5?FyvPZNmCxZoXde~BHM(qu0d5g~DZJD%p#Mca6 -zM8+%llY7zQudm{lJudIDlkuew-tzyqBZnqu&!r;%kNAB8|G+2s4FAFxV31K!K?6VV -zcba81h7;XrGX!%|*%ad$OM5q$7U0aGS)8(uQ}%P3e#`Qtq+sU;K(qDFAvcF1kW5$G7u#q{|Ak5eh2jW6Jka2Gr50~#seC`u~Z%=YUt`k9G -zNJ1P*AsHlx6c7w4Ar(ZA+nZzasj*7~X(1h?hYaW{WBOgd!*xdFW`fMPeLcRPh5M|K -z4YETB06{>5BrXPDB+DSO#Da~ZRVGgxT~&73m+CVSoQD-q;RbI3-Upao_)I<+KhBFu8oitE0{YKoZXF%3LLm!!^V$Op5{gmm$_&MUt -zuSq+^*SDi(&NqWO7xG8W>ydWSQT+YtEI>_3-clfpUiEZK(4gw -zR%?a$4iv(@5bnBio^Rm@;x*kuk;*p?Ij2bPY0NXuFpb|Cz<(J2^Yfi5pq)kEbbQ%< -zL*_X{u8hM3D(4Av0XI1xZ*L4a2P9N$LCA~F!h}V4XAyKOf=v-4?#uYS;thWlKP|MP -zMmo}?=iV5_wAjXpjl~SV>j-nr>-Rc(nQ3AToL7f?b}8@llhNTB?d(Tz3xBua4t95) -zMUfxQx3!IWkMejQ`v>rl@Y2S6g!verz*CXoEN*-+2O{%1{wAZ7toQF==yr!1KYD(u -zsWHyYnbL%N$@};_{$Igs_=7aQf$PY93-7S|6aIqtPB{xi&T>Ro2kRsV|2KX=LT@_2 -z|DeOifN=CKK{+TvzLg*^%(j7y9e#gyUrG8NB{VsU=M%C%Bj+A%Tq!352q)(;{EOWe -z;$~xxqUv&f1U*At^1Br2^@a6?GtU>)^wNC4eQsaNWqmgCG(BAL)60;zK0jh-)-BRk -zTTXjK^fmkJ5?9%8{Q7j1cHIE-m#UOLrBAPNM%v9Z`SjwQz>oL~j`COjE16&G7%el} -zZw1P<=qh8Bau%SON74@tAYUvH2y*_4oFB+?7j!nqNkTt|A_FH*i7I&EFOk~b|9@AuD0&h^uDyQ1rriPfi{`17UPmnT)e(qG25zm;V^ -zPe~K`!@C&FGl)L#PR=ut^SG-1Fkj`wNYPiyiYcesSN^`uSD8~Z^GN(w|EWJ;*)!$U -z@TSe2v;FV6eV?5*kyDct)%-uodM(Lr8aQuH*3h -z)~dC5kLpJGk#=WXo>4py{UonUKXO8=DM!AI@pTDT-_R)*eiJ}K*kF_yvs}j^jv<`( -z+CppKm2Z|SdGF-R?L_!b9Hm1;+SI0eng13)NsKreQGQMP$zJ=UgiD5Od3Ve>d^$GP -zT!vpW9-sf@_&3i*=6g!GVD6>v>Vv#*!#Cj>NL)TW**k}xvdwIcP -zeW5FzCclj~Yg8|pw^ -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 -I`|j_501e%aVE_OC - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0001.png b/themes/spinner/throbber-0001.png -index 3819624ea4e32708e4964bd9bf052850d51cac44..6a64683c32c8e2258a59d2168e4d56a7b6ca86af 100644 -GIT binary patch -delta 1562 -zcmX|>c~nvf6viJWAi0AIEiR#%6l6K}0f{=;!Z2CI<%u1TSCtI|ScI -zFb_G*4kc!CK!8LF{B*L;i&2eI(1UKq7LSp_4lN3-dXP)>`j=9`md5|)3PUiaV_VC -zV>R+bY>XZ+Moy#bFo*BR7wB0$zwbMpSFi2x82@1k&k;e66HrLdGco=TT-E`ixhGU44^JZ5ykIL$ZL1Yz8x-YgOc+ -zB|7FM0aLB!qrvQh-~E`Yz35+0e0|QaTU(mF5E-&UnTYMA0z=UTRB*Pk`U&|>sncqg -z0}KY~EY<|sRBYEIPIoA3yt|(|IY7#twUj>^3Kpz_9bdCY6EI;@+?Kmd@cwnLjy^Mw -z&bm)$FKMkGWlqrhLRi#i!|12I?LM372*?eI=tB&Mo=qlkCu?Q%l>t|VJVjqs_3Sv= -zuP2|by|Kk{tN$gkC6y*~M?-O;pOGJfeNb2O&qK8Ze_mU<4R0OcC<^T*Bqf$$Dw}Ww -z^sR#&>*Z+?UOg3onn&phSK>(ci_&+9X!Hwpe^H;ss=3heaVZBa~S*?uRn(dD^aq4q+LAp;);Go!ES@J{e&?3e+34J7qqh3+^({(i7~5jJq22Ccet-#b-S>Fq+nMlG -z@(tuCt7fffA?XUk!F$h57@tkcTP*AlrMIbbk+E8*^YhjsE!f)VL%eWMjqWC)rR_KPqW@rnJ#$57_C2SkQ# -Kpw)$@=KT#mVYO%g - -delta 980 -zcmV;_11tQh4Cx1uBYy+1Nkl1W@lHcX$V4d?vpKfj>Ka>>+m+n2K|4V7Zrp+5rx@AR -zGNF8?i|5syZGYE+>4KP*T&2HZ`;_g|d3O&9E5fybP1_5SRwQA2F-)(A{S&|nFc}Bd -zazC2L?*NOETx4b%xUaDJcc%koR3pGS+bdDDVS73Fwt$wTrtND$P10H#(r%nwip((Z -zK!U5s-e6fhDpQn~C-b87d>2>(7J;FEsiCzV92kkA4S(Rl7#_^sP_layxDkHs?S!_+ -zlCH4|-+W(}w0g)cIRRXV+%PbZAm%%DG`cXqX?s05SGcv0*kLOu#(*v0$3WRW(kv)i -z@$O-x@5tl;uqtVH-(eJ%cI$GEf@Yrs>pXC#C|4Ch&r6z@?Q!6Is=!?w+ySmh+C1v0 -z2HpsSbblDH0h_?(M(}FqQazegy^jQ(2z(`nTsSiXoKWFyuR+s11_ZOfY*9@VZTgRp -zb6*AZezzXmGqxX3GdlW4RJ700qw>J^6TsVPLO%na16L*O9Jr8Vo=;_}Rm5x@VtFag -z4saUS1|AK`zp;H;(tOtpq~_0NnW$QEErVqVSbs=k*_E`>Bl2f~b>Mg4HQrQe3r-u1KR-bs_j`x*MWC|_kdqhlJz*UhXc0~ -zb$=_RS8g(Aq8MOP(zfkqa^C`;i=m%@M{@s`?RO;I0p@If3p^c&uI|~0B()?hNxEGc -zPc=*w^}Eoqw6?PoYy%$_JLHRT?7tx==}Sp-B3}Ss1@B?t%?zc! -zx8kxx-nC}+SYiP_F5rB!%tF8a3#zl+qfPwO;ly{qry-m&bo%>imaTR^L|f@Hs(THo -z4}c#ce}#K-Y`dpOg39LIllaV=_-N*B~dQhwWnAt9HjBbO*8Wz(`{o3)F}BYwsrrwBWAA-X8t -z&YE+~W7ah15joCDNLx~N)Ui$?xo7B1=kk3%-{<{2@7L#fe?NbGpU=3#)g^@+A;5?g -zc#s1CCg{bh2V5>+1pt5-*FTCIK%-LtkebM#fG21S1}P5Yu;ajZ8W&{IQyGaoE*0cb -zDGUk+LWj5|;uHaCjn!$AbhXYdqfF+1Y)Y+Y1O8 -z=BR60w%8OwV^9Db&i&sa@P18B(J{ksv#?2vkkCoLh}3z@7d>B{#U=s&h$9Y1IIA># -ztb^u@a9DovOyb!cc5;a9C6R -z@U1l`vGwQ`N)h5~mKtPX9s3Nwx2{Luc^1j*F&hrJ>vvlcXi27@wZi|H_z)5aH5r8T -zF&7nI<`n<5TpB-Eu3>n1>W)M%_q<8nHPGJh!Lqtvb=j`QS=7?pe@eggS`0kK;bnhf -zNB!rN?b+uf_ulnk`sutAxpb<`wsY-?LHFr>h519ny>eHDXFj$gH2PTu?CyC#j@o||TR8Fc2_?(IwrFX(=u&Q_x(Max>1XJR(-mX{&M)#;;VDWP9V;Wun(^#kXb$t%day#EmGFa -zydSYkeyKt<&SuBz-{(&&^r>VfyDp$-_n$*vbHvog4^ZQJM2I}Oczr0N#mV<4SH7Qb -z=d>g75SnTiHo@{5Y98slQ~a)R7R)s3_~hPSKV;?uVcpPO4eL?QFOm*BIPNtpZR${1 -zng5XtegUCax09VV>~*z*xiDo-kFoT)k8E@LqyzEIhNL5P541L7cn@$(y};diM(jtq1qa8jMP`4W6f#(@RXFMv8~y_XuX}wU?OWGRT5q -zlVShX#ds~sa|sjfx^?I0HAkI`OwQ&n88&~PK_7$MNhYCXUSykKOo8fT*8Hs)ld)P@ -z^Z@3;p|q%F8uL62fBTW@=H7|g?g)oWL=sh_|5DyOoPJfa)Rf;)EPJ}XM$T<4%#GSw -z$F@bLu#krhEaLQB`H#1^A_i@FG}OFLaZ=5o%Y|UK&Krsl=@(9mRpk`8+C>D&l2Dg2 -zq4S>)ih-$;!h0UCay4?V7wf)bR+GbmdpCX@iGz12y~EA4))LPd)IQ?HyV%<<+W7|V -zqcdrU-zcV!N3Prz(oWYo;B5S(dRB`EZ3oN+X5*NYrVY>1s<^}3P=%_Nhp_p< -z-Y4){RYcCCw&Xdfak!-92(n4>GbdfT_LGq-?`!qmiNyK -z8jf}RtaTBS^OXEH2sz8lvQl8x6){0unuM|FsCw~gtBQdVk)p;Xq^i=}zPUNRsa=67 -zUSrp0DZbsUwr9arH>*bWkf&Qxp9WbbDo66RcTF*8VSQr5UG0HhB-$_W(8NZ2OdXmC -znEvHG$QKrQ6RHR5vC~Tr>m|IKI%F9#eY1A+}ch4Uc%AId)vidy?%d=QO?5sgpZhk(sN!5@Y>4-9h|}&S9H712nh1u>nGY7oAo!e>B7|j - -delta 990 -zcmV<410npN4D$z&BYy+BNklcYLaa^+6kxG8Q_D$<26#a)rs3$|!)7PPjhxy{5}nwfcAcs_ak`pqR1 -z#21G7=6m0Bd(Lytc?b5eY}aj1>_vz6V0;=l0(5|1B(+A-Q-2*`Bm<^_3|NuWNw#b8 -zJ_9C!RzYqGsFcVJ??4zo63^qn^`ehG -zYc-HieCCq<{C}NoSAe;Mn7Lf8ziRuS?L%?)4ie^s>jIm$Z%A5`gzd#(dL`ID1*`#$ -za9};&*CO)Uz@j84$jku;io~pzpdnxaSg^eoiZ*O7M}9j%M^el7B_NZu9u27-PA-Ma -zKH%=8lqnKZDMWF&5so?b+rSdA2;B8IHMHJ?0~6uE27hok43CAbERb0Se$UZSiIT~H -zYckJod|#H-9I{JJ0rw@c4o)me+UVPe0@^<#&w1XuyX>$#0dob|j7nO~qaJz|B(1nT -zZ1joj{@j6nrKp6ZWnIodbJRf-dJmKY`j1}Ou1CJIlHRU>^OB^^T^b(;9_ll1I>41` -zu)G@%sDDSZs*C`@SVTXb%oGaWV|fbdJyHPB+CvIvfSJT#YP=cc-B&?n)LW13S=$S? -z$40slCGE4eTOQcHA2<;|e*?Y)u9Q_nwZ}Z4jj5Isv${(jbOZXWm@kKci?+X!^hYTI -zQSEqac5_m8W+z!2`C7mx`NV239TfkM|S{OeHyb=2i -zVA}Qzz-PdRwjYZ~>oKsNwSAAI>%b?#sTgK?S+>hKuoB*NqV!V2ycK!e0e%3!2i^>l -zZhr%h10Mj_fO~^Ouh@QH(hhLm_Eq3$r0DV;HzG+LNlTJeQ{%Q@23`s-+y>r_zM!PR -zWMSx|IFkWS0FNa4Hzl2wbRpHB4JfBW!0W)iKdpOg39LImwT$Wo}#0Xsur)U?%OwnXX7kAn*#mw4VX0uHu+HYHzlbonWTB!-q -zJ(rYQ#b~Ib9!YE`rYUmINYVXF=kk3%-{<{2@7L#fe?QOnkI%gBIfIj{K>)_u_8SKP -z^x+Fv3&_7<4gi1`mq6rhjZ35gC_0ltMa9Q47-R~H!=|8UaaZH(9Y( -zOSc#sA`@cg?76l^KC+9d$m1dQ-uAeqwBYSUf!=z*$mj{Au83aV>-Q7jySa8;R5qbr -zHCaD#SI(GXUgRcg&VWi4jSn_zF?%pGc4f~igndJI`Da;wBCf44az%IPO|PU~jicOp -z=&n2m>Z^^tC5XJ-M8_L&y2VFFZ0{#nEf=1scU)0)>_M7e${)&&dpr+7li7!Sp5<1g -zsI7UhtE4BvZJv>R5Kt^lRYCmtzjwHlT03<-iK#bk8!+cBkA#B4A3MM|^Bahm@YjU0 -z4C0;ZV~^g3skLhj3l8%sU3Icsm88_vB2BGj4zbNyJ6xu`7wwoff@nTdnH!1h&d7CdO;vva&8-$uoJNi2wZ0m-3SAqI -z%B7Z4{R0*m+l$B5TkjrQ*Ae=#88L6d8@RvC7(ap(Eg!ccYTfE>7M}_bR;i$8OS;s{ -zR?A%#riuz^zb+{7@~Alp3cfn4rd|Gg3tene?kkpW>Lles!=tpAqA${_4wF9oce4zF -zU=vS&umFU<2v3;|OFd{k8qz4Du?`e@cnZ?1`(tgysDnz?7WU9~KLlwu`BciDI=;4N -zC7*BC!3h6uJ@FztKCmaEW@gQaDMk6%=WPY)@cH38xU-^kX{X1Li_$}hJznXnXoijF -zC_&|?58ij)@mJS7fsWN~Vdk#zy -zjAA3IfGmsbhP}-RjuWB`{`b=el>z*0pp0*Pd{m8f%2T``*npFLZnBJ4WqU)oUur|M -z2vm}8(WZ3l)fg$Xp}8oRj|%K*g#^hegUu!xp#!I3^Gi*eZN&&Ku4$avqY+{uv-m}$T0;Z~gX -z9gtYwO@6rm_G5-tk!#+`kpMzbQ9btk*w@+EN -zmz*C#nUKGn2;n6#(gfB11w -zeH7iIE%Oq*(6m+a=T_K7pkwnWQ6M25mgsl%dEa*v3z!Wb&3us-UM;pZ>yZ0aMv{(E -zFr(`#LQvv*m{nbi;={LmZr{#X*~N3fdD`N@a?9d-7QByTU$zWo;l4)1%k4ucKGr=t -tMFGWQr-ooyBXqTIYCy(aLeJjOsFF%|BU3VDTC?N;KZ3tcnKvX_^f&&1yA%Kb - -delta 995 -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 -Eg6_DwWB>pF - -delta 998 -zcmVmu)kV|)8^ -z@IupYgN)X-kkNf;k2}81`rV$uw^d^TzQ-)gd-uYXBW8CXq-nakz+E0UHaJ>+lyL&BVJ8PJtM}KVigmsl1nH}Ix9-SyqQg^uO -zd4B!>dqnI{SS1&Mi;1kviAF?pMiwH6_Alo-&s#QSg*|eZ%RtvBX)pJBs$L*z0noIy -zUef6tz^J1b{`f86`5~abiimHH(Xi%+INFSeR!Djc_!Kx*5bBDh39b^V*O` -z;8lBm=-(0WHSlpn{3_{9;C*0Q(uWc8r%UdMh`4X#YnE$7#BE8tuBQ2XSa!eZ7Ink< -zq+?wJJ^_A+h@PbLz&j4@X`m|UDc}mwlJuonJ?|-KMbb`0bR}&Xz&Y47{os+cb`rnk)c53_S@v9_FXy3UW%*@G5Gk^md&tHJ=BVuFhUGG6E@8#3exO>64o6%3eM`rfV -z1-&Bd#9*_z=>~V0PR3IMh=>E=+acS(0Z;h7F(7wjKKy^TW0Ulv+x7am3&^nNA1wRc -UOtl}>1poj507*qoM6N<$f^@R!ssI20 - -diff --git a/themes/spinner/throbber-0005.png b/themes/spinner/throbber-0005.png -index b78133eadac9b3caa4e6d809194253b0fff35f47..3a56beb7482ff40b652972de1a4b8abf25a3cf2f 100644 -GIT binary patch -delta 1569 -zcmX|>c~FvT6vjVI7D01OEio-kyh$u>k+fK8%B{52O0sgH?-dlb6Fe?$oo%;v56pOe{A+MBYl+JT$F!|00cb96e@{AA$fQ@Q7FFN-o9R|x*)`M -zqJGGHZYZ3^1_3hJ_uuC|ELHXB8T#ifyqG!Y9fCHk(R&ti-bTH}ivj)-BAM(_@D|;! -zht_j2j0ti;KoHMMij4(%PM+l7xO`z~N3)(=&GAtEg&;2+`hO>p>_ZQq7U;R<&+s&6 -zBFJ|Ni(zy13Q#<#ndj}?0l-K>_g^0#VJtrX?7&{o`smq>ZVl(1eh+f1MxJ&%jF3>J -zi+s&L=cK3Gt1j^r9M~_@l-Pn-Z^e{9e9V#bH_c4xW -zZ~TGn|8wF>(u}%M`$VU&-sjJsi>h$>#E*(P@nLp?NV)U&0jrExEL*ZI*UOS}Lt&Enu+VJ3O4I`y~sOV#D8>3BAWe8$cMH@0;Pv!AZ2EAEr?-dfqpLVvR -zS-q|rhSQ=|IdT==fdHvol}4A_j=|P+LgLGFAB)qF7e24W*JpCliMmUhELEbWv=KR``1X5ihY -zwb*e@JraSanoU!{-dp%=?7k*-n5oifBo@XRWWajIFm -zSdQjSo}3_vUu4dI=ktB+ZpyPt?BMvtmsd*<(^4!e -zatd7nWeKsPv1Jdw2Q|XhVNqCG)Eo2hiSG^&HP5qrKxFi3x5VWOp`D}k(v?-c;Yf1S -z_+M?G?s_WC^VLQ>i(doGX4j(C9W_J8*Q7>`c6S~t>kYitw?NslS)(XPfFE}rkxn+_ -zCo6$RqhBsavk9<=l_n#}_Imbv=|TbYy4~jq^TItZwi^665EAEFsd#p1Q38j5XdL2+ -zD*N#NR1H-X7ALAWvnZpGeS&75 -zhhy4mtfv+!^Y#PSpg`>s8X~anuFkwTcEIJU|SgcurSHMp|Y}a -z#ZsYZw3Tbhazz_*+=c>4yKX7GGduQ~a)+?nyX>fn9b7wt!R?#3eGMFQ0;tQdy)K+q -zE4M8);B4LcUuGBTbcV1l*^3JRhirDzp# -zAu8fRLF&eZ8+YBhbmPC^qTou`QV=&51))g6A`}WmlV;Oqk|von(}^Z|=W)?9aQkMy -zG6TLa%*%W4x##OS&p8(ccx+GE9v|ck4WN7mSOPNOmZaT&&VL!|qND)K00m%MQkE>2 -z;(Gy@1a@T<->i@}+nm0dD7QY$NwLa59W*09)-86uKDD2qgyQZI^mTO$nF{ -znMS0Dehs(>)RSnHZFj@X$=It%ORaAMBsG9acwt~Fa@z@*Q%Te|I_3W%18k4m{>1is -zwkMK3)rf@RSAPzWk$ki5B2Z3%*_3OZKV*B>_9L5?RDR|4t9 -zK>swb1I&d1wfJ5N&-a0KNlqeD1}5^rOj9tPAp0fYqV0>eUzD^5Y{Ys7WKs8j0e{E) -z0dN?5HYL?}r8@9fl<{yl -zRfx!J0e70wQHw*)0bc-b0;8dH82C`qk3F*FH1Jd?R{U2ZE%lC7An6z2Q{Z#p_rS^h -zB)q*m2N6L5d%!BNnpfV7Clj_mw*6Kgy<*IEDMftSW@P&v;N@IO6yd)t>9+wI)EDjxyQMML^h -z(yd-cwU{HCq_iHOYjhn*Y`*}!A1NsYK8Azmdw+czA={+*MWAZC610BQ0NbO$XTZ5o -z_HU3$1^5}bVfz_iSJIsho@XIj0p=4Ov%sY7EnuzLrqc+V0p1P1{wEH(0$h@`V*3p6 -zHn3^?dr5a~pNQVD7kywUDra5NZQI+?1)K9>5qLD%aVu}YXdpiWt^q#**Cb`O%fM?v -zv3~_%#P&ictlM5r8jgTD+goASY8bE(<=m{UBN+HKJg))QbG-cqFcxbS;4W|~y5)Y9 -z+FHnu1!fj(uSVC~v0aPqn5E@6lr*9Hz~vTseLfhinU<@P_H8>MElINNHQ>pJ#7uO+ -zYHY}W&121kF`AuCQgahnNr);>v8~3p;%*>Q@oC_R$bA*~BdO&h21p`m{xH@`orc(6 -z3^+)7`*lg{UGI7iu(KU!KLogbZbmnOAEIoQ+uVv;vFTdKWZn3Fkjv>j@N|TGSyJ_X -jy&WgBpMvMz&l&##tH0D%gAyxB00000NkvXXu0mjfCVbv9 - -diff --git a/themes/spinner/throbber-0006.png b/themes/spinner/throbber-0006.png -index 1a12e8e8c44e790bc9cc6561bad7c3a6cbd12275..949cb23012469efb42c33953b5c79d5352ff77fc 100644 -GIT binary patch -delta 1581 -zcmX|>doK(35{_>VK68sXDbZG!^Op8hr5EO8|0`R -zTD3G3N@IWk8tw6Kxw3`zBrVhbc?+Ag1YH$6Q3$QKddb_Xwb&%!A8|yZodmD+A8MiL -z5)7e$Oc3D4vlGc=kZt9Rrm{Hv;3xOA9KOVZwHJcyP~QJL9nr4-q4QiVH~AT!Mxlco -zs}K@{rBwjqa5j75=`vL&FU&6dz28{?+t&=>h$l?dvP@tc*^|gAq8^CL5gH -z?`}zNeR+J_Ek<8<;`B~m*|OY&_15QlAT&Q1+8W`PpqqcY5+f$we4Q@l&B#ZT?o*$d -z95ACfcM_%=UUl4mMNr?qT2fNtE|E$zeUdCrAm?w1%9Aq_%I1!=jKPo9e?sJrkBt&K -z)4V8NZQh+FSw)?(c>z&j{{4i;B48b*((b3m49zrlG+nXUxpYK5tpnHSH$ -zS>30wzF~xu=$Gl0^SAMa4^5}&y_h8q8&7+s8e<`5T~(W&9aa}Gp1U_Gf~-5YrE2{+(_la+>%d3_)C0(7M?rxFeHzyC#VM -z)ba(xal@*E_RRx})=7}XkeI=?y%Xg8cZk?B$RYl?tg1WKk{2t!+oGE_^~LP_(EC+- -z4y^*i8N@f?LdHAlW=5L%gI*u@In2F2=#S;h9OG7Zmcb~;6bsv^ru5pl=$dKRbjhp>*Q -zO*XsLJKLO>t8T^5{m7e)6K15!Z_lkb-CQ-0uCtxL)r@G<;o%!;)IwE_@1MpNIQYC~ -ziWt(J8uMm?z(Hr$e$p=YnTw%NcHe3(&3oZ5==oVET4pw -zXV(`dMEeI^&9-&xV=A9S?(d8Oc82W8-Xd3qhLMGZb>mo-XME!gB&En9OXYl`cY9#B -z4CRp`0UuL~tGgbbri~-MwN -zJW8z}MNs?DhL$;N7G~D$ch2`1I-n96>>pZ+adEWh8NtWAan^M6D=w;hR<Xy{2T3Zg=x=FsQ^pbK-HL@psLEg -zayR%>uM7F*RJ|aZUCTTvI&cq3*0l_K^_HO3WNc&wc`}9mWxO-if~|y4Adj^))uw$3x`iAkOx^8g9vHBX6JM+&$6UDXH9sa| -dm=_}!fn5>3ns=i8I@(VN`1=L=*6fMN`5T{`)Ykw2 - -delta 1007 -zcmVFT4=)-uIm6Js;0`F6`lvv>>Uz7aOq$=Ldlkz!3N&B7Zi^*r`r%QUhKG=76sw -zVk5IX4^+Gk0GpX}6<`rafQ^V4mI46034G!AP68k1F&3PA2v{<>5zs7hP?-Rr18f03 -z;2lXX?jkkwz#)ShIYpEOa2dGjS~&u|FKK4NnI%UooR&^$01?pvE&^?!51a>Holuwy -zzP*6k_sjnd0DqEdlHQPXKG#~`0N?uEeU8F{!y8_blmN?_!fXL|GWM&I4oN!VckhY7 -z%fKhVXTT*%7aRqEPk~iO;W^+nI~X{}9e2gNZS{e*h)^ankGgG-yF=~)FqA0QFd4F$5VMZ>0@459Ja1LjH4d5%_ -zbKhbnBEBoAfx3IY3mgLuI&Jc0`)WU4NvZyAlyU?qOif6%4(0L~MqnGr&jAvvMF37vTpHabrs7`+>(ZMVP<%0JvGr -z5JpNa#;D?B~?V)l4XiK^t5j}%W{JZY`iYfOmNgE!~sXk1A2hEPnJb-;h*avO^KU?jN -zEPt~eu{;YPG0Cj><~K6~CxF9}ng({u0FIiJlxg=J0DiIa9`I*G^lcmq(v;(SUdId? -zw_3vhYySVJq+90ywxo`y<1pKP)yxpua<22wvJY+8%BrbUTb?wGCaL1X&S=|qUS<`DSlsgiM`u1Ozsdkei*f`s^J1a^ -zMArkXk}tS2Uq(&qzU{2S-3602T&TlId|#b#n-TC&!S)@eD5cx%xxu)C`(M9~Gt(|H -d&#R1$e*tr8%P;zNj8^~v002ovPDHLkV1mCq+dTjP - -diff --git a/themes/spinner/throbber-0007.png b/themes/spinner/throbber-0007.png -index 315077101e10db2593fad056ed17680dcee09e2e..14d8b45c0084ce927e17130790c7328e8018b91b 100644 -GIT binary patch -delta 1613 -zcmV-T2D16?2i**iBYyx1a7bBm000XU000XU0RWnu7ytkOKXgS{bVg}xWdJW|Z*65S -zYH4k4VPh|Ia$_%NX>>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdH99mo)_(<2E&u=k5OhUYbW~|= -zWdJZRIxsLgFfckWHwB=B_W%F@2y{hQbVhPvZDjy3H=zb>iU0rr5p+dZbVFfnWpZHv -zLt$-Ya$znoFfxnR2*m&Z02FjZSaefkWo~5vbZByKVq#@-ATuy#aC3lC%eepm026dY -zSaeclZe(S0RDWr0WdJZRIxsLUFg8h4`*Z*R01|XXSad^qV{Bz}AX8y&aBO9B05LK+ -zewG+3000E`Nkl13M6o!*alv1>m5~5^KqDT>OR5}vvplAmU#EFXJABckJ -z(2)aiAUJR$4jgEqpua%y14MC9P(h?f4Ol{3YubvHwtvJ>Z+xD0&wK7ZH)&k(-o5tP -z>*L*P@3WKn`T6;|?d|P3MLiN*=Iz+}Y1g;S6W`Xa^@+W&p&>9h4sD{?G7>y;-7&GP -z9$Wm|`M_q97}O)Oo3)R}<9)0j29JUx;6AVgu7Nf1Ggu#uMw@N?|L8l9pba459EFz{ -z9s{f3D1TT4cXzN8V{jW>1!uq~;43z;!MI~1+7#;y7PI4wI4pqU;1u`+Tmx6YP4Exc -zP5#B`+Lz!-u#kL?v$!Jx0{4TL!1v&H@GH0oByb&ANbDsNehnM|b!S3g(t~Qi@Cb0U -zH3xBc6}$j!we7tJECA13+o5jGu&3N&^*!*WcYkBna|bJmoBUbu1n^At@$yN+vsOO< -zOm?FiUAvR)XTi<9%w6(G2Y&sBpL4?L1Rk#di!1{PS;*qiy=Xsz^FaGy@Dw-+ys*2; -zpBPuE^O=j*lMLhZ2ryXmZQy5St7R|Jb_;(1&T1oeOiXo=x#S)OuY>2iIm1A{W%e9# -zmw&CRj5-$epfGL>eNIcvArX8wFuVm$gW0=bja81>3tc4AKIe -zvX#P5KDAsN$6_u)#0yrw5>d~naW|cqE$nB(FSxkL`eIt&_7Ymq^GT~b0z0v2af6gL -zI3%)G4&9Ho_!!M>_Cb!FKG+7)~>578EY~#PfR^T -z-5t1q&t1T8)ZN<=kL4k-1oo74p?@XT+6>NGo2Yiyb-<#(fh)k>+a2MhJO;_Su-R#L -zkRq99jNLIYqHDLX^33Fa2|LWP3X($E9p^O0?QrTtuLF$l{@1X -zRJ&(1)=TdDp-(S4E^C6}gQ8d0$`h#f19xWv2}szYc1B5J*Cf0KsxV`SxK{4~W8Z;v -z!sI1k<;YiI;_tvZP&b)RwSUR{DvYzBHg#d)gTQX3vtGt6A0ccdZdhr?;q&TZL&gHj -zU*Uv7)msMwdv@wNgGE$#CK-2U7pk?4l2IHz -z9!XgI7J0pdsMAfUYYQ3l=_HP`Hth;`!!D$_q$FbpgheH>j|ADUEchNtpFZRgJ8=DF~Cd*>tL -z!WRZE^WJmbbDr~@=e!sG!;pjseg?*WKPnXlHQZlENyQB -zv%os=LdmWsX+_dKlCn`})W-z)3UC3K0UiR*mtzD5K$QN!4`?~T0nnKW0pKs-7SIFU -zk+fOyPL#4=1XhyZ@~KMzTn2ve^9t~Rq?r-|<<&B>0UQ8_QwIrw6y^+V=3lYa?6U^!0o}xZy^5GA37-W% -za^1EheI5~)BLYdEdA|ib1H1}+1)KvGf$t=p^s|85z)nOcL1qm&Ste#0zzlH5n~wk= -zN_q~s7!g+_eF?npa_mOLHWX9S7bd@M5?41cp5m2h#!wRE9Q#; -zMzvxjuzx?C1QZE$S0du-lmlzo%&$sxKOzo7(qq8830cx0GL!Jrh-e@4@EPFo#BVwA -zKCo4{-X8$-iGq;?b8CX3RkgBGGFAIoQG(OJ{UwbrhRL;v_-)D(ECEYHwvSBikq+vT -z)+9BiIDA1;Q_|>pGs3|-aN6?P1%58~@Ce(6ZGQ_<+A-+{V=p9FG(= -zAbEem9kwUwdPMXp5%7e1)B~p=UvBxl3AA0${xBq*d12E6PB}>>%n;xbX^3**pd_Cg78D$P&(p5>Z^W*pRes -z{oj{#=;@fJ?N?8RQ0`h+$!RkYsCGo;lF~b27^${LcFl+F`8U-6xbK2`#Wib`cof&L -zVwS9p`z{!FD{fc^C||RNTw-z0_l?e?(Ndc_fK)g-lL(RD*|l$#d>s4Bs0(bDi8Fzc -zwoTN0oZi>RWHYEDP7>T|BDbkse}vuSH=+rrU1puvG(P?T3%S<^p?bgx00000NkvXX -Hu0mjfPRP^o - -diff --git a/themes/spinner/throbber-0008.png b/themes/spinner/throbber-0008.png -index 4772a97a9b43fafeab835f36a369012f6b7d3365..beef391370a4183ec221e131e4d06e60e1792919 100644 -GIT binary patch -delta 1588 -zcmX|>dpOg39LIl{&9rm0O(-g{5^6V$G%A;D>EfD|+lGmN&aPVC6Zb<;W1ClQW&m=lOn~_w&48pXdGg{Pis`=tP{h1_3ySa)1W_ -z%g{@$16-&y0{~zf-@wm~rL-BkZCn1%Uc$6Q9s -zOdgKMiD$E!-2W6CmB3`jLg%8nZfs4xQr#}LTF1e*Luh$&r@r08Nfe+#p8)5dkr3I -zq45$7jApW#06&hK7!}3jS~}okIlQcZr)^q}Ug81T3z^&?@c*4yJc$~#z}Irr_wdx{ -z1SZcikip_;6(A5@j-55L2LQ+*)oVu(4W4;+M_iTn^5cuS8|_*s8=cNfSYI_pB5lQ` -zqkHZeM0iPrvqDS3a*=o1#M_4zs^DqN6|09QtBjjrNH~&fcNJnA;EPz73vP4oiXCn$ -z#eu5@GMU32hfmMOTR{_TZOG5hM|-=WLf;*&|JZz|MXr2(yRotGUVoTHPFnbASRq(t -zG+;&K4JMGx`R_}{p8if~+0R8i3-x1R1O;EVaFCU-Ll5;-krMr5uvU7KGrZhLIbL&# -zEWF*n2Sa+vQ?1~@>p`JUdk!5wmXevTah*eC>|+d^@`QEQO_LRHOq(@+Zq?5Sj3u(P -zVcLJOhAz!vyiKymifqrPUo5u3V5g#Wm0uv&UmFfXnsRK~*Wkabtft-bLFvAhb737Y -zRiMPP@%$HKxGfK^A{TuMpCID18_G`K?p`llElJCqEe!`P*5=glA6XR_Rt&6M5es$D -z$l48evpwwhi>FERk?oM=pEBX6q6tG=RVN~;c3oHAbQtNF+{>C`(H{j{W@E}EtLNZf -z4Ka*KTLF?1mRUua**sbQ(J}IY>FhWF#q|eE5M*fSfddB@Ve{|l=rL4`yy~(0t~slT -z(IMcu0-Ury-b({Rb$1;pMC%c{Y+8iuqfqHzCoc6k^+dq7R$lAeP&|I98Evj|n?SlG -z4fXZ3`?{^QTX@fgA!q-?@D_tBF?E)Y27?9_Uy0sgJ09>9D%;5$@un*T`ny -zzL35dMK-lHd&Qu>bGs=dWUaU^#5Rx8nLc6;(krEcwrh>1MOlX2AIrlkg3~n?AT*_3 -z(sU%6pV1&zhxm{lw%S>5>G=8~1Nm7dKqw3)Ty&_kCUGGGwd$^oOG)`HJ?f0vdl=pw -zx-8vr@#SiwBmtk+Pu^CVwx2zXjXNUl+$&ErP}|R&{Fa>9oI=pByHfd(K?d>S25?4) -zi#?ySiNq21`e*Jg$UFh*$tGA=Y#hF-*V0jatn22t`YK(NG;jV~c>T7*!;=@vZ{f}6cV -zSVp3BENlWVVXBJ*Ijg=l)mkZ*gEvUxw33032lQ^`Uw4?i>m~!U3iICP-K~!L#q@ctv_G;3O{8UFc5a5 -zmX`8LM`5tQT39797dw{toh!KgDVLh3oTh#Q94juGg;b{QL_5Ll6+@4PISKsM9SwYQ -z!KUQcHj!GKR1~>82DBwab9P^5l2b|jPvW+t_Y9tLX?5)i_i)aJj8Vo={s(O+&6i^2 -z!TT~kpS_3W9D1k5j(d@3WtKhx%F(Gt0VKKGN70CoiXBPsi?TrC%av|5Ee0vpfA-d5 -zS3Zu3Iyd4AJ5Iy;9ey^daP>27+fH>>XVi;MQYua8#@3q6(BbMcvX`U?T4}6kq_3*& -ge&-95@bt1pKqh}8R@>M=*M5iq)qAg3qX%91H~0#}KL7v# - -delta 1011 -zcmV9Ub9sxpw0udxZNDzWV -zMMMEY7RnC@5(NcCegVILl8yqUhlYX*1wsKRLVzMf5fm(>WNZ|B#zSn!o|#3nE;_oN -z$MvM(N=I|&-gEYI?X~xX2e>4?Ch0l;k4w@8NjD^2mvnwoIe(=wN~R^fF6m84Gr8Ai -zfhk}ScqMnPCh4N2_ax1Y(oq>>;LE^e;1KXA@M-RS-z##@KLS1gYQQdVWugcG+rWMQ -zz9H#!fz-STT(n_(Kzrg80KWo%SlBGEEUB8?llT68r=<#f4P2erfQZ-uJ_kCE#EZbW -z%vrDhjF9veaDO35%_kADS;zoMRY@;MIw@%?+4G}Umg{#VP5Xb@t8cJ<2s{K#1784N -zCGsnh79<^&R2~GvXMlHnzb5IMi1;lckn|<+Ja80v7B~-F1D1g~;Cn~roTG9F_&6f= -zth^31Y+T94ujdV@ILvtSvZPbMcMb#zO}IFh`2GN0#4h2YgYQO!6+NBYa{POga#oP -zNymXRzzNrX)rMS&h~Epcwi%-ocE;aNZgNzl>_#Q!%OWa?Y7S@5@;V=75yI5sJozk|<4eXurNHo#A5^l2Qv;p^T9Q`tPNY;^^3=0nWhs5$1)9$1&~(`I -zp3f|riYp1AyQbo1#to@gbstJgW<8@%NsGW^Ku^-mh}d?im3?1x*h@ZhThfNpIG?oc -zV}EAHeciB>w8{?fH?SEIa-%wCFDgLU7&&gwZzT~6;E1Gk8@6HtmJDcF$36^f_+`(? -zP3d#Vh|cE3ZQzmQ*{oBvnVx@oSQ)IAzFPgG(cZSX}d6M`y;- -zo7jMqIM$1>q4#Vg9MXS~FQZLhB@dheOxiS1d*eP#Dr3Cq4+2hN+>wNC({tSs=Za56 -h1-o6@Jg-S){0nJ;#4_dt*)jkC002ovPDHLkV1g}P*?Ry0 - -diff --git a/themes/spinner/throbber-0009.png b/themes/spinner/throbber-0009.png -index 35bc4817c7b488dd8908b59f66c9f0d9241f4e69..b366daa8f009ccc64fa2356234e45d09e544486f 100644 -GIT binary patch -delta 1589 -zcmX|>eKga19LIlbwst)>DMA+O;BvNkETf2tMXfwVMr^H&joocgvi(?Hh4QcpMW}8` -zIUXXCJEjNcN|Ce~m6k*#OUf$4o$kZud_U)X&inN_@6YG2uM+-HC*KML5G?-)4ghEy -zF1H47q0|@v08g%OICmSJK?AUHNlY3xp3Y>(Qn4I16?>4*#j+Sjm`R7Yaae8~jY;ER -zIV^f&B8~l@Vkit+;(m(Y2~-_ryc|V{<ZjU591zY~LVC5Fs%)g1XV{0Nmn -z0|7sdCm7HPRXtjPCWv?&L{bX~e`3?R9Mwa;igHE*H{^`qBBEGD{p89o>frNPWYLE|Ac!`E8Qy*4 -zIcuE9)pm*9ty*2h+oJ(u*OKR>Ce^il?c(N4n-sDY;^dAIMS5>~)YQX+yezWBTv2Re -znQ#`^`G@cNHSrYcBa4XD>{ -zxhbB9yqnF{T8eIdM2B-{?Cd5Gao->>A!ga+=-U_2tdD0}dreYcbXRI1=lyKb^z+z+ -zfm$;ehN#j?^NDOf0AC$S&*xTn>TjLKd+yn5Rw#^GjD9Ryd#|&Tw9Pw~!S?j4lq!_D -z!fdiTrRVugIj0WNrm=_y;oCu!(rr-(KEbK -z{_EGrC%uD`$5y)gir+*J3mblamA@-3Rq(@3)>%!g%U!UqV|%XI1Db+?@q4NXmwQee -zz0|w=W^%~8MyvJ5!LIAVu_-xO3s%!qH108z^uBG}R$lTW#CnJ?nXV`@w(FvH50&eh -z*BKV9j>}nCTc^Dx%gC>Yyrus}nP|WMwJ2PKh5LN9RVUOKhLmJ9QVx362fa|pw~Jd? -zp=heTbqg%=3h^4!F#_x!+);X^VfewEwnnweIsc@29pz1wVe4Fz)wEHp%yY-pdt8sgwC-eA}FbnO{=vhzIHc^d9l;~@&Slh+{yW1DVUttV(LfPkM{?ra$vz=r=zgVrztL4vhU6iGkWAL+i!W-kQky#BSF+II% -h^ZWy@#8p&uX9<$P>1ebLmM(w60MU0Rp~gE#@Hb`h-Ae!f - -delta 994 -zcmV<810DRu4EG0+BYy+FNklCRx^XAsLaG)wrBc&HJ8f*f#(bFEna73Cz}xBE -z`O3l5`k2v?S?0Nz?soWCH*`54;6T0!M)Fx-oi3*ZIf52f!4t4}3Ki1HeDtyTB<) -zi$l2PG_Yh~EucBJ3xH+d4v+(ffY&8uJ#L>e@V?oq06zdfjtw9p_JN;(Ei-W(c(Kpz -z&jN2IN0%dFIDZBtl_VXNRF_mvK>Pt*HwyyZkW>NMzIpjSaaDm2fy2NA@GbCtqW_4b -zcO`u!X{J{YJ_;=QY**4Ua4#YNt^&{4*fHP)@C$I(m-rPp1)TObE5K(Fk=ytZa1Jyj=2)qjZiP0|U!I|^L!*>k{o;B7O5 -zvtlDP+My`3@SFoEGui;|0)LvNN<`c$h=G?Ze+~Eqcn5gO?wSB@1DAn|5wS;){KbW1 -z9+)$YIl#k5FOnnC80K_!Ris -zS@od30e?3s0W~0xh|N(O74R5vH6s2hOm%-;1FF6B0GoqyxetgLyRz3sHzJ}L{%FzZ -zq#gkGfg2IAGotZMCRGab=D^L&4{Za8f?`!3gMf0PFACn5BcZBVps0BO7fjm)z1B9c -zF(?Sj&VoE5wnsERW%`>D(e4|B1qy0T!|JGUV1GuRHO$9(gf31b1wNm@0qWdm4nK+85Bih;Fsj_Xk5wcv=x=y!m}le1~NXx9U5 -z1z3=@91#LGB>iocTWLGak|xx$uX|;~Y~q?mM6@K4oQ0Wc08g8V8nEtNsDIFZL1rIz -z+_Rpd@3GcBlynBw`E>1eYOb#!PibZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_ -zVuH;C0000ObVXQnL}7Gg05UK!I4?0VFETSAF)=zdH99mo)_(<2E&u=k5OhUYbW~|= -zWdJZRIxsLgFfckXFoNGF6#xJL2y{hQbVhPvZDjy4FeZ7(XaE2J5p+dZbVFfnWpZHv -zLt$-Ya$znoFfxnR2*m&Z02FjZSaefkWo~5vbZByKVq#@-ATuy#aC3lC%eepm026dY -zSaeclZe(S0RDWr0WdJZRIxsLUFg8h4`*Z*R01|XXSad^qV{Bz}AX8y&aBO9B05LK+ -zewG+3000EqNklYSZNFkH;0 -zudwzgIDZb_1-rolNCLKE1FV3b!DUGPr0pf;I5t&4$Zdg}9s?&ph|TyVV5wgKFVEy+nB`OCn~{{~CIlJ5tKk<7TJAfa&a6nqQ50BdlK<<%}9-Zn_L!2m64f -zd;r|Ya!Vv66;?${JXM)^Ct^NgaF(jhC-VfmhaUk<^2|>IH#!6?w?ZUPoP@uD-+?hp -z?Qt9d%is;5Z)nc_5T1($E6zd);K%1*7@>EoR5J>(Q#JmF+z;`TM1?&0X*j8-N-eJyX;A^nsyz%*x -z-j`fnZ7zd)>)*on5AbXiVXIvQzewyLYiwiL5T9bd1V4ds;k=3qgXLfJ-q6m>yFfMcg@gtItMHh~cd>v`T#FvUNHj(#0;V@p!#O`HXxrB9NpPNt<18Pds>TZ^sg+QKV~O{IMbO;=36g1uGj3Yf -zUk5o#x6p0^lPyBa9dMI+)9>KV#Zips=a$%|v=M}b)@L;;d2W~KH=h&8*OMS#Tis{r@(-MLP3^Yzei9i -zlC}6cLG8ZwGsk{mZzp7-t>$E4rnwiAOKeqQYr~6}z;JK<5m5xR1A`I{efqWf9WZmr -zb1@BVvZnjV)}dvu$*4c>#j27W=i|b}vPl(}voCIaTIOb4oQ;1trz*^EC#fnn+$6F8 -j^JiYjYJCW!ble)h$4a;7cK;KBif>MA(?iXN!poY>?A#IPUM+)k~eAM1EFo+ -zKKD8I+;h)!UzlM@x+ZCBmKZU^;m-l@IL1yy>`fD=Fy@egq<^O+ZAqHTJiY)FffZmo -zvu{DtbxAiRE$5w48UwHjTm_bZWnecw$Dd*AJ>Zu2^nq`tVgNV;dcZ%xrli`qQc8LO -zxbE)+bfzu=aO?m*2fQSykYOM)TDl3W1M|R7{!9lTBF=z2z$4(HOY%$tAe;TGz$*!; -z&m-c&L;x(fnt!B9k|jV3XuFm@;If~er7z -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 -TB1x*~00000NkvXXu0mjfApYv= - -diff --git a/themes/spinner/throbber-0012.png b/themes/spinner/throbber-0012.png -index 91fef168da709dee773b833e889c6d2e19d27de0..ca4f0172ae9d1cd41986c14896e8e7717b3e7d0d 100644 -GIT binary patch -delta 1586 -zcmX|>dpOg39LIlSh*55pE^4t{!fs46qSy>cDY-|?FO$vIHkS!Mrcy^Kq_Zx}>2j2W -z3JtmKoZ`@lj#Fe=grk_{l8Tfw^_=s0zMtp)Jnz@%d4E2CedQVw?Q^COpvm?K;sOA| -zV5woir7K1N0J!idfjsvZ1_)s2EGCFK9K&Qr&@fyM4HF&1!>}2ACM%vt$MEPN6XasJ -z?3lPXkn^9SBN<>^RHWcfxH8IUDT*Ay0|7i1N5tT87`!bKha(XPBm%YulJs^chjf>Q -z{9>3OfW?x2JRF|!%-uoBmVLj46QP7Sd|TozveMIA^4ydbCj$5(Xe<_=-LveG5*jYS -zeKar*1bB1~D>4$~AZ@XS*xdBJ9kohsu*CN&F9bP$(EmHp*sad{I^HO`{`YV`jRA6z -z`y!ZZr7AZQ(=HfU0RUX;N#5ZXsCoQCXZD5thON;jc38U&Q^--m_;1--W&<&WB|NO^r! -zF_-$Zp|db3R9U@JX~?-@w_Gs1=Wt1=bgg;K^YT8jENU$k8Lrd6^I3rLg8p<2uWwgL -z_h$N*aLcrrs5>KTQSLKWJlHA?M4hLCfQ%2?jEtiLn<#Ss#h)j$&K8q&yPoFUFUvp- -z7+1nkBb{IB%79=wp5hOxx$}oU{5%?F++c2cCuXg0w(0|6WRvNaUP9u(xIdwL?&Efr-go%>z2CP|?MSgZu%LU_$eqQ(5sU>BT -z^NU)H(!BhzS+OB{yo+^rbZAXT`cOheZbkSt*~`#Ilx(AoCh}}^pqb8^ZfdEoBP4iw -z*`mKb`Qk$j$A;!r#8YEiTtY%W-I~&TPDkBdXEpPe1BoAyO?o5FYpym++-O{Lzv`#r -zfA+BC)TvuutVT^6*Ly(g=m^7eXxRCbjoHb@)o)X$cPGk#e$-G+mPfr4*?*+XrY&S1 -zUe%csFCmVvF(G+-7D+0J8Zy;tPpD?1`ys}(I_qYDoF8&*b*tc2mcLVXU(5)hT~=VS -zaJoX!J$8tm`Sn+PHuE{*1a$4(wmqQ(Q8 -zz`U;JUZYm3X})&^9`%Q9#Wum)9~l_BHw$XQdDSxXgvktlD?c%;SVZfMZC^_jS2J32cF*kh3eN}2ln9fypfp!_!k5 -z(uFG(*REU%?$p0P#ErUe<-(miU5KE9V7qeR%8%j)YDx`iscD;LGHIe|CdbXWa2@9> -zGw2I1b9wK)&*yp0^IRBV*{<6@Hi`_5pnL{61+;))BsGVTQ-ABDqyo$U72t-XR_XO* -z&MUwa&}_Rm9r+t=_Xam0%1`C_2ynUG#xD03fO%jHxCs2wO+lrP0S8fH;JEF{0a7yw -z+#cDr$Y59lwt$^dwB~L1!_6FUTOzgv+!)#bNe2mED^aK?x4nQ_2dXjRvZVci46t3X -zJ!^Y9AS%{oJbzL4eCd60X4}=|y$X!S^Q$HKW44!UKWO`CClD5ZI{C7Yl(aPaG}2BhNsLA@{CJ(0ZsF6qyn%_v~$#Bv6JR~#3@g@Cy5*<}I1Wq{ -zDX4cz0YGzv6s!QJ+oD@Ex1WG7`U$8GJN4LJw*6SYyXw2g^4bILh~X>1GVq!0cYh@P*f9dB`GpJ<1r=8!>^g8I?6@y! -zr;F#0hi)$c&jHUwUg7yV@DcEKfvd6sv%tv`N}X0*G^07-t{{3<(yr|zKsC>&fltye -z-jwu;?fYZM*^ts+==mi{AGQx9l~O4-kQ9B2W!!v{HJl(z{a$Wx?}511ADfGOTU`=YR*oE$;)*7r=|bXXD&C -zNw)@`|1-rrls%L4yKS#zFXZfL+gEKjY+tkeR6qHZKFVwHvPjQnCZTTY1K{IKMPtAV -zwx>s#ipvbS7eKnl5DV}Ya4q!y2=K%x22hmefQ@eD*Ji|*zf0?fuC -znDo^QoekjA|LWtko+-KtT#~f;zkVH;=Eo|~=!K15>u-W=z3o(9@SFeu002ovPDHLk -FV1i^N;yVBU - -diff --git a/themes/spinner/throbber-0013.png b/themes/spinner/throbber-0013.png -new file mode 100644 -index 0000000000000000000000000000000000000000..ace8764887795c1dacd9060bbe7d0e1ea932abc5 -GIT binary patch -literal 1612 -zcmV-S2DABzP)>1eYOb#!Pi -zbZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_VuH;C0000ObVXQnL}7Gg05UK!I4?0V -zFETSAF)=zdH99pgw!+xU0000GbVXQnRB3Hx05C8*FfckWFgh_a8`gHO00008bVXQn -zMsi_oWdJcVzi^q-0000HbVXQnLt$-Ya$x{NVQpn{VJR6m&&cbW>wx -zZe;*;XmW32Vr6n5GcaawbAVFIxc~qF6LdvbbW&w*WMy(xX>DZyFfckWFfK4RK2yu$ -z0000IbVXQnLwRFtWpf}?VQp}1Wpe;AGB|#g7%Kn(1m#IYK~z`?g_c2UomCKqlS>Gp -zgiF;Jq=a%&5G|r0-MFdRg$wCMP;eo*5s>zdxsFN8-!6)oq-9W7~5Q -z+s3sq@pm#^qc0_hV|8zQCVt)l32FJh{?161? -z9sCA1N2AfS&3}M>?-jHO95_c|3qA#ogXh39Sg1f1B2%>Z0elTE)4&b%J&ov7YMnlT -z6pyC3ot^|wfK~7xI0`)63G7zw-WE6noXSt&9Qclj?BzVxJ%QwG0(IOLez|5?><{oX -zxCM@YKfzq0;yn=rHB^S}-t0)GP!&Y_Ol7-3Pnl!R-E8|PHi -z`m|4jGc>lC&RG{(h$95>J`U_$a{mHfzOn->==gsGj{gQwEaFui2TsLDD=CSqoyt4l -zD)qjiR=EmmW8ZxPIPBmh@FZ}o-lGI0BYp*!fWTd;Zp07tsbzXdQeEJ_lZnF_Kf9ijAGJxOJ8C -z6?5VJu$}-%Y;o6W$M-YvckQ8tY>2y7TuX!)ujM0fUO!^@PQvrlZ`4PAkb@&)A%mR2 -z7O-o{Y=G};hh1@eJ?V8d8cFmMAQ_7)PC`5bCdP|09u341W&GZIMlXR|ZO2K*U&Ot3 -zUmNi{E&yvdg@}zF^W7L%{?r|dUI$LW&Q0#Fnnq=AbTuyd~X= -z=dO8OF3KCIuQ(4z5+(_KB@kT-s+Ew4J&Oc;UgeO0DSlsylq;xgEF|j|Cht^&rMnbr -zwf2xu%_--XO8q}~vMd2L*q@P)$KSqVa_=S>OE3l0ZE@GxBX%eg977T|x|N*vaaimK -zxCSKSqjVZ2W>%N%b!4+gk5Tv-^)E9a?fXhPQdj#~ -z5>9~O1UB)l=dkYIDIB?bNtC;#CUb@gSWu2d(ZTr6q_xChxa1^$LH~9vX%^cuDn}e3YVQ>_zffb-{6&wN!8Fg}_*?S$_2D9WZ -zoUefH+Rf`ml%I61b(erqg%JfP -z;up+&$`yFPj>VJ6x|7EDJI=1D8sIr+!KdWgM0ai4y@dqg<4}L1j@;`QYr7vLZjj@( -zeG8O3;2-cI7$h-$HMwq&$p#MyEA0zh?7d`Y5@Bf?KgDVO3PaBKf?}(&AD7sCIFM8JA{d{d+?0kyb -zyv{Z#(%Sm6j!s;3{L%48cT;E`ZEymzpS=h96K7sx^~KJ4(fB4wQa^7o2i|!L>KTqMs8X;j7+TN0D -z^lYa*KcmHq1%3$@k0**X7Oh5TKLtaXAR7dd6L?8+aUjoSC4MJ|FAQn>%gF7fc!=>p -zkoW(SSiA=%w5`{OQ9rX&nJkd+5*iC}j0zBlq^u&Rgoo<1iIq(oi)#Ly1Tol9ZGS%bveCT_1;5qzfeo5 -zC=fMfz*J|u;dNWCHnOaB(}^BzN@;=O16>VX$*{I2oAg!;mVmA -zWul4UE;NrQXdSE8@1SOD{p=~Z+u#_b%%{4R#umEU`~&Ozt%}Oj2(Y_@vde4eF0Hbq -zS%g;IekwRwVxfUYW29m=Lou6C~*?m -z<6c$Ns}-!MXlnnu#Qui%w$-|aFJ<2uG3Y}1&BJrUZIh$VF?_o2z0R!9%RHUtnc4B= -z@Hzf>ZT+6Yt_!Uh3C|ag&tt9r@iYVVrNj&7w%6ls>YPVB%g)=5x1_!G -zJF_~eMb6k)cn7H}M!~S^N&dZBt>Fz9*SH(q* -zH=Uge)8s6ysbaP2p=-x)Yq#Yrd+wML&D-deZbJ9z)IOB1L2TH9fx8XLLS0dB-_TOFv7~L=_Z_Oq(a$|6&!QON{az*lCdQ9lnH)NlFzPi#n}?nF~#j -zhS9QbvjPTeFL)xqD5zV@pY6%5G|k>C=h>=emb_h>0$Nsvq&V;cn|B8r&KGwtiWHYF -z<~n3ftGAGMpS(ZmtbNDXOjMgLfP>cg`(zuPsfMHg+jpKr&{%`op!Dq7gg-XP$$;g5 -z?f)E;hB{y&ZJGU`Na>3~B1rdcwM4_bh1pHSf6V(I$JD2c9yZ%WaILXJp6pa3TP5C^ -zTxjfwH!{oIa8JjopD`dF;19iTk6t3#^r-sgSk4x%^mWFyHEJPft#%qQto?{hWp}Tg -z0sg2Dd_n#@?8imHoXPpp`GH>Y(u#sT%f63GU&4|Ua%p-e7!eVy8rC#;8$OkxYi3{p -z=M(2r#w|atc+!BmxUFn1q0{V=1O44@|6MpkgD#WOC>T@cz?GUFyQ=m5jJWnIB^mx_ -zqFp%yk1GSkGhV)`OjmwD-8z}tYp1DX8k!x+jH)`_t-KG~iSia*5R<%i$D1#|Q=4~G{7 -zx&J@uf_JAx{>_K6`RD8mIs@d{MkFygumS|4XYP*}CjeN{NAdTIj5W?F3qJC7)Y@-L -zF+p1cXs52p!Va5#V^_C+ALkO^wUwjiy0qtzaBZY%+NGlFqQH`H -zyOSx7b*eCbxdrK0UB=P5toF(A;0+zrtem_zIjomj_#917*KQsVkJ-f}EDpVnpOLkF -zjH(%{2+=xv$Ls;OzV~`GTd~(3`B28Ill2W^qwBP5Eo;gswM(0t^#97A)@wq!cLkK+ -z3_{1Zd`GiETo0MMwP@1QwfWZyC4FNt#LmwWqC9neO$N27DeQc;-MOeC@!8$3mVs&8 -zn;^3(jHk)_At)xm5P;FOUF|yO@f{NzQC53A5DY_P+ -zRBQ@b#efb4SVTyk8mhnKRK=Atq~yT|2z>h>dgFyR)|w+bxf64G5=G4P)wjezI&0UW -zM7`1d84z)>HzM6XO%N*dCZ67YYHo7J;_v#`*fpbY`(QzWdR2hkRX(pZxoS6II -zh!+PNA!C)}d6RgZJ4IDhZZy`0sMZS=(V+o3_HJEc*AW@>5Rz$NhF1wLznk3q>g-@B -z6k5NK2m@{h7PNgJ@aqprj@qU$RT`6Q}BglSiPZF8#(a^NZ}- -zy=az<`A9}pBbc$1h~b`=MdT4dRkK-;O^F=&Hl{+JrPWecyQRY!4UvXjikq%#a}N4e -zxJS0h)p1;$fwisI&>zNcVp;nX#O_q8l`0J@7T&j^@-LSlTVx% -z(&7}j^mn-f@gr<@^SYq#_shOz`#fIofVu|r6-l3>8j(BNVnqV(s}5m(<%G)KqOPfX -ze*g57{n(YZZOLNI^)D>50Jp)1p9;I38(K;qUqNNCs=5otiGrK0KK(D#jgSR#t_ga< -zq0Z*b=j&sV&vo|>WfRk|nxT8wo_YPS(lpv{a)-NNJ1uP;HluTm$Hi>p*e6)b8<*ai -z*I`O~k=vzJ+sEZqP6ZEgHW8$uX>EreY)C9%LH2tuGed)P9IN8v@{1^{e%~$YjAP&M -zHA{>(wI-n;UGr=E`lF8T1y`YSkkIA!m7}OX -zeUnQmKE1@>8jmkQ=NrVwte@N~+w7yXF+|#|SU*R;9N0;P6v`LsoJ28Uc&BblY=cfJ -z0n0{Yxs@vWv&s8{^BW&$>UE%USFSG)hzYAkNN2Hm-$fRcqE;0sr^dw^rWPWKyjC%3mmm(i;$`6G( -zMym>YB)m?mJmts=cF6$l>S#j;DKXsgq`11`jIYjk#kx>jm?_e{++bqX=BKlb?W -z*?IAWqYq7|t$wa=-6kK~Hji0YnQho99O&Yy@fhp3i%_yswlqGVBiJ_FI -zQwp8r(xXUj;gCv5W8tJCa$S;~pL))7zR&mbc|Xtl^?5$u_g`Q6ZolowWv0sj06_YX -zhykElEfx$4cF~CwQ=q^Fq(4LefIu(S5+GA)44PZSUV&n7RtN*YGWlEvmd)aFsdTJJ -zNXH&yiLru^<6M52n28lL8C-@4D-y7HJcjT;b)cmzqP?t#*3?nR51f^!r=*6 -zJRa-hY=y_WxwyEw;7V({n!y>p#hE=UE(5^f+ -z6Oeai198o&IA8rwz9sG(ALyOGB>VmG!$|!@=TAqgpC`y<2-SmB$C13<*W&|x53XL% -zh5LVXP8hEr+N7xrZk?Y{5k4P%*K*l;vQ;^$k}RI1;o;%l?TNLDu!0`Ke0}M0R8ReV -z{J2r><4|Tl>hNFm+ -zISUrjp`NX~;^0l@E-gD|FcBS_Yww5J&7lb&4Wt3{qqBsE)^B6>xa-KJuvT2hthn_7 -zX$ZEYGO@>ce-zy812pi?jN4aC7xZxa2@}#6q}8S(qGwq&v1L}jI9gQk?v|z((2WU( -zS`>2{Zobh;)L4{jSN52b6z=)X^w?N1EU9Tc>jm8B<-J@H&j#5RyEAMZief$1M8kYt -z8PV0+re6jx?XfiD7DJRRooX%Ixr$#cWku8~*81VKqEE8>+GbZZc5^sI<7!%vVk5f0 -zFwORoSu;P%R+(9Grt{;O-lE{ZO*Z$e3FK!q$#B<0dT57kdr;`7eXqUaruDxsAL*?* -zoS)PQ$Jd3>C2WJ*JBYo)=EP4^{Lo -zEv-Z9y@s!K)5+@|BQZ7k@1*(*T7qR<`o)%Om*5eWahz^egih~X5;vbN^-8&7ezI|I -zZf)NZOs7PPEx$cPFY^HozN|v -z2zcW9V6}mJq#YwuG7k?7RiWd9U+iyucg3`Us$ThQ2ED%O61OFZTNxl)Cmcn5Uh%#e -zZDtwsJmP7G-H~esdoPkl7dTP`Jt)gSsof_#M@UH`Wy!?oTo)p=?y!gg_ - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0017.png b/themes/spinner/throbber-0017.png -new file mode 100644 -index 0000000000000000000000000000000000000000..ce792def5cc6aac0b16a4ac9d029aca472c08595 -GIT binary patch -literal 1572 -zcmYL}eK^x=7{`B_%EqXz!<4reDIMFCXoN+XQ>TRTmd5yDY+kl0v|L6B%S$>5qg7H# -zr$XC7VI&=u$ysT#v{s?aTi(LTnYzw(p6j{q?{(du@AZA|zn(15eeQ7BS{MKTa1WxJ -zmr6~RN@InpGm?|1R0547`ZEAP6S-7sKuIY|HFRd~@?-9%P(c6_8A}5(Q4|_2BoxD- -zhhicqOiUa#i58o{jKnY_K^n-wFybgNF(CavwI)-+m@sl$r@AT%wG`zR!UO>uEY2Q- -z!(nW;nBZ`DTU)#>R?sSWs`9K_^7v3_Ab`cHPhQ~2dy`I*qIC6=5sTKt3 -z|37Js-R9x5z*J$xkL;vSD#$SL4xz=V6u{Zorxc>B06@Lb!;RqM2R&cd8C`a8Rr|SB -zzg5cJi4{ak!p^t@{G;!#)jdC@sb~5fZY}+4oaqoh(%NW}d8zK0c^%@j?`l4g!f*2m -z$h>kew50#*Lg$VyE+e+T5I-*69w90%juElres4meB3h8KmlYqYQ;dhMD=dg=~lA90&00gHr+_yJpV&f -zusq=|^wvCDvV0ce;iyiXi@zjQ-yk&lYQ)mEetz~%8|Y+~UpnGqP$~ToEn9P!jtqR~ -zEn9)DXYk9gm8RQI_@)k%*g7rR^%eu(&&tmrg1c*jR_3uoU2H6#8&!Md4Lao~3?3cE -z=NFL&otE>SXT7zZl4sz{bBkN{D*PRCQA4q^lEJdR6i#(Cq9$r&v=&(~d*dPm)BVz{ -zvNWlKuC+e(rHRE|n3dq09#_D3X76#aX*E5>cAwrF#|uMOG?yJm5T7)Xio~qnjiqW@ -zl}Bb)5P#_p?~t@=3U4}g;l(pvXtG?d1t~PMhf2+$oO#59hfUEN6E{*zT0Wbfoe5~M -zm5nsPn%c)KB*V`3xop9&tbWK~>Phn`M~AD_H1UAVothW>i=GAuvPTXoPC`?Je`SJs -z_<~dk`WtS1W|)_z5U#Z!4sy|h_8m$)(4MWvaza#}I4VO}dVG0Se%v9?BHUB+h>VPEs-aE!cHjZq{5If`p83rCCe -zPiIc9C-5xMPePOt@LG2YE~!Ab{tdln=caR)$AU~>>QC(yMLGE|oBC6yKD_oz1eh3*_o++>4oC^yV_01KX%x}oCo0zPMq$8_njmL&fE&a8T_ZA;%@qE*n -z(H~2bnhWE5m>-;q6$!HIy;nBxtG;9s)T0CAT8YL=X#0nCXQF$nM8&=iHNnXS-rd3#Tsuka4)}w6 -z0`VS!nka3MP22xeUt8YW48N_dyVAl?3{ssZ*upBA-Z-Xi`K=cMd=od(AXcq8E!{_| -z?%QQ{@pZ3K#zUbj9d1Fj33Kpcp;=X% -z>y<*2$-+=&9*nDl66COgS<8oozOrNA373?xlu^&cn$E{VgZi(K8fME3l2iN{>2fLV -z#`SiV+|Q8oP0rgsJ=PC -NW7j^n+dG5P{sq3l&Vm2{ - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0018.png b/themes/spinner/throbber-0018.png -new file mode 100644 -index 0000000000000000000000000000000000000000..6423b95104fd1fb81420f5cc0cb5b1baebc90726 -GIT binary patch -literal 1601 -zcmYL}dpOg39LIm#*j!?6hZW5wXDsX@oRLCDX@%SpQM)kLjoE%2VHr+QlpIDEN-pI* -zY9cA3wo-1V=_W;@nnXgB$&xemoacO>@8|P=p7-nXyuY8nzDIn#Jv7wTr~v?=LEi4} -zr%;oXQh_TvHznn>LR8t?gSh~puDenY;B+ZUVY+}@gTQUkOa_3Dif1wKG0`j*Eey}) -zgyAEjK|GszfEAwzM&ZFI28+SPbJ@{xaSYCXilZ|bapCmL2TF=4)Jl{)4P*ee1R@Df -zB;sv1m=K9h_V!Npgr+;sdlWNTD>DJnECxUzIQ_gtQl3(sg@UR4ScOAVKqASq!ga60 -z(_Zm@S6Cbx@KbOEf^BZU$~^_tTY>&zj5r1WMseclbOy&{10jOV<@@zCE4c0o_fss$ -z;Qaq2j^IEJkb?@W^CSB}7?Z&@@u#ua3I&L^q=UsMD*#X$AiKK-1gQ#&dvgW5Q5})E -z!knN^bIv1jc+Q`}IjU|r@O7YCrpj{mci58p-o_~Hr+2Q|>~(L9F+7=@7i#Heb{FNa -zida2f^A^0=JN9ypH{CqFN`Oooo^$R!aPZvREtzEHFyrHUx6ht`Z+1O4_Tv6Q2XAJ` -z&1aZJT=r4dF;rtlMbFVW5wCxtDGjWTAH|lrRh&Qu@1wY^IW}LvyyIFhbqIMj(`&{e -zS>+ibOI-718F_F_yHQiA)bx{4j~QWH%Q9s9sV$=vIu9O~wVRy_w~p~xH&JyuvW0K{ -zhcf0g;-Uymecbkob+sIJ32)_!6lq_9Ol8E5=Mt0*w@62~)|Ee(x>^O3mO3lf%vw>%+4}E;1qK0ZSg@wkMP=EoMQ`i -zhwu9OFP*ml^tle2zZko4e!fD_1lHBjIX9=1g0PNQ=b=n7s?DcQ?Rw-9(YI_s_3R>d -zo{4-v7A;zLWdYm@_(=p!jNdL*q;xK$M70K-GN=6<=8+=&M>~vjk=g?ex -zqKRJGzFwYInCv`|kSRZzqU1PX+Iq+cIHb2FNys!!Y9;GXo=n}hAh$?j_?z=f*Vzjz -zWp572NNR#^uxV$xTVUco4y($cKp7iZhw^keZZ>c^tR&6QI^1S613K=Ro3~MX)gagq -z3u!Pe -zHS&$sPciX@7f}7rFllLLcsG}{S|O7IX01;r(&4pK=dEQ`q-l&S@iH$#i2P{z&E$s4 -zS^jM?cV^GM_)7+&s!v0i*WK>EwL=z*pq4Il`}4+n^#-L%C1RLKHISPOzXi+wtls^r -zovLA3gJ6knnp#{U(wR}0*`%Zo_w%Q}LP;7D=x`#>ynp8V*)-_4)?GDa{DIE;@++n{ -zG$%3Ucr?s|mA$+zX_@%`)iQ36PK5c#qgj=k)NTEq8(<34HQx<}VyPY4)aPCh#PYCw -zX?}?3J3BA$SzNu4Go9CJ{*$MX^ -zR@eINUptfEjTl)wvekK2%eZ*(vj42#cRe+}o{%A|w=^MtCg1aSkJ~)JA=tE6LQCna!V)P6BwmjP~WQjhU|7f6Slks1M -sHyw}tVF8gt-stkA?cnZ`rS_ghWCxsXXObb9R{Vhgd8@a(a0@l_U;abPJOBUy - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0019.png b/themes/spinner/throbber-0019.png -new file mode 100644 -index 0000000000000000000000000000000000000000..45e935927623eb5ebd3bbd1f5f6aed9207a55c88 -GIT binary patch -literal 1608 -zcmYL}dsNbA7{`Bj<6^8xBxmzB4OgaI3MER>1u5mFDHf)AK}k(+a%twJK(=M6c-f{| -zG;0;QwW(QI9z@B~)-bWQ2ptP6J1lKpn&vdM{cLAv?|Gl+d(QXsobUVm^&a0H9gak} -zA^-qDG9qZPpn5JB%mM7;{QPN9;KGOmF#tF^Ef)khrE&pHs)Wvx?8xSF09=-U$H5)U -z=JC?fabi(AE;Cz#6LJsp1X4*BPLjppal|;WFq_Zki2l<6HkZTCU>D!B1EXA)qiAUo -z4nV{c$T$K4N8IE|AW%po3JKrVZPJ4?tCnY&**p$_$5Z~jge`Au>o0>0_HGqX8VCtn -zQZ5SnKo7O-Z3it;8t|_K;PJ%LN3b3cqL*P@I)~2zBv~Q>o6Qk$}NLQnw$k$j}a#SZ}No-k-(Ocwm}8g0&n -zc=WL^y*BDw8zYi3SRW%$Q>AqD56(=xL=<=9w58<=ntS!~Rc92<4wcZtLiuyiRG3%9 -zirjL7L%FMOh~e&{R-8%H6buJh&0@o>b|R{#7Ch0>(KSBLcS{mxJFdqy^E`apwEG24 -ziY#L+^k7tmA1&A=;9x40yemzaz8qqp!B_32Ls7#9B>VNENhJMlW+cGz?8W -zy4lrjcIkSh!98puRJU&R=?tV9Vw8`S>WZODsjn!{T46WA7-I@YV -z(vkp7D&Z~AaBj)a)@lA5v#@LO*#d0vP8D13WLD^sTD5_hXE! -zTN_WC1-t9$gV*d$Kb}XnTTA?Pa8~8WXVbYUXTsUs8O#CHo6R#@+LiN#e(%#8er23A -z^&4eyWX7a_3;csCIdd*%TX%=*XECDL3ELQj_p73?CJI9A9WwzS?i{f0nMfF_`khr` -z9>E6RHWVK$lc>)K5f!pKvfN)8y&|?netq(HQuF46@k~!6Ce?=OYxu=S6T0X?*5z78 -z;4=R4#E>bq_qgnmj@DZhnbgy*_1HU2YGyXGFirBiBkdUuCWivDu_!{;2}@_eD2tDw -zRG{MK`15L~eAV&qE`3P+c3U8}MKnV?cw@ht%LmC{jw1HNfAwurYL04F)^pPQtc6hV -z8iF?_Ga(3GoUKzq?uw^>L~bKwU-5IV(~e%S2<-FAETfKPIZYaQPnkAo=;7XhVz=Ko -zn%!9Acgl0+HP5FZ_Z!xos@vHRG=*(+7>@4lE!)~pJ9YpwdU!~EP>Act4Dg;aw@v@MZrgI -z#g(=GRNlGk>%Ye0^n(^Ox_?|T3{Pb@4BJn;wCS)PxdxhhBrK(`5stcZC -zrwp<3tkFF-hr;HJD4&v_=isYe5=W&%H?C0gXT}%PwbMP16W+Wk#h4zK2aM;|-IW=rU5qjZ0{*I%U -z*Dq=1RZc<+yaTad2PN*M_;IR(#uNDugS<6sq_r5Ad}!ZPK%Sz%XehIS!gzy}G7H>0 -z9QY*rNX&zySu;g$ef0&-pR_MBP+D#nIoZyjFzCvA`;6~Dcs*wORtt+&7uq{whk>(&9A0>1Ai_m`)Tyz -ylZqQ_OI6YL)DWxfZQuDH{K$lL(m@=3_Ajb$XmVakmnIzi3IPT^n%4AjYVkkv|H85W - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0020.png b/themes/spinner/throbber-0020.png -new file mode 100644 -index 0000000000000000000000000000000000000000..b84b04dd859b199729c63df17ebf7cbffe8f3185 -GIT binary patch -literal 1583 -zcmYL}dpOg39LIl#2}dqtTPc>?ncFTRLwGEglq8f((S~8!W^E&ua#z^| -zacx4#I31QHky~=vsZ>TR$3fvZQ_p$M_xXN4@8@~HKF|C6`RjYb!`($mVXp!J07|Y$ -z9X%zA*r{D$NoTUzD-w~XAN6AbfFfk4q=27_;S$rH<>bq9CR0cNIy{m}LSG4D;(UYgEE^eO-k?lt43#l6TQP -ziKn{b9g$cJBJfR67>rr^*seb$P<;n_1(RqbfECV&3<@GK5C<`#bY_C5pjE;lJKR&U -zAc^t+lPHX(otNOX1gm|`jt!=ems(11=f>Q -zuqBknf`!l*C3a=ZfwiZFHn8us*QeiG4a80lSasU$ocm2p7P^Ml%LNbLca*TH8@Ps# -zAK678(%s)6^DZA5^IYAqecKgtDHNa@g>{NFiz>5dC+}C|b6OWjW4QjVm6wXpuJ-xC -z@QOuLi*$;*xf^KI2FVWgiCt5Dj4aiwe^tfP6$15d^f4eP(Lwa~p3tDhK`nh^B-NUH -zLCO^+7yY2FI|NF=N7d@LIw^J85{S_I;M$}Jty8ZXryZ<%_aB2rZDz(w;n;020%=1V -zh!Ff5ckB!sTny?h6z-G#&P1oeq!KFRCr%xkpd{!;|CTwfGs)C}3S}ml7hb-2kBo7> -z5?_^<+%tD(uzKi57;4WXZGYYJKYdNinrU40BG=96(hOcp4xM!1L;zwg^gO@x<}Y4* -zdAza2L}k#EgdrtDRqY8{&LpHQY5=4q+jDWIJS*|6u-dBM=ku!Z-6!L(*FatkKiM|t}fQV7E@ -zVKZN_L+=jzO1aV?g(3)F@MWUI`~$2uJ-XOq@G+EdV6DFC?r7BcYf^^Y-3zN;boqjD -zd~tQd?j+qu3hU2&2tcvrR@xpJS`eqdA<(kLonONq`#CVH<_QYeIt{(B&P{jR5U|RHlM@kVHIW;A*}WI{;F9(7FTY%th+3VBy0p+cf;_ZlwMPU)!zb=EA(T$8QERvz`W%+p>2NZv6X}F7a|Ew`Wc9IeJKNMtOS1;fH$90-1R6P2zRlVYP^wY8WWM^~sv=^_Kh>$_kw)jLp|c-9gC&n%x}{VW7Mn6cfgN}F -z6Mk4Olf!sNFRO?jF(zoJU)c5t@KnTn5(qU2vt^heG_o5}!wYnG5!GAF?YUi-{Hkg4 -z_`0;O+#AE5Q-N)3S4w5=InS4NMJ9CQu7VX#Z(kYjkX_kU-IPIbjDxTg8re0YBNzK{MGz{e#*6bxuWK&3Mf-O=2gesRjyk* -zsMd#45M$=txj5@RWIbbH@C-e?q*~#IXpbI#y<+!io|-nP>315r+b?X%;mi0O>}=Ez -c5cH<~U;AcCT{$u^$&UxPI=MU6;t5Ir0u~;_O#lD@ - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0021.png b/themes/spinner/throbber-0021.png -new file mode 100644 -index 0000000000000000000000000000000000000000..a64932df50150f1ac1e29b1d181b80430f802459 -GIT binary patch -literal 1602 -zcmYL}eKga19LIm#JZ!|pT*|WumDz)bgtRcTYHq1csCn8Qn{BqX)lAq>Nm8g=vh~QV -zZc28Ft5n!+6BDj(EfOP%+x@9?&pqe+`M%G2zdq;v`F#KR=4}fn8W~s_003Y_ -z3JZw<)nTdNdf?4ZOVfga;D$x<0l*NsR1lz4wj4A!3J8&cPzH+zpy?bo4V}zjv*W2~ -zK97n{VhGS&mWa*SFQB6ZbQ+t+NAtOiloT58KlMmp(Nca+$nMYqqn0m4g~SVJ01kuo -zMPspOoTmd8>*ww5=Z&dR^tFLKCQCg#8EhJW!T5bYIPBm|2p(kcZ>#X)L5Rbq?WouQ -zdZtTWFlh1Of$!ph!Qk?H;YtviFTovDS_%yi(0QDM1RBr56O+j0OCs9tfgHKSBfte| -zy#GgfV0=hBzX(8V_AOgPWzqN!JL1_~PysB?H}lN$wE&>gPYT(zGZIm7wu5Wci3LH4ELpv{^qg6-wjl-eokTLt0Qa@}4JopqG`<0{JH57E(^g}NxhHVobL -zLD+kuTXARs!-})8*twxg+H;UoY8-HGz2|giKvJhj-5*XSlgIy5sZ?cj;&9vj7wij} -z{C>X{_Owbim)|w&d$&KNck?iNSzWI9QmEe8s>*>@XK^~MjZxJfoYNRrDtqYtVZD}B -zozz_%3AHwf-U1t`>l-0<2gX6HK5gUUp303v1USap9DulBfp84r$#Mv1q=)D%5ca;}i4#s9EZ2b_{V{Tef -z`_(4%yfClN#kIyhZ@r&*IhRM$wZ>1b*<$)y(fH -zwMLt*JdC$MTtTJ8D|538d83M=-15&^`#WZg!-m}=LS=3R~^eck{j!*B%owKdnl+{IrTp4rpRt}kSAaANUi2^f> -zh16#!Nv6zGEmDawklRvDtnzl$@7+as#B5sN-SF4mRms#vQK)STf6h65#R9;ZFb^<$ -zeQ5A{^WL=egDWjeR;#>Lf8b6Hclq6)@i$sf_m&7->&oc$dSe}y;Ik7$f|^Q-t7qx| -zxQTk7peB)%1>7~sYP0%s{-Eb{tGx}uT^1@gx@*+4Rm>VGYMQN`Z(#UBn$ZYs>@}|k -zFyGDCnUTjwiniA=0&K=7m;d9e_IHqFPkOYEkx!9L4Y#hjfmW7{5-(Iw7`Ky%o$nD_AuAPnDUA4E}l!=h7S_WRGq{QN21!Ad%pGc4KXFALfl1( -z?6N+mu9{CuiXHSqy_$PARL9B|%-!({1vTOFdzlT>UGh_dP1Obe-CvSpppT3W3mk{8wA$WXMpW9SLmpji -zlzM57#=YSOlH27MVfHZTeWuh;7olw|NQYIek}u9jEmP+XtsSyt?sTt#R%SDYk}lZ* -z#D+SD=G>@I6hboy9lWJMW#RN>=Z`#&;aV)f4j}oD|2QUoDs0S{+*17&FV?q^2yY>5{bq3sgh_8zAh!^)9nYex}R?KS6**2oI?Yip%~Nwrj*Y - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0022.png b/themes/spinner/throbber-0022.png -new file mode 100644 -index 0000000000000000000000000000000000000000..4b57e234270c5b3810796a93de9e85e008f446ce -GIT binary patch -literal 1595 -zcmYL}e>~H99LK-PHRIB1$}-h-N-nmU!;Hd3BZ)>?UGihiuk43yE>ze?8g~+MlpmG4 -zx+L>+QuL)&Ty>~hcE@H%NAlx{Z5DE0caMAA=ka;JUysM@`F^}U@4r5xfCJ>!hGvEU -z0Ic@$_M||HSuTTBQ0FEm&q4xcdmrHffDv-J^nlAHD9CihN -zjBpx`%c0?-Vt6=qToQwoz>CK5qUj7e7sqACFqw4De~OKWqccxL2wv(#QK;o8&u|_c -zAmHtYI6FHW!5(90M{;l=Ip7=H<bSiGZ8&^!;q>;B13qQ%jjM74NWJ6KPLer8awaT$Eb4rqAFvCv1xP%ewIzTba8$*KcgnxgfC@8Kz&T(P~4q -z;A*kEhh&ecb>H|0-r_r?iUtYdg3>oI94=A6eQ|Fn>OYTOp^& -z#F{=I%qUh2i2PEV6-gc; -zskvU%FsXfeRL>(g_Mnvcvg)4sXxiRVcfp*boBK^Lax5^|=9e65$%swIq4-Vl#R*wc -zNtbV+zsFp8Z`st)c*VymJMw0UEiena$xF@XGM-`Y(VA{ -ziFH?ZF_m(SY0-WvR8J|F^}UziyO_f2KXjKGT2e -zs?P%~wMWhnT&C@tz+y(1bwxjQ&v&GHvRHziw|V#d!>4!ptW`g-;og=%MI1a1E}Bst -zcI(IqLN5FEGgE>2oo|N<2J1i;n1IoRsPx#drZsn`Z~PMAlJ60V&M!I!7bWNU_bJG+ -z4;5gm@$ZFDybk^yU>eb=NLLo~4Yjf=kC3Tu( -zA6)ed`EUWel{<2)h_SXaosyt6MiF6HK`Q8~GkrFo(&mIxyM%QrBI?s{`bkyxD|pB` -z!LOs~RlDG2`dtEhFz2mq_Vk1LdD!fX%0+yMUt!Qlt1-|nwr8Rh@h2vtDCcLypD*;k -z0T;oqKdlJnKh~h-7ZXWj1)0@S%@934B&wd2@tt~cJ?qA#sS>1H=@+{CosZ>XMG4X7 -pj+6Ucx<}|`XAc`QUQ3;qw$zWv#>e*6g3#{=_;?-gy!UmO;BO1~<);7u - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0023.png b/themes/spinner/throbber-0023.png -new file mode 100644 -index 0000000000000000000000000000000000000000..b3dbeef0ed06455beaffa218655d8070cf2324d7 -GIT binary patch -literal 1603 -zcmYL}doBm|NnwcRZPeW-J?vR*@C$Rb2?0KnL6w_rep#0oNfxIq!z;8Z#dz@#wKX_&Os -z^z;NOhQp>}l2f@D7M+*QyueMta8qdMG!BNtN@Xx;?EmyQg-&B6QUp&BP?XhfRA2&^ -z1~`LQ90rTUIJ?+lv3OTkyeoM3*O6XmX7BDySZX>A073k}*VzT!bf81b;Gb342@rI4 -zDT(PZg*?+;F95RG3BbQ{90Z-O4jU*TXubjEaRI636r`w%zV -z3WlSbpAvzebZ#%mMy{Z -z7Sb=UFwrh30BM&OA}C=^twxy@H$!5N1sEq+H -zT!NGsafT6Sb=rXf<$JbEL`uW$g#$yTaVVc5svG#x!H) -zCp0m3Duz>iTXpMazN^JExK8)lyOBJ^?>5H85jPT19$zs8%%U#r)xz(E_z)BB4b3!4 -zR_mCv&jVhVci5qL-%(;;U@YSBgCLZw>zQoHvLWn;;I%gRLNPbqcwC2HvSa&R$Df)+ -zhnyN&n7L$1N3Fr412*uF#Ld8!GD3H2nlMDE07k6|QP02W=CNQihnCAL=J7v0sYEV1 -z)I~L>32vv2;rF4I)K -zk!&*pDnpU{`FGTpUmtBeXKmiY>^2+-~(ajh9}F`veNqPA7|r1|c^W()JS1G^4 -zEz5q9TXVa~T+aLjR;Bk)=QQ7EJn_-_;fQIAlMd4(I|iz>J&QRm=q0SGvDB{1+g=zu -zdEic2N1z1$d@K>2>H40$zw47fje1DFY-Q^`MdUlKK1Bbpv#S9jamc#Ejr^F97B|tI -z=YHkpbvjQQtILWukz5`5vqr3QY8I}g)mI43mEXw -z?(H3CG+*U675_nPhRY~KNzQndXwo#-f1|uV>zEQq|_nw(S|l#M$1#*3TxEz -z36e+~RV5;~t<Ydlqt;ie?wH8Rqaa5!$ymVbd -w7Va}%9+gQkg;W)49{h64Q@D6+QnPa~JmKc`YyErcp~H99LK*gV~H-4qx^27b?k@6to%%DsmVwy9Hy~h8{7N{$()LWYGLG8bp1G4 -z#nB4+adIbVbr&fMQMwyrjOd(mU)|##_j!EY@7Lq;dcGg;&+D&G&LOh5&iXCu0RYe; -z5j`oOny-}>6zsf|lzC8Kam1rM0MLf7)jFWG%n&qP`TMARFJ>$qKruKhIx3pUVueSb -zc-#n76qApNi#@^OB=8w1K7-Dp^H97vCYw#?{-<`dSUUSSEwc{-t}aRin2s)b%@EKeVjYj91+oL1nco~%52Ox*9aS9la -z&i(&MJG28SV3`kMy)U~@M8wj0=KkTVI8Xr$7N1^ZxDx;%!z54l04gl67{jPItbaym -zSmUMBNVKv1aAPkFdCZu=_tU=?Lp19;>NfpC;tXCr6a${uhp)V~a -zI4`H|^M?Gr%}_!hHuU4&Vx_eI7n$T~%#o70pI_}KXRbD6pWX;h0uKDp3JH8T>}^K0 -zff<@@b9m=^0)n&II%@v{OYJ{<(<*!pr}Q=3nxq*!WHJBTU4e9##;cJ`6>17`9ra>1 -zUS~QnFB&oM;*vzCsh|J8YWghaDmwpt;q1%*By6sLOLp#3MN -z)4ibL;=0?Hev!y2t&>wl{f;lDC#}|EDYB%LN^iui2Di-As)UoTACE)G@`9J5r4WC` -zaLMi;KRXT_T@bcsZQ5=5z;aHH;c9)U8Ut9+|wnpfxw -zP1}^{nK}{Tc7G-IFucrX)D}9DG1F0e9z`hWYZL}I?_c;$r+@*cCfLO#flEKok4P>}FN(yvEXu -z5KfW8uRlA_bd!$hZRo*%JV(3ov^R3dc0OKduEY~ -z5$7Sp>x8*&AyCtG3f-!ppqJ;O=$%NG4AztfatP68N{hB_I1w7Iix#N5DoC@XF_avauVm!Ef22z)- -z{$8sk`&<&uI_8bll;Y3RIjn77+>+VT7iYTAn{PF*=)0o;=}?hRSAGgA(M^~LTRx5X -zT<|uu@Dx$(QGZfIVIqlR=a*Z`Q#C}gBu>=HBGaBqH@!T@ZZ$_iRVPM9+ -z^Hcc+N@FO+wS$v+L=eT{))r@YBpnFGTLoH{gj|rPb#CXAM_djW=iceS%^CjIRR-0quIY_p -zU?5S|lL%qe$0@jqdOnHV27xcaKjDy^<-$FSu;h#SIKj6?8#}ziGy~%Ohvcn?Zof3l -zoh{iB_>DzQnzoCH^+wpdU;lQoLoQt$Je6cBYqAfFG -z_4YNYs&Q((%c$YG&yJjgIHMMwXX-%}jK_*@F{K1A;C3-G6wQ#HhoA4lZjRE+3q#2^>ob -xnW{0GfYu~c=SS4;6s*o!KNBIY>@RcvTcZ%$p7KGe+64ZC0BIlDQ|u9z`433t&fow5 - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0025.png b/themes/spinner/throbber-0025.png -new file mode 100644 -index 0000000000000000000000000000000000000000..3905e00eeb09a3546eab2dec2158fa9bc5f280f4 -GIT binary patch -literal 1604 -zcmYL}dsGs36vsiy0B0%Uqm1bmq`l;kHnoM1K%;zt6bZkrln|nmSLJL?-Hj|I$$3}BFOx}NLPmf`8BIs$)K)NW)~D)tx*E~gJH(?R$$3}7%hOn`vJ-OqTR4)B|7+(ci8SMsz0-Wu@mS -z9(E}B#v7oGQ|&_<@yEfg7Na%uiOSB-iwlumO{ClP_4T+Nc>L9ks&n%Cn!~x>oS0|% -z^0ib3ox44q;a`)gE|{-aEj%MU`A6e?Z^e~}Ja&V@Z+#j2YvRnK+S*+N+BFCGh?H>r -zHS1EhxxBsOO7-VO>e=g8cr@9=hnOEvva5FKEyWiz-{Gtkp5PD1069e|v>cri(#q5;ziiY58p?ksP -zu_V29EJ`-(anf+t+sSS{sG&t6V>-p -zGmBH4ce!bU!a5OPYtehVrrKx94c-)^bLCsLJb5)z@z+N+7if5>XMY<#uI#pc*SWG@ -z0`~~jhcyikE0|glM(K#Z2bbM3jxp!v-`Hk&kZ>#sVW&oos03a5H6to -zp`~-BM-`?bt%z&^YZaxH4BgK}wyum%C60$aSwBb^Qq5j^cr9`?^p$m5RBE%7n@*)v -znp5+Ni!SVf$&oxWd3lJ|*sRUcw!u9hx5(LnaM%B;L2slYXB{iASK=X`ucL1FRoSvcsM^y_=sOM?v#moSz?Av^`%uIs8f=J -zjsm^vhDPnYN?NT&Ef{%= -z@ps<PYq;ZF~D4IVE@+G>%VU|P~h%*?N? -zTaq|ppr$Qzkn;SuOz}0Km#f(htaP=)D^_3r$axYZ2a0BM`t{<+d&F~XQVR*Bk&Am^7d4XaWsbl~oT7)zZjixz?>dejRqAvxsS|r|qQq -ztvL=>_7)aooX>-^7G9L-I&j%Q5|j$SjF -wD~E2)ka~oIzC8+u<0Gd@SoVvtpxGs$Ch&UB0pY0y-8Tpz5q$~O9${(!0^C;FL;wH) - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0026.png b/themes/spinner/throbber-0026.png -new file mode 100644 -index 0000000000000000000000000000000000000000..4c02eb167941a3611d36f1b0cfab5086d77ad0ac -GIT binary patch -literal 1605 -zcmYL}eKga19LIl{Yh&g4DH6`&dT0-5hIAur6Qib7M%k>WZDt!|=3$~Jc0E-0dRlc{ -zNkTiggeB!6*F}mf<+ySdtHw*leqO*CtPYQuBamUyIprN~2N%ntP7kLb -z*enX-bQA}{q$SX!V>yusP9&91Wh2uywg=Uk{_Mr(5>D2h%6kVw}b*8#mRZ*WGzz~5J4g)5)~`nB_3 -zk;2p7^!6((RygoO;7Fvyr4ewa0_tr-B8AGJ0-Q)zG?`3gnL8p+G1;kydhaQ??j}E^ -zSdhy4|4BF!jSpJoD6r1=>;wvp$~Gs4)0qkdP!5>nt44MJ02;@8c?2DWB>mQYHuSJo -zR{{2xj%RiG`9Mzt%VT=Z=WWyAzAXoxV+UhzxOs49Mz3gSZ-BTA{ZMIIbEG~J!RZzb2ecD19+C%=b=4pH6}Fo6w_zp@pR -zg<&1-c5}k1lUqA;AAMNfB{o&Eo3xSk_`ZTB)!4}L_G^F>j+`65!Wl=uxd6ez3*!y! -z&!q@d-9>&@bw!#l&DCnmMWfVAB92UI@wcp)bh7Vi?QXe0r9aG&U)1X$O8>x28@s^~8W#GJLJZ(7xW9hML0){J)rD -zv@d8PplbIQ(+)?QMP*US*tdb4aY;PH)VP1gJJ0%LRx$O0RN#yTcpn>BA{ -z=ft;=RQC4O#>sl6P}7%clf49VFtfj9)FQ@OAgg6q5FS`IjHxwdj-kV%hCjiMBpS5d -zDa+j6n!g^eGg<&0hWNF+n^#UZfNMLeFoRzLZLZV!ya5%vTJqC2ry$mf=PNz|T)Z4t -z)W0)WsB~#`u3*%ytfCk4e8j`-j&xzRIJ-^HG$o`;(mmca^~p@B_+#Oc@2FR{VUC~b -z3(z=G-|jy2X2Xmr;rjh|!B{?W5iqF(E}^b{6_*%`aM>nfJr0>OYo)?CUS7^ET_}$) -zx;S1jsX`O#O@ZtqGEA$#l$$=ld@v)r%_pHD;$m^wN2s^fscs?3L1TGaNot0Z@q{dV -zb*i=$W^udfYt!}oi4q-O8mc;T50Sx=Tb#K)bSIuUd=lar)MFRpHki_!RQ)y=i_zBL -z<+H12M9hnixUu%p^3n7?1YPigNB-xdkOk>Ti2Jix9Zl9v_jIkf)*C9>Z=mP<#4)X! -z3F?nFEaSJ}WQim<+@ehKz#7i -z%Gb%y#@zNoE~`C|Y(G=CpTd7!A3`!~J~7yKp(1C8Bvin4%JdE_-Qa(PmTeCOx_*BQ -zpZCH25n7y1@WGurC^n&>Qc`!kAA4IUV1HBRM3!al-kJo0D_2Zoc4jfG1*)zV!5Ww4 -zR(G@PCeJ?Z)^wgtR<*Sdjt93Ss*#i{1bA3XLoO*JBVx$l`UYHXyrwMTEl&MB))-tC -z>-S{I)2i-qjky?9|^4S*FA2I)RZ_`h(WEkpwZiqXPtGcQguH21YkZ9q5 -zP1|+%wlRj$jkwq8XVGx?UZqf0=yUe)L!4=>pUZsF^pcygO!yq}ZfOI&;4(oWZPgp% -w_dN>G8A;-dz?^FSl8Pj#tYHI*=?RwN&~aO&a;Y)OHos;umu=0hFsa-Qr5+WzRJxpV -zO3{k-3gQ9)6uHzYK+y#wrRmIbr|>*jQ6PYch+%`6gDf_i#=vkn -z3=EUS!^B1_~RF`o_^vrup*}4owO1#M4-~rqa`0 -z@_tiV92)RT&{!-!r%SU@3H6ttKLd;g0bT?rhE4}LC|m4-SZcCCvU7C{pK05$jL?r~QfU3E7_hh#l)4at-srgS9j`%&nMZGj=zi!HKI8v?x% -z*5(n`c73y3MoPbOC(e4WN|-!vYs(yV;y#Nns;aE4^vTQ5x5`ek6t{e&3|5;`r!B=z -zFVD$}TjfTbk>%XA3yyQSIs0p$;*+B~Os<#G+dpm*iNMW414txw*q9N|wu<|td3Q}@ -zupH~!JRo8dic6XZkZX19flfohyDc}*xMVXoQ$m~bdMmznQoQ=8A)ceeYaQ<^oAeil -z8gv_))2*Au^@+TA0)p%l)$}J)`ZTP)2JRRKzc5;q(cq_Q*%RK{E4NixC!Cd!>(lR} -z#3rJ1HZg3b&y?L^YFG__S8eO%@QNoJ5|H0v7K`QgAi-9ZrL%<@ceV=QgnDD4I=@a` -zxU8CdkT$MAD5){bN;H-=WkSuCeY_HOc)Fw|J_UMtl?*6oy;9wg{OpgegO}R!%hy%x -z5HAFVrHlINOtZ8Hew!P9 -z&z@itHO3&*K>@`aq(sCwEMWHJn4$)m^|8-PPW8%i^|x9vGE+DR~pWP23BcEGPq|-c_u|Z@y@` -z0v-_e*i3LFXGTKsAX4^!iBC5uOe?7o>YVw~^4<_P>7vs_=vKd3NmuNZ@6kSR(Y1ZB -z!=U!f35ZXDP--3ybM6w)`3F5eYGlyR*hLkIy@A -zy~rN(*a6jhkahZA-Ur4uCxQC0lF#cc*XX)a88knue%XP}_Qpo4*j9aIWZcLUc#2^) -z?rXDt(?sZVerF_HO}L}#{Vr=db2X~_Jt$pneB|Zdd6HMRZcC(J;n$_@k1AO@yP5Mg -zaOVIIRs(D>4aQx5d$ -z(Fw>zpD)FJ)vQ)+t##GQ?q>)+joCg@-aGf@XHm3=Ncts&dDH8yDyt#!0;ynN&U?tD -zrf0XeSoeAFJN#gLDDeqXw)>t&|K++L`lgxXBMx76&V|xTRd%X!q0+dWW=^S&SWU}? -z`HW8TC)It6MsZdKg*A&O69myf+obla-gk}MZdGReBbOId?K5jmrb!o9RKsT0FnjuQ -z9RvuPr$G`VL=`QTIO0Tig=ys4>WQa2eTs)x>ZB!BL5KtAQ&rIZOnZ7{Q8)tDuYOlS -z@;K6_lCu%L`A)@H2KmR;6^u=2hrw#^D5TdX)7ZwoTxi*tOP%)_G$H}ek}4b%v=WBJ -z!IYNQ4#AccKKE7hMj{p_>mLtQABE;q%Gwqk4OC5D&PSZORzDr4LunacNpBED$7Td6 -zj^=O8>a64>s1*4L467ryg2yg;XRkBbjSazpYpB%a)C#xoy$N8E#oSWjkwf7!J2- -zu^-yA^O~uEM3&30)*`3Av!_?vLtmxcm>Ek|*>@L`y}fdU-QMuNcOEVyH_PLQA3|2i -zjJtY*-=ufj=claYce$4(D`46_u*_V@;JkD4K+93hd@()=D$m&+Y8&J@4~=&-?v6=lec?z2dlCF^(%e -zRssOvNG3%mfQno$dt312A3XRH6eyRJ!Uq5c#Bx~yCmPm(W_Ug^IsfBqHUmI2^EeE2 -zPBw=_rK9;gIyx&mAI)Wd$;sQF&qU`l85{;5&F5z4<}!HyX#kDQ$jzXMep>-XtyzwW -zrsgvM90rR=W3gylAQFoW4GIbk!fJGrd%+&qa!*n=hXG(Pq5p0izHQ^;BaqquGYXFi -zLL43!9xaOGP(Scgd05| -zM=bLMa6ks{|0e@5Az_I(CO{1TC;Lk}o54pWQaM~u0W1zLJicZV0IaZ(qa%`%p+(0v -zECUhNpXTjDs%$+9ixd;fNzNkoh$9nCZK)KE)LUDTdg0*gr?4l)xY?)iu!Ap?TH5`+ -zx4w*PVb;LPNty)O$c4l1;j*H)MRl)DBc*wng3JQ5s{8F&Z7aA2H5v_RpQqS=?lh~R -zfX+Ipy`%I%9O_={S!VK>{6hTxec>;6;7o2(J#{C|{U@ofLzSq)h(5LGAQvGP%22=FnvrO5$yR5)HqAPZ`lHm%bR&NT -zNZPj)@eQg2h1-Lm?+fX)4OXu|a8`Z;pGDY_j-0=5d%kRSoNhi*dy~Dd*o`-~StG+;E5!ZFqv1cbfv$$hU#+qE9K{yMQxCI=0}=r -z{o#imeXrF=6{U-Pi#v=&HvCVb<A8zxLV9JFa@{xEt2FcDZ4W|!7j%}-jr0ORh}*N9X2||i9^#lG8w+f< -z9rf^@X*;~Ue*C#Cn_x{@UDNnL6|s8?+oP8%nlC0>`v!JetQWlX3y*f6hv(hz=$d|% -zVy^e7P`;sbCJNYvX@5k%+FiVXX2-rlvx~e&FuujS*q-ucv(xQ!24f(d2#ZD*R4%&{A-9}(RuqvB-rJJpJ90~?>3J;y5dvfv@_ -zYBaEcEeyF(4^?P4CS5eeR0qmBr9Kmx4I$z|acyLbug}~F@mpj>(K=ls!yh57wZiP|w`Zr7a)$J)EEG(nL*lo-P^*R@YZIygM<{*v2gw -zCQxe`2+9{)@=YPs5c -zzJzk>UGT7h)t!1K%&(y*BEZ^BdcDH9LT~LBYd7BbsG!8M1bMUex%pb%2HH|JwGfX* -zR!#aP@I%-yLOa*7)OS=Yv?W;SIF&Fw?^jE2HQziShXh>*d=2gVezj?E+WEWiXG`Jj -z9ps5dt=!*~?b>_yl%V-m;GPW+F`C~`_ORfp_D{{R30 - -literal 0 -HcmV?d00001 - -diff --git a/themes/spinner/throbber-0029.png b/themes/spinner/throbber-0029.png -new file mode 100644 -index 0000000000000000000000000000000000000000..d9931e1ecbf2708841134a846f9d36d9cdbd20f8 -GIT binary patch -literal 1588 -zcmYL}eKga19LIm!qOFifi;-usn{8y~p-HWVgCuIM(q{c)?8!Dgka_A9NuAQ8sPu5v -zwXhJ$*j(za5*4kaEUARrMC^K4_ovQ1_j|sd&-vP`U&tKoX@Gy!Y(gFzpfMHM| -zIRa9fxmutPbwO(CI3x&OV6*@L7MjkL9#B+_f=qwm2C8r)lLZ3U1TGuICNkM -zW8FP$@OU3jPajXbylrp?G_!baCX&ep0UXZf*LC;qbbHK)*n*#{@aYhA_ZH^b8$+JS -zoVOmb_;lcxxZ!Z_`N{=t5Hy>ETNoe*1cV8EZd@G5xADO3<_R(*9^Hkw=^T%M76keK -zKk0@e1Vv5@A-v>g_I?Hn6xeK`vw4sLcz2@c36 -zd~XgG-|T7q6#YuQcTZFC9(me}p5csJ(hl!2=m_rJyC*owU)fNc_ICQFvaZ9l?``E| -zUX##=QrhdAdM2*d=?Ap6RPs=h -zv#oPc-ubJ8$irvl&sDDVfxSKlY{mlfLTytdE|ZZYDV|R>%2zpR9JQ8#du2*hjcBys -zfEVXo^c~v(bc+iQ-U!nHjD~{#P~3KUU#_>q$ik^>RSmHdjj9LdsQ;J<)!AdTWEQvK -zy~p_VU=K8_b8mGnr~LUQgH4oo!bbSpdDTvo9pfIC;!PRd$^4PnOP07k$)1V=$BN_2 -zx8}UhS5a{J+h?OR`ou2h;M=?rri%CtNklfjC`DNIDZMxP&cYvGX%3GC$}m;w*Jyo< -zNauUA&ArsFM2843NjLluV&76~LP(g-TEjMTtjD6QLnT5Mcf!@CnzB?_K~O--s>4@mU -zm)(jZn8{OrbiGTGB${(ZLDj^}##db@byqSLAE%=-YD0vG?Vp{)a8q_{X?l%eeo@(1 -zYmu3jFhS__o~{>uRmiZiI~%UUC-|%(ySi1ZtNgf(haWifg^ScQdFCExV>+r3K?wTj -zd!s*j(4x;vIw5Lu+av&^bwwByCfkm*;9NpR4yzwZmB5jO-LM -zIEKrO7ex0`K6O1j-=teMKK8&M{V7P|063?CgISmW@_U9++_7-1|5SEO|Rmey;+UOCm~rawU07jqNUQUUNHqj_0AzquXC4W -z_I}RL(;pt2x9@@z>mvXr8fvL3gi0O!cZ&{n_tmg$rdvEe_4oHxMi=2d2gp7ce`D** -znW3Dj+M<@w%hf^2NWZuBlCUq*X-uL~rHs1YWc2xi?vo{L-)wnH6lA3wuR6Ul14c4% -zBAmyVm#_U{R-Gm8ed(FVqBHWb;EA7L6P3k^-(rjU}V}$Z3 -z;z_1J<-oH`G5=n{w&^psOtJrwJ)NnP=o12FH^dJORAM@bZpGDvlB~it^DpWd=YTYO -zb11M*1LHmGkaXEe%wd%zWY}ggyO?cmwd4{fVX4$oN$DJP -zA<127>xn3)q%_V?=Q+>$KHtyh{XFm2=XrlWe|@v};=MH0*Q)~npo#PL -z@CVgwwbWF=&N*`AGbk{YcQ6M4;5w_N1YEkZ4m4f3o~b|>4gWE1sc4>kt>DR`K|#@c>8DY^oqsef)bOCFi8b-c)+2q -z>zvfSGOr`0AM0rJnsJS0v8>>=wceFI`&03$t0wKWm871)i8hVDLxL+brSCgma3=e8 -zg)Wx;4uMBM?Y(TCpc%SxQIn-N068rjl&c5ba~~q#-Zc9qezw^#+r)1!cxK}w{6cHx(+!rX7tyCFc&K(}wK-X_um -zbkfH>)sY2%0q#k-rQBV$>Nc)kCLUCV8x}?tn4e-Qo?Lz7B+HR!|Dogdm(?vlWps?Xb22Zys5>eJ$UBR_x{Ee^9D`$*rsQ4L*DoUo^&N -zl8b~Yd?Qy#b=Qvk_S^ZNT4Z(ex_GabSAvz6+26&J1J0JPc&hmR2R&UfI$x$|rro+E -zH;?4$Kd^#*M$Yn1YGK#n5!_OhkWQzw=;AFHXBkKq33@DZ^oCFJ8i<#SdNlaPHU~tm9;4clFB7nQKE(bBfZS?5;d&MvpbwawC2K -zv1dQx>&G{>+a#i2?IaaCB2(>?hYM^U0b#25&8B@95>rE9hVaZ!C@KGlasl%t0{e7* -zgIker4R0G6sXE-(x2b{Zr+O6lRViI*Q{*}~O09b;$*28< -z<&M2R-Zc|W=NA>bJ`{hMTOszpKa@ -X`%H>)eQ8Yx_}u|GPrOH^dqny_<-gJq - -literal 0 -HcmV?d00001 - --- -2.20.1 - -From 50adbfd30085715940a22f1517c81584d73d767b Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 27 Nov 2018 08:24:20 +0100 -Subject: [PATCH 07/82] two-step: Fix crash asking for password with multiple - heads - -Commit 9639ed895331 ("two-step: Fix animation not starting on later -added heads") unconditionally calls view_start_progress_animation() when -adding secondary heads, to fix the animation not running on secondary -heads when not asking for a password. - -But we should not start the animation when adding a head after we've -already entered PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY state, otherwise -we end up starting it a second time when the user is done entering his -password, causing plymouth to crash and the boot to hang. - -We already have the is_animating bool to indicate whether animations have -been started or not, use this to decide if we should start the animation -when adding a new head, fixing the crash. - -Fixes: 9639ed895331 ("two-step: Fix animation not starting on ... added heads") -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 924207c..0ceda90 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -1004,7 +1004,8 @@ add_pixel_display (ply_boot_splash_plugin_t *plugin, - if (plugin->is_visible) { - if (view_load (view)) { - ply_list_append_data (plugin->views, view); -- view_start_progress_animation (view); -+ if (plugin->is_animating) -+ view_start_progress_animation (view); - } else { - view_free (view); - } --- -2.20.1 - -From addff821e0a036f7158758e0bf0ac97688d7500e Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 5 Nov 2018 15:03:28 +0100 -Subject: [PATCH 08/82] ply-image: Do not assume all files are PNGs - -So far the image loading code has been assuming that all files are PNGs, -this commit makes the code check the file-header before assuming the file -is a PNG. - -This is a preparation patch for adding support for also being able to load -BMP files. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-graphics/ply-image.c | 45 +++++++++++++++++++------- - 1 file changed, 34 insertions(+), 11 deletions(-) - -diff --git a/src/libply-splash-graphics/ply-image.c b/src/libply-splash-graphics/ply-image.c -index 8b46978..fbf42d6 100644 ---- a/src/libply-splash-graphics/ply-image.c -+++ b/src/libply-splash-graphics/ply-image.c -@@ -55,6 +55,8 @@ struct _ply_image - ply_pixel_buffer_t *buffer; - }; - -+const uint8_t png_header[8] = { 0x89, 'P', 'N', 'G', 0x0d, 0x0a, 0x1a, 0x0a }; -+ - ply_image_t * - ply_image_new (const char *filename) - { -@@ -112,8 +114,8 @@ transform_to_argb32 (png_struct *png, - } - } - --bool --ply_image_load (ply_image_t *image) -+static bool -+ply_image_load_png (ply_image_t *image, FILE *fp) - { - png_struct *png; - png_info *info; -@@ -121,13 +123,9 @@ ply_image_load (ply_image_t *image) - int bits_per_pixel, color_type, interlace_method; - png_byte **rows; - uint32_t *bytes; -- FILE *fp; - - assert (image != NULL); -- -- fp = fopen (image->filename, "re"); -- if (fp == NULL) -- return false; -+ assert (fp != NULL); - - png = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - assert (png != NULL); -@@ -137,10 +135,8 @@ ply_image_load (ply_image_t *image) - - png_init_io (png, fp); - -- if (setjmp (png_jmpbuf (png)) != 0) { -- fclose (fp); -+ if (setjmp (png_jmpbuf (png)) != 0) - return false; -- } - - png_read_info (png, info); - png_get_IHDR (png, info, -@@ -188,12 +184,39 @@ ply_image_load (ply_image_t *image) - - free (rows); - png_read_end (png, info); -- fclose (fp); - png_destroy_read_struct (&png, &info, NULL); - - return true; - } - -+bool -+ply_image_load (ply_image_t *image) -+{ -+ uint8_t header[16]; -+ bool ret = false; -+ FILE *fp; -+ -+ assert (image != NULL); -+ -+ fp = fopen (image->filename, "re"); -+ if (fp == NULL) -+ return false; -+ -+ if (fread (header, 1, 16, fp) != 16) -+ goto out; -+ -+ /* Rewind */ -+ if (fseek (fp, 0, SEEK_SET) != 0) -+ goto out; -+ -+ if (memcmp (header, png_header, sizeof(png_header)) == 0) -+ ret = ply_image_load_png (image, fp); -+ -+out: -+ fclose (fp); -+ return ret; -+} -+ - uint32_t * - ply_image_get_data (ply_image_t *image) - { --- -2.20.1 - -From f5915187b44dd18dd9d1956d169bb17fbd4078d4 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 6 Nov 2018 09:15:22 +0100 -Subject: [PATCH 09/82] ply-image: Add support for loading BMPs - -Add support for loading BMP files. This is needed to be able to read the -the ACPI BGRT graphics (the firmware splash shown at boot by the firmware). - -Signed-off-by: Hans de Goede ---- - src/libply-splash-graphics/ply-image.c | 88 ++++++++++++++++++++++++++ - 1 file changed, 88 insertions(+) - -diff --git a/src/libply-splash-graphics/ply-image.c b/src/libply-splash-graphics/ply-image.c -index fbf42d6..204fd2e 100644 ---- a/src/libply-splash-graphics/ply-image.c -+++ b/src/libply-splash-graphics/ply-image.c -@@ -55,6 +55,27 @@ struct _ply_image - ply_pixel_buffer_t *buffer; - }; - -+struct bmp_file_header { -+ uint16_t id; -+ uint32_t file_size; -+ uint32_t reserved; -+ uint32_t bitmap_offset; -+} __attribute__((__packed__)); -+ -+struct bmp_dib_header { -+ uint32_t dib_header_size; -+ int32_t width; -+ int32_t height; -+ uint16_t planes; -+ uint16_t bpp; -+ uint32_t compression; -+ uint32_t bitmap_size; -+ uint32_t horz_resolution; -+ uint32_t vert_resolution; -+ uint32_t colors_used; -+ uint32_t colors_important; -+} __attribute__((__packed__)); -+ - const uint8_t png_header[8] = { 0x89, 'P', 'N', 'G', 0x0d, 0x0a, 0x1a, 0x0a }; - - ply_image_t * -@@ -189,6 +210,69 @@ ply_image_load_png (ply_image_t *image, FILE *fp) - return true; - } - -+static bool -+ply_image_load_bmp (ply_image_t *image, FILE *fp) -+{ -+ uint32_t x, y, src_y, width, height, bmp_pitch, *dst; -+ struct bmp_file_header file_header; -+ struct bmp_dib_header dib_header; -+ uint8_t r, g, b, *buf, *src; -+ bool ret = false; -+ -+ assert (image != NULL); -+ assert (fp != NULL); -+ -+ if (fread (&file_header, 1, sizeof(struct bmp_file_header), fp) != sizeof(struct bmp_file_header)) -+ return false; -+ -+ if (fread (&dib_header, 1, sizeof(struct bmp_dib_header), fp) != sizeof(struct bmp_dib_header)) -+ return false; -+ -+ if (dib_header.dib_header_size != 40 || dib_header.width < 0 || -+ dib_header.planes != 1 || dib_header.bpp != 24 || -+ dib_header.compression != 0) -+ return false; -+ -+ width = dib_header.width; -+ height = abs (dib_header.height); -+ bmp_pitch = (3 * width + 3) & ~3; -+ -+ buf = malloc (bmp_pitch * height); -+ assert (buf); -+ -+ if (fseek (fp, file_header.bitmap_offset, SEEK_SET) != 0) -+ goto out; -+ -+ if (fread (buf, 1, bmp_pitch * height, fp) != bmp_pitch * height) -+ goto out; -+ -+ image->buffer = ply_pixel_buffer_new (width, height); -+ dst = ply_pixel_buffer_get_argb32_data (image->buffer); -+ -+ for (y = 0; y < height; y++) { -+ /* Positive header height means upside down row order */ -+ if (dib_header.height > 0) -+ src_y = (height - 1) - y; -+ else -+ src_y = y; -+ -+ src = buf + src_y * bmp_pitch; -+ -+ for (x = 0; x < width; x++) { -+ b = *src++; -+ g = *src++; -+ r = *src++; -+ *dst++ = (0xff << 24) | (r << 16) | (g << 8) | (b << 0); -+ } -+ } -+ -+ ply_pixel_buffer_set_opaque (image->buffer, true); -+ ret = true; -+out: -+ free (buf); -+ return ret; -+} -+ - bool - ply_image_load (ply_image_t *image) - { -@@ -212,6 +296,10 @@ ply_image_load (ply_image_t *image) - if (memcmp (header, png_header, sizeof(png_header)) == 0) - ret = ply_image_load_png (image, fp); - -+ else if (((struct bmp_file_header *)header)->id == 0x4d42 && -+ ((struct bmp_file_header *)header)->reserved == 0) -+ ret = ply_image_load_bmp (image, fp); -+ - out: - fclose (fp); - return ret; --- -2.20.1 - -From 1723419e6c3ca89a973250ca8ca955baf8724af1 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 7 Nov 2018 12:24:12 +0100 -Subject: [PATCH 10/82] ply-renderer: Add ply_renderer_get_panel_properties - function - -For some themes we want to read the firmware-logo to use as background, -when the LCD panel of a laptop is mounted non-upright and/or if it is -using scaling because of HiDPI then the image which we get from the -firmware will be pre-rotated and scaled to match the LCD panel. - -This new function will allow renderers to let themes know about this so -that they can adjust for the logo being pre-rotated and scaled. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-renderer-plugin.h | 5 +++++ - src/libply-splash-core/ply-renderer.c | 15 +++++++++++++++ - src/libply-splash-core/ply-renderer.h | 6 ++++++ - 3 files changed, 26 insertions(+) - -diff --git a/src/libply-splash-core/ply-renderer-plugin.h b/src/libply-splash-core/ply-renderer-plugin.h -index f1455d3..db18d19 100644 ---- a/src/libply-splash-core/ply-renderer-plugin.h -+++ b/src/libply-splash-core/ply-renderer-plugin.h -@@ -68,6 +68,11 @@ typedef struct - ply_renderer_input_source_t *input_source); - - const char * (*get_device_name)(ply_renderer_backend_t *backend); -+ bool (*get_panel_properties)(ply_renderer_backend_t *backend, -+ int *width, -+ int *height, -+ ply_pixel_buffer_rotation_t *rotation, -+ int *scale); - } ply_renderer_plugin_interface_t; - - #endif /* PLY_RENDERER_PLUGIN_H */ -diff --git a/src/libply-splash-core/ply-renderer.c b/src/libply-splash-core/ply-renderer.c -index ecf7082..5e83627 100644 ---- a/src/libply-splash-core/ply-renderer.c -+++ b/src/libply-splash-core/ply-renderer.c -@@ -410,4 +410,19 @@ ply_renderer_close_input_source (ply_renderer_t *renderer, - renderer->input_source_is_open = false; - } - -+bool -+ply_renderer_get_panel_properties (ply_renderer_t *renderer, -+ int *width, -+ int *height, -+ ply_pixel_buffer_rotation_t *rotation, -+ int *scale) -+{ -+ if (!renderer->plugin_interface->get_panel_properties) -+ return false; -+ -+ return renderer->plugin_interface->get_panel_properties (renderer->backend, -+ width, height, -+ rotation, scale); -+} -+ - /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply-splash-core/ply-renderer.h b/src/libply-splash-core/ply-renderer.h -index 59391e1..c0e0ed5 100644 ---- a/src/libply-splash-core/ply-renderer.h -+++ b/src/libply-splash-core/ply-renderer.h -@@ -76,6 +76,12 @@ void ply_renderer_set_handler_for_input_source (ply_renderer_t - - void ply_renderer_close_input_source (ply_renderer_t *renderer, - ply_renderer_input_source_t *input_source); -+ -+bool ply_renderer_get_panel_properties (ply_renderer_t *renderer, -+ int *width, -+ int *height, -+ ply_pixel_buffer_rotation_t *rotation, -+ int *scale); - #endif - - #endif /* PLY_RENDERER_H */ --- -2.20.1 - -From ed3aae9d8f79afb546cc9edeb8b051237c3e4752 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 7 Nov 2018 14:26:11 +0100 -Subject: [PATCH 11/82] drm: Implement ply_renderer_get_panel_properties - -Implement the get_panel_properties plugin interface. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 34 +++++++++++++++++++++++++++++- - 1 file changed, 33 insertions(+), 1 deletion(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 1ff2b29..34b52d7 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -138,6 +138,11 @@ struct _ply_renderer_backend - uint32_t is_active : 1; - uint32_t requires_explicit_flushing : 1; - uint32_t use_preferred_mode : 1; -+ -+ int panel_width; -+ int panel_height; -+ ply_pixel_buffer_rotation_t panel_rotation; -+ int panel_scale; - }; - - ply_renderer_plugin_interface_t *ply_renderer_backend_get_interface (void); -@@ -542,6 +547,15 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - ply_pixel_buffer_fill_with_color (head->pixel_buffer, NULL, - 0.0, 0.0, 0.0, 1.0); - -+ if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS || -+ connector->connector_type == DRM_MODE_CONNECTOR_eDP || -+ connector->connector_type == DRM_MODE_CONNECTOR_DSI) { -+ backend->panel_width = mode->hdisplay; -+ backend->panel_height = mode->vdisplay; -+ backend->panel_rotation = rotation; -+ backend->panel_scale = ply_pixel_buffer_get_device_scale (head->pixel_buffer); -+ } -+ - return head; - } - -@@ -1488,6 +1502,23 @@ close_input_source (ply_renderer_backend_t *backend, - input_source->backend = NULL; - } - -+static bool -+get_panel_properties (ply_renderer_backend_t *backend, -+ int *width, -+ int *height, -+ ply_pixel_buffer_rotation_t *rotation, -+ int *scale) -+{ -+ if (!backend->panel_width) -+ return false; -+ -+ *width = backend->panel_width; -+ *height = backend->panel_height; -+ *rotation = backend->panel_rotation; -+ *scale = backend->panel_scale; -+ return true; -+} -+ - ply_renderer_plugin_interface_t * - ply_renderer_backend_get_interface (void) - { -@@ -1509,7 +1540,8 @@ ply_renderer_backend_get_interface (void) - .open_input_source = open_input_source, - .set_handler_for_input_source = set_handler_for_input_source, - .close_input_source = close_input_source, -- .get_device_name = get_device_name -+ .get_device_name = get_device_name, -+ .get_panel_properties = get_panel_properties, - }; - - return &plugin_interface; --- -2.20.1 - -From 986c911e21b41464aa17006fd048dc38d5824325 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 7 Nov 2018 15:49:40 +0100 -Subject: [PATCH 12/82] ply-pixel-buffer: Fix fill_with_buffer fastpath when - device_scale != 1 - -After calling ply_pixel_buffer_crop_area_to_clip_area cropped_area.x/y -are in device coordinates. So when calculating the x/y offset in the -source-buffer due to device-clip areas possible making cropped_area.x/y -larger then just the xoffset/yoffset (in the canvas) we must multiply -the original xoffset/yoffset by device_scale before subtracting. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-pixel-buffer.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/libply-splash-core/ply-pixel-buffer.c b/src/libply-splash-core/ply-pixel-buffer.c -index de3b107..04aa0d6 100644 ---- a/src/libply-splash-core/ply-pixel-buffer.c -+++ b/src/libply-splash-core/ply-pixel-buffer.c -@@ -868,8 +868,8 @@ ply_pixel_buffer_fill_with_buffer_at_opacity_with_clip (ply_pixel_buffer_t *canv - if (cropped_area.width == 0 || cropped_area.height == 0) - return; - -- x = cropped_area.x - x_offset; -- y = cropped_area.y - y_offset; -+ x = cropped_area.x - x_offset * canvas->device_scale; -+ y = cropped_area.y - y_offset * canvas->device_scale; - - ply_pixel_buffer_copy_area (canvas, source, x, y, &cropped_area); - --- -2.20.1 - -From e1e9e554d2014d80ce666d85174dbea89b05e038 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 9 Nov 2018 23:05:24 +0100 -Subject: [PATCH 13/82] ply-pixel-buffer: Fix marking buffers as opaque when - doing a solid fill - -Instead of comparing fill_area addresses actually compare the contents -of the ply_rectangles. - -This allows us to use the memcpy fastpath in ply_pixel_buffer_with_buffer -more often. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-pixel-buffer.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/libply-splash-core/ply-pixel-buffer.c b/src/libply-splash-core/ply-pixel-buffer.c -index 04aa0d6..86e8e3f 100644 ---- a/src/libply-splash-core/ply-pixel-buffer.c -+++ b/src/libply-splash-core/ply-pixel-buffer.c -@@ -315,7 +315,7 @@ ply_pixel_buffer_fill_area_with_pixel_value (ply_pixel_buffer_t *buffer, - /* If we're filling the entire buffer with a fully opaque color, - * then make note of it - */ -- if (fill_area == &buffer->area && -+ if (memcmp(fill_area, &buffer->area, sizeof(ply_rectangle_t)) == 0 && - (pixel_value >> 24) == 0xff) { - buffer->is_opaque = true; - } --- -2.20.1 - -From 385a008c83e41d7958392bc4cf8aacb94965fe30 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 6 Nov 2018 18:55:27 +0100 -Subject: [PATCH 14/82] ply-pixel-buffer: Add - ply_pixel_buffer_get/set_device_rotation helpers - -For some themes we want to use the firmware-logo / splash as background, -when the LCD panel of a laptop is mounted non-upright then the image which -we get from the firmware will be pre-rotated to match the LCD panel mount. - -This commit adds ply_pixel_buffer_set/get_device_rotation helpers to -help deal with this. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-pixel-buffer.c | 30 +++++++++++++++++++++++ - src/libply-splash-core/ply-pixel-buffer.h | 6 +++++ - 2 files changed, 36 insertions(+) - -diff --git a/src/libply-splash-core/ply-pixel-buffer.c b/src/libply-splash-core/ply-pixel-buffer.c -index 86e8e3f..1599bcb 100644 ---- a/src/libply-splash-core/ply-pixel-buffer.c -+++ b/src/libply-splash-core/ply-pixel-buffer.c -@@ -1079,4 +1079,34 @@ ply_pixel_buffer_set_device_scale (ply_pixel_buffer_t *buffer, - buffer->logical_area.height = buffer->area.height / scale; - } - -+ply_pixel_buffer_rotation_t -+ply_pixel_buffer_get_device_rotation (ply_pixel_buffer_t *buffer) -+{ -+ return buffer->device_rotation; -+} -+ -+void -+ply_pixel_buffer_set_device_rotation (ply_pixel_buffer_t *buffer, -+ ply_pixel_buffer_rotation_t device_rotation) -+{ -+ if (buffer->device_rotation == device_rotation) -+ return; -+ -+ buffer->device_rotation = device_rotation; -+ -+ if (device_rotation == PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE || -+ device_rotation == PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE) { -+ unsigned long tmp = buffer->area.width; -+ buffer->area.width = buffer->area.height; -+ buffer->area.height = tmp; -+ -+ ply_pixel_buffer_set_device_scale (buffer, buffer->device_scale); -+ } -+ -+ while (ply_list_get_length (buffer->clip_areas) > 0) { -+ ply_pixel_buffer_pop_clip_area (buffer); -+ } -+ ply_pixel_buffer_push_clip_area (buffer, &buffer->area); -+} -+ - /* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -diff --git a/src/libply-splash-core/ply-pixel-buffer.h b/src/libply-splash-core/ply-pixel-buffer.h -index ea7f833..ddec47d 100644 ---- a/src/libply-splash-core/ply-pixel-buffer.h -+++ b/src/libply-splash-core/ply-pixel-buffer.h -@@ -59,6 +59,12 @@ int ply_pixel_buffer_get_device_scale (ply_pixel_buffer_t *buffer); - void ply_pixel_buffer_set_device_scale (ply_pixel_buffer_t *buffer, - int scale); - -+ply_pixel_buffer_rotation_t -+ply_pixel_buffer_get_device_rotation (ply_pixel_buffer_t *buffer); -+/* Note calling this removes all pushed clip-areas */ -+void ply_pixel_buffer_set_device_rotation (ply_pixel_buffer_t *buffer, -+ ply_pixel_buffer_rotation_t rotation); -+ - unsigned long ply_pixel_buffer_get_width (ply_pixel_buffer_t *buffer); - unsigned long ply_pixel_buffer_get_height (ply_pixel_buffer_t *buffer); - --- -2.20.1 - -From 3f71c28e455ea26c23ab924146dae0871b342732 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 8 Nov 2018 14:25:05 +0100 -Subject: [PATCH 15/82] ply-pixel-buffer: Add ply_pixel_buffer_rotate_upright - helper - -For some themes we want to use the firmware-logo / splash as background, -when the LCD panel of a laptop is mounted non-upright then the image which -we get from the firmware will be pre-rotated to match the LCD panel mount. - -Until now our device-rotation support was limited to using rotated -pixel_buffer-s as destination / canvas only. - -This commit adds a ply_pixel_buffer_rotate_upright helper to rotate -a nop-upright source buffer upright so that we can use it as source-buffer -to other functions which expect source-buffers to always be upright. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-pixel-buffer.c | 25 +++++++++++++++++++++++ - src/libply-splash-core/ply-pixel-buffer.h | 6 ++++++ - 2 files changed, 31 insertions(+) - -diff --git a/src/libply-splash-core/ply-pixel-buffer.c b/src/libply-splash-core/ply-pixel-buffer.c -index 1599bcb..3ce6f78 100644 ---- a/src/libply-splash-core/ply-pixel-buffer.c -+++ b/src/libply-splash-core/ply-pixel-buffer.c -@@ -1109,4 +1109,29 @@ ply_pixel_buffer_set_device_rotation (ply_pixel_buffer_t *buffer, - ply_pixel_buffer_push_clip_area (buffer, &buffer->area); - } - -+ply_pixel_buffer_t * -+ply_pixel_buffer_rotate_upright (ply_pixel_buffer_t *old_buffer) -+{ -+ ply_pixel_buffer_t *buffer; -+ int x,y, width, height; -+ uint32_t pixel; -+ -+ width = old_buffer->area.width; -+ height = old_buffer->area.height; -+ -+ buffer = ply_pixel_buffer_new (width, height); -+ -+ for (y = 0; y < height; y++) { -+ for (x = 0; x < width; x++) { -+ pixel = ply_pixel_buffer_get_pixel (old_buffer, x, y); -+ ply_pixel_buffer_set_pixel (buffer, x, y, pixel); -+ } -+ } -+ -+ ply_pixel_buffer_set_device_scale (buffer, old_buffer->device_scale); -+ ply_pixel_buffer_set_opaque (buffer, old_buffer->is_opaque); -+ -+ return buffer; -+} -+ - /* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -diff --git a/src/libply-splash-core/ply-pixel-buffer.h b/src/libply-splash-core/ply-pixel-buffer.h -index ddec47d..7b5da36 100644 ---- a/src/libply-splash-core/ply-pixel-buffer.h -+++ b/src/libply-splash-core/ply-pixel-buffer.h -@@ -159,6 +159,12 @@ ply_pixel_buffer_t *ply_pixel_buffer_tile (ply_pixel_buffer_t *old_buffer, - long width, - long height); - -+/* Return the upright version of a buffer which is non upright. -+ * This is the *only* ply_pixel_buffer function which works correctly with a -+ * non upright buffer as source. -+ */ -+ply_pixel_buffer_t *ply_pixel_buffer_rotate_upright (ply_pixel_buffer_t *old_buffer); -+ - #endif - - #endif /* PLY_PIXEL_BUFFER_H */ --- -2.20.1 - -From ae8a676c096731e6ad0868e80c53e23ba82c0695 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 7 Nov 2018 15:46:06 +0100 -Subject: [PATCH 16/82] ply-pixel-display: Add - ply_pixel_display_get_device_scale() function - -Add a function to get the device scale for a ply-pixel-display. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-pixel-display.c | 8 ++++++++ - src/libply-splash-core/ply-pixel-display.h | 1 + - 2 files changed, 9 insertions(+) - -diff --git a/src/libply-splash-core/ply-pixel-display.c b/src/libply-splash-core/ply-pixel-display.c -index cb01a2c..dc088bb 100644 ---- a/src/libply-splash-core/ply-pixel-display.c -+++ b/src/libply-splash-core/ply-pixel-display.c -@@ -51,6 +51,7 @@ struct _ply_pixel_display - - unsigned long width; - unsigned long height; -+ int device_scale; - - ply_pixel_display_draw_handler_t draw_handler; - void *draw_handler_user_data; -@@ -77,6 +78,7 @@ ply_pixel_display_new (ply_renderer_t *renderer, - - display->width = size.width; - display->height = size.height; -+ display->device_scale = ply_pixel_buffer_get_device_scale (pixel_buffer); - - return display; - } -@@ -105,6 +107,12 @@ ply_pixel_display_get_height (ply_pixel_display_t *display) - return display->height; - } - -+int -+ply_pixel_display_get_device_scale (ply_pixel_display_t *display) -+{ -+ return display->device_scale; -+} -+ - static void - ply_pixel_display_flush (ply_pixel_display_t *display) - { -diff --git a/src/libply-splash-core/ply-pixel-display.h b/src/libply-splash-core/ply-pixel-display.h -index 675c181..a57b9a9 100644 ---- a/src/libply-splash-core/ply-pixel-display.h -+++ b/src/libply-splash-core/ply-pixel-display.h -@@ -51,6 +51,7 @@ ply_renderer_head_t *ply_pixel_display_get_renderer_head (ply_pixel_display_t *d - - unsigned long ply_pixel_display_get_width (ply_pixel_display_t *display); - unsigned long ply_pixel_display_get_height (ply_pixel_display_t *display); -+int ply_pixel_display_get_device_scale (ply_pixel_display_t *display); - - void ply_pixel_display_set_draw_handler (ply_pixel_display_t *display, - ply_pixel_display_draw_handler_t draw_handler, --- -2.20.1 - -From 9f3aff2e7c5ad70b37c779c06509c8d1c74a6e58 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 6 Nov 2018 14:41:38 +0100 -Subject: [PATCH 17/82] two-step: Use a pixel-buffer instead of an image for - the view's background - -Use a pixel-buffer instead of an image, this gives us more flexibility. - -This is a preparation patch for adding support to (optionally) use -the firmware splash screen logo (from the ACPI BGRT extension) as -background. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 0ceda90..efdcaa9 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -93,7 +93,7 @@ typedef struct - ply_label_t *message_label; - ply_rectangle_t box_area, lock_area, watermark_area; - ply_trigger_t *end_trigger; -- ply_image_t *background_image; -+ ply_pixel_buffer_t *background_buffer; - } view_t; - - struct _ply_boot_splash_plugin -@@ -181,8 +181,8 @@ view_free (view_t *view) - ply_label_free (view->label); - ply_label_free (view->message_label); - -- if (view->background_image != NULL) -- ply_image_free (view->background_image); -+ if (view->background_buffer != NULL) -+ ply_pixel_buffer_free (view->background_buffer); - - free (view); - } -@@ -255,7 +255,7 @@ view_load (view_t *view) - - if (plugin->background_tile_image != NULL) { - ply_trace ("tiling background to %lux%lu", screen_width, screen_height); -- view->background_image = ply_image_tile (plugin->background_tile_image, screen_width, screen_height); -+ view->background_buffer = ply_pixel_buffer_tile (ply_image_get_buffer (plugin->background_tile_image), screen_width, screen_height); - } - - if (plugin->watermark_image != NULL) { -@@ -882,9 +882,9 @@ draw_background (view_t *view, - ply_pixel_buffer_fill_with_hex_color (pixel_buffer, &area, - plugin->background_start_color); - -- if (view->background_image != NULL) { -+ if (view->background_buffer != NULL) { - uint32_t *data; -- data = ply_image_get_data (view->background_image); -+ data = ply_pixel_buffer_get_argb32_data (view->background_buffer); - - /* We must pass NULL as fill area, because the fill area - must be sized as the image we're sourcing from, otherwise --- -2.20.1 - -From e10ed13fffb59b7a7656227c8f77b93310c160cd Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 7 Nov 2018 20:27:08 +0100 -Subject: [PATCH 18/82] two-step: Speed up background-tile drawing on HiDPI - screens - -Before this commit background drawing on HiDPI screens is quite slow -and CPU intensive, because we do the interpolating scale, which does -a whole bunch of double-precision float operations for *each* pixel -for every frame we draw. - -When using two-step with a background-tile on a Cherry Trail machine with -a HiDPI screen this results in the diskcrypt password entry being visible -laggy, I can type the password much faster then the bullets show up. - -This also means we are pegging the CPU during boot, significantly slowing -down the boot. - -This commit fixes this by creating the background_buffer at the screen's -device_scale and rotation, only doing the scaling once. - -This commit further speeds things up by also doing the solid/gradient fill -of the background + the alpha blend of the tiled background-image once, -creating a solid background which allows us to hit the -ply_pixel_buffer_fill_with_buffer memcpy fast-path and avoids the need to -re-do the solid/gradient fill + alpha-blend each frame we render. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 40 ++++++++++++++++++---------- - 1 file changed, 26 insertions(+), 14 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index efdcaa9..65586f9 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -245,17 +245,38 @@ view_load_end_animation (view_t *view) - static bool - view_load (view_t *view) - { -- unsigned long screen_width, screen_height; -+ unsigned long screen_width, screen_height, screen_scale; - ply_boot_splash_plugin_t *plugin; -+ ply_pixel_buffer_t *buffer; - - plugin = view->plugin; - - screen_width = ply_pixel_display_get_width (view->display); - screen_height = ply_pixel_display_get_height (view->display); - -+ buffer = ply_renderer_get_buffer_for_head( -+ ply_pixel_display_get_renderer (view->display), -+ ply_pixel_display_get_renderer_head (view->display)); -+ screen_scale = ply_pixel_buffer_get_device_scale (buffer); -+ - if (plugin->background_tile_image != NULL) { - ply_trace ("tiling background to %lux%lu", screen_width, screen_height); -- view->background_buffer = ply_pixel_buffer_tile (ply_image_get_buffer (plugin->background_tile_image), screen_width, screen_height); -+ -+ /* Create a buffer at screen scale so that we only do the slow interpolating scale once */ -+ view->background_buffer = ply_pixel_buffer_new (screen_width * screen_scale, screen_height * screen_scale); -+ ply_pixel_buffer_set_device_scale (view->background_buffer, screen_scale); -+ -+ if (plugin->background_start_color != plugin->background_end_color) -+ ply_pixel_buffer_fill_with_gradient (view->background_buffer, NULL, -+ plugin->background_start_color, -+ plugin->background_end_color); -+ else -+ ply_pixel_buffer_fill_with_hex_color (view->background_buffer, NULL, -+ plugin->background_start_color); -+ -+ buffer = ply_pixel_buffer_tile (ply_image_get_buffer (plugin->background_tile_image), screen_width, screen_height); -+ ply_pixel_buffer_fill_with_buffer (view->background_buffer, buffer, 0, 0); -+ ply_pixel_buffer_free (buffer); - } - - if (plugin->watermark_image != NULL) { -@@ -874,7 +895,9 @@ draw_background (view_t *view, - area.width = width; - area.height = height; - -- if (plugin->background_start_color != plugin->background_end_color) -+ if (view->background_buffer != NULL) -+ ply_pixel_buffer_fill_with_buffer (pixel_buffer, view->background_buffer, 0, 0); -+ else if (plugin->background_start_color != plugin->background_end_color) - ply_pixel_buffer_fill_with_gradient (pixel_buffer, &area, - plugin->background_start_color, - plugin->background_end_color); -@@ -882,17 +905,6 @@ draw_background (view_t *view, - ply_pixel_buffer_fill_with_hex_color (pixel_buffer, &area, - plugin->background_start_color); - -- if (view->background_buffer != NULL) { -- uint32_t *data; -- data = ply_pixel_buffer_get_argb32_data (view->background_buffer); -- -- /* We must pass NULL as fill area, because the fill area -- must be sized as the image we're sourcing from, otherwise -- sampling does not work -- */ -- ply_pixel_buffer_fill_with_argb32_data_with_clip (pixel_buffer, NULL, NULL, data); -- } -- - if (plugin->watermark_image != NULL) { - uint32_t *data; - --- -2.20.1 - -From 856297c7a4bc8dff5b3d03951b250d9620468f9a Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 6 Nov 2018 14:55:29 +0100 -Subject: [PATCH 19/82] two-step: Add ACPI BGRT extension support - -Add support to (optionally) use the firmware splash screen logo -from the ACPI BGRT extension as background. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 86 +++++++++++++++++++++++++++- - 1 file changed, 84 insertions(+), 2 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 65586f9..3570182 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -94,6 +94,7 @@ typedef struct - ply_rectangle_t box_area, lock_area, watermark_area; - ply_trigger_t *end_trigger; - ply_pixel_buffer_t *background_buffer; -+ bool background_is_bgrt; - } view_t; - - struct _ply_boot_splash_plugin -@@ -105,6 +106,7 @@ struct _ply_boot_splash_plugin - ply_image_t *corner_image; - ply_image_t *header_image; - ply_image_t *background_tile_image; -+ ply_image_t *background_bgrt_image; - ply_image_t *watermark_image; - ply_list_t *views; - -@@ -242,6 +244,62 @@ view_load_end_animation (view_t *view) - view->end_animation = NULL; - } - -+/* The Microsoft boot logo spec says that the logo must use a black background -+ * and have its center at 38.2% from the screen's top (golden ratio). -+ * We reproduce this exactly here so that we get a background which is an exact -+ * match of the firmware's boot splash. -+ * At the time of writing this comment this is documented in a document called -+ * "Boot screen components" which is available here: -+ * https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/boot-screen-components -+ * Note that we normally do not use the firmware reported x and y-offset as -+ * that is based on the EFI fb resolution which may not be the native -+ * resolution of the screen (esp. when using multiple heads). -+ */ -+static void -+view_set_bgrt_background (view_t *view) -+{ -+ ply_pixel_buffer_rotation_t panel_rotation = PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; -+ int x_offset, y_offset, sysfs_x_offset, sysfs_y_offset, width, height; -+ int panel_width = 0, panel_height = 0, panel_scale = 1; -+ int screen_width, screen_height, screen_scale; -+ ply_pixel_buffer_t *bgrt_buffer; -+ -+ if (!view->plugin->background_bgrt_image) -+ return; -+ -+ screen_width = ply_pixel_display_get_width (view->display); -+ screen_height = ply_pixel_display_get_height (view->display); -+ screen_scale = ply_pixel_display_get_device_scale (view->display); -+ -+ bgrt_buffer = ply_image_get_buffer (view->plugin->background_bgrt_image); -+ -+ if (ply_renderer_get_panel_properties (ply_pixel_display_get_renderer (view->display), -+ &panel_width, &panel_height, -+ &panel_rotation, &panel_scale)) { -+ ply_pixel_buffer_set_device_rotation (bgrt_buffer, panel_rotation); -+ ply_pixel_buffer_set_device_scale (bgrt_buffer, panel_scale); -+ } -+ -+ width = ply_pixel_buffer_get_width (bgrt_buffer); -+ height = ply_pixel_buffer_get_height (bgrt_buffer); -+ -+ x_offset = (screen_width - width) / 2; -+ y_offset = screen_height * 382 / 1000 - height / 2; -+ -+ ply_trace ("using %dx%d bgrt image centered at %dx%d for %dx%d screen", -+ width, height, x_offset, y_offset, screen_width, screen_height); -+ -+ view->background_buffer = ply_pixel_buffer_new (screen_width * screen_scale, screen_height * screen_scale); -+ ply_pixel_buffer_set_device_scale (view->background_buffer, screen_scale); -+ ply_pixel_buffer_fill_with_hex_color (view->background_buffer, NULL, 0x000000); -+ if (x_offset >= 0 && y_offset >= 0) { -+ bgrt_buffer = ply_pixel_buffer_rotate_upright (bgrt_buffer); -+ ply_pixel_buffer_fill_with_buffer (view->background_buffer, bgrt_buffer, x_offset, y_offset); -+ ply_pixel_buffer_free (bgrt_buffer); -+ } -+ view->background_is_bgrt = true; -+} -+ - static bool - view_load (view_t *view) - { -@@ -259,7 +317,9 @@ view_load (view_t *view) - ply_pixel_display_get_renderer_head (view->display)); - screen_scale = ply_pixel_buffer_get_device_scale (buffer); - -- if (plugin->background_tile_image != NULL) { -+ view_set_bgrt_background (view); -+ -+ if (!view->background_buffer && plugin->background_tile_image != NULL) { - ply_trace ("tiling background to %lux%lu", screen_width, screen_height); - - /* Create a buffer at screen scale so that we only do the slow interpolating scale once */ -@@ -670,6 +730,10 @@ create_plugin (ply_key_file_t *key_file) - - free (color); - -+ /* Boolean option, true if the key is present */ -+ if (ply_key_file_get_value (key_file, "two-step", "UseBGRT")) -+ plugin->background_bgrt_image = ply_image_new ("/sys/firmware/acpi/bgrt/image"); -+ - progress_function = ply_key_file_get_value (key_file, "two-step", "ProgressFunction"); - - if (progress_function != NULL) { -@@ -747,6 +811,9 @@ destroy_plugin (ply_boot_splash_plugin_t *plugin) - if (plugin->background_tile_image != NULL) - ply_image_free (plugin->background_tile_image); - -+ if (plugin->background_bgrt_image != NULL) -+ ply_image_free (plugin->background_bgrt_image); -+ - if (plugin->watermark_image != NULL) - ply_image_free (plugin->watermark_image); - -@@ -895,7 +962,14 @@ draw_background (view_t *view, - area.width = width; - area.height = height; - -- if (view->background_buffer != NULL) -+ /* When using the firmware logo as background, use solid black as -+ * background for dialogs. -+ */ -+ if ((plugin->state == PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY || -+ plugin->state == PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY) && -+ view->background_is_bgrt) -+ ply_pixel_buffer_fill_with_hex_color (pixel_buffer, &area, 0); -+ else if (view->background_buffer != NULL) - ply_pixel_buffer_fill_with_buffer (pixel_buffer, view->background_buffer, 0, 0); - else if (plugin->background_start_color != plugin->background_end_color) - ply_pixel_buffer_fill_with_gradient (pixel_buffer, &area, -@@ -1097,6 +1171,14 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, - } - } - -+ if (plugin->background_bgrt_image != NULL) { -+ ply_trace ("loading background bgrt image"); -+ if (!ply_image_load (plugin->background_bgrt_image)) { -+ ply_image_free (plugin->background_bgrt_image); -+ plugin->background_bgrt_image = NULL; -+ } -+ } -+ - if (plugin->watermark_image != NULL) { - ply_trace ("loading watermark image"); - if (!ply_image_load (plugin->watermark_image)) { --- -2.20.1 - -From d45c477d44e9d352e9d91686237e26474ab009d7 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 13 Nov 2018 09:03:10 +0100 -Subject: [PATCH 20/82] two-step: bgrt: Deal with quirky firmwares - -On laptops / tablets the LCD panel is typically brought up in -its native resolution, so we can trust the x- and y-offset values -provided by the firmware to be correct for a screen with the panels -resolution. - -Moreover some laptop / tablet firmwares to do all kind of hacks wrt -the y-offset. This happens especially on devices where the panel is -mounted 90 degrees rotated, but also on other devices. - -So on devices with an internal LCD panel, we prefer to use the firmware -provided offsets, to make sure we match its quirky behavior. - -We check that the x-offset matches what we expect for the panel's -native resolution to make sure that the values are indeed for the -panel's native resolution and then we correct for any difference -between the (external) screen's and the panel's resolution. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 79 +++++++++++++++++++++++++++- - 1 file changed, 78 insertions(+), 1 deletion(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 3570182..641eb70 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -124,6 +124,7 @@ struct _ply_boot_splash_plugin - - uint32_t background_start_color; - uint32_t background_end_color; -+ int background_bgrt_raw_width; - - progress_function_t progress_function; - -@@ -244,6 +245,41 @@ view_load_end_animation (view_t *view) - view->end_animation = NULL; - } - -+static bool -+get_bgrt_sysfs_offsets(int *x_offset, int *y_offset) -+{ -+ bool ret = false; -+ char buf[64]; -+ FILE *f; -+ -+ f = fopen("/sys/firmware/acpi/bgrt/xoffset", "r"); -+ if (!f) -+ return false; -+ -+ if (!fgets(buf, sizeof(buf), f)) -+ goto out; -+ -+ if (sscanf(buf, "%d", x_offset) != 1) -+ goto out; -+ -+ fclose(f); -+ -+ f = fopen("/sys/firmware/acpi/bgrt/yoffset", "r"); -+ if (!f) -+ return false; -+ -+ if (!fgets(buf, sizeof(buf), f)) -+ goto out; -+ -+ if (sscanf(buf, "%d", y_offset) != 1) -+ goto out; -+ -+ ret = true; -+out: -+ fclose(f); -+ return ret; -+} -+ - /* The Microsoft boot logo spec says that the logo must use a black background - * and have its center at 38.2% from the screen's top (golden ratio). - * We reproduce this exactly here so that we get a background which is an exact -@@ -286,6 +322,45 @@ view_set_bgrt_background (view_t *view) - x_offset = (screen_width - width) / 2; - y_offset = screen_height * 382 / 1000 - height / 2; - -+ /* -+ * On laptops / tablets the LCD panel is typically brought up in -+ * its native resolution, so we can trust the x- and y-offset values -+ * provided by the firmware to be correct for a screen with the panels -+ * resolution. -+ * -+ * Moreover some laptop / tablet firmwares to do all kind of hacks wrt -+ * the y offset. This happens especially on devices where the panel is -+ * mounted 90 degrees rotated, but also on other devices. -+ * -+ * So on devices with an internal LCD panel, we prefer to use the -+ * firmware provided offsets, to make sure we match its quirky behavior. -+ * -+ * We check that the x-offset matches what we expect for the panel's -+ * native resolution to make sure that the values are indeed for the -+ * panel's native resolution and then we correct for any difference -+ * between the (external) screen's and the panel's resolution. -+ */ -+ if (panel_width != 0 && panel_height != 0 && -+ get_bgrt_sysfs_offsets(&sysfs_x_offset, &sysfs_y_offset) && -+ (panel_width - view->plugin->background_bgrt_raw_width) / 2 == sysfs_x_offset) { -+ if (panel_rotation == PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE || -+ panel_rotation == PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE) { -+ /* 90 degrees rotated, swap x and y */ -+ x_offset = sysfs_y_offset / panel_scale; -+ y_offset = sysfs_x_offset / panel_scale; -+ -+ x_offset += (screen_width - panel_height / panel_scale) / 2; -+ y_offset += (screen_height - panel_width / panel_scale) * 382 / 1000; -+ } else { -+ /* Normal orientation */ -+ x_offset = sysfs_x_offset / panel_scale; -+ y_offset = sysfs_y_offset / panel_scale; -+ -+ x_offset += (screen_width - panel_width / panel_scale) / 2; -+ y_offset += (screen_height - panel_height / panel_scale) * 382 / 1000; -+ } -+ } -+ - ply_trace ("using %dx%d bgrt image centered at %dx%d for %dx%d screen", - width, height, x_offset, y_offset, screen_width, screen_height); - -@@ -1173,7 +1248,9 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, - - if (plugin->background_bgrt_image != NULL) { - ply_trace ("loading background bgrt image"); -- if (!ply_image_load (plugin->background_bgrt_image)) { -+ if (ply_image_load (plugin->background_bgrt_image)) { -+ plugin->background_bgrt_raw_width = ply_image_get_width (plugin->background_bgrt_image); -+ } else { - ply_image_free (plugin->background_bgrt_image); - plugin->background_bgrt_image = NULL; - } --- -2.20.1 - -From 4925a485c56fec0bd1333ec94d99b9c0e5b769b4 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 13 Nov 2018 09:51:32 +0100 -Subject: [PATCH 21/82] themes: Add new BGRT theme, using the firmware boot - splash as background - -Add a new BGRT theme, this is a copy of the spinner theme, using the ACPI -BGRT graphics (firmware boot splash) as logo when available. - -Signed-off-by: Hans de Goede ---- - configure.ac | 1 + - themes/Makefile.am | 2 +- - themes/bgrt/Makefile.am | 84 ++++++++++++++++++++++++++++++++ - themes/bgrt/animation-0001.png | Bin 0 -> 1579 bytes - themes/bgrt/animation-0002.png | Bin 0 -> 1573 bytes - themes/bgrt/animation-0003.png | Bin 0 -> 1591 bytes - themes/bgrt/animation-0004.png | Bin 0 -> 1594 bytes - themes/bgrt/animation-0005.png | Bin 0 -> 1624 bytes - themes/bgrt/animation-0006.png | Bin 0 -> 1646 bytes - themes/bgrt/animation-0007.png | Bin 0 -> 1666 bytes - themes/bgrt/animation-0008.png | Bin 0 -> 1634 bytes - themes/bgrt/animation-0009.png | Bin 0 -> 1640 bytes - themes/bgrt/animation-0010.png | Bin 0 -> 1613 bytes - themes/bgrt/animation-0011.png | Bin 0 -> 1621 bytes - themes/bgrt/animation-0012.png | Bin 0 -> 1619 bytes - themes/bgrt/animation-0013.png | Bin 0 -> 1617 bytes - themes/bgrt/animation-0014.png | Bin 0 -> 1618 bytes - themes/bgrt/animation-0015.png | Bin 0 -> 1615 bytes - themes/bgrt/animation-0016.png | Bin 0 -> 1605 bytes - themes/bgrt/animation-0017.png | Bin 0 -> 1581 bytes - themes/bgrt/animation-0018.png | Bin 0 -> 1582 bytes - themes/bgrt/animation-0019.png | Bin 0 -> 1578 bytes - themes/bgrt/animation-0020.png | Bin 0 -> 1558 bytes - themes/bgrt/animation-0021.png | Bin 0 -> 1545 bytes - themes/bgrt/animation-0022.png | Bin 0 -> 1541 bytes - themes/bgrt/animation-0023.png | Bin 0 -> 1481 bytes - themes/bgrt/animation-0024.png | Bin 0 -> 1492 bytes - themes/bgrt/animation-0025.png | Bin 0 -> 1455 bytes - themes/bgrt/animation-0026.png | Bin 0 -> 1427 bytes - themes/bgrt/animation-0027.png | Bin 0 -> 1407 bytes - themes/bgrt/animation-0028.png | Bin 0 -> 1385 bytes - themes/bgrt/animation-0029.png | Bin 0 -> 1348 bytes - themes/bgrt/animation-0030.png | Bin 0 -> 1316 bytes - themes/bgrt/animation-0031.png | Bin 0 -> 1245 bytes - themes/bgrt/animation-0032.png | Bin 0 -> 1185 bytes - themes/bgrt/animation-0033.png | Bin 0 -> 1111 bytes - themes/bgrt/animation-0034.png | Bin 0 -> 1061 bytes - themes/bgrt/animation-0035.png | Bin 0 -> 981 bytes - themes/bgrt/animation-0036.png | Bin 0 -> 989 bytes - themes/bgrt/background-tile.png | Bin 0 -> 79464 bytes - themes/bgrt/bgrt.plymouth.in | 16 ++++++ - themes/bgrt/box.png | Bin 0 -> 870 bytes - themes/bgrt/bullet.png | Bin 0 -> 131 bytes - themes/bgrt/entry.png | Bin 0 -> 1431 bytes - themes/bgrt/lock.png | Bin 0 -> 329 bytes - themes/bgrt/throbber-0001.png | Bin 0 -> 1578 bytes - themes/bgrt/throbber-0002.png | Bin 0 -> 1568 bytes - themes/bgrt/throbber-0003.png | Bin 0 -> 1561 bytes - themes/bgrt/throbber-0004.png | Bin 0 -> 1570 bytes - themes/bgrt/throbber-0005.png | Bin 0 -> 1585 bytes - themes/bgrt/throbber-0006.png | Bin 0 -> 1597 bytes - themes/bgrt/throbber-0007.png | Bin 0 -> 1629 bytes - themes/bgrt/throbber-0008.png | Bin 0 -> 1604 bytes - themes/bgrt/throbber-0009.png | Bin 0 -> 1605 bytes - themes/bgrt/throbber-0010.png | Bin 0 -> 1601 bytes - themes/bgrt/throbber-0011.png | Bin 0 -> 1595 bytes - themes/bgrt/throbber-0012.png | Bin 0 -> 1602 bytes - themes/bgrt/throbber-0013.png | Bin 0 -> 1612 bytes - themes/bgrt/throbber-0014.png | Bin 0 -> 1601 bytes - themes/bgrt/throbber-0015.png | Bin 0 -> 1588 bytes - themes/bgrt/throbber-0016.png | Bin 0 -> 1577 bytes - themes/bgrt/throbber-0017.png | Bin 0 -> 1572 bytes - themes/bgrt/throbber-0018.png | Bin 0 -> 1601 bytes - themes/bgrt/throbber-0019.png | Bin 0 -> 1608 bytes - themes/bgrt/throbber-0020.png | Bin 0 -> 1583 bytes - themes/bgrt/throbber-0021.png | Bin 0 -> 1602 bytes - themes/bgrt/throbber-0022.png | Bin 0 -> 1595 bytes - themes/bgrt/throbber-0023.png | Bin 0 -> 1603 bytes - themes/bgrt/throbber-0024.png | Bin 0 -> 1605 bytes - themes/bgrt/throbber-0025.png | Bin 0 -> 1604 bytes - themes/bgrt/throbber-0026.png | Bin 0 -> 1605 bytes - themes/bgrt/throbber-0027.png | Bin 0 -> 1615 bytes - themes/bgrt/throbber-0028.png | Bin 0 -> 1614 bytes - themes/bgrt/throbber-0029.png | Bin 0 -> 1588 bytes - themes/bgrt/throbber-0030.png | Bin 0 -> 1580 bytes - 75 files changed, 102 insertions(+), 1 deletion(-) - create mode 100644 themes/bgrt/Makefile.am - create mode 100644 themes/bgrt/animation-0001.png - create mode 100644 themes/bgrt/animation-0002.png - create mode 100644 themes/bgrt/animation-0003.png - create mode 100644 themes/bgrt/animation-0004.png - create mode 100644 themes/bgrt/animation-0005.png - create mode 100644 themes/bgrt/animation-0006.png - create mode 100644 themes/bgrt/animation-0007.png - create mode 100644 themes/bgrt/animation-0008.png - create mode 100644 themes/bgrt/animation-0009.png - create mode 100644 themes/bgrt/animation-0010.png - create mode 100644 themes/bgrt/animation-0011.png - create mode 100644 themes/bgrt/animation-0012.png - create mode 100644 themes/bgrt/animation-0013.png - create mode 100644 themes/bgrt/animation-0014.png - create mode 100644 themes/bgrt/animation-0015.png - create mode 100644 themes/bgrt/animation-0016.png - create mode 100644 themes/bgrt/animation-0017.png - create mode 100644 themes/bgrt/animation-0018.png - create mode 100644 themes/bgrt/animation-0019.png - create mode 100644 themes/bgrt/animation-0020.png - create mode 100644 themes/bgrt/animation-0021.png - create mode 100644 themes/bgrt/animation-0022.png - create mode 100644 themes/bgrt/animation-0023.png - create mode 100644 themes/bgrt/animation-0024.png - create mode 100644 themes/bgrt/animation-0025.png - create mode 100644 themes/bgrt/animation-0026.png - create mode 100644 themes/bgrt/animation-0027.png - create mode 100644 themes/bgrt/animation-0028.png - create mode 100644 themes/bgrt/animation-0029.png - create mode 100644 themes/bgrt/animation-0030.png - create mode 100644 themes/bgrt/animation-0031.png - create mode 100644 themes/bgrt/animation-0032.png - create mode 100644 themes/bgrt/animation-0033.png - create mode 100644 themes/bgrt/animation-0034.png - create mode 100644 themes/bgrt/animation-0035.png - create mode 100644 themes/bgrt/animation-0036.png - create mode 100644 themes/bgrt/background-tile.png - create mode 100644 themes/bgrt/bgrt.plymouth.in - create mode 100644 themes/bgrt/box.png - create mode 100644 themes/bgrt/bullet.png - create mode 100644 themes/bgrt/entry.png - create mode 100644 themes/bgrt/lock.png - create mode 100644 themes/bgrt/throbber-0001.png - create mode 100644 themes/bgrt/throbber-0002.png - create mode 100644 themes/bgrt/throbber-0003.png - create mode 100644 themes/bgrt/throbber-0004.png - create mode 100644 themes/bgrt/throbber-0005.png - create mode 100644 themes/bgrt/throbber-0006.png - create mode 100644 themes/bgrt/throbber-0007.png - create mode 100644 themes/bgrt/throbber-0008.png - create mode 100644 themes/bgrt/throbber-0009.png - create mode 100644 themes/bgrt/throbber-0010.png - create mode 100644 themes/bgrt/throbber-0011.png - create mode 100644 themes/bgrt/throbber-0012.png - create mode 100644 themes/bgrt/throbber-0013.png - create mode 100644 themes/bgrt/throbber-0014.png - create mode 100644 themes/bgrt/throbber-0015.png - create mode 100644 themes/bgrt/throbber-0016.png - create mode 100644 themes/bgrt/throbber-0017.png - create mode 100644 themes/bgrt/throbber-0018.png - create mode 100644 themes/bgrt/throbber-0019.png - create mode 100644 themes/bgrt/throbber-0020.png - create mode 100644 themes/bgrt/throbber-0021.png - create mode 100644 themes/bgrt/throbber-0022.png - create mode 100644 themes/bgrt/throbber-0023.png - create mode 100644 themes/bgrt/throbber-0024.png - create mode 100644 themes/bgrt/throbber-0025.png - create mode 100644 themes/bgrt/throbber-0026.png - create mode 100644 themes/bgrt/throbber-0027.png - create mode 100644 themes/bgrt/throbber-0028.png - create mode 100644 themes/bgrt/throbber-0029.png - create mode 100644 themes/bgrt/throbber-0030.png - -diff --git a/configure.ac b/configure.ac -index 66d3649..78550d0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -322,6 +322,7 @@ AC_CONFIG_FILES([Makefile - themes/glow/Makefile - themes/spinner/Makefile - themes/script/Makefile -+ themes/bgrt/Makefile - images/Makefile - scripts/plymouth-generate-initrd - scripts/plymouth-populate-initrd -diff --git a/themes/Makefile.am b/themes/Makefile.am -index 72e642b..8e4566e 100644 ---- a/themes/Makefile.am -+++ b/themes/Makefile.am -@@ -1,2 +1,2 @@ --SUBDIRS = spinfinity fade-in text details solar glow script spinner tribar -+SUBDIRS = spinfinity fade-in text details solar glow script spinner tribar bgrt - MAINTAINERCLEANFILES = Makefile.in -diff --git a/themes/bgrt/Makefile.am b/themes/bgrt/Makefile.am -new file mode 100644 -index 0000000..4cb7aba ---- /dev/null -+++ b/themes/bgrt/Makefile.am -@@ -0,0 +1,84 @@ -+themedir = $(datadir)/plymouth/themes/bgrt -+nodist_theme_DATA = bgrt.plymouth -+ -+dist_theme_DATA = \ -+ background-tile.png \ -+ box.png \ -+ bullet.png \ -+ entry.png \ -+ lock.png \ -+ animation-0001.png \ -+ animation-0002.png \ -+ animation-0003.png \ -+ animation-0004.png \ -+ animation-0005.png \ -+ animation-0006.png \ -+ animation-0007.png \ -+ animation-0008.png \ -+ animation-0009.png \ -+ animation-0010.png \ -+ animation-0011.png \ -+ animation-0012.png \ -+ animation-0013.png \ -+ animation-0014.png \ -+ animation-0015.png \ -+ animation-0016.png \ -+ animation-0017.png \ -+ animation-0018.png \ -+ animation-0019.png \ -+ animation-0020.png \ -+ animation-0021.png \ -+ animation-0022.png \ -+ animation-0023.png \ -+ animation-0024.png \ -+ animation-0025.png \ -+ animation-0026.png \ -+ animation-0027.png \ -+ animation-0028.png \ -+ animation-0029.png \ -+ animation-0030.png \ -+ animation-0031.png \ -+ animation-0032.png \ -+ animation-0033.png \ -+ animation-0034.png \ -+ animation-0035.png \ -+ animation-0036.png \ -+ throbber-0001.png \ -+ throbber-0002.png \ -+ throbber-0003.png \ -+ throbber-0004.png \ -+ throbber-0005.png \ -+ throbber-0006.png \ -+ throbber-0007.png \ -+ throbber-0008.png \ -+ throbber-0009.png \ -+ throbber-0010.png \ -+ throbber-0011.png \ -+ throbber-0012.png \ -+ throbber-0013.png \ -+ throbber-0014.png \ -+ throbber-0015.png \ -+ throbber-0016.png \ -+ throbber-0017.png \ -+ throbber-0018.png \ -+ throbber-0019.png \ -+ throbber-0020.png \ -+ throbber-0021.png \ -+ throbber-0022.png \ -+ throbber-0023.png \ -+ throbber-0024.png \ -+ throbber-0025.png \ -+ throbber-0026.png \ -+ throbber-0027.png \ -+ throbber-0028.png \ -+ throbber-0029.png \ -+ throbber-0030.png -+ -+MAINTAINERCLEANFILES = Makefile.in bgrt.plymouth -+CLEANFILES = bgrt.plymouth -+ -+bgrt.plymouth: $(srcdir)/bgrt.plymouth.in -+ sed -e 's,[@]PLYMOUTH_THEME_PATH[@],$(PLYMOUTH_THEME_PATH),g' \ -+ $(srcdir)/bgrt.plymouth.in > bgrt.plymouth -+ -+EXTRA_DIST = bgrt.plymouth.in -diff --git a/themes/bgrt/animation-0001.png b/themes/bgrt/animation-0001.png -new file mode 100644 -index 0000000000000000000000000000000000000000..6bd823976167325046fb5759916e6883936461a2 -GIT binary patch -literal 1579 -zcmYL}c~lZu7{$Q^#a&RLMI$t|oMDkPlaj_Tw@eZ%N->2nDL@n=$kM{ea)enV3c{#@jVv}3fJsZ|Ffn^s98L-Y -z!_Q=3_OJvP9$U;w-!DkR2-27wCLhD+vAA4j=6^)f*-Y+ky0p*IT!omgBBcnJ0Dmkl -z2!q36{P9Q}E;wLKFcvqx`-cW|#%Vqi&*CrvSZwgW2luwqyTj~Re_bUrW!}U^Fnin0 -zn)AH2!7OE_0R90Qi^b304WgJ$*Ljn|U~-v&6fTRCB4DL+k$7w>kB@ZJOU(h;d?3!e -zAv5#;H__ODyR`FKvkm=PE@rTqd?Y1>!!r|r^AE~CiSPpeEIT7f-^EiQ`6pxd?b_;8 -zP)82+ZH%haDdJqBR-j2?d2aAI%OPLofn`mD*4Ycj4)8pcaf#Mar9q26uB?WVi*F-V -zk^Htkcv^63W^MK7VePp0u?6X=+S)af+FHJLj>+Y6jXg%A(K(Dz)mqwS%+M|#nDn}? -znUdXkELYdwHA>1(%s5WqR+qm;z}tm2xuf_4SFQFIviA~F@1b711lgYkmrDi+1VYWd -z5pqwU(#vvT_?{$>cZc&6u}cCeqzV;LHv)e3p+EZgl4UWc&!KZ1%iLo+Ks?|f -z2v=fN)RhR1rc{+usNMHImm#-SzYUsB&~Z$>(WMPTt?y5iUvu>?686yFY`P->@y>W> -z!EXTFRDTuKm{vaVCwH6^Ow`Ka;W0Xt$Z8hi04u*OTdZU7{D16qUALhJIr-CP6i1lj -zJQWi3OoaM~NI!y6J=TSr2vj|Yy@j-Ve9?$6^fhH;f~WMsKsIQJ*YIqt%2tK$8=QG+ -z-&%#yR|J%0(CC!DwUHy1(3qEKSdA(Z%FH$8S^n&ONlRw1hu@$gF{gTC?5rn+dm>csxL|Xl`!2A$p(()iK7z}!pYsk?G%N62gt4BRho}h -zQsMzRsAvhvcjDX0mm9>%4s9$TigryF9O%=Q$h-t**T;5+vg>GKd%5?gLPLylRJ#(w -z=aO3Vc-58WzNTiF8>+R7ZRf7JFm;7k>6KOaDf;D*UkB=@eAph=BpsJ@MbYUchh0QQ -zx91M|n)5B2CtS%VvkfP -z2^jgew?K)8Ez|~*NAB%6$;%0j;S+ysFQq&$-63DPvR5m$Rn>=py!g$+(bW~gfy=I! -zY`CGu%42o+19OViw}=rsfmWQ~wycPg1UBB!LQ29!?;j?x4n)ZO#`I6{?%0(M*XX#Y -zrTcP~#F@FqiIU(iJEukOPJ3RT{5?r{tPvJKC}sST1uX3I(aI{;z}qf9`r^0@COUPv -T@C3yC*#RQMHj|n{lcj$H!ojpL - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0002.png b/themes/bgrt/animation-0002.png -new file mode 100644 -index 0000000000000000000000000000000000000000..ef8ff54a5ba88688b91eeb3eba6753e9dc28a169 -GIT binary patch -literal 1573 -zcmYLJdpOg39R4+z8J28?quXRSrOcfaV{up)l}pn>4NYctX`96un@gs2LAsGVMQG)6 -zN~!bYx;ow5r8OH1549TVDOdokpXdAeywCH#@AG~?e|_@z1qVV6Ee!zxfMSFE -zL$rukY6E@kWU$#^wE&?79b^E25qzna0awZ_v?Q7t5W)P7m_z_j2~;uxl}IF$W8zQ@ -zdK~H~k%^)urIM-1%mfrOfj}lOPz)N8LLt!qLx+XKZZ#FoE@D! -zQBF=MXBUK%lb738FGr`jBR49vo)t@;Fd~@%I68X$`<#)R%1f&G)2`3>B`88SukDoY -z!4I?GfT%|Pu}b}?4rkTNJ66gpS9pSb^wC)Y**XzW>g$YCs(o~ZEq9f_OZ3}jSmO@s -z;+nMW^$mGmo?|3@b=G>dSTgfFfL)$djE8Q|zo(|cGb`O;VidyAQiM=^*5bQqdXfL -zAZnC0HSO{&Nv{hx2^^C5q}&W*tqF47>^p3Z7+t(Sfi=TmZymx4>YpIbO|+;7+VZB3 -zU!_VGJt|s@%8o%<$mx@OH0gBcjD0TNG)hNPVbGfPoXQP=531f{*JL)~yff%~vRUC` -zId1j}c*Wtl9ka$Fpt>!2`L`#wzs%XHS1RQBgm0X$GCQ#Z{=N3VgDc34lEu3+pV_AQ -zN8StDLs`xQtuYH3}@RvuoWXbt -zLItOx1y3`GvVSHEI!Dqpz)2aIe<^LBU~MvcUFqF1?Q@{9 -zOs|M70@qHrn_TYDgl+MA{aHERzX+P#ig#fA%9;tgy4(IErXSsthfwieBgqA} -z?eW%_4S~~~ZQiSC)Z0;Y!4>A+Xid(eBQs;(%Wg-Et-^oF|_au+8)%Lt>T&wrJf=sjvFXJiJp7 -z5_vdWiBQNRX=XK%HG*;1d?70#2IH(?;Ma*B-siLtC3hx1MVd<0?|qQn(n_xb@GZPf -z8B{icNq@^yY%0Xzm1-O}cQQ}Ge%4vI@WpM;>ew9exzU61<88xjL{Y6^0z=3BHG|ZE -z%y~cRCv(&gK`Hu41$qQYOBkqQjy5YTQ{KRW*hcsAedXubuwu)L!(OLii - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0003.png b/themes/bgrt/animation-0003.png -new file mode 100644 -index 0000000000000000000000000000000000000000..205380b1ca8e000f19adb89243a71cd48bfa579b -GIT binary patch -literal 1591 -zcmYLJdpOg39RAH_u~F8#teZP=lx?jtmvdHBqO1!tSu!kEcCpPAVQi%xMMA1Yom4I- -zLz3jOIfhcAa?1%j5prL}=z4xS=RD{8d_SM}dEWPZ-tYU@SF)Gvs*hNS002PWZRfWA -zAR5n)4jkOPsHl%1=yG=Y@&Evdo*xKs -zV>b|t@py+#_6|7wOmNP1&|@&~@nSIP01oHy?AdI}L}$?f8jHcC@fmEEF#&gk!!usgp8y)r^M?IkLpt~W -zH*Im7-Ml{YL3#0y@Do8{be^#%jmZHKz;7VNUc}e{0IbDr+g2}%ZdT@#WH0X}rz@p* -zyp&MY5Y11=t05<$u6k#o{peXOF_CYsr)T!&DGZA@X+@b@ -zBv8XDB<-<%GhY(Da}mze$90h@V`{ZGnW)XUWYW;ce)sFVOtHCb5SzDeIXDYIj*`i%OiWQuTrVUF< -z@Yww15@~K)NQyC;bzbKoQ~<1o6+t7Cd`CFTZDk3bDjQC^d8W$KBR}yeq3qH`U3eFw -z7uu*eth$z{^!QQ(*fh9TJ<8A|9q?ZBstWOowvVFDQWh&OVYA*UZkJ -zpZjIN4jhKCMShCX78KR>+v1aCq5g5?KsK!HK*YFrWQ^gvm$tO>S-mgqs$-PA-^m3`XK6cFdHyI}BZ;6i5GF4bKM1s!hdk!=2XT-p7K8%D28M$9mmWb{b^r -zK8nO_$Bg}Vl$GBcGr*v4(E=;3eb43VO?Na81sxuN?{kG}@ylm1!`L#(!TO$C#N;US -zFh^HBV@45cH}8Gd{d}|^J-xb^7c>q_(Lz4x-SqlbRwNKKyg*D)$ZnB@lThef#%qs+ -zoT*hX_3?uS_5x|i=ukYmOS>aJWRl&m`~J8KTdDjOeYGuJ_ueA4S%3lZxv{9gF{^8xvNFIV -zq_#e4X0y#SdN^HRvR-W3J>JMdWf!_xK)cH%PFmCaqGo66_p;K@EOp$e{L;pbyrtKJ -zw_7H^4zG-bR_SKLM+Bo!lz!tmR~W<M{<`dUMl-l%DyyivK6O{a9{eNClI5iavh~W6OKrTeI_8!hSn}(@s?hSI -zFKC44=(wX=Vc9=zsb-y-IHG!0Ig!|8H)3AXJ*`_WThEnuAbZRU41KeOb%0AWU!#ol -d5A3`Z2SJL6rEpG+2>kc}x9#L@GUtGVzX5+W%Q^r6 - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0004.png b/themes/bgrt/animation-0004.png -new file mode 100644 -index 0000000000000000000000000000000000000000..6038af8bd429a28118214dd308533e60107d531a -GIT binary patch -literal 1594 -zcmYLJdpOg39R6uTVQ%9@7wt)?7Te5a?aZZI3URO!B{nm&7_&_^Mr@TXqM}kW6FNl} -zlHA$qFzFB}HA;(e=|V?thn;q&bIx-<&-e3rpXYtw=ly>E`ke9i+Xc~DqXhr}#A~;E -zpbBBjy;4IpnMp}ADp*C|9l`_vZRm2V0oU_QRHO^bBben$jU@w!=y)0#ahOV@5lILp -zgM^?^SqOS8n--tQibk-a$uu$(!K72;;>e8u&?X|592XhE?E;Y)Ldk7p~|Db?Ac4DkpUzU`|q>MFMZ~#(pLUhg+W{v?J#;yNEK(W -z%(-H_q6dRliN?z!oK7AT?7ktP#q4%VGKu_M8E%$UBepVBw00w+-XovUs8hC8o!S63C -zZ9hN~Iet%N3Y9ajt!i(WExg^%9Q~cmM>BjE;oGtTv -z@B1qQJiV{CK6kdc|2cn;rB9E0OW<5rj`jW*j8<+nK>+K9 -z{x*lZRXz`%MUQ`W=Kc|tIn*_@T9WW}Ge$=zl`6Jxze9j>be&fSFBJniMn}6rLFG9eR*qvwUgi} -zHS{&gg0iDUa>}V1p3IxpS>ob49R_0L7GoDEKWF3SY4Qfe`SBw^^|MZWIaO9y?(cnu -zAk?hjrHDQI&NP)2L+FMawQdl3o_kBel&kd^l5)G#wHHfwoT$h;KM7j^6e}Gx6c5J( -zjulLCNn$Y{DpgxD$>!EdLg)q@jo9J(m(5mA?!`B*N=ysC#ix5_hBd9yy`R7EI7+I; -z3KEaVL*)G4(#e2vj%Wej`=b6yhJZS4;fTXCuKbIrZO6 -zviin@#zs52g=Td_e5LPU57$r|`u`8XSTLX-@B3DLpfRA$yQIU&M(q#&e -zZMc_k0*b+;Rh#X8JYZS<$vww8VQ(_Th4HfYAsd9k?tHHoir;o@i9{C+Xi_0f0XAg&g0u|2eU -zwb+7?wtcIhZf-47KO7G)^y`ymbIeobzWEo4!wR)hUzA1LKdTwiU!PYhlg)jMcFU`Y -z!754elp)ACymEW!{HT>vAISg0*1}^aVa`!Gy11v{chUCuo@!6^n&h!ocH9{g-P>s< -z3rg&6`g2YDMDazy$Px?Mcwv`58`5PNX>RI%-G|Mk-}h?Obm0}SIeVA78na3odcZuL -z`myn=B7ulhksI`6kbLi6cpRm}!hgFjTa5AgEvbHBTj!2KIU#n=)6 - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0005.png b/themes/bgrt/animation-0005.png -new file mode 100644 -index 0000000000000000000000000000000000000000..7a967678a0fcc44fc8238e53a5de9a88d0ff5336 -GIT binary patch -literal 1624 -zcmYLJeKgzm9{xq+Cs9GGQPf>RYi>uAkg5dr{(8DuC-v4AN#lo%M2@6fjUwrr4x4Js -z?n>hfwR(x7qLvJyD+_{l?j)@)lPcxbvKB+A8{56-e$MyvdCqyB=RDufU!UtIBg0Up -zcBTLTpd!M9qYQ}MX#{APoC_D04S-~a$8!K+x7AL=fUm1;45S}7B#s-($bbNRS|$_1 -zf68DoX>>d%i;hoaaPjPnTxRBZZW^AO1~DNHp2KFaSWwpg5O*#EVkMswjKU33Hak(l -zG%f_V6WmC6H#fXH5$opWW+civ%>`$s4N=r7vKm4;^sJsVi3_gB83jIAb`eVFlk&yCJRd>q_8lo-xRK{|wKiXFwb*g~ntX5O8xR<$r180swGbL~y{VIAlfT -zN5x-4`vy~Qg9k=UnS0PZlfr-PFT$!LKD^~$_V`MAfF3xqX&NBF;?zi-8k7`ScNbaj -zInsaHhJHD1R;nebiCg(UKilRh-;QX@Ox`8VdHvk2)L%TVT{hHD3WY*=2=ke%{=1mt -zvkNia6D=2_o!`7qAsekX&L=9?LsJ(}*9Krmg{?x~&17Qq-!Z9L8PALf<=V=?mxcN; -z4PNK{;6uw;#5qPeMX86cJbBfeDPMz1ditkx*?`PE5di(>sg}bUa1EA+#AzP(g_dVw -z9*+&t+Q&ZYcU`m0vtS8+*yc;;&zj81eWv#D#8!mUFx*k6_UD0hqCzc|$lk8w-rU{L -z7s0le8-Ukhu5WDsq-T#*4I09DTfI^?lj<-U7J$Mh}14MR) -zp4Ixa*DsCO{==R*qoK1eH=38{3R4}!0ejh#1Ooj;frXE8^JV^7<0QUFj;5aE^*z-j -z=p4gq?v>tO@g?nAnkQC>khPXR#r+P{-6fmm1nFEKMw4E1bU-SvF7`G+h6zm1dh~f*T}nUj2Nsm}Sok -zYlJyZZNz`IF22*PZtDGYzx)g8;YzLl_c}5qCijnunN#u0pnJY(sET`Su(=urDdmCg -zcfm*NHo?7~z7Y+IpC%)QkSn}`@fNQxrxOWlPDRh -zK6W`{WOc8ulcRI(g~eU(D#X9ID*SgjdC`@x&+D=!UayJ{Vj`sBTlE_zq+MVg2eoFm -zH0ZBSh>Z>U(LYh)>*Cntt+_4l+K*1SG~cu|En$pMHOmFN9~-$iv?>z`q7qHmkUlUg -zWX$tn&JVHoa}d3%<8vRS+*>K@xSJ$5dVtE{SLj~n9LqcGr+E`ob>F1qqKNE{%A{RH -z{vKIF{Lwk_ovmi>b&^=k47N-cmHC9eB#{xWy-!|jI1}RjrXS!UH{nq&n`zw(Bew0| -zJdZ$6>tiR{^89vfpL@wo6)giD4c3x@wBz7h7!`Ct#mvaX&4S$p7iinNvuM -z*P2vaC1tJU^0kFej8g+bh!V6N7vK7JvG2~}sW35^+xfKPXuMjJ?lm)&T%Qj*vO`ob -z8L-(j=voIaE4dw(f_81$5U(b=+jL0K&pmI1zJIvld~}T#VO7Fw{2koL6l^B>(^D3N -zc;M!Ecf}10A8BdnnMrY8=P$BYW84aVsL9O!VRhej%~~zADse*VY`ah(?UtDi%+~XZ -zDKAEQcw2%_hh>6Ee8rV-uWn@{Q2jB7&RiS&fRvV>^5**^xp&oOeo_3!Ize(_)U;I* -zK287eRoR?s_{2nI>#=^9%9xg6;q&{Klx?zom$cxcSryOuJ4L@s>oVpbVx#j6Mdo0* -Oj6g(4WUx4pD)z0S%!c_k&E%>d)ZX7B)Dy~A3AfO;9qOosEL()rQMJUW13a9DKA -z5hja8p<#IWG)xYYkKyJOvp51i1H)&~S#%zT$7QnF^!)#!KQ)ieK1>z&LCjI8wWvr6 -zpAO)#0eDP600tN65fBivBRB+$~m%PYRPo2e8`6PSwyah2WWIQ9iXt8EDE2=VS5B(v$;GE__)|? -za9A_!H*ZMK|No!<*ssD4JRLL3_J4&J)AHy%j{_7I*Ni{_4ln!;g$4jitGGx)N;<6W -z(%#(0D92N^L#XgQTkAJwor(7A*vgJXTr1x=!vDP|6>)1KnrQt6WcNFq>kt`FAXezQ -zq6nGlvG~e1@!2FQZIv-NeC-D3VN0=Ih?}it%&Qut!92ZeMHc+rTiR%@;gJ#9ep$@b -zryZ`DJLiYng;ecuThM@0Lw7QsW1EG3!&&^h__ZShwWTI5>Ulf*xTkUCrT`bRF`zFAA^x^&X8U^SUhQfU6^O3 -zcLIk%g{7magd9=EpH2^|2DD@t(KGd3p#A;=Z`F;>Lf25JO{Wzb`m3Mr&kKJztQ4v< -zQ^u^v%P%I##YyX0cwl#k60~P{U`DL)4S6b$h(Q|@z2+{dZ>I=?q&-DjDiP%Iqg+(% -zJ{{0XKM!(vI2fE359h!9)U3tY -zm7#grc0QX%QC6u=u|$Xbe7#=$X2L8DiBf -z2St`ur?B$eL|v@T^A6N>+nd&d$Q8KtADa5%aH@1^GOi2SOY%6>vzNRvG!B{lO9+VQ -z6T5(;k{ZV-^COa?b|OK_zucFTSKsz#g&h0qyhYJ&`zq~Yqo=qpLEL1_+7w6CdOFr@ -zV#{KbHYS%skRp~AKjzV|=Z;){S&^%5gxF4I#Qb#cZ@leguDARM;Th2~)C5!aa{Bi5 -zz;_&Ub>gd2yP(JK*mxwL$PF2a{w=7rspIo&tGQ)m<%`Ud=fCc*AN4x6B2uT7N|%xv -zERTuOnoPiN^439vkFErn?ia_n?+@zs>b}UrY&YqvF-gv!)gj-&;LAkqwL{fc&w2d_ -z3CKLrw7j_wjQ&7MohnYQ_3dbO>m9{YCo;MA$HBf$A`^>2j@#3lfLxTHDX?$tTdj0_ -z&N%kS)^N&uQnS~_g&xsOUMR2Qw$Q@+=v+9qRD=u^u#DTBN*}juE}}kG&c%PG=;ZTP -z1MWOASgn*6POdsXn>L<4dp+%DVi~DB@f{ad+37vmf%q7+k)7R`oK^l7`}0nbD`wkl -zmi^oN$d8jI=)m2@P8quSd4b!ORpdS7557C$CV6@DZjMAD+;vZqbv#??z9T86cY6&u -nBWE^xSySxaK8cekt4@HAzE>A1gVN#VdkMrv?Tc*LO&0$fmG<3V - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0007.png b/themes/bgrt/animation-0007.png -new file mode 100644 -index 0000000000000000000000000000000000000000..d2ccac920882325a265fe11365dcf170461cefb7 -GIT binary patch -literal 1666 -zcmYLJc~H~m7X1-IkTqCjNnA*wPpVOVSt=nRC`dpML1cHJX(A*L$R-K3p@1Z*C|i+N -zl_Ca$by_V;Ky<1g5*0!AO$1wtkx-FENMwtE(qQ}M&3yMeGv}N+_uhYQc5u)k3sa;i -z000*Lev}YBqBd$1O#cf~Qy27L!uLBa001-VjWPf(U$NJd2ZTORLSGh}0e}fS4g*YN -zaX9o?P>>u8#QiKVhFoD5g2tWa!#pN=R|A#Io*bHvm2}u`JA7#H0MWG8B -z01kt71F={Theu(tq0u41msMap*!8kBh=%n0x^Wu9oNx)*FTp -z{e+C<|Mzsk5cY?5jOpc1K8A~8*$e?Hl+NMn5y0ZyGA`Mp0l*09Pw@(iGC6Z8Fn7eq -z>g=hO!NoK7*}1SUU?x|c+kC<_=QB~MeNu_B7IoDa%rGdRlA&+|_zsE{)ax-Qm+P|R -z=cUNcToS{~vs;Sp%ra$*qQn)#0N#D4QPbqq)UVY=)wAp7FzJK-rKP3+e&&#~XFg+Q -z@j}HPbJl-S6+_u+W8Pl!lUr8u9XrlxdsAA6m(t?;<|gnsLbm7rIN|);zJyy3SMpV^ -zd?3cSTZ*Syq*(-6o_&-*`oVFn+v&B%FyExL!u(X`A>|ty{Em5yX=U@KH8b;ZGmWb* -z6B>k{^`jI&UF(EdO?*#7cx*plX=yM)YPhO}VUC)-vbLo{9gY=N&A2O$oX<5xCCSL9 -zI}E>lK$Pz({>lgp2lJk9Z;CJ6W}pxYbjZo0I24Nx?3rc0VQH*-U)uJT+YCe7t6739 -zvwl(qD7Bl(7j@-~Uax;LvX;TO)7e}X5H)#w6>BakX2jz@V7;L7avRw{yyyqf1!oCV -z`B0`3|4gf!TA$h04wCXs;8y-_Uh@uL_|-MLm_5Ii7|zg!+Fo?4$N&Ho{ -zZ}pI}gm#~>pv5!>6RxwZz9Y}Q=Zr~jT6T^RG`1yw7+X)g_2`P*w+*>)OcS6O&_yF6 -z2klZaaJ_-b3dXw>F5F&uR&}K8WL}}&-Dipp?A1qxm)JqAL50&SxzF>hYJK?%&#otQ4v-KRxszyOumD -zkn)1DZS~kj?qcRvPtrnK$nFB=;hDa>z9BsJ&)szqrf-~+Q*IeYYi7T+$q6))L*81e -z;HrJ?kv*9aRi0O{;MDdz`ZWR&NjO45;6D1axU5&Z>E2JJO*YynE-be+vN`myZ#u2< -zNLOWG)$iUB3Y=b-)WWw(*Wp$0;;1CLs3(^2GL^i7A6u2&6w*V-h@#O}+1 -z4U)>s`J!|VxWzna04^o_l1S!hHt87_50|~1VX?nDivyF&VjwXCH|CSO6aHe7%0%IZ -z4}3}hry#YaFAPiiEP5agg-zmu{zV#yi7t4e?!V!6?KExL0}))sS&E21NOVb;oHW|z -zU3Fm@v&{Q#Yl9eps0o^W)ckt+AkNK@Y6z3%C@+24Xc#0MT@9=K{1`DAEz}`&o1a8~ -zU6v?~GWdNmxVX@LNXw<&Cfl|#M;10CkGAGJmwkt5Eq2D)HPD2#yUSvwB0HYc3-!j2y|4-_p934jVY6ud*F*2w80;^NsE3|oh>?7wW -zqdgaWs3o`GJ9ezZ&0Ngey+ztt_cd0ua4Wa^rsg@QK3)H3{q#(AScLwD0{%Whlt -F$=_zH?q>i1 - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0008.png b/themes/bgrt/animation-0008.png -new file mode 100644 -index 0000000000000000000000000000000000000000..85849c8f8bf3d6f785f39567b2e58f6af9c03102 -GIT binary patch -literal 1634 -zcmYLJc~p~k7X88pVG+WjRF)v&w3HT=ENmevBy7skQ~^;cNCG4fvnLXOyJ-EYDl!$nkdEqaisbQg34-OLfbj>&hNc@&b{~C-}~#G+)dr- -z;^gB50Dw!tpq}t$8w7Tn2!{k^X+fI)4SzsyY0*iio}@ -z67k(aUn}Rn#>H7F5gqsoLU6dyH@AuDR?%}!OwVWV7yzBe;?f}&pN9#>F$H3b>xA5D -zSifdSvu?-`{r}GpTtrgFGGvuK{tPe8=P<;WbUIgHMF3AAO6$Eg1Ay&PQamMNzhg!H -zwojY(ZaDGei;`N8aD0us3&kCu%=tL%LT%;+v#Z|0Nws3PHQ{)eypHC5HEjcZ%k_a+ -zoAE&8_wE<(DDe&6K~WPg;m$|=-xvRL-EJDbcJE;MLv;mHXe~OM&8B?enowVn)1nX+ -zw=_*=_B5|AJ@X@4CfN&NA4`nh9f3s`j0FVmlKJzaw~XN(^&+$;{RaYibZ7-2I#1aj -zk@@xpwj=)q7M>i>L$~`k=2Sg0$jb~VMC0JBR|yi0*lc1dUozSq4})No9aWCq1*4zs -zrYt5u)Nugel+$71*n32jb1xZEsoO|u&n+_NQ(&>D1f(9_8!QSxY|yz;w5~@l5APn- -z9V_oc-d^-06Uq|2x0pe)CVYBIdC78k{&oVa-W)8u8 -zn|l|FQAUuT=6L380QRR%bwkjruoBy|GHr3uKw6`sY8A{zWHQfrXsVs30$*InO(J}* -zZFTSf?B|xcTLnQah-{FVXECdhb9xLUbtNL5v!$u;z6f4$zx*`4vf`lvVT&@bY1nob -z(o5eD|EN5=>eh(Zha-$>({e3NDDc3%jUeW`Hn(4DR!YHBA0>?zRa@NKZRWtvk?K1s -zL46M<6*di%h2@g$9^Iip>alx$Kht)qPwzk};1!yqk^@`%O;}p4%dQ}wr415!YvDBs -z&o@iEsYX15TJYN6m#podSvh{~t*!vrr{2O-j);3}Lgcx8s{N$$Q{?38lWIxkRj)4st;)ZN#XEGc-N`nfE(Z`qVOMQ1NzPCW+E+tGu=yGhUz%MTbo&M<%Nm`IVIZWt(+ -z>sLND<5hCwded7bliugp>?#6ukJhoth8S98`$tcg+OCpnJ!({!gg~5KGKREmohH-1 -z5{&uaz{JJzGtZ4m&Lo$V=x?9O%WBj^wMj$f73>J@X0W7q*Vgnik#jnONsk(Hh7*a -zshN{?eT$q(U6AT+xJ#3q4wPyJEt4X}sHk6yX9P)=I;_^szC_hZK -zXMU_O*mMQ`kK~ul>AGeq)U&baYHjm~_RZUuJVqX>Cg6Mlhqgr*9g$O4JN@seN|%XY -Vb9~PAKI@GHk`k!#t+6!ue*vul*6aWP - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0009.png b/themes/bgrt/animation-0009.png -new file mode 100644 -index 0000000000000000000000000000000000000000..3e79b9bcdd7c337bb0de3db1fa15ea8c05e38917 -GIT binary patch -literal 1640 -zcmYL}dsNbA9L9eLh=N#J8eUp7yW8R?lp%RfysTy^Y8F_KA+i7ou)JZSmANu=X=aDa -zHBHOXRJxF+P^VNhGrO46)FQJ68q*ZaNyA;v&UwG@=bYzx&hvi%dULji2BDFTNB{uP -zA;AIRCSvEt!rXKVQ&K*gV95{ODFgu2g1LbJ=cO2v=p!OWivrmkCV-1i;4*PPvbkJF -zEKVqh#j)5T9G{cSO-K~Q<3#aHE>nmT^4UBdQ}7?x?d33e`}Sr&hMB4`b5#Kh5fi|J -zZbY1$8xBvvy19`yc#uGR0(acel$k%5iC}Y?00@%)Jsxi{)jE@B@%JhM#+>O9*yNXM -z(ro6m%_d2}0RF)`5G4HBMWmQayE&5*%j7Wu29M2Uh}a1{ECGz;3$gRmnWn&kxj?vS -zL#E*WH`jq1y(#T)O}6dd<;k%erVvYEaQP+zZg^t)S&S)>52=;~5+A8r!vG!3$3s)znr{6Cnr~4w6k4jh7+Bl)eh7N<;1r&*qF7+bBkZ?m5A?>XQe)6mj|zLBaF5Bc#e`mNFt -zMG8kh+PBB6PDlmb%PKEkuD=a`){gN~y;cvwl3>n|LmA8I+c!c!Iz~g6WYiPo7E6{7 -zd&|HKVi7b~V{p*T2U9<~mr}Cd2l7!MCZsn}w;^efwESCYZF_nE%%j?OVcT!r-iQ(e -z2|U-VaMLZ((Z)MgyPs~2wvQRsd-0Li)cdP_LVUXK14LQlO69L~I45J@EN*|+fmdUY -z&it9-M-Ny8x$zMF5cF?(}3}#F=^4|?4c1s{lmZ13&Cj|v9MRaO&X)YzRmg#1!R^B`3-s83f -z{-Pd6lyZiGZ?l^u!-vf7R5tYiWIxm-y_816XC|U@6FllhDBVwLJ#A)V -z-vG#v5%V`kzFN4ex2qp3ziIh^_N$ZqJfe`H&mJyZQ`i`%h@Ve_dPiAH%Y+Be%stn$ -z)MO3pL$T()V#bLxxC?5d%_ZW6MJ -zZ?J}B-*4aB%X#ZNu<6i6f(Y>={=znKWqt9c#8;|G0wQi~;xPQx=4@T1U35WtV7SES -z2@&W$b)!4JJF=x&vQ1EP>;`!Pfru-~rjD4apYJLZuXbo_P)M)zD1#Kq2HQqRlNlLS -zr>>ctW|uV`tGG8KT_bK5GAml-i&!40PiA$hP@@g~XpQWr9i`SW-!1gt&k<9niMt@U -zzLv;N=gt%Ij+9a&p)&n?=9kvA95k+u7SSAsHM{dwllEDAcmO(vR;fJc=dXKpYc7(&P9M#qz^ih?O -zM}}yC<1J(}&}N)PYAdqX+qi{?xAxJUlf_#|vhU5QG$&H%*;&U6mp+ -z#`rL}ZFGx%YQ>^AaZGsHA*bW1Z7&U@H@ryeGtNWr_;J;x#>#lt&bm|L;o*BbhQ|5I -zn<|A?dmFc`uk=jBlf0rqE7k*FsT~*7MRyH#5$=H)&g5qA%yvbE?RG77q0&L`rR*&0 -z_T>F<=&0nd1cD|E{#+%Y?TWZyyw;Oft-nOL`Bd|~*e85VZGB&&RBRQB-a6dda+%iq -cdAHU$Pk2Da5jTWPn|?|lgd7@B?N87A3!Dev#Q*>R - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0010.png b/themes/bgrt/animation-0010.png -new file mode 100644 -index 0000000000000000000000000000000000000000..1f64875a17c6ac9bea646cbfc133dfe5013ea639 -GIT binary patch -literal 1613 -zcmYLKdpOg39R9JHJ1fbxTFG?X)n&+S5lbae%w-K*tah^vEeb2QBbQSysR`9_=|VMK -zR%gdlC!;Va*AmH*R90jpIaAMh&gc1lKJW9q@B6&p&wrn+-MhT?bwZaWJ(3vY#$;Q0CbHOTMalXG*yvqJg;EhHX5A@AY)hzD)JzW!H9@Laye1R -zXc`a6rt=xBI9?2r7ei%GxkxUX#$-}C{~;ohPGwRe1+8FJl<8uWX9SN5U{Gir5{*V; -zurM^*$DnhCQkcsht1+ -zM4;>mfpa{Sy!2-{KZ;J}!U7@~Y!w1%4DMKw=|%tmj}SaP0)w^Figsp)dqLBq;TJz! -zT`(Fpky#5e%OjUV!n8kyW!*LWp^=K-4999WkVsbB6G}h;mKHazyl9ytJ1G=Pp70!3vp~YH}he`t4 -zGQeLudDFMaN6aoNxk^Wc`eDdRZTl280{qPp3!z$5<9gwD$SUg**LvF&Trnue)sUnf -zOMk2ce2;40y&rqL&v0!!LZECMy>ms&BX?syAPccUf=XX&@)U+=)O?R=nVxLhQmp55 -zX-zjV89bnIZszQ`-?O}WTfkuR?4iN+3h<1sskFfzbC+^;vJ{Rr9en`9-yShiEHCUi -ziF&Db**lz4^m!dl&p_RGR#PqycOS)9J-F<1zCSn6tAv886GR2Z?Z+tHL-Js1utakl -z-F(>r25euW#2^`PQwtpu_84T?rUpfR*b4s&nK2MPulix$;0V%s`XP>7ma`>*SrQj- -zE>v$wVVry_Hi~}l3gJ=au67mtg;&6p2%Di>o}J(fe?`vtcRwg*4k>MVR|*Q99h6zz -z9vbc7TOx~If4T(kfUGh4sezO85L`)nPl#@kL2 -zqKG60*(|IK^Sct9N6JZT|Hkc>6Uif$Z>4S3_*)G>Y;!b+3<2M|$wPyfnHNWOIqY!P#O<&$6z4y6nJjxPt6Za4`ji&CfFE?AI)h%0Rr3>GrV1Z`=o* -z6Us!58rjRIAikk}r?W_{rEz{dpqDkreBRPJ(ENJvLv(+>uMAS94Zj(9LPA`r);HGN -zLTZtiKRD1cdcZg--PNj_v)@}or@`79#}5r9xD5q7`zLQnS4Oqhu(UT(vjg_hVqPMx -z8%BYgd@5swN1G%In|(IgtuBSYLsPr-VlM6c#(!&OdHhE5vGnNrA?TT+(-+e!z-vr4 -z*RxbSD|FD?OU&JE+#F6R6wl$FI61XENvzAy<`Agl%IN`?0Eus!{YVzybX?(?_Uw5) -zMLT`+v#8nQFp-wrmmq!0$SOobX`0Rt{igBt32ze5&ELCV3tgQS?edE2C|Nbuw5`tV -zR>%1Bdz%zZIsR#t+c?w7U*6Gd?zP;^omVUXU4IBqxH=Cl-Uoo-wac>>PZs>1eYOb#!Pi -zbZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_VuH;C0000ObVXQnL}7Gg05UK!I4?0V -zFETSAF)=zdIXW;hZ*B4#0000GbVXQnRB3Hx05C8*FfckWFgh_Y_1G7K00008bVXQn -zMsi_oWdJcTQGWRT0000HbVXQnLt$-Ya$x{NVQpn{VJdbW>wx -zZe;*rZfR{{bZKvHATuy#aC0CJiliLMUe=XYJNLD%eqvkgs!jIWp2pcw -zu7<9q=zq9bUIZ@y*ZaV3unXJ;-k%A61SsqrM^NJ|qysiPC%DDbYe_M}{=w%(v7CEo(sGq{ul-2Vi; -zM<;HosAN0a9hJ;%>r3Ey@F4Jz_!pRjL#R{FTDAKoAv|j`lCsIjPk@tjb$2Rf-DoWv -zNr2sF!E3+(I+J?^+rWTM{CVKi{|)TceqgtbfhT~8w&LKD-FOFl3qCWZ@#Jd}TmYRN -z0SWFwEBFf->>~IQ{0e5AopL6D&aih7ybaz0l8J=u(7V`w$GP9!H1@>63Icitq=J8t -zt=fvk7vKzbSHX539C^nk{1P@FfRBI)kICX*HI{LuNfz9X)j!vE=YhR{6Y#z-fOFV- -z1w;Eh8;V2r?AC|iQ{eeZ4(*%$3u{TFeHy9U08Y71ynidd48EZ{hiwS1Tq%XPhppA0 -z0=P=HLpAoj-KCZYTjxS6X$ZU_4rm#vbj@7?$r)z{5n@y}x{57C8o -z{q0ZJufv^o$<~>Sl{j!)38?cPU`Jr=T5@v8*U$v!m+j7+{4_V58<%Yc$i_(*e(zQ< -znM6wj<93$`ta2u4H{fooypv_8UrLy4PFCdJ5W#h02@QFt~9AzIaif__fEaTml=?+ -z>ny=pH_}0pQdjjoK_~ka;MG>r=e3+^PcaKCyp6(yeCz)J8k(&?v38@q0q~`iio!8E -z1df4wkH!4tpRmhw5yw4S*Ct>Gq+E?pv7e`{yb{|~&fY>7To*cy{A5{2yohk!g??Hf -z1@9ShYHgXXpK~DhYL1|@1OB_UW3W=S2`U49Y=C;jEZe7f8a}+JV*~$%GN5x1GN5Z) -zxt~OK5nwoH&?TMmtGWO()QF9K;P1Iw#Nf!xQF!1A@SfE9E*Sh8@VCN;%Cj -zOW+1Nhr5w>;9dezSQ)YhodXBaYf<*Fa9B;`4hd}6pksg0VcRI{@P#YTLPc+(KSEY* -zh2Fo3Bq6^HAE==k)Po0jbx-U2jNzkPf=CK4(ug?e74yi&bsk`-H3nn -zEqb!4ig - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0012.png b/themes/bgrt/animation-0012.png -new file mode 100644 -index 0000000000000000000000000000000000000000..cdefdc78205460aac77e50eed3ac35b2f2c15456 -GIT binary patch -literal 1619 -zcmYLJdoCghqC)<+b5c0uM^X(cHsG2}MetYtU0XllZuI3l^E3$5ExE~T5K -z%ch%^FG)7jgpbBhs0?4@_F$3m5r|ZXTW}43qxd0`x3j^z5b5$p8xF`Mb~<+WV~@ptkhaDaiy-L}SFMH*g?lxX5h= -zsbm818=O%nm$`Oq2q>B^iXlWYgA5QDR62n}Wik*hs00=pVKA5l8jKeWd%z3H$^Y+k -zM!EZjv<`r>(XVhWkw#`CLI`vgh~Q>ydYQQs06@nAaGUmq>tvS&GD|~Eaz^xmZ(c6N -zX=T~w+l`8_d<_>{hRq@!~^nAwKC=n*M}dA -z^L>3bt@t&`@SGT*_sKiL>7i$Chqo=WDTTG)Gc -zY}XBo68jWiBm5?9h!;tupOQKqo4J~Onzar -z+hlq82QQ*uM-LR+i4EQG!Sy(-E~sjkrqlZRR6l0Hma~Jix@%^7{Ct<#wCDCk_+Rxq -zUsQ2wDdT*s79}&+8{+9YYgRvhUL>#|ys%RVMU@xq@ayO`KO-`IbnZ>Jdt?DZ2f;Ix -zrO0b;hr-3J36SrpqRnwzw0PEsHofByXJF_Ox1{332DQc$Kk}c+TD8hXP%@7=)0Ai1 -z75I$kS^Xmh=^9>1II@-+azP89k=k-~%7KgAF&aIo*Juzqyh4v=1oiRhG0m_HM%^*zkQAhcveAX4zO_|N16-$?2T~ -zUDL^hZZg+zlPzZC^tP^P^~3I)Hmvcvs%C}LwdLd|mNw5A -zdn?+6FPf^K)=Q|u2lBkSUhP*B>HIQlNggr(aS=roWgV#<>z@71MtI7l*HZQIV)}R$ -zX=5>_an_U;UbN{NwB|@#iD``54Yf@EJoC#GwMEguTQYCvWkaDs8suJ=Zr_T%64M>^ -z6lxtA2#5`pt%6mW@~>Oz&QohmYtWFE^)?A22~A)BkP$LJSp9xmn0wgRwYvus -zMn>O#$@{t;=(6bHwY68Q?#s4#&gLzcoljG~eV}W<>TJd>S(5vY>K&L$$&X6G%m_qm -zDX&Jc@_i)(2Qb-01NJ~^c&Ek8vH|Knre4e|XSl=d{M&eV;YCtmu%Z}{MRh{JRv -zN38zLrBKSb+C+uU1s6QY_tQj1NK&x$(d5^)(uR`)^ql3(Oy*;fs`BiyUAKkv{>@Px -zG2848v?BQrL^QQZ1!vu((^UFv?y4N&vRxe)<6CV1{Cn<11wz*8Tw2p!%!*?2=Y-1L -z%6;YgxSA$E2i!W!`8y#pYn#AR{GiS}6kw?pe|Y^{bclU=etoRHVyBV}k~S0+3w)Q>(SlJ>DH -z%JXaL4w}+)YEO17!8cuhBFssDdJA$;2*rEc6_`2boN6C;GV3*U2ut_l35<~m5awl< -zpV}doYYQT*_-DGDXAj2@9A5e;`uUrh+~RwEUWBp1&pP^SkI;%eM!|v&GZH4rgP8-n -zQo?t1F|6;rZS<)r?5W4sqtzG1HO_Mj6!=T?NImR{9z$GD*t_ZC(27ZJo`2h&-D^!M -zrCxcSW7qSgN{W@$oq#(ZFeZByYhIuz>epAQqB*76g~HkejW$xXLG30=5L< -JZu-S#{R<=3;bi~- - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0013.png b/themes/bgrt/animation-0013.png -new file mode 100644 -index 0000000000000000000000000000000000000000..de5aa6ec0cd0e46ab5e254855ce0ae1f01bbe6e8 -GIT binary patch -literal 1617 -zcmYLJc~sJA6#cQJ;hI^vFPW($C0mP7(uNs{=7dvJYN3!Dn}C?ODHk!%)#j^J@v=%`2zhY^Mr -z3c}Fgks>so9nay#iXzaW2o{GWL<{+mTrNxSA9{qcSzKml+H*Jt|JgJI3DM-HRxHg;0cW6umB8(`14`$HeKQhP+RUiZS228zoUL|Pb&%K{kONDf03$>TcWF-Q19N7I2c&|tn`*aL3J -z68!(C2WCAb@S6yfm;MNk4`Z{0jx+{`40<0Q^!oqnlK(v3lK|!nFjJeh{2J_65GOsv| -z^Nl1vFQvj-CTgFngg}f>Z0ls|E*HMp8r~9ac8Z-H#^-9jTVJ#t_>Um!{ -z5BWT5HmT3A-EtU4G7N#YsG1L#L2Klu)YPg5qx&%JFPhym<=Z+a>)O~*guOo><%KBH -z(@*KNhY%I8=~P6m!o(gb9yFLS(Czf8`TO)2qd(s1;8FF)tDVzzCZ|##s8;X|ZQ-Mo -zgw$ZUjd<9BkGue}dHA`>(WLXK>wMO6&E6OT`W#N~)arf=CYd!H(f=w(iMMUc!6Lq> -z&ncAdbPE3+4%xj5B4xjFhY_PuiAFt9b_esOT&|qNl&Ts{6Sfe?;gwUbd#+3?-KA?b -zo+v7CLda*A$pts7JJpH9_C4?q9;usCS}A&>Ks4m$6!(1Y@dR~wgRw`pQt{Be1e4E# -zp#pm(=4ZYe-s&NXn0LFC)|i>Kr%I`X4oU{!x&boz)=SQ8FL*4|gljB)yOZP``=L|N -zzqnWR@~C7>jZK;wICwv{OPZT%ch7_bIRr&tUhm>Mn|ldzeNXih3bIZ1B}a+0>ATxE -zH3v`ZCayua#&l;#o2wq(Ni=9Hli5n+wjUD@#)h`a@CJDo3U`P#Ci1A9Ps72b%WE`4 -zN8F^P54*^lVJ@_^vht($$$<%1Di>qSF-PCCplZH0R#D+8dubu4=--!N+cK@R6t7_V -zoQ~&Jqv9@)9;I+$mvZv7$U|3){nB?Kx}NsZEPC;)8#mPXa(%ygJxgw_?1NNo&5z?Q -zwO?voh7Lp(qFm*L7f0M$5D}r*4fD)8*hWXbNqe=c`YI5}mKe2gFh=l&`ss89_U@l2 -zwyvA9B24J6R-xilBy%bd@6Z=JCAZ6Imz;moc1l{V%~Ft<^6eTuj8*^bH*OXYA$cQr -znYlSZelLWsTL@#xt8P9ha{9aihf0@BG-fru>lnMbJ*l`aZ)yIs=YMIBa -zj(S|gy+iGW2pgYi(oyrQn~K^hWvFk{KvzLZQKHMNbHefL-zV7p@ONT;YKkVANdm^8 -z^)GVTXE)KGZcsiy%lMeKyZy;rba;Sier&w)_^PyLK{o>1iYDFZi^L2navDn?+i(Ed -zRzVa_AwqHDEpEK*qzKt=_{y^>dtDfS#^M>lirPY~)v8NF -zJDMj@P5ineiN)RRR^tTin&Ojwbyh7go(Z$g|2Vc++KrA((&m>n-`AUOb|R2`!UrA9 -z`pl{)kO#ZdFE_gl*pk>?Q*A#0)KJ0FENS+IU%}0wN7hpEd$~!AEf_61HReQhT -z+u7;s`tLNJA4*U^CAK6ZE~`J4gnZy+LNffU2#KCJ-3|*9Z|u8huI};dvT1F>tzS#e -zb+YX2>&J(hOH6seL(3auj4CfR>JNu$>w0cv+8%rR9nvzA(M#`>n1Lq|pm_U}%eNg) -F`xj=u(4+tW - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0014.png b/themes/bgrt/animation-0014.png -new file mode 100644 -index 0000000000000000000000000000000000000000..a0199041fce991f918eac5776b9baf7a1cf10287 -GIT binary patch -literal 1618 -zcmYL}doj2cn&PqX`r$89;?c(#WU?3XK*_La~@6 -zR2U^1#h`L%kulNXsOWGqjm$!^7!*34%>0kY5Gt7-8p3-ER#d^)s~m%)$$%9aV~fII -zP*zw327|Y@!=tStY2OSK8Ljn`hfkdORE4{W}3R7?0^dgbzWFVMMp#?`%BIyV$`YeNm(462Y0y^sfPsN60 -z=KpUZ(KZfVuRkhm?SIQTBr2JO@Cv3e6a+9JJRyJX#R(z+@& -z5_!n83qybai3)}v6?Q-Tg~rK_inZ65itaRAPjt-KaI(W(IC2HPlaSE~O-+B3JI9%x -zS$NPR!uWRW^9cwDcv|`E)0?w3L&IZZWA}=UQjs(H3+(AS*=l?J(;3=*R9=UN`NGx8 -zlG&=^BQ`lbQXgT+6Zq7JNx6;m#Fw&3urIlH2FlQ%NfIPT5Q7l*WwjLzWWpZp#vw>^ -z!o_919}q?ZL9!f_6n`j7iE;pa{gOZx%FUAN4Hj1)@Ts(L=cd)<9^@tItU&8~cp^cw -z0NJS@q(7)q)J->EgCXNJg__Z!HotsPo4P98E(^|)I7arc=N4N}%Z%la*oLU8b`9e2 -z+e6x34iE>`k@jI18&~H(3C^TJY_FLQyqb~3n;QBzDs7~jwZ{ZOT;Cw?R;x8D2Z9XM -zGW`cW8oW0uvovWC=7W#NFUK#KFSNiy`|!6*r;_U;{Y>u_&$@n^2$-yCACZwNOZD>l -zf-e|-9<_k6Yr62bBFmr+{wk{0hop|NF_44Zr>_xnl@IVxSj~*_drG=zSB!d#GVOQU -zBnx5BhZZ%619^RQqpN?+=7CX4T)T93`_P>DB5dsA=n3^ojZooVv=)f(6TLe>aq>8> -z^mesR;Q3RsBegCjt^9ch2J{Sg3H!{y&0|t$adAh$9m7$Tq^(Al*IZwu$}WfQ)L)iF -zxi_su(M$$oox+5i!tG5`>tUh}p16CyZA&7-;O-UiNJPQ~(TV3NtbLxh45`OGyDfXsodz)(A{J?T53(mcMVKvT0ZiZ_GmiTaz9i+Qsla$cJ -z!4gh>T{Rf(HyotC?5U_rJ~F~2AYIMhcjd=?c0K4l^1*aMR36S{3IuNDH@Co>&8l;} -zo_)vGW^)RUHI?>&7arF3+}E8}r$U&fXPWu%3g{0lMQZO^QRtX;TgHP~#J@ho8G``@&t^mgFSgn05iF8WBm|+1^p}~iq;to{o~?C^gThXEkmQSx -z!2ZSjPWe(@o3Qb=+c>0Z9C-6q3jV2K51LID2DE}4K!H=Sm03O|)Ap+0${)Be20Z)s -zo29f-n>S95^NtH|>0T@RoZUS^dKieL*ows+Yl9QzZe<|V%&IS(fuWpVrs=df_|(DH -zyUmP+Q+3wW(>1eYOb#!Pi -zbZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_VuH;C0000ObVXQnL}7Gg05UK!I4?0V -zFETSAF)=zdIXW;hZ*B4#0000GbVXQnRB3Hx05C8*FfckWFgh_c^0m{N00008bVXQn -zMsi_oWdJcXRuequ0000HbVXQnLt$-Ya$x{NVQpn{VJdbW>wx -zZe;*rZfR{{bZKvHATuy#aC0CJUtc+2^RT -zlCSpOYp=a7-(KgOn$PF+*>bs@Db6F&W!;axoqBD1Ke6rYdYkA=r*Ra{dqdYs_Wy5B -zyW`{I`C_qHRimOw&SmWw-Bz!3o?z3tYYyGSa3{D2oC2S>UzF>}+5{5Z5m@1U;7M>l -zxCIzg7WTWf3A(4;0saA(!G~ZMMvmf_^+-r=%s>pO`erO21CIiox|V9Gw_2$;3HMCE -zWKHe>n2b8@J^&ws17a=1hH;d&39u=p20jf8q@-%+p1v3O*l4RbH}KuSB*KLHPr(J4 -zuz-0Y)npCgC9+_&obu55eOA -zeTi$5kP+G120K6oJtLbkC>!V66IO8zRD$v@CT1eMUm5U@z4PyIZbHM|Iq#(}1Y6I2 -z1bziF;gy<<3_lJ|X)h`PCx{tpB;}4)Vo+&4=qt`)^d;`~`_7RoU>A5D25?kl;WP!$ -zwOcgf+Tq7)y)Q@U_eHbs{k9}4P|i4t>|xu_P5ujDVJ4toufy@A*Tp#7>JDpU)f&jm -zbzs(M!V1Q^BuThfmxKYR((i(S^eOBG6Y~ivsVk5URtDENm1~eDbY9gZ;eK>JO{fms -z2rLW65+<=|F;_i+LNS=sn~ZZawV5i(1n8?x;Ot>LNDJVbFn6Cli`?Vv>I&30x@5rM -zcCJ|})j&GarVo^Pn9x|A>!y?P7l30g7WRG44X@&6;bxu$GfW@o#J!D@gfe3I2zVY? -zR4=mX6H+oXAsPA2mIXW2D=?@pArmROl65LYKdoAof6aXEUj=?krt&R{pH%9n?x%C; -zW2gA?uwoMs8~^XQ=Xu2h3GV0kHSn@3(2E6b1B)#CX@gj~Zz~NeFiuC*8zf9%Gt67l -zJ&fvga1K=SGDghuEAUy~0d5QlSVe0_v#XL=kAi!kW6Px#OY?K!EO-g{MVwZSYW4?s -ztBtNph6JptCE*_j_4PkatL$a&s9>L0q;(O$4@2D -zS2mqhp5 -z5^$Y84`e-^uS+;KIpdh1&LgX`S;fh)(HO}(4wKL(eeB$i?Yh7@|1X?Nlva;RVp{+J -N002ovPDHLkV1n9E(TV^7 - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0016.png b/themes/bgrt/animation-0016.png -new file mode 100644 -index 0000000000000000000000000000000000000000..f72a577c023379bf99ea2b7fb77fba843bc9e37c -GIT binary patch -literal 1605 -zcmYL}c~FvD7{)(EL=BTPP0Es7D$`iR%mvd*NVBY@92%E_4krKcWw_!5I4Cv>rWemE~fUFO3fZ&RCoq -z28Y8q<54)A$7XjAtTUH0w^ExyEM^WcIUs<=di*{(S5|WxO6wW?yGlGwYvNpcS8~F% -z+OkD$hgOQG0l$I9V)5#yZe*=#zG#voz!(sq#V|QEK9d`R!eb+2c_@>2Y1)9Y%|J;s4Yb6wW5oqM~`h35r6d<5des}5W%mT%Azd|Fg?m=oetf1lpp{N%9I@?C)!e+d` -z5b9BN^MtI4nrI?BFT1YBpALQ^INSuE!cl!vbkb`w3sMb3^T@5tW*%%GL+vsnIusK4 -zaDbio3+fFK2v)6sL3UOITXwKyKD*nal?o$dRn*AXAkFlaw7zgTsnRyUvB)=jjjQTL -ze;DksCi9(@lPK>sWCW6|>{4ad%@g{^)b$yvR;mJUDti=pzQcHQJv;2%T!Ry{(xu-~ -zhPrvSwHa2YFlr%q(abZ7?Kf;H(32KbYE;k6UUf_2B%afKX7^tPe1~EM)8sV)KT07{ -zcUPE;%-X|?TBM&8C-YYLFU9N;C;jN#c;ds==+KCtOR_L#PumU-&ki$QSueRXGkLYF -zJ@`Qg*WQ9GNrw*=M(qtN9ymEIdQsKb0MqAZZ#?LEZy+_OYJ#zfBnVpgT+~9JxHI0< -zTXP2?8RN1;4o!=&IL*(DGnYrv-7gudTL_UC>d}VcRJUH`xPvN`(fMV9k$L0&sjkui -zlW{5QZCQA#^U`f3HVGkr1!REmfCa)Q7>Z%X;E#IMN;{{6cAlh&i%3Ffs94Pe33Kcsz_?HN-C{7Fb0!6aNS&&PAaiQ7M-z;!jza5?;<@SXd{O|@4pYK~y$CG#b1 -z#_069k=;EDw)+;0J-ozwhK`q1-#b1T`Cz}Pi8!lH-=vz}IyS6ZAWNFq&zVfeRNou2 -zw*}6XkG?+Rmt3HyQ}&GxE1^x5|FlVfQoera-v7c;<3;kG+(81?c2y8Nn&j>orfrZ? -z*w=xm!5X#=Da=0Q{47hJbL#VE-KV>V)@D8q<;flP0<&hLKwCO1i`(W%%`uu6I+T82 -zqjUKVax;Mlr>;<2Hza=@nA7==n2VdGmDN)wL -z!Y#O(09n2j(56|yA4Y7k&-VH#ZIw62oLfe$`Ky9{`!+tx3Rb=97e4{*`f=;udt3Te -vvk7-xn%>0@ZOgjY+gP$!e635U2Gu4#kk=Mgf0fpzp2i)U6giQ - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0017.png b/themes/bgrt/animation-0017.png -new file mode 100644 -index 0000000000000000000000000000000000000000..02926e7137b875d477182dacbf0a3f457bd34ac1 -GIT binary patch -literal 1581 -zcmYLJc~p{l6#Ya&DKXS6k6T1m<_1VANn>ibW@(1Gz&;09bCi)H*;(sX0V$1AQYwKPHO-;8M731}>G!X44XJ -z{PaXzG84q{SUGHN2AF~aQy6RpAIIl0IUGj%f9OnSF*y6_1yA*$DD$N#3JqicE_eb7 -zMeLtj~|cVZq;(D3DOL{uaZuKM1p&>b!-R3 -z8830$Au62)`~YV>o;cr4+5?GZOX8kH28RLAI7~JTWO6weB0h=7$E+ABfDEQfhA?PD -zM*9DMI^*2}sb4`zHu)Z&lgMK5F?(oi9)tkFg(N&@?f?LK4+1IP)JWt>MaM6DebMl# -zi#la?_SgM*zH+%D%-t_mI=wCP+6K<%-Q~-pXxM;)VO?K;$kh__q+|=s%(rns0>B@MxDx<>XxrTDn7Nt -zKw|M*wJMcI&^lX7V%ws)p=Vxw^g`{Cs6r53`Wcn-dKp)w>dPh@9~hN+!N4y#{WAUA -zCgY)7ZH=VKuz`=(Wv8C%iuN~@#N=*;aiu+iv>~Z+fZ=q;TCK}vZ6SSwe!KO~i#^DX -zHSI#u@K~+t!(BnvV0c={`9b8U?M=(~@A9XDq`6gRlYbh^Hrt7b-euL7bgImt#wkWT -zsayE4u81nY^1^X?oq-RZh!ql|=tk*+U-0xQVKU-+!VMoJuiHMjet$!;scdMp`T4uR -z(?{>(5HKlh`}hf4P#rc!>l`Wu2GiVr_W2C!QZKlsJwJKSvgMLYHZNbR4=NHhftcc) -z>HBs;M~df24(FOvxN-ZP(%9Q8DfX*XsjT*jE3zFK=9e|`dS^m&mOs-8d9kG)?Rlnn -z=&Bvu$0|GDs?YOmi^dzJ%$TbRxs^0h?`3=(wg`9IxN+cKz#%cqZJ%uYn~C)Y{)#Zm -z8L6mia-YNv6*oJ4D0f)(P0Aa5CAK7@;dG2$m^aZTqRv)=NNljaP?KqFc3^#XPvi5` -zs4vGrX3XdX5##tKk2>QctfPjjlhLw>*lm88cZ=fp?#((c-KVnAyC0h# -z3A!RG62=#Om9?{E}#uPl)>_a<5BUorNMdkn#Xf$(`U_{Cx3Ha -z_Yd7Z$Rxm9Sf!0SL1{PZJ(kJubuE9^3TkWy2K3x{T)kTTdu`P~&W&xTCkk<`=rcwX -zIv449u;hLW8_eLyyY#s5T12(SaF7BkIP0T$6KC3=sdSAy?)XT1wJ1+EvvYK|P()s% -z#ky4-b&!0WEr{Q{v&dB>`HYHIw)VHJx??)SX{6$X9(Ro=v6*Y&tB2F7kG^)*@wZD- -z>WyK)zM0EZS;l{gUci~mkEj+Jl!>0hy|X2NuLB!=PT2SQGi%3f0f*F4b`Tg~ -W=68_kkLRFs2L$@=qSW{#6#NVJGszkN - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0018.png b/themes/bgrt/animation-0018.png -new file mode 100644 -index 0000000000000000000000000000000000000000..667cd7d4ad375878eb731326ad70a12f5536d389 -GIT binary patch -literal 1582 -zcmYL}dpOg39LIlbOxRpg*~TO#WE)SK>A1DIwH%Qy$o9`x=erKj;@6;_1O#1kxkcMVc% -zdMnxvrNoK=e!>=qvsd&G0+i1iDl3+_P9e#Hb!S8Lm4nw3HU2F -z1X=&TX^V64-twDo_KCr8DBY)n7|jj1GnwZ!+n)WaF81$agphUB -zBm>2XkIi*2kaXP~H1rZ|Tr1}-6uUQ^IHw!gno)F4LrdR{l(f!WA2U@vJ@azi+<-^c -z`L3$*@$r=SL8qF!y1MwoT<)^r`l9krDSy|Xe|abVl}2q8|FIaaefqJ~_~n^$>uzcO -z7GGFR2s*Uv*|9|pDduG0AXjPdu*RsKMLXBI^OiWF6dZyD=hB0lLdB*UQMe(>m^~(`eyqtzD(@==7!bpDJtiQ{u=0@b}@zDI_1ju%*^EhaFRzkH(Kpe -zBd^OVdRv3Zdy1#g%#|7SzTT|Yk$vB9t-p$>4YE_+Zgd+pYNX;aJ8&t6u!g`jM=Pw- -zu+DHw8#qINd3tq1vV*tExUh+3&D#Fv>5V)m-Z5T0h04iQu$b+FR`au}Rhgj21xwy$ -zsOSYul}FGQ4zYRA4bW~(!2pd$<^frBl$@J -zk3{o%=OnY9^n>R*OnE2DR)xY1h1~=vA})||3Tkix@|?*xJ~&Vc*=d~o`N?cS2SYj$ -zn7X-#Otq*;6(pHCR}-z}4?NLefHhjaL`L -z$ZZS!$iL`6bKhaCgL7n<_Svre+KD^ruNDWsOvmyI^qHmY?H$yCCtk;Ozr=jZ3*2(M -zu|-r!Hi7M<+BmuF7>;jnPg}j;L*=Pl7gl@wC?vq7@RqQ%-xl^pBFO0dzzpj{B({N_+2=er -zaVZ>>+~Snk!9SCeD{N(wdnI-Jpf0RD#k%o~Ta-F#FDT@f(9tFE%MkAlLF$w6X=(0w -zpgg#zej=eePju~~^ja*c+jKAE@6Ph4%nsjkoJVnn%4k;8BwNzB3Jisc7C%*TxoK@SuR^j=w_(hg(>Fh$^OJiGGEJFiia58BwCeyeLGszdu+&# -zKN~5c>{@&%c_s1baXQ;j$jwpgl2sz-1zJ@hs?lMUabbudgksI)$tL5aI;P8ZtFK{G -z{*#fI=NnJ%OOQVi%8u>IIf~=JiTg~&&qhim?tawHM3&fxSe3;!FIe6^N&m1QKWL_Ufa_$^-&Mq*U53MYLnO)l6faRa -zs4OCvH}^z0>BL-f>zyIFjJ!W}-t&IW_w#wqd7kGy-_Ktk;b}Mg4rLu>004G46C6B1 -zgm1QzA~?C>;om^m$|juW0>Czn&6WeQaorc -z6ecPo!#Og -z^xf2WyMU3Vz9tdo$2ik*r0MU(EN#t82K$WXwOjYR@Lycdnhq2QjaI(oScVLqS^A#4 -z4p!ah=%}>=;!NLS7sV?4DL3a+cW9OCVz#cP!h}v&OsQ$gLPsRui?(sTy!`t@xQh{C -z*I3$g=pr7EKXqwi3W%~f9aqtqI|LWK@OhXVxUq3V-&)XbAh(p}EzlBB1X|FUVn{sJ -zcK-g5os?3LnN4k2O?8^=Nu$(88@59AY+%Q{x)7HlI+#j5~4hH&&G5sB*1qyQd=v$Q?_=&_SC8;`O3AJ@!Rui3!+15uXjo- -zSde5FB3-j6aSL_YhojfM;)bIgHc@~IL#Ez1x1DBFB1}<9BfPQOu~l*&{F_x_NBCCQ -zllA^-G~M{msrr6R#@Caord{#)8h52gD>W%R(#b~o6yI71r|hkRN8G^agp&=-+3i -zV}^!F9-fU}u|DaJ^py)L>~_5blgpAPLx&>@CYRfLCNisfopW+j{a=M7N8YFl%h#Qs -z{GsEWSZ0DR$VBS|VkE~kCyj5pAWQ~H*u+Tg7uSsSRG!<(Vp05oP%0ieY)CAWgRcOaZFD={QcR}OIBO8sS58n>(6W~a*0rCCUC53Y5y_nL0Bd~YCz@zT) -zUK|a1V9c$ZyoRX8Tbgw!>XfZj*qwu}4umi$gV^!@1yS8D0$mwVK$LnrJ-&i(u8N -z#x6niU=jMZ^QxWUAFFF7KfJrhXWM*w4RK`G=g9lViJ1l!Q?V&BVC4WGlc{fAN%h?p -zDY1gj2Oi5Vx9TXmd5Sb@mOXZ_O-o?f|6;FX%WoRYrT&JzfPRC%;eZ@SP!zA{1XmD&!ljBv!pG4ES)7%7#q`2UO%&QEl&2HKfVDGXRyNf -T*Shb6w+?W2baN;_aZ&IujE2>N - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0020.png b/themes/bgrt/animation-0020.png -new file mode 100644 -index 0000000000000000000000000000000000000000..d228ed84fbddcab44ada03bb79b5c3d842e58a24 -GIT binary patch -literal 1558 -zcmYL}dpOg39LIl{X(UqEak|X0I%;LNVkvhuE3IiN5+=5pwi%lZF=j<_ugB^Xq032# -zBAvNkN<7K6W2$l7PKPpCGEue1{f^))Fp -z`_J(v>LzYx4*t~##*z|k7p9}To?q(9cZ&e_KoemwZS2Tm$h+#QK1xJJ31VVmtj6oab#V!Vz!J66f!vo(p0YF_hm=T+8YtQ_ -z{1@DY{P_p<{RD6eJbb_O=RSfyfwht9Yi%h4H)~`7%V(4vwd?@i$lRa= -zQ81ve8p}ZB^DDGjLJaAr?!@A`-^*ipifycwvr0#f+2(4ZQI1y9K-Y3hJi6B5^p^aM -zAxp<#kAli)+Dq4Y$&sekkVjmi2&q}3Ri%4tMr!o6OXQhxvfMzB>aKA**{+PkKk7p2 -z+--Xk_;eWl=-Tb#Z4zR@d6)Zrx;HNDG#u-QB|9ZVUOt0Qzl%ee<(~FVU!x>{yI7<< -z+SdN8F|9W4UgX1GVs*cMr%(OY25E;f1BVv{oIoU&i6TgA7sU2>-S>hWvpzb1d6!<_ -z50i?e3eDz8%{eXy>5;IbG=v|K?7G}jfB((kWzO!J+OoK$q!$$4)oA%E=uj#B8%e1w -z4@x~81&1Vl=swnvl1mud;#)i&MH5BA^K8TtqT+lL4q|-0?CRTr(X6~&a-*}D7Qxi4 -zGQuIHIGW=N+YYS458ionBVxB#HTrBcP|^aS<1&J;1UEkg-hAolR>WO -z4g=$G?H_iXqr>0CX14KP--zkyz)}Fc$xyc<(fFRJ%$*ri0X;mqE9ddI{##x-!)vtMIJL^pHHU_#4@B)V -zs$$75yu4#)Ty3Jv3!NUkS8W)c56%wSP9{NcJhXIU%TmIVFNd$7y3WN-R|;Ds3I9CY -zm7OUq2%YvxzaCfGW8iF&`s4sSWMvP*(nF*n+(wS8eF -zzt{AGqa&%Cz2X27?)&^=liTH*^|6$^)}aAVVThquUznPmO|o2v2?o^}M9EEW4Z94F -zX(~*P89$kMR&U=noj&28@hNbww_y}g+qD=8g}iaaqGU;~d#|aB!%RsNBk3Q5LB3!+ -z@Of|vnsc|a%Ti|#A|4jg4LPjWa;`z%uwajebHkNm?a>2P;z@CixGH;oF_j5oWA145 -zllb1mc!@J8^Hr;eF~`V&C@xOxAr4$evLzPz -ySzG6V*gSPVFW)9qI+07?IazBPQu=YcWXU(fB0{)GIKHU**8svnqI0n$CGKAn?7oBm - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0021.png b/themes/bgrt/animation-0021.png -new file mode 100644 -index 0000000000000000000000000000000000000000..e7bd0f5ca29b11e6f3f14f5b14ffbfc53dc2c6f3 -GIT binary patch -literal 1545 -zcmYLJc{tR09G-+I$6#fm%(Q5Vn#-1PlE -za%@|Ol2T|R_cc4Dk(FZ_=VbS%o_+TFd_Ldz`M&S_yx-4XpQPjNPO4jVw?ZHgRiZP& -z6GX&DD=C6ECp!8I2+AyH3I_t&rnS+VAUE@2AZf#O@ZvfKhXN3E5R(p|LxSmaS^%08 -z7Jxn%%tf<8qv*_VZV;Lq1keEvn!^faFo3ZC5ak~VFarJg9r9olY$J+5;{p&I28%~y -zv1ptr0*kdcXl{Wqg@rs5fF9_Eha5}?AQ+6r_rhUEr3710Q~EYa7!4G0*l1G4VUW|< -z;EsS)7!C3rP#BD<>`y!i6ty=*QUJgJAT&lWoyHAjG7zSivn&omeVh*(v^ET$;DkWf -z|9_$|X4a%PB2d=+79JH43UCl48l43q1dGG-a$qJ9i2N-g!H(>uoY2>icESOwFqg|F -z%csZ-d@~5!9X)g$bx^LdkKT{Fu7S@MF-%)-?*evwMLNv!eH#EXHm|C9Tv6eEVyR)a -zVFWw{B_$=h?5ntyi&mYy$(2s_C(E@C>jF3@-_ovV*T9`=$>}eyvuE*xBSS-a+T5>^ -zeUp-!mClsRJilt-NMNC*mDO;v>cj`XD?yf)=s<#q$Aa0X*J -z{>iU~7EcIbw4(9dGkpjAZK!7nYEb;iwB%BCIiTl-fG_9avAY&lEhD+K}xoB7#R -zC&$3APV;`aigAcY>Uw>fNiM2hyM8;O2}N9*s1lZ?NA{xxYVTi(pqq%TCz~hM3>%f& -zwK1nC7R!u1Pz`65i$6SHH$V2muIQJ;ZF!hv!Pt7ehj5_MM{@w*n<71YeXZTcTD<)a9DP -z_4?wa*xst7C#_E(lEp9Ht9gZ~gfgGM3v1O)FZ9bFRYM_PUD?4@T&m@|lN$m>)e-bu -zQd4R1u~?lQ8T}?vuyIYbj-$Mhz~#Nm`yVu46o$;XvCJaxW*>ivZ`7w!4kZpPn!MJ+ -z1yY|qY!mc-K-vxX|C9O$H=qdajGLzT&H&yzW9o+5&&8JU%P5!)xrH(tlcJF{(nZ-X -zeqEb>176zWRD4n&j;&OHD;7r0*NoJc39kb?@AM7bAd2+PUpk|DUUG~7Hm)j5=$Uz+ -zaQo_-__a@O&DS@=I9pGrpzJLgvk5k-oF~u^iy&36Ei^)yi$5$v_obXOUvJv3YU-yJ-qu7^K7GG#BXV|50 -z*SL+RbQAIEH$FnV6X83ACGKgxFLd-zn^+*3|?C{(agAHk!}{#NDB-)^g=-0l--i!u35hHnA12ciJy46=Ow{9_0(P$WN!jMqUW_m -l#LTP=R?h|}IX$=}Q}60dsL<_peh02H2+_fvP-*YS{}=dUzTN-; - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0022.png b/themes/bgrt/animation-0022.png -new file mode 100644 -index 0000000000000000000000000000000000000000..4c7728223e991497f28174a8789626155cb762be -GIT binary patch -literal 1541 -zcmYLJc~sJA6#c0fC^;5dQU;P*l6C}9%O#f#+?p{=W)ZB2%Qgf?x%2IQ} -zGi94bR#>8^9FOJ{7E>dZCQX=DluNWAq0Y}bbLO4zy?f5R_uTLO^-3cnLM+Tzn*#t~ -z5f)0^1tMm#VN1Z7nw9kt1T%hUOez4ttrpt|I9-nf$p9gVEDUC`=>U$&_U=(sOikK**0|dOA -z7tYNMM{viux%qf{`{3P?$=&6kXW61Bn#G|5c)ZW|M<9e4R_H+u_H7kGA}A6F>R5d- -z$Sq&wwtYKXmlzc(xU?g3Ly&QggJHpD-pCST6y$s{5?2(2D{#F0uus$D9kz-^P|q9~{4kU~ -zRXqn*XIopFUw5m=;7qb|%l=y_4dX4DDG_Ri^|y@XPcwh?$@@E=`V|U=(x45h%RUR) -zKg%RG4D!F6pxN^!M`ft9ZKY;XsxNjj_ra%ehQXv2&!!AeRkhD -ze!6|QvN;*O_5`N0QN9IcrYRosS`~&W51mJD&P+dxI{FgJ?DsbALMlXo?@vfR^<7A- -zdB$+rTgJwP4|{ar(UL>Nw@Wb{(4|GqTEWNQ=yH-cX*oYc1lLg{COm3`s-U5CzxB}J -zJItopd!-5N5pB?h!$p-{=-iZnvVIcTX})|^uBWAyYP^SF9?T%w@%HCuyiVw7RQW5$ -zpFxA6mq6zayq?CAc%=j{yZ7#yJWv;S#N`OAsr0ya= -zE^{}BVI$1Dc{9)3_tWLdiXJ=S@S$@O9O!W_rc;Y`RFY>6S9sx#&IrHbb*JtR-?K8O)FZ1rv+JtAe8G+YHvq}D0b$1ON -zNxtm{i4r&JABi@_buFT{AG!79HW$U0uDew7L2T0Y^Q8fvq`~DT86^J7V -zh(qB?i==0vw245{tJgVvtGcyV<+gJ!(C*{rV(BL!#20juu^YwM7 -zi&+iK7C~`5#?4s0;JkC>_iNk7bg)>cEMz*w;H#kQ%FFJ#>bj=jPK_NcuY_CeE1?;A -z$ECfy#;Nk{(f28`6_g3TIJ?L9LtYT%uI+qjQzMB|>c6Acy*|vQ%zmrx_CEIjXimIL -zXX8k&ORyQ*m={|;6&z62g}QP75(Jx{zVzx%jo1!*exMV1#WMT1R>$KxXGym#1wxZ! -zmSPe2&Ar33y(`xgC?st_I^eHA^p`ja#@j*(79DH(Bm=^d_& -hmU7xtH{H!x)-ud3U=iGbG{oY?s{^Oni3p11%000(b -zl3x&r=*3>T1e^k~coGB{j}$HdfMtlqh5%a -z;M1@SrVz_xiP+p^VFFf|KxfkhSOJg8;n4a2p-U`_&WVf7Y=(kS$i*l>s*n!gajrzH -zt1A{yK)bqne(&LlBOnjeW`iEt%~YLHMpdBUAmt57DX|rU`m;K$$_#t?u1-%Uj2MqI=dkeT@!O(+^1A3Z^0Ze -zLCapd)S3na1caKXqOPP6DL+k^q2l_WwGW>>Cofn3Ir_2yYrMT{V^bBh;djhN -zq6Z9lwK|-=Fb>gJt@UnRnW{0Sd0 -znkW(Is-uz+S})v~yXMxq%9(4;$Ad+~QrG-z(2>2foP4578f%TsP#!=(PwBRVs2F$c -z@}J4lsbqOxkv^)i&oQZ^iRK`T(3}NYwX)*2<_fauG(G~IIIP}s(JvS3SZ>EX)+$i; -zR3CMBjq)~uAxqb%Ii-_rEeEu|ECJ@ix}Hlt^_$7#=SRb*t8ZAXvdy}%({lRx)pha2 -z_73xoskqRwbp5GO5%Th2o+Q5aT#eU6LS*)3lS*}F@(ZQp-3kXZIpKkV2`_gR7v($) -zfbY;5`8+ZUa*&4@PWFFDz1#dLV%x+?xSjZke7JPGMQHNV9qZO(hY&x`8uizojUTS4e -zM$5eOc#OnjYs=i5(K1!sHgj(hyvr%=)(z=(?n6bzstb(P=5iqe>QI?{igBiU;pljiP>-Osa|S*M!zZ^{e#gn=bS*!Ast5TEo-dsSiFKS_E= -zpesOK1XE;M<#CTZu0c#=+G;XvZ0o04DO(3gy;Ez-C6LhpkwZ~;0Y~!=^S~G(PR)e99AEILYMI&l76x -z2{AI{+Ijm82TeP79yA~Zq-)<<3M=Iez!#<22T+{_TS^D+#ZwpFB - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0024.png b/themes/bgrt/animation-0024.png -new file mode 100644 -index 0000000000000000000000000000000000000000..ed52d3d40d594dc4ff4c0f9b796b3d0243a9aa81 -GIT binary patch -literal 1492 -zcmYL}dpOg39LIlSN7EQKGMPeHa@eg4BbQ7}LO3U#6WQz+W3$CMk6|s<{;* -zHJ2h?i5!=-dJ^VV2?xn7PVIy`Q_p$M^L#(w*YmvJ@8|vf{Ph)id%CKx-?$zC0ClPx -z#YaKIwSlQ9Zhl-`P0vwkW%jQH0LUDpnkPY&2d@eI00_6QiD>@5|V9=AFLKRi$wJHit00Klj!5T*( -z;D{tc0)f24hKwhn!oD?FaG^4!{2Vd|`zzQJGw2+$&!Y?^?{i7+JLk8=5j8l%aI0BSAZqu3DS -z{r{#Fekav$S)j0y-^ycySs>rgm&WEQ2oQ+Y$8*sZ003oCDNcU=swsaAMxdP3Qe(Q8 -zG@JFHNL@>A>ko5ZF^NhDB@^w)Q1jwjOw^ZWwqGTrfTnXXcJ*zIGYb&|_3Xi;H~Y71 -z)^?ER7B8+oAH6gx+qDdCo_0>Vsngz{y_*qVPtCpCQ_IAjr}_oO$Alfrn!0i7oH`z( -zhpdPqTW3qc4|N+l2UeMK+}Z*3*DbH_Cnq#PO12!51=-3dlULvFxU|QFM@^HR(MjKg -zSr@#S!R_@xm>D>tAtQD~%<#***aFc+MvVm`(ZK7Yn@8kr+oUTb35cMsD;KJIVgXat -zB~PfH@dzp4N!*VG`OV!Lm^Se~x@1#OQ#u4@AlxsDZk5ed^-Wj6TOfK_(EE>op7`lz -z*=`u3ywcSCFCdzZyaZo(n1^_p1MN1CEb@No-c=`!Z{+cc2P_sqx~L{*+{8KidRMFP -z?fk6!d;Dd~t=CK9#_k)3yeN2QWUn$(Me>|zum4{+-2XZ -zkGADab=3{5z;p8Il|wJ1-s8p^d0kY*$ugz+cU_MYW9Efn+-VE_RZ~?-YGQ8w1 -z3s<`Vq>1TPuU1$3EZ2NkUnnO3I`z5IN%}i{BnP#cyPB1EGF|;Q-9DoeNHrH|PJ-8p -zyPEam=kH-F{?da{$dLn^qCz?g?oC)WSgJIH2lr)HAP<|*nl*0F7-w)rPBDLreGSyK -zhLUpGEd?N3&$=-;c6f16n^eR~&uT%pCerZpd17HU9GEfNnW?5#Re6==y(fAydYFXS -zmwX^!_#xvkc7kM@=M>;^gtb*W$*DMC2d(hHX^20`I)3n7%K*Q0=tKczh<;U53=pdj -zqL)jKJwwL=)IEqtu|CL>cs>E$ZUQ;5+o31YDz*C7beWn5d;gizH&LIldPAa)3$Fnw -zq+s3I%B+Ll;i#M(p;K%|t?|RqG@=(UZk -zJqLf2-^-7(yjDb?s`gdeT!no*6t^@%Ul{?X8YshF%nQ4q$}4qwy?vA&x8^U&Psuol -zri2AF`7WhYkX+AKF`y}d`kG#i -z`k9G^4C_J>N2G_p+%VpyR3q019A}r)5Q@e~#nns!j_agT{`50&U3R -z{{N>rXzfTHc?HSpU&E6b(JY=WmBxvK5U{}F)6Stx0YKJ`Omy}OM5LbkD~9THL@bj0_q{&Rh;iU}fr-be$aTgzd&1tD{L2vPSb&WD1eyDQo%@{htZRWRzk>^E|qu6=N8@FC*UYxpy -zH8XnHm6X}2yzyzz91$Clhg(F1)E*gG09e8R#+|11eO*mJfKug<$D|6vQQ=lDv6<*EXkYU=d7Fv{4MuD?dVsULl3H54SSP -z>>9_*$5KsJPWSV7%gkD~1<3YJ%!e=?g3U{jEw27f^!Md{v1Mk$sFZ;lP99odQu=}+_ -zH8>S%lPP}6jf(>_Hcz$x`>D%)vSOG-J))tW7N8IhkbLTg_JQPIVa~yDaB` -zJv^+8@H2d~{qGK%V>8l2^2^imYOnWSq@~L~1ecQb4ysHY<4i0g1$__|dJ<-@&ouwh -zl$f)Cwo3C2u{c*S;m0rLymx5}149pmAjH*hb1i92X<=~joaj?XayTrB9VRrEf15J1v7eB7lhAa6 -xe&)U_H6hC)_d#JNHcFv`T(9FOSlo4RF#YNEcwwUpEEGC80GZ@XtaAwy{0oZvaTWjo - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0026.png b/themes/bgrt/animation-0026.png -new file mode 100644 -index 0000000000000000000000000000000000000000..1bfd5dcaa6cfebe4fa8fbe8a4c53a2650e039182 -GIT binary patch -literal 1427 -zcmYL}do+}39LL{5WspWLjYWoB*Ja)@%S^}&u{enkkzC%!U^FxA%*$kk7OORu9S3P- -zkw$SUEk#EucZCyMk~PY;5n3W)nnl}=I(zn<=l6Wh`F_9W`~3cTa*p|W?pFCm1pt8E -z-d^qja$>eed8hnlbGd7BAQQbp*#MxbxjhJ=v6#2Bjesj@Ks?;G|SbxcEXz@Mt -zzVsT024%oK)vG%ve=)dJyu~4kDzME8?u$mhnd;VCFSc$H0Qk(DLo!dsEGqIo>&!0g -zvwUA}_2@9ClhY-fZjkk_He!D0BG?WqXK0O;kEpBljpBcuoPN^H;0=U^Qwv=L67P~| -zK&F4ra5DmR8__K&w@4W_dO*tE%03AW)Y|l$<;-s}WEN`i(x+X1@0>rFB&F*~KH>8! -zNa^&#;_7;Bf8No(gYKJPYC>#98_b#vx4IEu5v!G_hf?V91jTXl^~0}@MwvV+Sji=x -z*2tLiYPr|`gd#pWR(J|EhKzQKu|ZvehcVf6T4CW=cZCXp`B{A56+x?(q-G%-D-=}b -z-Yyg#N>%;w-W}ttd+QO#QWU=}>nX2irv!i&l4nqwQLKrdZWN~>!0ILP1=L)_VucTB -zXfPF4Ga;vZmmWWnjXTe+uF~l)>jYBPwbaa6);StFy4^9B%ZeFc;y(%y7(V~R@VdFc_T5G1~Spo-) -zn$nQz>6HC?scLRCXzh-4`p8FTuFKC^t}h;f)wYmIleb1rV0(W+bfMKlOxTe*ndKKSWw9f+O!LZu7`<5p -z*1^rDf~8_wAz{Yknf5U8&xKr*ztKAkO&BKW-csvS{eN^w=^KL``)2!B*7I^Qfc~%* -z9vW5jynT!F*MQl4xGYHQi!`?6z2PU(EXC`+p9&r?ecCAHY65p{P?sC|#&zR-!_Lc{ -zTJ}IB9drza1t-GN4p!A@EY3{j_l}&Cj_$iQJG^?Uzf^<08JVr?)Tbn}My<{3J8`9D -z_C1|Fi!WXm)cGUGT?Uo)A41+v`O7>?NT!+fag%}KkIG!Lj%%}HO$hMJF;!7S&?%kd -z{6Mn~H}g|2?Xpxw^(xF_Y3|!0*cIv(_0BX+_ny!*5IU|YDvuJ`)d&lIX9fONxf3&Y -zN@>02!(Ak7u8(Oar{zB!lhh=9^bGdPv*X4I4Im#;Bc-nYrRv1hkv)dF@2u#8HiuUn -V%1LTM1PC>0whMGv-57~7XZB>`}9B8>!3pwMUp -zBAmq}!oQ`k;S6djEs?_}!`WmKjl_bp7!*34#QcwTaa0ohM4WI?Ras@QS%oFANq{{9 -z=?q6A;r1vP5_!PUfE0D(C0<=CUq#giPRr}23eCP8W1ql*w< -zX(%=F$usI*dY+8jbY~yrK!JZh7d_~5D08rh5$9jf_Y4VEI=|-O0 -ze9T=2XY@Va@b9VOIC(T{#mVWj@{77E4g-zp%%o#4=)X-2PBJ7I`FZzwyENmBxHJ=D -zT2#SEjJuFiwSuAcy;GFyOuKOFSQ)&#yK?BLWx7%QVLVcHcBHOh?C=}lBo{1e7emCp -z+l$8Uf6U;wcJ0Rs`gau^sw~oy7&lu$!UK+%N&cYw={ip4k4eJ)b}G!6hk+D-FN+qa -z-_H++^gHVKR6x6XVC5PfC2JhaSEN)`bme!qZuQvfyyUilOfR>-X&LS?y1Z92ScPnQ -z-^3`7d*!+>(ZKN33t!$&HMcXLELv--1Bs7am$ZFi4W-Vrr!#-0UY%whNxsc=KU;a4 -z7nFSEY1Wqi4BhE5sIBH7$7icf4fk -zC#?l3&~NqL3>45}0pV-DrAccm#t{|JXM7Z7IP3@xW6pUW>4eB*u8IW=OI;69n{-S? -zs)~*k0fa~(bIvyBik+KX&qT0`v)NJBwGp!i?lo2q5+cf)N>~|-u*HN$9OikKn(LV$ -z|L&}XR@05F6mTMWw%dP;YPKm);*d0tOBmNKjN*aBG1r|z!)V=KARAceZO4*9*S(%R -zS13JmN+6iqr`9*UC|G#Erz^_k|2WTUS-Lu)nqg#3qAC$lAA -zryh9P_a^%myhlZjGU9L~Yj(FWnP1SAbFjPalKN8H309_g$%-PVB=_~zro!fVu4%8{ -z!1&w_9h=L;^#bu*yFhV!kF;;Kg#Gd8np)!wSKilPV?|0GU3*?}S1m&vt+Hn^yH8Zz -zjj*j`xz7QayUjgj^tVYk9rdbAeQnS3wZiptYS1Utsgaa`KvwM(U*m?BF7S^$;FG1R -zb#t$1tD8^st0i6uzW8P_Hjj}UrH>)7<5n+sruPr-u8bGPE_-yg^# -z)g{H(R>?;|o!m>eD&&*-C2hi0uvcr5qPie^Xz~hk|H?b$(E3`rs8=YA|(pG1KlMu`+A$PuoQ!-!?ooqj)JPW^iPyT#icU|^zWHt<#g -zX4N(}!qDb8=TD&QHDPLK?&;Kv`OIvCiaj;34i_J&ui -F@L%rzZB+mO - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0028.png b/themes/bgrt/animation-0028.png -new file mode 100644 -index 0000000000000000000000000000000000000000..eda5e3f2f3ab415780c5c7fcfc273bea1920cf57 -GIT binary patch -literal 1385 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zHM!~1;QW&K|mL#79s4^GcdOcKK%$NEd(~a -zGC3!;SRptuw*W{p7#dmBO_R`OU|?bNba4!c;H;h2={GxEz-?pWG`-A_Dc|c4cm%S> -z1|51-lWz0;`;Sv8OA^0*?dvVyefQm~0*e^N4^382J(tT@)uhYSF2DaJFy3lT=mCHC -z6o=paIX^Pn=NEXc&$E|(sH2oS5ub0>TKOVaVDq144J>TZ$}?}z4~lQ -z>KprGUV*Rof6|?QzoGGhg8N7B56>TDf7t)vbY1;Ei{vD2kHbfUI;M%bA;h&F#N5Q>f*i-4FKwd7(|6_nY1~ -z2_I*yXV{gl{W@47yhx(=We)?F@mkMAVhZS(nY7FIGpysHwKp?2hEG%QtXZKkw0X7o7tt|5+@LFeNoOYI1pm&r{oW -za7C>wl$>q -z{JU{-wSuA8vC}OdGFz52b#KHB`D=k2n&a>6zq%$|iN -zSLap5{%N*+z3%C5mDLTAJolD)uw{k&*}PuHmce`>y!KW1irs(P6fGFj_szMtyZ`L< -zM`mJPXZ#OJ8BK}d+mXAwuOR0@{bq|UpN|K1EmjIgMC^Pk@;I57HM6PaQdY~2SLn+$2oZKz6zx1nFAn%uB+IAbCAD^tU|JWzZjAE8T=@WZoJti;kKUST*`~wTS -zgS*WARp-T}H%y$@C$I8PN{RE}=Ejb#qSq`N-6Bn^mW6G5x%`S^JfrE{PfINB9l9S_ -zz|SJ&U{skj>8w*g -z?yLEWe(w_7-gzNeu3z)qZP)VPKi$u!8?w6vG0lO -z%yEg4%{j+qiv;ULiwiz?cP?|8-*(94gInT(MIWBHx3T#*^{wW!y)eJ9uZL{`55pyf -z$)94@ue+^uQPd~$Uk-CcW&@K6vyWumM9GxjXAS;7Oy{foa=_5qCx6iv-P6wL2jyRW -iJ$yXr#glZMKjn=3Qa-N}cgqA86%3xPelF{r5}E+GgkxC% - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0029.png b/themes/bgrt/animation-0029.png -new file mode 100644 -index 0000000000000000000000000000000000000000..33f2683016b52bf778779348c8c96cdabceed39d -GIT binary patch -literal 1348 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zH0f49q-3ewP5Hg}{ba -zCg-FUD+DLz7654mLnDj2X%gBD49s^tT^vIqIBTbM2T2?9xOy(QaOwL0`qbsYQEVKZ -z?=Sw6NWHm0a(#;DwY{76&VEz2`|j13CA*w9h}NFl{jT!I$+x9v-d5VW*Z=gm)_7NV -zrt&fSu8HX~yH8JxzrRmCiF?`I=Q>t${l>>7>OP-7;XJ>1Yu&XZ_x<)wf(5(_1pZDc -zoLzXL;*8Z7kyi@qL^12&6&>c{RB)F@m;*d`q*}xr$Q^^&xs#RnX7ewSgqV#p&Xihe6OYH -zf17DqP6rYqHgP=o-J@G@AkKK+Tb}l$>x(;6wS(Gs2^i-6lRJLuG`xXPAmo1$LHPt!&tENW5;xOk_=ETwZqE>sL|AS1F^;gzqXf -z2KA>b4wOCd^<{cgCUm@PpUd-^!LzGgBo}3czvAmTayH*7NnpnN0`?2jBucj&*L&c! -z=L+k*N?F@RqhmAI>{jPH9p24*>Bsq9NAwLgriD*m@>ss8t=P=-(62w)z0=zciM^Nl -z&1Ct?a>doRtL}0ZWLgF1h@~)p6JAiRUBJG6RVB|QS%K=VY%4~)^&AKIo^96@Tk}2E -zt1Y76`uwe|gcp8oOrk`TUW?yOt1dpRDl?s@U|-R` -z{S1{n-`_ROz14W&TyMIr{Y`=8#U`b{^+YZvxlWwG&~si_>ZQvob}k|B7k@IZZ_PN# -zxTpNQ)rJ+mi(46Q&J(HsduSuKhy#m@bCSH!geO<$xIXG$-BQITQ)VmtX!d$jPQ{O9 -zJ2wRLESP`9Ln2Ah`oX>{>{?Rt(LU|>M6W&4pLCJqTd+ag!N4SamMf2aetLepACR6O -zxP9{7L+-9@#YyWDch6M*>dAjjg>~7%QyRxVIe*gUYirfAlVhmtyK%+Ad&&BZcJ*<5 -ze{UG+8$NvFY%HX>Vc(R=wMn;Pz1toMJ=zg>?SVzsy|-x<`>_?#6|MW&%Fa1WGJerx&TJHC;dqtv?BbQ5&;4OBP}10@ -zazQeG`h_D~`R$GNF^9CUFc<9p<|KDF&tc`#FFVUzw@*sRS#$n&_5OEmYszJX1xnP8 -w&iL}?)`A1)tQl)xY`t%3n4QBY?Ea6L{cQB)#qG}?14{u0Pgg&ebxsLQ0Fll~+5i9m - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0030.png b/themes/bgrt/animation-0030.png -new file mode 100644 -index 0000000000000000000000000000000000000000..c5132bd9cc5ff00f5c8bc7c495d215a48cc85dc2 -GIT binary patch -literal 1316 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zHDi8)K2m-n=wFqISo`Jbt@aacDX(6!T -zmB~4&#R|cRxdlL)!O+N}ZkmKP0|WCOPZ!6K2+r1N-9@(?cwCv6`ri8g|BBx)kA{27 -z?<2XBSEPw$e%&>xEVsr&hEM#wX%)2{4%zvuVDD&wlR5PUiYeYBx7>6)j(Q>sIM;>$e)VpWWw9<_(zF&|ebj -z@2L2s{fQW(x&5*e*VoqCu^yf|`^e1qcQvfoew2sx+WukNP`-?Jx=vDe^J4iwE12XK -z{k~f*XnWv2XI0fRW&fDz#rlc5O~)oB)qd*Bb#AqJUcGpE@qyO{y^Y?o5`QhqWlC;+ -zvYKa?^sUH%s>mo|6;xYA!u+?d^%j -z6PfR*o#lP*q$lhk(X!a@l|j+v*WVVIY&gA`G30a8)wI7acXD5tv5Wcfo;4-B(Mz5x -z_TA~)JK5L6WBN@YtFRlnlVwZ#7FkX|C(haFd(ZOI;ztfVS8qt`tJ?2nuu6^Wuu(6V -z!@yAbp-x3*%B|prQ%ol3YeEm~Flew|_fq1a%ci}0x@^(gcguU8(A2y>_t5${m&H+W -zYo9;N{GL;3`BCuG6dNXWA;03k8^vPce!ddg#u?D!A}IE0mQwJCTba{23-tTDm>7~3 -zCv#UmTYAH)NoX2B*SyO7+Wq`K4||mky+5(e@WJGxN2#eU5|nk$#^4Gt#P4xEK#D3YZk-azyJ~)6*Z1m_zmYc$hvfdlaNo -z-dJz{j(Hy2>BXyDRG3?2KKMO*>d~?I!uh%!tJfCsJdd4(Tm;wn`7t{zn6wRRdT!_AUsNARX*kAvy#M#1o!=*x -z7u3}B{|MS$_TfhNfz2~cyk=X?_ETunpJfsb5h8~D`bMo5MGmVs|yCFK++< - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0031.png b/themes/bgrt/animation-0031.png -new file mode 100644 -index 0000000000000000000000000000000000000000..f6ed4b2b3cbe1611c2530eed5d67900ef2ae557a -GIT binary patch -literal 1245 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zH16H7Al^AwB?(h7Eaj?!Pz>kGf&!($0b`mv+>{m^UpS&K7Mtw -zdX%K9Lih0r&RP2Ldecv@|NZwLw`2I1%;)ng{v>SfyKzL-t^PN|YX^S?v!ojF!{vM9 -zq|^8G{t42Xp(hQ3j;pO?*%tHt_SazI%)^M`Sj9`h8o>jYA -zb!XzY=(XRY=8J5zU`&yH@ys}gS(hG*H}_lr(v#Jl0&n -zu%teF?}ROa9rjs{_b$(zAMDBCHrF=yV=a?J>D|uaH|I|%*6F{QGlk_y(hH%bc3F?J -z81s|Ed%Fz&ep{wvKl#7Hc88zQlWxp2Th&@}ma-Etz^R)f0QeJ3F5%XRapJiS*T~d!D(z&QN5UM){YmipA3&9l!DL -z4BM}dT{Fsfi|4Wks9KgynysI9LumK;Ie7^()ALP>RMP7cXWgA*=B)F0q5q*(ldB#d -z{Mw!2b0L4bg8tT4_sMSkuM2+o?Vs0F&8SdfDNy+%ZS6kJ%!}!B2&p2I_MV4>U=3-&(Ror -rNw8KVhI_{1_}jDI{OE~3|5yIS2B&Hd%}8rt_GIvM^>bP0l+XkK%<~xE - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0032.png b/themes/bgrt/animation-0032.png -new file mode 100644 -index 0000000000000000000000000000000000000000..097916423d6c42f03f07781a8ca380ebc91a6e36 -GIT binary patch -literal 1185 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zH%kO+W?0AO%4{7p4{=?9?+b^9=c20+bd4 -z8(x{5lUl40oS0hxq!|p2Eb697XfrS{TY9=UhD2~Kop!tIwgC@|^6|I-|K|(sl$hbX -zKI3Mk#<@hsN1M2twp_}+y{-TD+i#5t+Q05BKWFpjiCW*znbR$Q-FDx^_r@osU!q=I -zIsg9m{?kvJDg|C&TKRsKU(U&}*|x5#J)B}&l$8&xlKUp@>k+W8`9*vBjq~9Nlcut2 -zy-fe9Vm@b<+P6q&4M3HmfI-TRA%$*<+t;&@9oCKldZocT#LLzLs& -z_M-S_stGr4XWVl(nQ8ZFL!`g3f`yyk8xy~C(hr|(-@{a-=smwoc!%M}FaIahA7&S0 -z+V&))HdkQ&u^((#UhXVD_Rq`VX7WUJzvBv1XDpax_jWbg-K$J5?%t@^I>(urFsb3- -zs%QN788=?_YlvF%+C)RIaZY%Rnm~Pc;Q7FSk}j2F#>@1-&T&v}I`ZTE692eX{gaAp -z5}r-Q2DMk#Jhqd2K9BQdcI_e%btFnV%zofFOLU+g7 -zGNEj5iw&QumjBIqbFzN3V*{&y?_RSh42kv~$LGJzbJ*bFQ+(RG`9w|UmodSCU$tY}lSMe|I<8^ww$FPL~PJo~U(=;YOj3M(aE -z`Mq?vkdtKj`)F~*=gXQEyEX^w+jXdjv)l4JZLVd_y(91X|Cw?1jVGnT>KpfQ`OE3= -z-#GnG-idfo-u3Z^ZpMnddTe|)f5&W}365T!>S63YvlBY6_hmi$D11oIz-qf;gO0=Q -z{&kB>NX1ryWwJkjhJ>FC%CC#gQ -zRn}MUW}L44?$SiFt0_fGQqYQ953J)5uh``_LZ>G)vH372H; -i1Fy>eOK;rqpJCrO<8F7=?H7PqjKR~@&t;ucLK6VT(*5NC - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0033.png b/themes/bgrt/animation-0033.png -new file mode 100644 -index 0000000000000000000000000000000000000000..c9ec0e5e62b10de61c6d8f00e456d2bc8b2fff1e -GIT binary patch -literal 1111 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zHzT -zS0?AA7ApiN<`w{H216r@x@i*H3=B-~JzX3_A~@GhFxtU1s)%boxL_q%)PyBeeM1I0y(bpUtgKoKL5@UL-Wr@?)5)Ct~Ji>TqF2+e$tb@ -zaqHI~f81Cp`1;by_cQ%+PP)xDb@jcWw%yBjLDSmKxoRp46kP3X?(UOs^b|9S6n1+& -zQRKc)MoZK5!z+$I$z-0ixN_DX-H#pq!uRDmcO+l>d!Wiq{r}}@Hv4^TA8lH9_m#zV -z@2>gJ%h*@EiRSyb$??-aSB2AyFRWvWVYp%aPyR`1U4r+$jq7_YT79>?oH>ilj`Mjm -zOKh>rPl4ZgGoEcp^_JLYxp(9D=nK{<;bG}<+jk!gzZ@C$Q~`TMl%*}?(&u=Ir%VOYcif1_P?%mgS0^F -zzIoacA{PtHSTE;UZc#C%n0=Ap!Q4Z4t|+YW2>ZAB-s7gvPCuY0og>AfbXlneV -z?;Y*S+obw?FWhX1UHI5(U56V}=kzL-?-HvR#Y2)WyL?|;wn!~%Q!Mk>Qx8umZp{{w -zwwPP!`JvQ)r={h$oc1qM%ZfH;s~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpkKsgoBtr|c%4zN>-5`mJ&Cc;X2pMhe6ATej4P*EZSgwiuGF#dDFA{Zzs -z3X%*?PR&bYNX*O3O)SaG&r>iqNGm8-;D6i%R3Hpe5Cn8#Y7xRtJp*&Q;M0$Q(n4Uv -zE0c3lixq+sa|?hpgQ1Z{-82bp1_q|Ro-U3d5u8h>H%@w`z~j31@&EcwwR27^%;b6% -zJ#!_e;?D0vUGMU4Z@c@gcE8~V*<*9kXMgUPJiGAB*-Fdf6-PYG8s-bnG>)m??so6< -z&pmhFm*2U(L65!Hwn!j;(<|fUEBY6Qy2X`+x3D~an%w;1%beGOSCSlVHVobCxBuRf^8|xN_y&zP=|*-W`uU7SFlvqt)_l@`mpOZheZIv$pi>8>Nl4 -zJ$GlnZVG$gv+LAa(?V{ZeVdt_)E4f`zLLKGQRMW`??je}FTZx=PW%p@fWJO#>`$LG -zJn-7uKy-ma1M7J)d*;{D>2b+IzWcjkuRN0%ZZO(;;8~XON<;HQF+DFDbj>zKaoz3B -z783X#*z@4oxizNzjZs4Rzh6n6Gw?G!x!P9MSIzgtjy4_r^+~UVn35fmV!y?nUu!mP -zt?Y8MK7~22?-w;sc*M4AZNtjvFDn!G|4b16syf9)zSYn`P_Vc>QC;oPffHMUeb@fm -z;q*h+gYlN+1)Xnt_ACbuK9-O@;S`fo=Jx1QW73li>wI6^>RI^5y9ie7<-UA~`Tt^f -zTYe`I{(VynFxv - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/animation-0035.png b/themes/bgrt/animation-0035.png -new file mode 100644 -index 0000000000000000000000000000000000000000..2bd3b0dcbd17f182023d4d609f1103a8b128c7e3 -GIT binary patch -literal 981 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpkRtBcQLaqCNavWf%6eR*BjZITj<5GcQf*>(xpiogF1BB8uFfjge!6Fza -zDGHJdPEO5BWk}4+%uOuG%+FIWHb^TdR^Wf!1XLglQV;}mVQLY=PCWy2yWrE0fYL%> -z!z+_>Qi~OW6LSlIG=rg$Mcp(BZ3YIWTu&FrkO%^GtTzm@?3tV -zIb5r{o?pLgJIUbVCY{rdzgF2s{Lm{tmMQEmm-DH^Hzw)KcbNp?ADk*_k@l+_tL^6Z -zm&O*_Pph42@_n*r&Cyl*hTe{HS4zkp-=gnFw6-g<%aijqs@TOWyh -zon3li?enycy(Pb8oR>W7cb|CjjnxNxxxNE6@6@~OrmlC8VgLRjzH6VpWtZoBTBO}? -zvZ@p>U+%YlgW2b#y+O$=v3$4QEK`qg*!tkewOL25TwcGU=jd9i$T>f|nzy^(m#Tdk -zF85pL`Uh{jzgw3d->kgmz)XXtXJ5B|dHnu=dDt_tYTF5(GsNVLrtkYHVya&DO(05o -zn(zb{?~Rjs+nzlUc=q<}zGw0Aj4XVO@f;psmohm1iZ1(;l1tcKx)2pSco~ -znAg=Yu{7zN$+7F1B=h!5kACGZXO7O3GdJv14*FI6+wK( -zpWlMshd=l-;cwduj|V#aZO+Zo?-?iY6}c6->#on?VK8)l^6`$M8vC9ifByq_lUZ-o -zEDw#j?SFtlv8L_7JwuOAPt?BtmOjYnwyAUXiJ9i#*S2miy6ny8_vVLdier(hwZ^;i -zzh<8OE%sa?>hs_44!%((9FGhOrQ4n+*mm5=-W;y&xB8hywh*USLi5(udn|q(nRI!& -b|8IWxb#wQAN#$7xOqL9uu6{1-oD!M~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpkRt9FLq_2SVbAX*vln9hGHv6l?e;+6&2oiG!3KbDnW?*0{^>lFziQw#=))=Ja$iw3L_kaAei{;-gwb<51 -zw;Ip%Nh{W9-G2M+x5EAR?JWxWXO(WWE7^1QVsyOitM;}?#yDlu`sLrx-1`}ms%7=wH@#Z) -zIlMA|KNCBL!3~3K+XPd~h`#le=N?v8v*%cCS$(n2S}%rwdgyfd_YAE}&YQ!Sf0tZ+ -zC^P@hntA?y&*oe$PS7u%nKfhGt5CMkSR{dpqwZK+PtP?5FR%M4a%InBo(i?{ -z%wM18E|Wjt?z#1YW5T>TuN<}K%Vobi -zaQvg4#jTH}cLdIwX3dkbTK@29`uCgL#ZFf5xo3Y^s_e&p?-#ERPc(o1)$q+TzV29; -z`BB+_J~QcGwJ+3tP{7XfUg>GYT37vqYn7%O_iknIb#~b4{H=UpmO}9&$wiTCuQTyp -z+~M5*^}6%=s-1Svk0vv6`?MMGY+v4YTyDF?Mh-d7KNwNG^2=^ZeA`@COs_P*Nv;FsE`lROs^ -maxcX1vU~Pr(aE#I{~0q^X>vclIt`S189ZJ6T-G@yGywpOfw1BL - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/background-tile.png b/themes/bgrt/background-tile.png -new file mode 100644 -index 0000000000000000000000000000000000000000..6b70a2d40790fcbec68b2db067f4f6b0d47ec740 -GIT binary patch -literal 79464 -zcmXt<1yGdj*TxCykOf{k7b&HrJC_h71eWdw>F$n2S{g~|1r(&aL%Kn_8|eo59{w|* -zj)U$v%IRPT+ -z4t93t_O8Gm5fG%D&5d2n&1gKVU9D(jKPal0v6-VGAkZLufJmr&F8H=CMrH0Mi?pm> -zRE1P%p6-d<v(duz52!Oa_cT*!#9Ua#PN64r42Hl3>!1_p|{$|JZ8g%Aj%bhEkQ25peIEZqf4A -z>xJ{9>alC}nbm~_dB_{01a*io$hr*9=+V{!hxyqx0eRV@f7=!4kZR-!so -z>hWx4#XteFwKMX~4ul~Mad&rj_K7Ka(uvLaa~J^zfBW_=p|x)Oq3`mK3G`~k_hKY? -zRSlAHNhG1#g4t!pn^Hgpw7Im8KX$bB0@i?+ffI(8(^ySZ< -zp)*2$_pU<*sbYyRxjBQf_UdYaiHB71*D{;$@HW^hc*YmG?iD(MguJIVhX8`{!|)p7 -zbQs~a&w3aZaRzupsGU4YZfK?KpP<+I7UILhz${m8t+Mo+Hvgx4Kg}O{%==#WH*V@Y -z#bacVa`|xhlE0Ya^;kVmtn?N_7Na3#D+rB>p9cKfQ`kO6CSM&wc1=nEWtHCYe^}1* -z>nrjrnidVHY;5#`T`SqP9=a64|Ba3+0iVkV-zp0PGMXhcr!jLH@>;Y*(CyY`(|%mQ -zYH{}qF)^_Zzw&k1)o+GGjDNhfyGjtq(Vx(3wz{XAH^iqs{bcK7gx4?Vng35;{bvv -zm~!fZ%XPU_YH#&b%u)3^#ZYmMe?}*IB0*WsVWP6=2kD-N-^%{MmP{!rDV##eRi;*F -zVROnq^qV!(f+}K=j$4gh+Xkf6*VTO`=d(W*Nr1!UA0FhOQkf{bSUxJ`7|rchnij;x -z=ES?#`=4tUMzIuGx46cHk+CutcUUNdJsq8#oX*z%R9jxWd`q2JBT;8D4!)+Hxa!74 -zOZ_O-Xa}V>7AN~ra`zii?7T!oM9$udIW1KYSf;D*)Mu!%QMYGjHM(+4EiD;sYISbD -zNf^a#cP>6%*S8->!muN{O#%YMMExIc5q}l=iql;{Hc048;e)I5^H!r{W3P`?H)yuu -zWN;hr{mH@_I6NsD#W3)EN?B}#MHR#~xIR;+$z`eNM4JD3?#F-b0=v+e`rW;54psH7 -zDA+vhu=E?=O>q8%6%?|S7ePg4q8LjdFxlXFW@6mVZgwQ8BUNtcc)2%$i(BQV6u?hG -z#HgG-JPhlpTcyo5b#dVec)FTHoA1B6x*}q;fI>y}i6El?qPuZr5l=8qzF57LR0r-3 -zM%-UThD23}_q%uRT!`5XfP3Ta;UT57stPgVOn=3-!nw6e6SB}D*qyh2QU=F7#_o8h -ztbgRO>c>|s$0`2mYRK^4FS`eAp)}Ho%J`eHJpp`BLUMAlzynJa?9$xFr@754;BLs! -zF%22hPpT>NY;aH>i^$#Fyij`fhg~YWDm1{_npq8c0-RavvKbo(2M0@Z0!pkuDl_-^ -zb`B06?1pX8c-nCI+mT7HQ5i-kwD#C>EzkIhfJ?<~9u9}ehZ2dnvK2>2{e-VPKdnBy -zF%9=y#;VU)o|vb;<;dSQY;rBNTc^e~lB1%j+jXAGnw~A%>h6`<=4-!Gl!6HI%UxG* -zovwF3Ra8`L-JWe8Z*Q9yI8NH~HeXW}5=fr~VNq=Mo{-M(UKv3$VR`09a^t6n8Ah8D2S7M -zi_|1m?hNS{dIH6MzG$|}`9A!8UJuKaaJZ=IT$$!i3wv*~v8Ao&_PRQa$wL&FI}1__ -z9*^nR?Ch+`0++!BEK^7PITiw033z_$nq?q_Ud_(U(P2WdLRSb=en)dKb&UasJ+;sH)JkKE(X{^TCyr~%=` -zB$euy`T~1}ZW#4FEgwb5ac?{im$YSTIGwBa>Tpg#jLqmcD@J)B9;L>s%`cYXQ!MNi -zpZ$_tW|HhcBCi!CKB%;NDJCYy%*(4$Q7d$uE5fXVvrmGbWoco-rmGC7f@zZ1-Z5+j -zEn3ks`E{hd46|0;WEGRNgrGCvF)z`NEfuxGTc_{u1+O`r!G$E*DZ<7aRB>F;5j$lp -zl26{N@vr$Q|Efdeeb__$FvvmBtNu+V>(3`@tDD9+s6TmnNl -z82q#S-~D)IAWUv`rCW0bftFu@Dwf5^HXh0&dv9j_;Ug*^4;|U$Nq6KOp*f@j>*aag -zcE0v^92ixM7PBgW-)to+yBp&iBkvMwM7&}cMqW!_|Bv&0;5Sek1xT>vK_7nVHF7#& -zZQI$~@9<}KU@;kXN@H7w@<Cy6DdV -zBiCzmE^Ki-)VR3ZpQ`w6hMy_q@k0@G%cZ8syQ~NcLH)8Hb^AuTXBp<0!1K;C62vc$ihrwk`I;5DvE02$lYcCzr -z|9-zXogkZrBDj`aod)6}R`8@CA0fPa7d?zkIPP`ue_6!{qk%wwGX!BBTD=0Yp5<=YU3=AE%~aTUZT8 -zkd>XiUI4p3fGu0ZhnG0P)6|qsTVKE8Eac477d?CEAFtn0ReyN?L5B -zI?r7fahoF^$g_CLx)fgD-cJ2eKws1VDfzEC`_o+tY}7&l3PXsXd$wQy_-dV5Xd3F# -zK6VlabS8SgmmlrCp51C}?=V7=W?>;HBLqr*?OWRFZrh;l3iQbTNW6-BP>-w;$DG$Xg6JPw$$Wht -z&-&5kpC_ycRiR8^_NClvO_d%M%@)z;$BQn3<|-IrhqF=It*tUcV)SG~kibL%{4KTR -z2WWn6ZLJq5GT<_wdZd}&f8{p*;G7k+bzwB9;`OD_NsF3K5pZXQKWQV8PgnYO=YT$i -zj)^_{Mo5sr9isHh$z;P8|0r=Hx+NjL?-}!>0p@g=*}v%N_#d%Of9pV>zxfv}TqtxHrP-@Bne*?>7dz -zy6;MV(WKySX$X|y5OnB2`0p6#xbUK6_rAqrck?u44NYcl~?#>a6S_39f=gl -z?Dndv1pW>hIBtTJ3~2DirG6)d{axWKS~NJFs69eNVQZ;E9HLq#848qC;|tLDu6Y(V -zHmZWLJt3bY(W_}S8k3--Bz}t3a% -zUKUtR2c2J9(lg3;u$H46`i1<8|BG4|mikQnn5s|&aCT_C2g~1368LY>otxliCW|U~ -zU&Fq`+PXiS0nOe8Sr-`^gVT-)Trblo_`=rw$;M4jC~vqYjo@$|%#(=CtJUBqEx7H8 -zuP9^!k~K%`;)z~;=7MEjG^iwpRsLr0lV}uv(#^u>pKeS6sjaQ8zQ7Pbh8qzEM`cvX -z+|yPRQh}cIL=s#O?u090euWKux07kjMg7sscGh3@7umG>j>u%zU|D>000DeT@;EXw -zk~ySl)*#RL_DdEIwmye*-;MCOys>r)aDTQOF*G!^U*C3B5n|!%%*li{03%W|XZcD>ql&ndDdjxW?#yS~#jubUdlWy6 -zS?vPa_YllV@rs58wn%x>ynT<$nD`-DAw=ao=lL$@ggQoM-HfwTBEu(MLKw3wjqO{M -zob4J`8}WA~EG!$CA8^9BBu!1BS7I*(cHHQ-Rc-gj%!p2|oqP%b=Yn%=3!<;_l`oEj53&<%>>CN=uAY*k8Kf$ -zo_&lh_!&?#RIcENSg#E{)Gc5F#CkNbs1!!pwwA$vW3PQrowcBgkcKstdM}$xmjIR)r48cf@1RkvnB5O9xoFn -z5~g;z*L_&V$n@bAnbL1YS_psj>Cd_?qNW{n9qae;va{24!O@llKtbEgII|#P^W4je -z2-otB7}yvwVz09edXOQDbOa&%GBPcF+=+x`iu&D0nb9EcUUfI6c$1?akjShz2d2~R -zo8;Q8!rmI8Sb*^tWUk=wb5`|=*R_-kFwrtT+4jeK8@UraQmEGlUggK>`|4!1A#*4I<2@5Lfqei -zx6L>uv{p>Z_HyrePAyZ1b0qSkbNsIVWZR{%gH5)X12{;M>SX*1Soewp>od2%!{L}e -zfzg_Sn%wLS7^En2xcdC>234BDt+$6QS@t6b&AH;+AQT8L=F!F-#o3?ro?dpy8!p}j -z!apc^ZcylZ#C#rc3t}Qy+c9f|!Rza5uu2RiGO1uGv3OYu95uJ6$?X{!vz;cg{lvG; -zlD?xPgFf$NFsd}GL&xx(Zon7>StZQ!hC%3zBaZAxXsXYzJgb~ -zaspmvetTnMBwSr7nWz$-T*EmI0x|I3FN{S@yK>Q<>C6|U03}$Ae+JHPgP?%Q*1 -zQ(owE^(>72v;J(IRJ$1z<;eIoj|V~^;agdRLl*BZMR*sBnUM=5VmC`JSaBlP^YM+K -z1~e#iTQ-hL|GN*~NJo+hmLVcF7eb5a6-J}CRiyY!gd&A3>T){W!px?Y*UcX9O944yFpSQ+XwQv6&Y9tLS= -z`*0iAyYp>9S70XRp^}Kjsm2T`fy+{=iOS2HYhNED^uCJiq$z}x1-td-M39Lr45OeC -z3@xPV!Vk1xZA?ZdE-&j-L<8>BT-$Z6IYlg~9>V)y@$BHzZ9luHulIySeCc);r4z!1 -zqK%X(nYhu#@Y1ldf6osA&kmjIu~EqbDJ2l~`ZvH_cZhuBaqPl2F3pPG5QF}%Q8W8* -z_#A8F)ZigmXb(DzfWXcv5$cz2q2TBj| -zs3L?ww&G1sv0EPMuWaC76SYN}gI+Tfah18%EL3U}6} -zrYSz1smE=f$G9;CS!)g8tYNf1TD4h~!6UkD^ZdNxzEVaj&VfTRc&*#HT%Di4wzLh) -zeegvvKyV*Ecb^EAB%)4$a3h=I4b21(rLzA7?A)fN1+yPW6~*k}^W>kt=A-^AoKA6* -zxE_nRw);u^rfAYPk*AY{36C#BvyUE_TK{`2AXw#$=#BJ_#Q$0$H6$oyq3IUV%20l5 -zxVq~7v$FCRe*$ZJeF=g8(ute-EG*GWYId3_g}*nA(R#VQIg`VdOP0r-%s=B-{UjPV$l28SAiU -zaLF-@H@+KvHC{QDSj^#hTQtxLQ0e4x{qGU@w%Rn_S#AjzFA39m!PyX%K;(oQtgm{a -zFI0pyp(k_g|J))vg%AG@kuHk@vWNKN`=M6vI!BzL`sHhV0p~5bkiDKIJwl<|Fl8Pu -zTfOKu3?FLIH;AbM6TF{arC%xs+$Vna6@(vv#*_1?0^)>4xT5o1h5ZwCl3RVadtTZ5 -z+yG|y9~3Kv?e4Wm#%wLx4402Sf+#Rma~f1FrP&sDj)S$sF8fXll -z|2Mxgh5z{E&JD6DSdp&@+P+9v6S3O(NMmj+Nm@vCD-wF&85i)liL&T``mi)musJ>z -zrc?F#2NrV1?a#uTpey4yDRp%=IPa7A#-V6fpK+KI;Hd6*BA`e(+$Qlo!h3odZ4)~? -zR+&R)HN%kwA29yd$Ow+1*LE`Rhkz@IiLE~Lhf@K~w_CC9#^Tu`wa99+e{q*$Ka-0FtLy2YD@6m^LGJ -zG!7bC@|!~C;(EdJgLS17arzU9cq1lB8CCBwrQg(ibu&u))X>=Yr}zRhIBm|RRuFf! -z9a3YKLu;WIkxidbrRjXW^*b7&PZH`v_l_P{bW?j(JZtt5=!#ZR0|@&>82zWj{H#$# -zpE?t2A_F*kX=(@i)uD)}A0WO_76*jJfRWvMpw*+ATv|j!bB-N9QxIe=flVP#5|!!V -zjoeQ2HGTvE^!X6oHBrkJw9Pf_Ib`9vJ{^#vgJKup0EV|2UakAocb?e*EAqtq>@*nsK>h -z&K8&l#=ueqxJ+ACVw0IXWq4cK-VbCLm@`(r_V1cHG!8uUz(VQbR9bq^eDJR@szJx| -z4{Ao1`Jb=)gU%YU()3@O(vjaJ!{Iw)Ibve2`&od_3EN8MBa2y^Xr_^BfRLN2c`3El -z{7v~~K~>brVAlBZ_WzxBzb4=MaM*2u$+8yyV3A&YFs_1+#LyKk4b2yO+E*UY-lBom -zOha-ncE?^f{)v1|I~hs+xP~@<5cQks#`-m;AdAtegz~7aws!i%{am|$Ag&7Ps3#Pv -z-`v9g(XFt9&BDH~wY{}9E4@yi1}yUVt-N%>=Lyg?jSK%JvQW=Ob*RQZ5|!gzS9YzG -ztz27qqtgdHwm{i}f_pa>RUGLzA$c|24aPI&s!)OUh}@4XV3Rj|>H(^sTVq%-(V5Sk -zhI+Se+Mk~UK*m9-p0n9%>Vx#F^e$;GxFYQeH!O}!?X5n6tyO_z%8C>qn-QAnG@hs> -zJ|KG~_6D+5Z5iw0xkFZbTC;;FrljG@1HgXoSdX8h&5@?MV$hY-Z@Jxw!jbB-oD_Jz -z33#sGR7oKKVbId`*>r=y3IiS(11K9IwMi4 -zxK4gOXa9aW^?IUT9PCL^a_2yV#^#(|27k%S5=+Ybp-@FG!Z5WT?=Dyk?0ILKCQ)Q2uk10dDP;&} -z(f~HKmD(4Olbcj|@_$TCtg0VolYI#E%(rm0HHik~41CXeWuQEL-ROlqP(}D*4z7hq~&&87t^joVI*8L9-Uw~(5K)1OL6Xwz<35`j4NH}yir=t%E -zog!}$!QiL@ueJA{HVIJHTzML{cj!{m{bC+}^?*wGwAu{DPw#Zu9~}2%f)vouRPfFh -zIdwFJJg!cwXK{hf;#1-$Nc0*U^FFv>NWQz9F}DU;ca4kOu7#XFf{c}G+rSG06A5p@ -zCZPCT{;>IprH|!r{nkSC -z?olZW=GNQT$S~K7tS1k>iZ0obLHO0!Ncsd+8@8?MOoVzx;<1p)Pp=j@ux!5eUO^yK -z{X9XwK+1oM -zb^VC^#alQZ#|O;G9bb>pZ7+fp1Vg{1+KRRR&QFy-6@j~oa=Ajl!{=HiFclN*(f5(uOC>SIxbM8~=nzP0J63cWJ)Ij+^2#YD3grm9y7>8Jg5qY#KxW@ClU -z7vaYmVa}o|1Uk@ur+^kOoQmqMt!L3Tg -zE-HVyhpL>M(6%m_-ljX_)$P=>G_6Z|lrrBj_2xGA;j-iPwRJ1IC#ba;2ZZ0sl)y#B -zdHg*~z6~zRw|cVIxb=a*`tAy?3Wx_2gA(M7Dokaqdx;Ymu6S?3VAN6R%`^VoQqBqN -z4K*m|r0 -zk&|)LyXfyz_pDs#0!+kxKmKLvUy5$01qoGr_=wygufErgUV;gll;~MqvE*^n7(CO1 -zP@TL_|2R&iZ;DUSLJQ7%IBBOQ_>#t%b&le~)QzLNnM7BeYUtm%OQOyTPJoK^#JqJX -z%?1pL(SrjUq%0{xVp6D@a7J;*m{8OXg&?zs_@~J6cC{`%RkV;pfrQ^#vmZd#c>F|o -zpisWN_aW%2f@mn~KW~7}$Nq1FxP9-U5^JsutjQ_bw9Ap_E05w_{6;On50LwcDj{BZ -ztY78Sc{VHYQ-eUhL(7u7Av*dRkggE4*Zzok@7VaZ>waUubu)x^ul~EP7lA64;BeKu -z9vVzf1v?)^3oNPE*@&GF(7ik2K?{+v9@9KQ#@S87lx+uQDHZ~DusU@0d{MBS`=fN| -zD^uw=B2F8SxR%B5aE79{_|$;K|pf|R(+KoM%{ -zXbnV3ukBKhZWJp`oWWDbUTXsfTzy7vfE{f_Q1FCKlT&y>w>yj&5(R-Y@xJc(uPIuE -ztV(f50yi6OkupY<_`3k|Pj&^I)tPo)PQ(nxpMUc`l+^x>^!EFE1)a~JnOQDDbk>6u -zB%CX}{OxKjM+((OKZHyFeNSO3yrNG-{IorM-9e80yfm!Rd}}BEH_frIN;5%hd82hJ -zxqDnN93b9x;SCy@#r{(dpTGZGd#ohazgfx8E2%S=Xw~``fKJuws$9a -z7eAcrM{_X3fL_uw{0QsRI1dPiM8o*n+r-g7tJ -z)+=GW($|-i#jJ3LAO#-d|FjPh>s@xfXbF@w*VRG2vJ(J}NC8P!# -z#UcD?&sT=eGg(3TGlw^`x(>-4;VHrAw(^j+fhX;hoX&Z13Z-h8T#(9Lew^qaz$6S# -z6)UrgK3z^xLc@kRK7XBw@CSYv1t(54y6oaE1ck~g$Xx!BgSG-jOr6KyrN-;m0k_>K -zjUrb(sA?aet^L#iEg|Pv!WreEH69$$y;u6}^0wDRfE9{!E^Jr=w~6iE1Yj3nsB3O+YRc$XNVK3O -z@zJ-e({qi3b)_y6cs;!qz0IWuvvPN=i71kbeLrne>Mvhpula)BLO=UCHoNr?fPKh_ -ze_6J{bh+#Ov}8>9&GDO=Mh^_um4HV8#ra{-x=<*SwTC8l+ldE$hk6bEh2FP$20#i+ -zHX@Y+rAjDSs;+N5YVa*S1nrq|sYi_@*so6#gQeAXm%kosYi&<5PHI{pVzKZTo=W;Jb@3+7W7QDfSLCrSR*LpP^ -zSR)jAbr`=(UI8anVM-(Z#Fa%6rvBfQBLo@(ctu4#cqr3WAPOP(@?36{m2x^%Z|>Y+ -zQ#Yp^1vb<-yq0p}J}e4_@Vn?qJ=?*y1T~>{Q)>t1dK>^#NF)Bhs-7upj*^%Z^W{L^ -z_G12Tht1)8w%-6yHO23=(et>oW08{dzW@eCaSo?C=QK_}yPflZjnpxGHA#CwmLcW+JxL7Gm=hcS7tPdu7 -zK90FW_YbeyBCX;}&BG5a>#wS~=-Y7n3^XVdah+Ut4S~b^=*G8Q=qg -zx?G2zMTqYh(~HtFa=_;*ekFrn=(^!9Cy4Ou=MQ{gPEnzAG+yH?u&=~lxA8`K#@^Ii= -zETI~iOfu`PHpy-p;!m5oFWz~j*W&4fJK8~5i?!q1RWe#*vtLy|Ihdu=UGnnc!BPhPGZQSXTeZQYwz0|?TFEjBD2FC@JzN!MpcDc -zS{q%JnYHfMVzvX6jh-pVQkvxBM|eHt6z+$YN7@b{bHL4pf2qEHk?IM=`k@Jvm-~&^=d1CMafZbtCY`pl#x&>1W06N1-6&GSr{YT%> -zaO{|^XgUsGcb;4td -zEOAfXhg|>%P=h}IvCQeMDSQQCR{dp;z*g8<7!;C;#)Z!RgH}3`M4?`B!uDABK6FDi -zsVL~~H@46$2r>o%gDEXteOT&!{wYMMXQAIYzQ4am3dylm&$`3+4LG>O$rV)bi&m6;npc}y8Z@IMV~h#O63}ox -z@L?(w0kW{x&HgxQqmdgQTj#CO0x7z9FNJIV(o&2t@ftf0^o}xA-Y@K@FCP@}A)}~i -zOIwY0({GIh{BwDq{}1QWC@%vgh>q>MFaEPAaGg$XT@k-8FE8^}NK3BM!jY^*%uga< -zsAJVeHX}k-+LWUy2kj*3f^U{?$wgT=1mlEaKQuqh2l%^yLGXg#F#i=C6xbZH} -z)Au^+_ai_9(kau?2jVFdZ9zs=wk+n~6{HhZk1xGiBRqPWD$6ElNu&8#3;+@gYg8)F -z#GWt2>}0w?DC4~z^gVR0sRAMRRr8(o?N7&T32%$GzQ3@6WH@tnG#OyY-02CxN!oHx -z)hvatM=NnY&uALzhjw}&*UqUhl%ZLU54;m?5iMui4P1Tt>+u>Nj5|4`@2qmV0M_~KmZ&L+atS#joFGD}og1?)@$KJWtx?mld_kJ~LO -z(5Kg8kCnzPA$yN^7gF(sd&9Y8(6Ip9TAi$`E4LqlMm4?w$n-Pd>GRNax}~w_n<`3@ -z#*!awpmoL~Rm-C_%lU5t>dq7kf~R3U(MB=(pg>|kLWy8xibh=iOMqRng0UmHdu?Rb -z0eyo&g=v7zGp!2QdZ9)0XKZHPib0`a4An{JGA3=A(gZ5?c26cR82a9rH8Y=qDC6AKC|eeGp$Z$21Yj`j1!C={NH28s_4f-+7|2#n&uyQ& -zXt#+-vq5@IuFQ6|I(AbRWxDyLOS{eDSJCIC!$t@U;#bx+p0=MPezmsZTr&tFd$D-# -z70@Uigp{aZ;#1i*BCsVE#GfEXyUW80;VBFZ-JA2sJ6OKJbS=VPDE(4m0lVrXU5z4A -z&iin-Vr#lo4d=qWmanMuD>^l@Bn_$db;nqy9~wW2>%YhC(Etbw|B=$GBZ2@eU~`K_>3 -zcfDY@>*qJLY1*heO^<-izbQHU$tHhd4}|tz$pMIEeUIj=x~?lyW=wF=_3Icu?}Apr -z^);;EHrbY!p?AQR%Lx<2jN?eo->!;p(PwVV0X7G2J`e+-7n}0GD@FWSUbTlmBd&g+ -z^R9v9Gnez=^+ojN%)^Hf)@&Fd1OFeiM9f#gz^n_HV3igd#!19JI6t!Te_)3bnj+8Y -z5zd$2FP-V3Akytg^wYksYyeu(zR>F3C}Ju}cf=Rxjo@sdO$C|MQfBb`KxyLQ4r!@n -zGIX{nbpcN2*YTvO;T5d9kCPxKb0RYiDVar=j$CGCi4M{Z?Mi_tZ4pE+8TD13zvXcF -z^!1`5Eg}-{OMK$GzT8I|IuPWCG$X8ZG@J*7Q#mDPX3{g2_J%++h<&BZ7 -z!MlZ4+%zq)plN}PZ`{&00w=NS5RQ5JWFnyyrCW-G@jI;MW&5e<;mr4+{h(I>0p<}O -z9k7gSyp+(TQ;OWL9jQV`IvSD{a!Zw%l>l65g3ic@g>Qo -zgbmpap3o;*uLmWd`?W|9r$PVkHBGVC$d6USui}j_gp?ffXpq|;&cH}y#K(c&m -zs)2WDh+Kc3J{tT$$mAC%zyYHL68^x?UB_6f_UeS)U_r?_$7zd;cxTJ0=6I;$kc9|D -zp|9nm{>k@ScN)9uU(=3;SM6sg!N+;>SDZT?eEla&x7N8{pyEcrPZmh1UBsl02Pwjc -zr~m-QJE2H7VmQXp+n{L5dI~4x(Zz%kT3J(~C>18#FtrD;S`h+aj*_iwfR>w-m^4xN -zUCk)zvZRPnY)s78?zAb>^(k1tM%&ka^!?mgWLxonI5q(YWfnw-KB@FHk4wt6-#jMS#w1lRm=gBk&j*^jI-r`bx -z`j4p9f+b_{LC%E`p+%+#M_f%w3ZgU1qCR<95G(Y}gy_o0%S(VhIZqIi18E9T_@}hS -z6s|lpA0R9HsL10)z9!8fAVur{h -zY=cxpz4+Iggl4|ICudDZEP}a=(=k5AM)$0%YV@|ft}}sj5q!j!XZr8-w{8Tk(QJ5e -zT3$AxCbV|IjBJ$eeR-{=fL&_0%Gv9e0@N5XEc>*!PMVqb3-oi&Ymy&iZqI?;YiOXTnH{Nx@)tVPM`) -znnS#j4UH$!zsdIb+bH0(>)w=nAJTOz;lEGP_NpGe)Htp^ -zZq6#5UWW(&AsCz$6N97CTzVk_|0auIn#mapgFUZDQ1iY_^f%PcXVg+vjo5O04f5+n -zuau@gMMQM3SLW`S%Vmo>Gmn1k%b57sW4FSbT;mH~H481A4j+TdHICTXs*=8U_e3O( -z%;u)_b^ta54#O$GOdl{E6pKAszoysZatwo+@eaRgAzY=1QpW6zrZd|~FD6NHO;Cl# -z_`d+VTy+xL8X%C@L22>MZ@GT3bH`hhc+Q_r;mTr9+z&f^?Tuit39;5d;Gkyv{Y)4f -z?)w(MAhY@-_w~F1_ZURbY8&UWSTV@NoDv`sx8N^t=Ga~uz;H+kERQ4K6sj%(o*u9l@XM)+ppHoEGw -zHi8}G*f=uEUK$o(AdnX=Ztq|j&gvp^(r-AVnJW8* -zCs{Aif{Ju&{4M%=G+V2u -z3=b`L$bSM=v8*Wzq?q1m|HFirxyT1>H8uCirjnGkkgbH0}U2&Z&!@i1@4sxt~_|ypP<$6*#Zy2_ACN -z_J_Sr{QZeB*0Vy&rq=U;U+(>049T@3OK)_2&d?w%T({a3(_lbQdKj{73pgy))9Yme7QACKSnCztt{I_zWcwdj*3WL$&fh`ewep3(C -zM8$Z_{nTl<$i#d -zX3TWVaSJCCIqg7x7n_QjP)ZAK3{y~0zu$8lwIYt|<=0pDfD6Thhcp#dbW~jq++dB{ -zj0lNqfgKA6a2R1m1K9vI*d5w+6A3;5lClkeMzAik5tou|INDdL`44~%uCIXAS40Lao>hD9&1eH4Y|0gwfwBgpcOjf#dP$U= -zv<{_as>{k(f2rh;XR{|QW9B&d^Zs+#IK`JAEZm53#P~tI9?lDF`YYa##5JfDzW6lq -zvkfc*$ -z$`$q#`Fn%Gnm-Lh#8Hc>RCQA5$!r8u-qOR#viO}$sIrS^Y?dwg6%*O1kbT7fm>^Gh -zkshJs@p4MJ8V+yb{o%W!&Bu$2Q7EJKAKtq%W0eof>`1e@Q<>Yr)>cA0t`-T1h7TU? -zaQJxg3MUX -zrBr;e{E6{%zKb!j_O1ySPmA%|pt>n(Ol}l*gf?M@MQCay+>G>27c+kvs -zCYhbkKcZhPBZ6vc8p8G?*U_t{-r$p$3=DTqBmU*D$!vB%UdWutDt09RR)#VxmbDk& -z0ZTpXVnEiI9iy|`GQ|bw@|ntpy}`o5@;gGl+yL=p3VU&W`^Z3wy$5u^!XfHNw-Dh$>n6V`2KgS^+%3wHL?1UtlnAq7co -zur)4uU{x~Cgdm}79+nrfDE=_v1NidafOjsP)3_6cKvQpA+bP14d*=gMWx8@#gX^sI -zyU6N%D|X#YwZwhaLMR8?r?gUttl~0?4lZxv6&2yMu?F28K%igHoT!NQVY1sA(?M|* -z-wqQbWD;?3u}?1pi%y7jj#r%rhraIR$Gw3$Lv5avr`Dm_f-BcUDJYZifHS;T66PgUL56fW;1!~T*k!fn2 -z4J=c~%~yWHK+p0AMkw#2Z_-$KSHU&RV9Xfeaf|4XH@C>}YaVkMf+$9CBhJj0@wlDGvHBbw3YL1=KR~w`MbEZG+Y`vn5EvG*RG5vTyy^E;A^R^UE?wz -zEi!?2sCw$8BRa4`+&Lh%KforAs9^+5%4Y?XQLiK;h6#ty@wxiC`w6Lh;ACzF_2~c4 -z0th-UvUW$IDmCOdx!_+%f3NAn3m}n%C|}JBb{p6-JdrUU_*KQ`@#O?b;bTzk7O4Vk*c(lvI(}=coQEg2V?x8E%Z=t9tH( -zfX}jIqEsNh!}-YaifhZ$>)T%EZ&3a=GO<$|gsP2h&Ff_R2@jsWTdL5lM->th5=cIY -z&kn8mG!z~_7u`qN;<@S^@OmX%266|__$L0F0-OVE!tpZfe`gPr`+%3sq|PJcexzk= -z>^X%2qRUP@zw^!aW#hge1r@viS>VXslX`#)4J)irZZ -znU%AKvCc`30GZSx-G3%tc5z;hhBn-Wp#-2H>6G8KY{ywUs{9m -z2G+5aQ-|!_@<@LDA5CW&6?ON1eY(3lhED135@{(3QM$WB5Tu5b?rxAyN$Kts1f)y4 -zB-Hyk^Ly6+4KIYXoLTdo6W8ARvvt-*ZBV;vlXvIE{H!gT7t^Yqmbs0DRq;<~z?RIs -z=1+ZKG2ztV_Ju*H9^$SN&@%le_Hf{|kNb{#ub0F0NG+XL(8U0EuURU(*O$(up49H6 -zw#^2M~PRRn-*f+jHpW2OQU!C~fTY24y%S7rsn2>;R@XB~kxd+eo~}$_d-u -zc3)@u_v|h{KBQR$y%l7>F(%zXd?dW7Tn?P@Pk+lO;bIw(#h2$8_f`|&`Xs;DH>(v% -zF{KtKXbU^fs`~i&=meJ=uy|TX!93yIh6t!R(rV5USGFk8*~Ya}f<*z~;`SdbudlVl -z96sC)_HrX*xmTOMZgE5{z -zZ?ShGP_4JzafUcucBTAVA2PYV{?ZH39Ya$*;ciST<{=b=GmQ9eqnNnGj;RUCP1XGD -zF+i^E%9duakcKGI3ExPabQL(UB3B`4mURp)xRk5(>8H_k4=C)K{6=^ywXf -zF)b?XSij!=O)@GAr&>WEpUENrf<%OxvO~l;IaaWmBidn5Hj=+F#Jl?QXXM+A41tdI -z4zDjHE8U*Q+CKzn#5^}8vu@I%$}{Zl^yCYoSy@C$+O3pkdvC|XxkK(o_7oOuG-l3D -zh*Rwj{`-%HK#jYn9wzgozp-^BTcaNUVo6>DuM_(fuj#LWu0m#?s9HlYM{ -z+&Q|bFj0?pepov)3bS-^sk^wORM4{^B+YE$#@cMZ-gZWoQ(*kx$Q0v_4Yhj7+ZIlF -zlhSAeEYRsPqsy>^=vo#C|HuqNo9$gW(ySH)loK7^7Tdu4*bL|8|i052M{qs -zuxhGe&sUMp8{pmxce(boJS1p;9|HBXL*uAu%|s+yssmODBl9QJ*m1%iFGPWx38W!9 -zopS~2WB1oHy-!v*ku@@PxZn3kG~W$bp)g4x`;GML;x;iJ%ar$G!v3AnoMcp&H#OR% -zy^Z9fK1WNmXmBV$YfoM&MhuV+T#Vc63RbS+2f4VotgJZ;wU9G;mQk<_sqSGZ9M#B -zP)$p!(EkO2>4PFhkFu@9RKBqK4MiVJKBz=5Dlp<{^Gy3)A*<9}i5|!4Tv=r^>NHSe -zWu!qdn)_(2lNeR?6w#{WZrm -zhbRqQ{X|nxc;(z%2M33S7RN|_c3R#2pM_+%v+nTd>T04pg8NDgc70hn3CfUOVuj^<<{| -zK<-~V&|)}|edR>U7yn6N5Vmi~4#=EWK{FGb#YB+#ZAtgz9lIiXsQH_DZ;`jY_689r -zA=im6f)9DFzhBOIFQH%dMihxasoqIGOzaXQ9Rl&$Y8qH!U>qnfS(Ne!2_1-7H-u+Y -zH;Xg5%B=mx4_6rDgu^~M0_Syqp+>C8*yC?e-7n>u@EAOU@LOloen>v?vW@rFW3L7y -zMA`6xY&;CbF!mRtiXtOVDp=olq~nL1hsRCAdZK59ewXThUN3@rTU;S(OZ?~6o<|7P -zOxtXUqfTS)#bzsB`yk>PB|74D4^{H?I+ipc&PvFd774%Ima?cZ -zmP>Md)o2wbm$|UNCkX>zzt>(@OUn|Y-BmE0Ev?VIFXpE1;>h1Sq^hNB4HA1-7X5)y -zlonnXal&v<2&cpkxxNc;%^J`B>&tHK-erQs*jqFPdrvzGwAEH@Y}V?L&_}TOx2L9m -z7#5ob7FtHFFu`r@9b{kr{sUK(8vb4F)PY46tkU<5IkmD%9LNMj -z8?77!j)uh7*P?p*Z(GY;P#a7&<%j7(P&DTKpB=tZyGmX(kLXVryVbv)#x-+UcKhD~ -zjS3b_k${;)RGN$+2%>f0yL^>$@HO=a`Kx&03o@w5@fL75rR%E3Swa~gJMc^_Y8H7Z -z?gQkNa?W2vRJ*Qi;MdEfx5&54;N@LN-Azvhde&(^t>NQ~g0=6jlInY0I1J6ZozMQpu0w@k|yQ=DJiZC^GZ?ZQMp|fAA#>>&` -z@l9CY)(-=8L2z7f)f0)(2&65t$X(?0;7?lH2-;PR#pj7YKX9mgeS=w4-dpLUdBviP -zZ^&61%pp36LqwB5Xlo(TctnXbJQgIx;{L{nTea@(dR5_Y@Z*@7j^DDcRk#s3BrK5x4k -z;321tDe_XnY4b+!-5=dP(EM@w>HdzS0t-!DsVAREk@w}~xZ(cy%y#<71CoYP&oTLH -zPB86XMN|uC~<(~EAZrJ!Cxy~_8%nLe^&(6u%C3|Ec -zHYVtu1%dci*y~QSR`A?&8AIK@Xna}pqQv++Kw@8gtjL}@@6THyIg@?!93h7Y=EWO*UCj)R>VU;V{w49{VLPBd^je?L0a)sw`$ -zp}*G_$2=M8WxB=wapeS!dC`U}ZV}c9Qrv@9{lH5fi-5zh;t%wB`b~V;>xDNEBWBh> -zhfrdYMnN-%O`+$C^IwRrD@v6&YICENlfT|O3)4d?V?)dX{#HUs4hganbP*K4y^O8= -z_B+9agZiD?*<*TIn*M%#7X>Bij7nJ>Y9ASH!8^uaocJ)evnBKtOjfn2Q@LB}nJ~Yr -zDCi_*^eN%!elnf4%!1Br&lsTv-Arzbax$D8FCG`9)ntzf&a-J_DNn^z*+_3G=P%{r -zL0G~$1y9&R<&t6FQPm*?4{xlLS5q%=*7Vh1=*o9ss`AbLf`F5(o%3hY11iQNRQ>wR -zq?W?4RkhbMOy|ZyK|ES{7D(FKFvU(EyjzfQ` -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 -zw3Eunzbv3krp!mq&rfL`M}~_ -zQOjGiLNrRRi|5eRLc*<$;N8gBrL>yQaqUq85b&=gsLoPa&@t`ikEi+h%+!Y`34^H* -z-&SDs<9Bg?8na9~vD0-GU=cl(X9*tvXyunz2NxANo$FCc_IV`LgWDJAL(-}*+AQgD -z?O!7;X7%mF*fJb2FSS^VspHqt?P*p}=!_D5N3a_)tEH3aE@KJQVYw$TPfhJ2+w?ok -z6&0NwLM83P;jwxdPi448l1l#}%>1oMN*IAQZT{G+p3l{_;xs1u0+P&Go8*+%yMvaaVR -z>H%yYjI(G3q@);geDu`eOmEXQ3N;M-ntr*wJFyRNuMv&aFi_l0r%#x!v>*xS>MIO$ -zuzX}E(JNB5?tGamU6y-xM2PyFdm(MP6Lvm)uqnXx#b*TpPw3urEi8@97l<}#_2on>G` -zB!-iViw|OhAjo}&mR!aTS}zCVlx7jhhUU>~!g&k+K+o~W4APH*Z-Bu$Hbl-S^zt$U -zX#nKR3?p0YPf6DH^-==K_^;1(?m} -zfU{FKz}`1MKYvoGQ%+JCZ5}NC;$ta`tuiB+5xxK4w&&^Ze!D-(Sa8kcHm&FChkO~f -zsQN>a?z*|T3|kLHV%~opwG;$Ny>IugbAoZ-rOZ7DyoYZ@{mSqu&UuiM0?)(xv -zB#=@EYg-3FlGQ3AWL^Sz1RDhm-@QApt*O!b_}k~Bu>4A5wDKhwt~^4aqcBdg#nURi -zm=@gQ;&-d@fNS9J%ir(S_=VegK4By^q${K*%5R}##6#dHfqlE#v<)a#-T7f9+)I#> -zWBUYea4GQ^^L^Z`7avcMw06{w -za^$~EL6)Md;WDKj1}(WtnQ|^;bclpzol!n%IjSOVShh}~jC<;adh%xzIMI0;MZlDh -z&nG*h`}Il;)}4t?d%99y*my*E6~y$HbgJ7rs<~l1S+@rEB;FD3)1v7TSA&Exw|>M& -z4KVY1R&m -zgbSCc#!P&g%Jm;@{(rC-!#^ou9wv$+J0_XJTJpW^pDuiqaXPF_?yhyjH=EnAtGKSV -zif=yKa0Xf2m92ov;o+g`23i!9lT9kv6YETBm_<(Xl1-U4H#{&43Vqw{?-ib~839EC -zv_&UM9j({N^R3?epPseed-zKwdemw=T1FQ%H8#$h4d@VRk*`J))Jc00OH9W0gr1(B -zPKFFYzbP6X^d><4i>ihNqa}zpgWuJ?K41j!+)=1Ghy54Sv#8Ju$ -zrSGg>F-SySydoI9#%#{rW&7-D^zy_dj~sPbo(W!89gJX`L9n&qb;(dT{!i2VPdV^n -zjshBr*eX9p3c}6FoTz`@X1|Nn@#P1E6*fbpnzRfWRvisOp##t95Dr=g&4049vUajl -zX1g3)BuV;32_xygbElY? -zJLSA%B#Q?5XIX1$?ur*O>F`Hj*sR?r_EVOQk%qeXlQD>fR@7(mjZ01?sf?4=BsIeD -z>C_CP7@B<VG1Isr%yNHJYUhtJqPmP7%eZ>}Hv -zf!Ur5+zDMXiSTecXV1}XJEBDUA{wPdQtblpkFC`X;_140@WK_1qm)bRJe7XuxVruY -z&*sKL_`)1vgBEAFY)Pyz$A>H1=)`ai0(rXrPE4@f$Sjl3i=*Z&OY_TGRWGr20C>E9C?e -zt7bd)&X*N6!!3R>muYHcLoU3fXmaVu`v{|7h!q=@9o3CDn_(A}oXgzG>lw5&M)v}d -z4}d!7`t-8eQT -z_>G~#8UEPK(SVaT#-O5AwP3%;tyNKOIs@0_4y0Tf3&s*e+os4$#ADcWau?)61I5M& -zRBwjYsNLnrhOX+s^(j$fc}R7HLSC75ub -z)b?sIWAq;p`Mb2}7|TUw>=GrsK~YjFaEl^=HjvXqUGIdH1K^a0zVg8q-Nm*{xD2kHik*?+Nq@i2NA`8&ay -zdAwi^DFnehDL%44l*ZukmjQu7STBgXEKtYJo6J^7|6QkdO=YGlqJ~D?A*N;``WH;b(^VU?}Mq3Rniea9y|ND60Bu -z*rk|;9QyT~=D=Lz$)xXmx5Eg^`m>Ul@e8G6lcXvaT2mn-Y7WPd9MJUi?90&a -zI5ml@i4Jk@Z-{)-fnSh<9~tqta&S}u -zxT+DO1&e8h6`eNAo$r7cC033xzXaHjp!Lc6r~o}-suxFN$zQbCnV-(-s{pIIF;xZ; -zR=A(akFRKt{xpAZ-RtiyIfUqz{z?wOQyg2dLg=640fe2u6X00xGiN?n<5!fHX;fDe -ztbcVYe%W-djQFEj<~0RYjt9J5k77wI!L5Hclex^$R}$A9`U6|ea*8zy*~21*fVq;y -zaA>nGX5IvC3epgm8o&aDSWtwR^k`_Fy%PVI5WG;~@U_H%1RY^nK+G;TXQA;wuu{hm -zM-GY`+3jnZk@_J_rxO-}ukxm^!G-W4MeNXh!&3gFDr}KMBiCcDR5d*d=zo$HFVe_% -z@JXEdQEHWcdNoYY{`W94ObR0JhHELrhJ`b>Jfn78ZpJOD@`f>RKCd3rmp&W3W&!@q -zgu7r~qK@;yOE?JRY%7q{og@TH&#>e;k~Rpfx}^FT;VLVe!s;8ayc1Feffop2aXOzv -zRZ}p3*9-fJtOQE_FlroBm}GTrBNHrn5yNzZ9lu*p<0k@5qm2WCxZLtG -zum?bOSAYD7(VLJKsC+*|x7(ocff!@!4)8Xsz^X;xh(pGS*UP||#138zqGVsUECZKr -zo|41t+aRkh9GiA3(4u6*$LeJNG}y#Q$)!{?((!Bw`Z&^ErxpDhhX%KH({$5A^g1-o -z-$ZuF!uS}QKtX)Qc-P;>uyc-PZ)_#|l!UH-RAQCEUbImI&t_BUG(n9dl>7>Gf^`8V -z`$+fB?-q&CT#rO+%hywj7RhF$f(PVl-0KgE}G+M7fcZcoca=X(hzJt>uRoy~34K{OR{De@G5;_*RXQMwShX -zl{Lm0hWF0F{b&o8v|I}}4I?LC$M`i$yY3__q%ZFuWp@w|9qV~8nMvQUhBH#nCa6eHDunt@0fRa&}o`W)}XQh9yOA!a_U+7;Y&63XvEPCVX6z+6)ulOf-r? -zG!4@BshaT=OE9%G&vr3}YA^F-QaI2E?X-l>It2hJXdeG}?2lhvLVgFkAZ3nBD{-rF -z10$B-1HhF-V-&`yZ$}%&X|Q_i(%@GS78I9c6^Hi9p{DL`6X4AP?_8^o>g@-_4-b(v -z{rQfqZ;}#`UD-b5u -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 -zSOq>}e?g(b%t>d@0olMYo=ACmuQ= -ze(*nS7%|EcJMa!xCJuEhzyUX#G}P3pqgr-X=3A<;b*KgYt3p!-)cXq&yX16aQ~;v~MmJ -zT*LCK6`s2odU5oL)zSD27U>as7S1L4vH~!s3KrDrd?3YkQ>&7r%@rJ2f>+ -z)PqdyP-TBj*vg1kgh%S`&r*?)iR;ttF*5&~{s%eP(zlh8{`q$Ofl)}N1VyZEIUZvz -z4l7x@Ldu;R=Z!V#=(EJH8^if_WF~gV2foX9E;php8ZYUY9F)D6#Fj&M@#doc6R>hB -z`YrI;yQu3wIfZ#(CinF6Y6)-0wN-TI8KURURMXA~VHF}q{AxGaL-Jt~3lgZMb>P&5 -zBJPox>bU?XrrBX1-ce2jtV>J0M!24K<6%P72UFr|QGviC-!Us`^TlFA?HHVKu3>f` -z|M|4(_E=`ZOp7Tyzn`3^mz&)IqDqSUGCsBCEQa9WfZU0rO+v8Ms5gWK%}^L~8{iu! -z&)HeYS7s9elmba8y(92UxkLX{hvel1d3YS?3ZIsK`+>w)W0|h}>y0IK;hL%8flc-+ -zL)#|$P_1G@qynN2jOh25Tl$j<#5f25qq0{U1h2ticGTpA+*V~N4#*EYc?bs&IudJ9hEup>i<@Qp{ -z`ich6SwTMecu0(^A>rS^7Z0Fwi0dDi@CK6H)s{&pXRdDbwaO?cLej|vLT2)yNLpRI -z5!lEHACU0WojT1G7+t&J_P#5k_2OP4XOsaQr{fU>vF<@SKKm2V%%BbA`CNKW5AM}5 -zQTG9eK34wmRt^y-PSmc8>_(4Bd1Ylw?}iSlGhZL+TBylR{Fl>8=*JKd#?&mLL;p$l -zC`Z*xyGbs4$us{?gjUT!~?_glHFWslX4+ -zP{A6$w;cC?LtT9+Ne($92jdG&+Ign~+a4 -zIy_{**9rncB>(7gxPrR}3P>ltEMcQQKAkBog6!$RMrpIJY7)t66Hsz4^ap{%Efbba!XvZXWh@bD%bcn{ -z7C08mpVZ}hn6>=W3KWHsN3E~wAZmm7BK$VWFCxFYjPo@spwjOk^Mn&iZufU2`|@Qf -zyq(V2bf|_mOY~oXU-@8aH+TG2>=41}qm?ytHy=xo?f;|cEWD!n-Y!lK-8~4>-7vra -zA~7J{AR$Og2qK|?(lvB~}}w -zZK2H=@1F!#e2eVji(x9a&tRL^e85E^JWUr7DwNpOHXq7Wft_gOo+}%3ywbT;HAS5v -zm03wZ;q;C~axkTmqg`5t`Nb7OkGIS?7!0HW?%r4az;-1H7jbc1=gV6rb%veu`koJEM`4jq0{ -zLicwfRTY*XBl`p(3AdworLF#kv91m0@ZUw{m`^+OC2Ky1TqTHkTH!k&C| -z4r5z*vEAQ=kC(F9z8s}izs}Xswe#|E>xU0d$)1}L#{1)kV!~)0TUsYDjA8%9yhZrl -zYU(qJeY=H;EAnmR5TsHL#PoA7xtklW1Bnytx+%7=z5?#?s}Ar0{rej5@2k@8vy$$k -z!o}y9?7n|{?U2AC5dyUVn!|H*6WLbRnXBZzD{rxa0 -zg!CP2_fIH`6nDjdy|%6WIFsmIpnR@qT5b7vw8@BrpIFfga2hVfN-HghbhQw>kQ_c= -zLqoqB@>REf=tfR-YR*~@Woj+{cVe?C*G~x?c9cZ_@u(*Xl^bN~e@YmV6)Tjmdk}e1 -zvwAEceAC^!bL9&thtyP_rrijJJ8C4IJu~|c*FVU={z|y-YMEYCx4u9RE~&ydDb#)Q -z8xLVuDvZ^K1x@rLLI2{eqYMfJ2u&0`K{?u&sp2Ou#v+ZKxD!r?o+xv9g|ehbCnB-f -zOidQuvFUowKz*O9HShO*?wL{1sn@4+wyP?0&%Ol8c04&`DTPt&-Duk_{w~+-w&9Lo -z$P3PT*)rLlOIL|`_Y7N=g3J+M%l;8me}{_MiigSXUAvqvhq}YnxP0Kd3d17VwwiH~ -z!w2-MS6_w!EyW+4)GvYXI1Z;F;GT(kkikCuLiRkZhJ*kF=RQ|4@C(FxtUt9^ZVh3!d!D(9tRr=Vh4d0WR)w){YQZQWF?DN^>| -ziQ-2*ZFKpPe4+B?kUYm#VI;kd*+{_t{@@CB*xg&X(26eP1@K#T?f|VPd{6ni`~${F -zqk2iUFXqPjMJMa85%cPm&dfzpOC-`ifoT{dSt4s0#Lq{C43y0C)AonA)_%=@N6LFi -zmZBYM`~Tz<%3tOAJu10N&aaPQfA6?sy7ykqKvb|nuHyFAAezL_QKw4o8>dJ%4WsZ! -z{eOe3@q9XEHo~EPo(9En60Jgseijl?trhI))o7y|XDejgeOB}0y#ceuZJ^wwQYAs`J?f7B -zXZ_fwr>vhbBun!(u*W^{N_gOagYuR?3b^~%{rz3>OFS`AT<7Tyj@4p;1Y0Ys9a|&22ugP -zw0UV0&<1BcWkCJr0`&Z!YCot)`vUX@sFON&0*QVycRHPKLbGuR#zZ{M>xy?t(Sw+m -z$E;0Lo)Q~O!w=s7bQOB+KkPKpj71+#gI2oFXobjp^8i`}c`%K8%0d=mz55K#7{AF0 -z1ZUhw&H-)*U4xz#xIYpy<}4k2@S|9%Y>$#ACvH?#td*>9-&j@fI8C`q>*(}M|A9F- -z1R{Gl^wxW#t+RjX=(;0*CiKY8p0bbw6_@iHHSq870%T8)6&884kzFN$o*ciET!Oc& -zt7`?mH1gs#kvHxn-!+g^Z%r^a3{vvgp?nE=DZ3N-f-O%UzkOIEE{rJ=3m_fhXmk6$ -z7fn>2dX!O%jZy^E4iRXj-Ef>I#;?cOxB8=R5QkLUoca-eUwvs$IJJN-7tLB?PLpoR -zyL^+!wHgR>-f)GGc#yTuY{&~(@_xy%k^4~+<+Pbn_CsOOVJ-;Qnj24)qQL@4N>A_v -zD}Rp8Vg<{lbHZpz8UrUSwU&i5lS=#A3tXYyUNXCsUpS)vVHOX+c=3Xs>ov@qQfwt} -zjj`p~@F-09!}=s4e$6?v4NWx(jjri~T;Nsv@0kZv>b~^xC;iGKH|sGGM^SMQK|Gdm -zxc+hq;&#FWO~8g)(!Qk`mo?r-Y95@Mn~PtWlK4wa?t8)U_H}oHYm^8nfkOA`q_shf}EoV6ob#Tr=A9E61XXH}VLFvBi2 -zi}apLX-pT(Gi3`C#lAx0>)wrV^z -zeL1ccN?)S(Q4T)|S@XZ#Z`Lv$jr_Y7LSky~%?Bt^DDMnAPGLqc`P{~=Up723#ZLf< -zPa>KaBWkkytSHmMx(!pdbe@JRwZokG_aB?%UlJM9yyR@OO+6%1hcW11nJWx7jBExYn6rdhlKfZ2_E`9`p -zTow7QbxLd~T3uJ(g9dc8Y!34=r>pad=kS&|o$I}!hva{`B(^o4=r5R<{zK>Lz*-YY -zB#?=?0Is%uASIjucl86^_Z32z@T(a1-Dg*T&%4B}^v0pFT#7g`5LeSW*k6%2$JIX9 -zgL&jd^c8n+Z7{O(8bje&5HOAYf+X9swCx;?>^X&xGv^e8$$~|@1HV5U{rox5EP(z% -zVzR}t#q?3jF9DaIu`h^|;*ozXwvTOo0ab -z`rh-5#|QcWEG-C*mbKTTDG`rV?nx58iMOD?Y^L|)89jJdMu3_~=Tn+)K>wlHmWwar -zY*LYAtcvOl*T!xq*p@s{Of*Jd6=kv9gmYcLRomeKoRGJUcU^NhI*6=go(|vNPMGxH -zb4dNLR7H}3>|WUQPbq{R>@A!hjrl{z+bEk3(dvJ#bY`Q@HL0sa+FvqSy*}6&tSK_a -z?-6|KfrKwPJjd-0-p(gr&gYi7U)fMI_h^Jbc2XoB?KNE7XENz$6=s*^^=EL?x--ob -zcs$NNWLzA0d%QAsQ4&+3-W)nj8l>D5jQEQ$9Qid^8-0|;b3FCun~rnTW&&(^H^7!O -zbO+A&C3VpU^W1fkkqF#W0TA^uuku;Uw@OciyzVf`&r?&0oAX6Zk{s0J%Aw-ggXOITkeA7jM0 -zwy+-_3(U;Jy$*fRzlE6?2qQ548%r+{Ra#oAfW8-srY-)jS*|*vLZcu8LQGoCf2@Q{ -z|L#BbA$Ib`cA`YTRN7gR`ugdhAUCj_P_o7&9SXd5+R7pD+L3Y}PsO4f<2|E|tU8w5 -z6;b+oyc;R;O~hFY+T`_;%jJhH;?7|@TmW&&UrJQ<`~W7dc~}>OLnNMKq3wE8H!MMV -z+o3+*W+2L0cA`aA;((BBWGNVC-Sa>T!w}f(IC`lVs8>{Oq#zZ|zcBA~r1LpImskTd -z8+SijjTmn`B6xn)OGXvbPib4S?_KhneP`z8V%cNH=_P!(H~#S*t&5%dD4ia|$ntII -zio9Arju6=)za75xOeCsgNy|$I!8YA+%q1c)#hzdJ*_V>dj2y -zDY12dd^Alj`$rD;Bzbd3BLt!xSCK3dB&W%*lyLP!gNQ6LrJ6iS<;mf=xbH9bwIuqpvagfms-5MtKld}P;fOL5 -z3DV6R0+?JFRul{tc%!GX-8kJYkOaw8BFp^tN3=gfX0DU*Jv03e3=N~i%QJq5(zJHG(~t9!_2;<0OT1^nLa0#U@HN~NvVZ2CH -zeYkD}MQQ9M+0Bq+0R%z{8mX(3QqmJd$h4`$J&6kO{ni4z3-q-S-K`JKio&RaAssqB -zZM2qrr3))6WVS-ZE -z|8^fg7ISC@yJe8-dg}<~UtV5*&>a(J!BvS;QTMsRmLaIr -zpDKR4uWG8KYiX$pN``nCa(^XkzV_J*O;DV9o2OV9#4RM>Zct|b^2OSE&|rDF2`l=k -zSP|F^8)#Z}$2l*T-;akluPk_1ZNvP6LpmNp#~^5qWL(=aujJ=!J#b}ZqOEorbcjKY -z|5Sc$H4-uvdPSJX{gr~OXQHr#klWi>~^XMH`v%`u6}M`L+DSN?^7%H3G_=&p8BMn-lMg!LV`e@j-W2BEbZmbuU&krl;S -zVZ@M8IDdV_cps|slJR1xK?sbG9yI}0EYM8P&r0$_q+Yk*l==uh*KtB?8I3%?)IAo9S5}oE=VECM_>Z8kgDT^Ly8ac%u%mqs)484j>3-56vt)vfnKI4E^;@BHik_P?rkLYi?l_y)(U^aBm{4eBA3X{GEMBMFsv`|7uKdC -zX!99WNfLMtq;dGJwe6es@u!3qNl~v2enU5|nJD5)KD=7hqP=CG99nvmXsTAVMT(da -z53=W;hSs>8oM5U~Ob!sVWXMIbFn_CRgU4njGf3^SFzi{*AY&w?zdwa6_ZO{c637PF -z8oXs~dd(s=g`a%+ngN=`CO)VabWJQ$@hzy?C^lGIWjWZM=$+8kN}bfgR^uxg@p>=L -ze24ZR;}2az@J~;ZWlRPp?f-);3VDm%C>W -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 -z+FT*BQcmuF8=Ld~SKeSorD -zdCl}tHk%oKlRK`2^V3O_=Mg*sG5z4b<` -ztg1r)%gQ#(j06$rO190mx!Bna(HBa#-oOXI(MWf||HNQ%3z(=zKx%YKpRk~q%N>Va -zU0eRxO}zq+D|vpAN78T%D$sX9GXU*u111cO<~nBmJC;n*4N$Zv0EWmm+_+vPUATH+ -z!Uvc&25h4$?`})x5BaBmV~5VZ-IjaS-0<<^$NuV`n>D5&k6N9VtZ&8#O7tE8C*5fz -zFIbOYZYVR6wh;MKBUNxkrcstC;M8q{Cb~%InI!9SvTpvVramV+m?Lx)q-K+j7;Q8l -zR&hr;v>X3|@5*p=o5Qg6SC1w@-}baBWS@}*quLV|97ewifW?)U%o0zQ?zYiM$JR$P#U*GaYUkk2H6{W`CacnfV&VJU{&83OPRjb`XHQrRW!ufv~fSA2b-Q%f0 -z(f52@NHdy`5nrs@v>=S4)MHse6_wM-yzSYHmqY|J$<-gtT}=JkxLJQrc<#6VH8GM| -zs>?KrI-H5wu0SH=^1o(PhO&s9vV;E<;@nJG&XdnCOrANmAm!7Kz^&j1~jE%K=JW%wp|`t -zTN&0O@o5EoTF`-PW7ZqxP&$xKpBv^h}U3 -z{q>JTK|RfW!S$4#$fI9SG8LL^`5ZY!=z*lnhb>U%Y|;Bp*Y11H&AO9I_%V2PxxS5c -zIrOviq-yKNnj=Z7F`6Xk#Z1*<$oj=#0HfaoKMDHx)URU{I@M``nDwq(9(p -zH{gwqyRpw{7Wwe?Q^?w+P0TqOw-=vV)Ee@m1#9@$J!z$A^j2sWeT@)dG3= -z6*L0R94dFSQv=AQYR*2a`qS&Hw_$`3?LL#|5idjr;?YE__=4ifOR(H43XW-z*Py8R -zK%<24w7PMuLuFC5ck^WBer@7liD8HISmt4vl)3B5WQH?#?qUYMEa85S$**O983b4E -zPR79o+%B_&HH!HQvrKvc-}W!ISv_7hCFU_m3;Tk33i=2A9wN%cQ@|oCPZ_GSn`XF$ -z9TLBi{0A?zrLDE!Sk|ea#iM&rW}@ZrPln-q6S_$V!cGc9C(M4{N@EPqF3FpQy-AZS -zMJyGN&g~v56Lc!^FQ^RZMapmaP0lO!e2`iNhQqQut%Ch#LkicGa*}-fzgOS(Ae3K_ -z_A2t2`ia7tz2UZD7P@JJKX6|i466G-hN5`mgO=n*MJMXOz -zF4CQnfjEL>xHRmLL6FQ}BfMp7S_nt8t_|&1Wh>X;1g38Yb -zcBV|kmzFKrsvx8M6v?d;MDH{v324qV?jr)Oa9TYN?)S9=oJ4-4YF!P&)A7V#WXy9AMm%NKk>8BeH1oj3A_=WrHjbXIuEW`ZQxb{ -zYsY_JYtLxK!I~FhO-81htH={ipCg=+6oLtXbbZ2$BN;Rn17t6)(*G1g0JiP3@w=HH -zz)9G+n?ukABAgTFwzNv)2`mii+Ay8}9Hnxhm()9F`ugFaU*dS#7`n@joXITTFtfRd -zz>LN;oOezqCj&W)6iS6}{TPn|KQQ1xYUigeBS&T6(@Vt9Y5w~&7}Twlj9Dl$h_UUE -zVt-;=fJn;7w56w~f3)!7Dx8h>)t5YE$w5?#gE(1~N;SbJ)Q>M080q~8sj}eI;=9bv -zLRF?9{qQw#!ISOZZP0vn=(aQ%i9trB%Bd*qv^6ztCOVlv*A)E}LQW}4ujo%rn04R< -z;pzCY(_D~nGiy9=r)6n6?!J|kYgNEwH;&%SThEBf`R$+r6~IBM>H&bJ2NK32$V&ch -z#GmJ?c4|e3mE?&D*s75$jI?nhDYI}AtOXN_da_J6Qu1|n(nO8&>5u7gN~BIHn87g@ -zyw~8{x$HG=_wfCR{0LX6wd*6@f!bQQFSOwjsJ2R80<+nCC(X320@F0@Cq-c9UZ_O(vIO -z650V#ozRqG=mIz?FwN)X=DNsrrgOK4vw1p9R)m{?Ha@qze?EgvVYW<|Vp3k?0|r?w -zhkM^hf6RvER(d0MUpYK2v#i%6zBus~X|i^@l;}E*g*zE4kHZO-!_)+d@b9>k(%>2HrdY}4t -zu7_LMfhgL4tQ$XW#vprvPxt<0Z(9RrD=e<`WOAa9|SWdA@Svg3PU#wzdco<*-hTndm7q -zC2WaQHS2GrfrNu|#i2{DB;nCiW!g)+%%9W@9PrZ49+0RR)-QP=WIg>{1&xv?FPLmg -zM|4E|BQvmYxL`fhd+y&2r|G&}bZ+uBZ-T9H&pjt`nF5~@rGf5tHIZl~Hqh|o#7&B8 -z+UoG3Fs09CsL(@zX*niDrk+et>SO&>T`&nR-AQ>MiUmR3>S2B47zedwtO -zu?I7+#1#jN&d~koc4?DgDJ9Q;cL?l+Zdf*w@F5s$u|aSYazwB<0I4xLl!w!1U(_~a -zyynx+n6P(R)P*hn1wHGvM+z}oV!;%UA -zPmtl9L1RQ9*Mp2q^%J}_Pk@219eg(2zd;;#pMf5Uurv<=+u(R4U!+RNmtOMEN$>)X^Lt34$-8Qe*%Jx?I -zNB_k?caB(gV~&Y5^#?oh6BJfgENp)`h>BuD>?sSm9Fvt8v{XunBEiz(B_vS_(yXGp -zR0Jz>yp8!;=RPdO7~co*q9ko`j{zPwf;Li^HsX4kH$<{H+^NdMUW1;QX}D%`Ek<%T -znCAKWh9&S}%E*4Yjw^E!<8upG=#RBBpLDn6NMV9SzRs_9c8|gNuFIA?(13XjNO@m> -zsldechY98I`11v#69VPBrv!v%i6ERbh;fgXLOu=#l{z%VvtBKB>CxbM0x? -z)q3?8I84)=C%wh(KHi&QU`w8}IpyM7qnF@%UQe@5%>6S+LwnC){=vj#xi4)iwO|U46zgS;+0s1K#fP%IDCewt?Fji*Pfat${+lorHiuP@E3n^p0 -zwQY*A`C-^V**yF|mpX2dh&=a~)>-??hxZSU#JbACt@-gw^1z)Rp$0`+neqJiD!Fz3 -zzyBkd799oDfCwoX?D==L(98^Sr*T3@cC}xbb%ksnMnkQ}qtvTkygDI!_(06%r)Z5? -z8RuUFaT)qj_)&7SN@HVVFa6>RrTf!|_frxDWJ&*i+sP_^VW|=N@2nrb`^JXBybHGz9z(Kh$TDx=<<^;yd{$pBxk@XEyaQ5e!it~!g_e(E^3Y& -zxxkj!6N*!{`3aq^*>SE@Q=>;kd*>M<3qYEO;~qY~3q-1bID?{~#Y2OC_qgwtXgUr> -z1O8nvujbu&?2Kw~h(f;?jfyck}a@h;7 -z!>#;jnb**N=76FL&^5W{%L*L1LiLd%QD-Nb#_DDRaz -z7kIfC&hlq!K1&^2vT=U2M`{=MSJ71oNsWBzdqLD#MFTtam2Qj9`D22-vyDoG81xH7 -zYP~U`N1t{nU9N9*Erj>ki}axsM9Sj?-yH+4)+4%-P{Dbe#a21axCXtFkKJ;JVN@yW -z53uID1iNg={qMA>lJ|CDFR(qd3j6J3Z9%0|Q|N0RKl?elwVN;^U9-HYtAFPc^WbDT -z1vUcFZrcd-PoOL7Y;UUg8z_dUGGg$T@&p_l!YuS=Ndq#7ln;{6)HTNBNPE*0quCjZ -zZ%0iN!ERJP+(-CvT4Dsi&UFUB@@*5;c*U{0n}rOHMEZ(OBG|>w$TdN5_>p0GAwzR;6UYUiD;Ux&Vjoan> -zUpv;ezMldMfkj`{7esL@bZyW7-j%%kxP7?ra;Iq%d_^dXl<0`$ouzW$TnzLt&W9sp -zVE{PQSAUH)8+z+)7?viDI$;YplA}JdZ9N-b91Z9Toe8IpS_#RpgohhoMmo@9X -zPAI_;X)#0ic^~Wly#QvQWf+aYh-$#Mhe)D4 -z<8Azc1HF;X{!cHaPqeYW3iRZSTq|1}^RL-H{CHyqnz1|m=FQ*6RwI>bKNxAdP0C(= -zxA`vxmS~ccsY*efNn%Y^1b^3SST}Dr&>^(8xh$nyFVj=X>7*I)`!%rAs+H?A)JVOL -zB3*$$S(vbI`uNR>XmC15P%TcY$@ACkLy@IG<#ru%MBxt7NUaS~M0lToG+J^ZJxaMK -zP|TX>E6-1L@8fuePA|7$Dx_A*2y+YM|kZdY+R_c*H0SNd%z+f*pBi1?Qgu8cAJ=C0XEX)<)DbvrO&*`Fx -zx{rH#lB5)=Dh)E^u&%&&@k>J#3_~sI6_HM(_mO9tAfaL@>pt*^QB7)@)Ym=y;+;ZK -zH{_#>fO)&Yf#&M!!omS*OFzJo#uIypL4ehTuJEv*b8&8}7Trj*>pV3Uqk>9&HBn&>{G -zcm0!KTBH+e6gc2{x_t4&sJT@^VWb$urWEk@S0nt(tJbX#(9o0y@l3UIRSYG(sdW{r -zpI-d{4o)<<4W7AFLk;fQv(U?F1AbY=4)|nH#UdUJR@CS?eN9oTc~MrNQ9c7DR#_81 -z|H%6OSKF=-B(h?eV1MW695R_*TKwVB>J^TI4IizhJm1aK?A0WE@~x8i-)7uJA7V!T(Fo7*OCi)FC%`~0r_g@;n5U& -zlwmpvufy-m>GYTXQ6N+qx#q)sF8o@y4(*DXp=?DpGM3=|1DeA0)HC(>L@4VYt9D~RP~`*l-k>|v7XL=LYw$NIZ^TOn6eqi&W;W<@OqPK$pr+h -zQLX@cMF=CXbk?NxPQOVwd>FhiKCmqn4{&<~Y5elrYMzmT2UmtpT-sGQN{MHI5yis`uN5dDJ -zKlC|b))R#I6(X=i6S>=L7#B|YtDrX;kEo=v8by>Tp%yA;CdIG-oR8u`JcOhMN){E+ -z^vPfpUXtHs_3qwZPa88N=8Gp247{+(OByeO6uQC^B~-p)p8p8}UXypR -zwCap1{i|)D+pwc7f6O6;AeLUsk|mpktiw}8k|CndyHUf{5fISqt; -zQSh+gWLQTN8~*u|*ip=7v8t*{n3D_iT)Bo^=9{}K=o|UI;b0%R9vV3~aC!yW+Vp!8 -z@0$+hSAjATUsc3qgi9N($xY;^IN5E!79xuZ*((jp9&^PweTAp%&H3T!#yfVr_vX0= -ztUf33&u4g&OIO*GYiw5^U_r|7*4l!S$wvHoe(^aL%?!xLhZqYs8V{OhkqFaP@^CWI -zB&rCG#i{ivp2vusReX$Nia3&E^~Y2d$dg7xs&a-uj!lLuKX$=V=q;gdX9$KU;)}bU -zbk<$AGvUViy#FqDqm&QH=9qdj5aG7bFF{a~r@`@d@Y9B%=lHg%6a+B&l{oI!x&AC2 -z_BF_NU2Q}!ru^_=As_8Aq@_|23ZDLE@QD5H71xYGm#Gc0Y^KHmuqcBY0>#PW82({R -z7pS)2e>yXLI4$uD({a1vZI}hBwISonq%Txg4ZiK(n -zLG4#V%k^-LeC3MMB!MLYy7FepWn{d~QViN~P9CrES|^sCLo(;_f`SU}Kxs?munU37 -zoTJ(1=1wLZ?!Esr!r8cMFVJgBA8@m@`YZ8RZgI`0I}ge{6|@jLMBWed*%IhO#@`bR -zU(gvV(&7{|wI#mdBGq0JOpBJ^3ihOpw -zFYzQM(a*f|^UwW~{r~};Ze<5KE*%{+iM5oF=WCnwA6NAYasFNEFk?$<>;-ZIhET8v -z@n0Md9F8w8mt`~9gJm_?nbr6S@2NtWJ{MxSdVo9*$%XP5l^kYJS@f|MyHmktW!x9t -z-(IIwSu)wAr_NS3HmrsppvQ0JY(x?}yT2#qD(HA2`}c?AHpDFWIP|j?;ptV$dL8H| -zAQb`h^t=82BTg1s_-mj1X7a9ow;ixCMn^}p3ap#e%oQ*f -zicye(WU>E@_?z#0_m6m7kz)%@G8EWK0$cPQ;6Y@TXjpLv!wx -z(4~!n-`{#s#?BRR(JdPNnicPm+?XTnHZJczcGFNmFSGpp`<@N{lw0C8{sr)A@ZUkndexUgCP@vlZ(^A%$v}j?Q -z;$SpW)Me~R#B%axg*WrxGu#KOyI7;x^DuYAdE?aHbc2yM2pPT!I@QZO6y$is9 -zntF<58Ta)Qk_rxzbyQ*^DySS)=>h3ezhwU;TFz5NCeouN7)`# -zIqk*I7?dtqZ+#+6_`$A=3I!GHl_2%E6x0k4tweTXCg^T+G~wqs2!$p9E5SGjzmSu` -zNSTC-=<(&L!osy%_t&Y=9ySd9A5B*o7FE}-X^`&DA*4%MnxR8lB&0hfq!FZsl3d@(2ETgtv -z=ivTE$Tz|pR&s6q&N(bUpKy>rp6l_fj_uYhSe83;)P_yhV~XB!PR<5y{J~rG*@{b) -z+1-jzNh!DKG{6*jmMKM*QCC)>JcQIK_s5>H4XO9|YXbfwEgxSp*nH^r6iFPXE^Z~P -z--+caxOUvKXxlA?ahI2^srfcCK~nWm5@hbwOK?R>kB{bb5MFBb)Qv9zUg}HWyI5bb -zVVQ%NSd8|u?0!{UNk!pxzk4mv2LuYh>`GI|2386Ertm7L(Vrx>wPW;_NLXBOtbGb2 -zaRzu1(`OV0w(;BeAk7;X}>(0{Ogf==t*iPhD&l7+Oc+nOCVFPW%Qt|qS>EmQ3zD=mSIjK -zFEG1ftyhKX3z~wX1$k#_{LWJp(+!c -z{{03X2*5!b^378N=_|r---XZ>-!orEGSLY!u&Wv9zC@eG_dpG6POEQrG2J^o4EUM5L=__h0exwvPvc;N`7jO2)F9eaOiSuS -zM@vBS-7cXr@~))^jVR5XKXc}08ArHTv*Ne09S%1>lGM9`y=bCF`JD|<`YR|?mPYxi -zy2=@HP`}4W2Z*_{$;3@Q66a}Z(s*+rf8QViP{tUi8^eJ=SUDb=0XXtjGSx6#vmo*8 -zQFpF2)z%%K2Sy0t(rsH>feiB354e@(e+jwd%yt_s-CLghzEL0Uwf<+)!-9lgR7GAV -z_}(Ib${Tb(Z4V@pa3$XZpb$DIt%Jt~U+NI4r3ECEhxI=s|22qwI1qogm#9d4Fx~&{ -zi!ul6AUsJwdUNcBi~3F31bJ=P&-^g?M%GpnXvy4?;LJ?vNF#a_V&6n^eTaReA#@nW -z{=njT{^#N%r4P2-=vmR1|4v#ROSUN<|8?oSk`M%y=yB>ut`+IZGAMMr^X0k(amV2b -zl7Uh7s^L}0R}gGy$rI?TNe7Z(f-Nah22b}to|gFgTSAVp -zRw4iwP@HxMG(QuelESH6L8tYI@z<(C1W}hfjEip?)%KQ~44&%9Ed>KB^RPOt2@b9o -zjQOXGO1U635^C-{7q1Nyx0#4#25i8Go3Sv2GU-$cxZpjx^6>EZpGxfPKQ~Op#*X0> -z_Voy*qW`xp!GuCP1b%e_n5>V|aO?)}COb$V)TGDn(SKf0d3es5ihPQPK8prrYHS^= -z)sbWUcd9=MWrGyv-K~}*a>aI>!*Hn)+NeuH-WjT(<9IxT<1(G1Bg85QZ`B_^r$c^S -z*;Jy@XxcP&1QqsDo2D+&!+VnTAA8Q#7rU31fTO}GG@A#F2! -zI-}Nnm*376b5ObMYzh<*mKm*;`irGxsl(_e#Xu6(WQ^8@LA@_gzD;Tx4w(Wj9>ez43`dv7%QPfV|uK|yGrI4 -z=;mom+HBUVOvNjm(DQR2u5;uheScxA(vLh7NMpaz`p;hm-2Bm82%bRW%@z6f^bKaU -zzIUYCB}Va1g`ea8Bk-!${51=!MJGrEi9r(gfOhsU!78+nxOp?9kBX}mHEFZG{HV1w -zwUZdw<5?*18y_pS{=kz`<{UzgCw{XYS_~hC9^o@7iv{LT?%&GtJW71AH!vk=NCH7! -ze%f(2qYO?ACDOFw?fMu{j4%&W^_&*yGx+ZpM&iPhPXBE5$f1@R7TI7#SWx@`3DPvs -z7az8$*2p=0i%X;lf+{!Q96`sbw)m9ApcC``>ZKF$AQ!YoIDpR6JnK3Fx)KXKnTpok -z9w}x-B%}}F*|_zaCm!Px&AgyD6*%h%3G_x#rr9x@k3ah1Z&#h|Q{W3aIWX(KIw2!p -z&bOAbanv|J0}L~_BS-qfxzyA7{3fx$$%P*B4hl6q`kA*gJZ#+KaHet&exVgq2-{Ei -zBJh1(FiZ8l#V$HP>nkL&V@`OJm;xIB@Y+sjtI&6(_>E{MBOM2xrA3#<#IrL5uBpTv|`Dq0ujCrK4>avU0g2 -zoCL%cHnI_-A -ztFYuFFM?+6>tuP&Jl`acef^W1jN@ubf3Vi;`{0P}W}4QBNcQkmHfx`El^YJN;7TpnwV=L4QF;9i3?nVzCd3UF?}!-D#pvMbzC6sePVny -zrOJa7M^Fw^`qFT7g!>)fo-j|0N~Cz72rh@FyZ+aFCEF0GO-t0==Vm+SIoBWpNfN}my! -z14m5EGSWec&6DO2fU~0U@-khB%Pd&D&5+N_4q^{rHSG1M8!(IL;=|Y`)bx83Ce!>? -z{B}Eec>QMU)c%Af-$#^r1}fe4MsNPfa{``LJspF^3 -zb0(DfHcz`}4-Jy=JBLjCl_LZ>wl0g4AH;UkD;~mTh_@kD-?I*FU{IzW8;c|MK-+3G -zXF0W_(r;!ArkG;UBhQ|jL-f?vSrEo38T-zB0vbHH=PDKAmC+|bOESpihJ$2koz-@& -z6YL+ntGJ1(FzXcI#mi%M0#zjWD!CpB8kT-rQSSKL>k|-@9_l9mm3c(H$;K&OFLMxS -z!Zw+>ewjO_ZlJTcyN$1O0sZ%z`)wP>NvrUmiA2hw`jfG-F{M`%VdDD_WhRD(l!yJ7 -z?Xylo93=F}JKw9RI4t5@HgQ5E8|O^-KQJ=9*#k*;g~D26(hEM~H3iMDpU-HsGM>PJ -z>a((3jq-osy7N-|_EKbSKye?Y^y>HLI(vU&af-_77qY55VCZ^N-UpmFG;>qa47$P> -z-`>*IjN=GL=a*adDhfm6Zhr)QMM=dDkNhLvw(Dsc=*^cHOivzTer16h)54As$r3Ak -zfWKqM4^|v!t`NlwY{Jd0a)CL=thvrAagZ(!AD#(eLXad!tlpv;@}YqU(&iEZbEB@s -znJ*Gd)=eW7zlPuY${mGJ%oA*bvLAQQwy4rVhq^HS8j|E7K=BF7^3oAI*CVPPS7+No -z5`g6BCm>Va+T?j&8g5zz>@}_5b#-itc3u3ympFc#UYa{?-U>Ch?n9;L$oY#GhJ0tM -znRJ?Fa}S_r!MjO#12vP9x2&n5AvBVjl}o^E*v;aFA4w6W^%NW+H*vcfOb{p{;~8rq -z46dLJit3nvGS{JZ#%Tu0ux=8?wPgaiMBC>1QRiB@o8s;4*PtC`2+HOkA0EbysC*H# -z3%mIc30<4$jMr%Bm7Vj*ZxmE@JAPx0BEzUs;w$W;|2LK@Fhs$q(a3-tfQoeaH;}H_ -zAbcOWmtz+BNnjquaeYvAkFRpaWj$^$)*f=lOPnb9dugvqgFM0EJ?$&{?ubj;PF;PD -z+OVqN0ny0)>l<)j=`{6`6}&KxDx!AZ>M*12vgSoS?+C%kl252GtoaQg6oK<=H>~vuF(jvF?-uRweEF{vWc{Q;zug -z$P2D-p>sx{3M6!iyM9%6`d$wV%BUgE&SG)@-EA(Fzsi4GNVc$nVsK(FEF?5RWN}^% -zkCzPqdBS22Cxf^hd3m3!$BeZ(w;Os#)9N`VZMmoN-^@uhmt4%GRMf~GR|As?TvS($ -zZi`qL4f7mPCnEo-;h-AupqXPB01VC8o^_zXO;^!}Z3t+f0|1SMx@SDt&0?~SjPH_? -zod7f=km9hSJYcLa;(aCMT4B*960@8Tz>GL!{G5OnCF%fS-HWNJ^+;BXuh{E9Y|auK1L -z=&PloOZsUO_aV{-PT{QZ5pNnp2?ZYpuzx`Tk;dNnZP028K1SjZF2?uxxj0ix2KZoz -zBPmY;mHRcno?RCZ3bnx3Lmc!tI|+GR!N2FnTb=N7ao}D@5xE7N%H^v(@rC<-;SN5R -zqy{3v3Sk-=d7z3LcctlMKZ%QBy&Pf33tCK3SR4;jUZ}rpkSvH5?f&N8Rn>js9U% -z%c;f7To+83DoEl{eL#;{VT$r+?{-PWX(RH)l_~la*1(4`DXB3hkFnWxo{2#tid_cB -zE96}LZGPAG_)}d%DVjY05E#>9Sr|KaG?WR{Wj4i^L!m0aLw;|pyJE9ry*OWHO!K$2 -z84JP$;6d(3k4(Ioi{%e`sW!r9cc|ca2(Hz%lD-7N5U&3GnZ2A&lkcOurphuLw`F+i -zSQCAVah+Jd4o-YyO=@qGJ53$9+Cxa>!l*%^N?WQ=eKa^{{0Q%x*bh%lWd0zUsTKhc -zH)cl#gPvCf?`7weeZU;2Hv5seX`~DE5$K>o7++YQ8Q`{!6@!@=zz!W(7!xPyhKohs -zr+-2UD=b{>qD5O4FfNzsJh)|DtEpHW*}YPlSA`fAOt0!4`JzNx@BU7~tHw2@#1zy) -zil7iUAbJ-eze&}~bu=Sn?$s%Bh!aUWbE~TQ^8>FaN;>4GcyH26iBLbSvI})%_^_Nu -zeLsGkkU;VV^L^IHlIN%|X@z8ANe`27cNyv4X5vk6@wwag$+sPO;C=M+mF81UlZv<_S5o$u44wQOSgP&iBc~;9dxsBDMaOXH;VL`8ltDw19}rBSdo+hASVY>Px``!S8=T|}3u>Xda0e87c`@Fi -zXId|eLI@{0gScyhUBcC%kd#jlZ8p^!#&d>3W|zDJ&n&_pS)tOAR?0$qxr$HveKYFX -zlq~$GGMG -zbnE|L3-B3RfmQ-_L0g^QaPrMNR)4l8!4;^u#v$NM$Q9CclhUKb<&1TKJg>NVYry^QIu8&~(h_@HhnV#p@;SP4r)|MdN`~LX4##kBXg*x28 -z=8-1peT0bk#>b{h3~cnZG)ltuaeeHZHa~D -zWi>mNPpDD1&U9$x($Sf&8l^P(wbWQbLK4)ZYPf+7hDxR2tUL}MU`1hr@=zVZt4;4Q -zYo^H9Nz1cOQ<0+23Ct_MU?u}Sw>3Bc&&tSK?WLo*n)WUvF5%#&vb3gd1Vo#IuZ;d5 -zf-RyAgs`U>H_$%Rc>a#6ccfp(^FzEq>3A7JgZkvjk**W)3n1H(R_;G5sgUR1W9a73 -zLPe;iC|v?bo8uQFndVc-%46lgTRTjeHfN7cG)U5sw_KB_w6L}E`@?5+)Zz+lAi%JS -z-Xgn8b@sDo)G*m7kZuG*qsXJOIQf!p5qpr68;0%Q)IrK&)|Cz#m#tnY -zlRwi#Y%z9CU*VfEe-$9(#81E#=GRakGP4;f2%_V^5UV3d5R6b7@QA}Fl2wm(;TtJWh{j&xh{}LVzBms;c$4D1i|`X -zZV>1G3lFif#*_aq&WT{fqOq0)1zY}HjTjINXia?@9``r@={6tPS@_{2_=9U~41dk; -zqZ?S{W{xiL7MK)bIn&FBtRXp=V)9;l(l7xg9ZYC1gX@Z1?5M>gJYdqJ& -zJQ6jI-OTldB966EaRcQUlZADATZ?0A2onV%DW1JP?UU)*!@U0i?m)KPl-VDbBPjlJ -zj35iji&^!?g0@{FN`)6^V0!indK*IbYL^r>UBr(cg30bU!BNX#fq+hVxs>hUK6^HL -z(;bf0cYD4^riM4iFLokL_x?CXF2$p&m&H`b(wr|?AbWHXI%IFO3)!5OFS!BD*#QZD -z*P>MK(#oQhs{ -z@T$}*uA|xBiU{+(EQw1w8s1&Xn>C%ycI{Z0jLVNvqKbbpL`!X_U_4^B0BSAE5Dcng -z{*#LleQu#{?I*5e@nU(Cy~+T=GLa?{&VUwGBc&_Fq6Lom4XV)ruTD`}a^9*c){7Z; -zis$bXqI<(6{xxaC2AzLt7g=f`%po)8joRd3>#i0&IrB>qcqHhu7zps*##&gmfXiA% -z9}2#<;&RF6fckX2M0^s_*{c4SpBPqerwFs(mCXjo5!%lo2fjS -zgh$TNefo)|(uG4zh9S?iUBPR?@(tsc0|#?1+xLVEB%^_f-$?K57P;I -zwd3W1pco-q-1R*ESB~T{c34da1T^0y4Ihc%O|fUu^6RnaiRa>36GjzG1oH5KgoG1wh4+~=|4piq -zAM=1<>FQlZYCj~2^;hQ3e}XP1G$3kbN)oPo_|irm6W6DL!imLlE+>J&TiedwaAQYb -zuSxpHkF6Y4J=sIy)wO>sYcvVBx^x7I8^1x*)y-6TM`Ib4npsR=VYbuMU?kDAx8&qG -z=aitAv&NpIfet{#5Mnjz;pUkW9 -z?}iZd7R~8fRlp45LoPeD$ZJu>{~}7MJKyga -zS2&|KWA%Xfxm3utrfQ>|t%QEN$`#OOq~K>^iQhbM=X5I($AVAF$$t(_XOYWZ -z%XaLh5|&yAed3HYIE?DCr^d?&D0l^0ikpd{N2I?vvP{YFxl({(6!Xih -z&{r*}pCPw9hp-|(lA&6)>0H9BK{D1mGZr}l7E*+!jPFI{TF-FN0@I{LFK^)>1LJh8 -zA;TZEheh3CG0wkk-ri($rpN7($PhaSHpOx|zX93}eI-nHpnLmDc!C2GDxDVEX`LD)(zVXWfN+fch66I|+eB0fkAD%ra -zp2ar*QyIDh=lK29hC-2b`0}CE}d21;$sQ-jH||ztmprR(mj|J -z40t4miBe#r4PT7hA0r9mYP?Jyw36?$64?*5jyk~q_b-DxG}P{uU0JRPh?g8^;%(Ff -z4iBnIA<25e6HsEhkB|eq%r&pFz>(Z4Q;yxZd!Z_%?b1(;i;`e;wUUaQrPc&3`46ZY -zD*^-ZDKghPI$wlBh60lK*tMNqxxCT1>|=-uE)o8qODLHca{XD8fEjU-CQ@%FOZ_`| -z1s?t&e;Kaoe`=J0C&1!hK%Ty@?d8X_R2sv6}-{=bOOukYCN+Wge%G2L$ -zrY{T7b;)~$f$3G)?DdtzX5fM+@J|$R4m0a%@ws+VilDV-%H~pRdEd&1W(wVISZ+k9 -zeA3WEP9VzbW>YCtFbijrHl)TzV}-$VQXGG8Qt -z)ZPpD03CqyU@9_$&(I0_9Ml=i#Aqn}q!GU8v*=ZVUZe_9(oJL39BgJ2(KmoB%6AY!LtQb575ji?;3WY~&ic7Z9Kx}hLY6Z^#{O6C__ -z#UXsK#)iR1M(AM$xKV0~|EgFf)k}nJ!SXzb%2$@SUwOHX4NinqaodH*lmAJJZ2^Y& -zU=XsO?;mqwAhckP#)8>PajNoLW*vhX-6cr?9vg)yvY1$gv9BfPowgzH>_uk1=NJH{6xXeyk9QE7M?wk9WUS -zC~`&y@sy4d%^u{P2?jW6vOcFjylf1AHdrPeT1uI1k))SH#@`OwH^Hm$rXUdH%)k9Seh)H+wD)78{#9zhfIl5ieQcF`q6f(k)k(yaGzZIq2HSQYBHMG|8*}5ykVo^ -zIfo3{Sy3_$hEA~|M-eJ!rV>@p^M5PXW+3DA!z%U$MAtM}al8?)yQA&Bdld -ze^hBHp8ZJ-Ti*-q4uR_wgBdpk<)-Jv1kd8BMeFN3I#vNI7fqk;Y0zs{8-miiYL7Fk -zR8m~J4HvoW%HvtD*$eAiNw$DY;6jNduQSW1yRT2J(w>$Nv?WZDLnyKGSK!HDUv$qM -zmUDdU+9nSE=nQ$q;DpRrSYnQ7n$8{eOtpOa;9%FFwgqBq=xhV(!wr3yw)tWS@0_94z3i_8*d~fc+;KIka_Ec8VM(@{3Bcm@I43 -zV*p!=`30o-Z@JVz`@XImb!oPVJ>a+U_KKik{mjd-L%AH4PX3a?Sw;!nSTtAT9w*od -z#W`3X6*fOKo+t5NClepnxlF{fN~i*{4<}>;{?bCc9JI(Nk}GZhxRgjI71X9(BRiv+ -z>W-Rr_CPnyPLo-`TVnB^nww8zSvHvA8-vZ|m#o607Ei{E0ZZxKiJwRWGpz0ueEjzc&GaF9;#N8~MI-xDsDh -zYVJaQI7&oF#NBvdeD2PFl6i53gY#XeM4r@9z~|$t_J^MX?CCQtEDZFvVf=VI0?2xX -ze~A^mGAc5aC)|1>8y2t?3Qd9-bT>!Uspm^JK%&^?#|#km3$P -zIhpg{V%TYx-7st^K%IR(_qExQ8LwTUHXnbpx}n}I5^f9p2x--;9>^7)dRQ5@YHIC3 -zp=gJa)WQYR%quk%1kJls8T;pvA7rGF^JLi|$P!8xM6i!iJ?DSax@1k~MfT_sHuZyt -zeb!!le$TJ~1oP`k%n;`lM!xD{QQS^XvA7C!bXIE33vYHvk6a|Kmr^MkfC+LzejE9T -z+{1q$ISai@U;Zx98gh2491^kg_9v3w3PMhNq&TU}AT5ZXE*a4;N@7?~asjl~1fO2% -zi*0H~>9^SMP1(uSwcN}epsNp{x)L2oqU|Tpaf==g4-con+lAw1Pz!HOpo$He8hu0S -zq}&f-gb4J_?@M=6A#v_05jlL-#m^={%WbNsmC2%@a92@~{jB2eo)_pn5&>u@WW>WC -zKo#N7sQ{{Ahbw2h5Yu2vHO+yh!zQu!gzZ{p*EAWEhANauM=AJA} -z6qEc?yP75r7QSxuT(|B8fD&hozh>3K1Wpg1tfK3hn2uGD>NRo!M_Y7fzHl2xc#fP -zPw=uOd;2--k1>xYnl#QurKQY`L|6S)lu*u2a_yvU738l$tdI~fTn0fF*-nhUs-EI5 -zqD)D^4oY&3L7^^XRmCiQtKGn!Ll<7+nIgX*%rStIHGCL6@z9%=l96Gj -zT009H{>3@cj{H{*~fEGNqt=&<5X|EC!XoA5kh(wSz%zRu4e)#&2M -zSMcT|fCVr$!>q{tC$Ej(kLdxo8xzP4-NKJnDqO}OwPujR`xkhYdm3OXKR^;m9%Odi -zrvN1$cuO5nk)r$U%mpYTtvTIq9OcnIa7d&i -z4>IZFs-c||Cv17XaGyBHS(d}An-Q05>&c@HVxVE7UqpmrSEy_$BOgKPTdIb~CNBH4 -zr_nQ{vMreY!oREjc$gO<=lN#BDxf8+0N9(M^BWyR3(FI`{cY -zM_Xi@i~ABGj1_08A+4|c{XS#HYU>d42)7kqTpUbe!4=LlB5r2#Q1a}g%OZ6?liVCDi}eSL)gI -zgoy|{QXwLFQJiST`L(M9h61Pl -zCgoqw^{~Cj`q;R3+FbW$V*1GT3&89sMc?OmgxAkNXOh%%J><0BoWpfyxbG-I9l9gv -z^5nW(QQb3se7rwpB;+JZ+y-``R1+qvZ-kjwCDj-n4nJe-^JQa=2aod~5AsQ~4QUA2 -zCa3oA<7X8(%u}s^p(fZUg*v)D8^<_FeBR?gi5&G++*kl4a*y%-gdiv*PiW#)G_)FYS4b)}na%fCUXuk}r`xD4y*`LJZ1u5lP@K>N1;X1^S|&5j7NA -zpXQ4AwAI$JWGTtwOc6e#^@+Z&sjl9k{%BEEvw`z~ie+K*o|r1iGjWdp^kR_#f4?>P -z2dL!pO|np#xB{2mn?)66C@qTrX4G>uxU=mH1ae|qjelXDLp32O -zpNssK6clUp>k`Hti+s2D+S>GynuD=Hy^Pdj8Z?zvFy&+n7)~*@b^rJW%A&tKhjiPI -zB5c90F~EGbOmCMJJ64pa4F2rY8JaboN*q<#R!)2)1%U+8+?D}lhbU@@!dOclYzA=4 -z29@0Ub@puhyGIp14rb*XSW0RHi7G#>JJN06Fnm4>Rv~nF)@tdXrE^Ckf%ePoo+32n -z7^I*G>)fUT;6>6!$)vZV%@q8be9G(cqs)$FPyVx;?Mh43nF5G&5F{;+m&L8+_p<)9 -zJkO}+4qOFBs{6r1Yq6vmTqHV#7Y9TD5TF>41a|mXM4cd&I?y#CS(aCCcVc}f86x(s6e_#5o4LoTnZ%|2JB;R -zc&Fvc%s6eua_5d|q^tU^U(~_EMnrDtkmw2DSY>}HL{MV_=aGh=0Td_^5c>EqX8C}; -zn$h~>va%r5L3V6y$`!B9Kw?@*;m{wlb@he4SpNswYO~#pn0h+tL1($LNGqt>>L2)2 -zbG(m98+sS(zl*vHs4XtRZ_T(I-7W=VmbkuFuFp*#5ZOo=cS3mVUhcWlHRWM8*`D;U -z&gs&-hq7|tFSsKuLbe#AaA^3rvOQ5{cN`9LVu)ebUC~QmP`j9D)HmWXsM*Tm7HVF3|AP;&;S -zBtV@SW@+aOTeK+%yrrS`ogw+w^#?@{CpDf)AnO0*l$O -zA7x1KE#bm+V5o;#*h`uu$M=mqxKZ7Ximrtf$aq84TeQnb5^q|NJIe(WGZZ-TmkHWzYM^y@@qDM_RnU{Z*-Ix>&0%<{v%!^==fk -zfuDrvpENpZ^*uyP0Lr+>{J^Yy|8b~>m&AF2w=@P?qT9y$1GHcTO{)u6PwF~8ogb-_ -zC3ndeW#=*H!WGZp0i6c>;NIbCmc704u<2t|=EuREV-O)BJ`oDBoQOjZ!{=~cDUi^I -zYCYpbVd0u8TTki$s232)virSU_;o9nn6V6(@qdrYoDC?Y2>MRG9&!6iEbHE(@up<_7W8lN>ykHYxE8< -z*gal%T({FEHi_G8=5TllkP#F+)kJ?}+lBW4@)p%7nM6dAlht3|_r;JYKG(<@*uVNc -z&2ZFy$!hUijH{#db$GzKIkD5j4O0K-i_WP1mB_39KIULiu{S$?{P~7fsz<IraijE#Om9hwIu#7dAi8u8UtX&z3Hxi@vm(dU -zU7$?R=-P+|p;F|nBKs)V{zj^ctE+bkmYM6~%*0Q*J!9pANrRt~mj*P+vK^Y_rhKo -zXygB{1&AcIi|yKK*S5`PJ3xg<92kamv(RUdLxtLX&Me9>e5TgjHlO}08m<$Y@S7#S -zJ-NPo>J#37@}2DWv;!@*vU{`it5!_if1Y!szzQ&qJTCena0=%&2V21S>iy}DHHfVV -z)0WlYiI~-zUz_eq%JEpTp{`LKUYHrNfOkAdjp_omy^HD35C2ltk0ami$V2!GG_}k- -z6XruH`a{_#<#+Tbeq%x_G?Fl -zc4Fn=sjDqrjP+n_BD~2xf_+8!=rq(Z@~7P>Rvf;-BQV4MY$_^%uxIsG`I7B3wFnVc -z5i<`6g+c!zKh}3R<%b>RaCn)ML6SbxwSId3D>}r#WGFVeE$yyhT#|#h)S1YDbSRI? -z-KKN&C};pdk8*%TRMRHV_wgl&tAwNj6Rb504uzR1N{aEll~ZFpOc$=LV83}Ntoj`> -zjyn(Db>JkPUY-DVv8=GJh0PvC+@t${A@U_((HY6({{bul1Zqg_HPSKAKGlz%b#-&> -z3pr(9mDw%_?s21=7&Rqz)!XI=e)~GJ&x}fGxrpJBnc(n-lq0qM)3@{-ZzRK`+ZW^F -zJz7?&d~fR#uh`f{t-pSpNjbbbouXXN7JJScP}|tpsFF?M$n^oh(04$_vwZ_ny^N>S)$mZjtKZ8u -z{hwu4E1x8k54E!7*oZv}7X06-|5j^FWXZbffqt*-Xd~U2;F&juP#&8vN2|JQ&!-bX -z0?Bpty&TK6Kt9~giOKYf6|9qTD!+jl`prD4aVAoEm(2TdcMHT|IHSVxU*UvP2uTAZu^G!A$eU`thFA`4L+PeLEv43O&{y;s-KHKBgixD5C2%-Bw -z5s6as<-Q@tv24}Z=1;>aBd2nNy2OoU;FwQM(*)IsDBtw;E`2- -z*qZ!h+J*Mw`>o7Jj)`mtShH+wWOkSf$w -z_--vtiFL(iCC2CSy>LNuBW_5?T_RfMH|?jN!sa?#_bYx!)##0iwERZLAU~_BG1WdX -zg1)4VaMko0NOwi;s)|HE&VV-}QMD+uv<3kA%QO_NVrGS7#3wOXSvdUKe$615oy$E< -zRzz4Px1c}>lqVpWhcDzm+lx>_AdK3EERFB}`}1S0@JEF+mI+zdr>-I6#mGkg!o7v~6G3K45zP6vl+$o-jM7^;WuO -zN6RLJe)bKzS@Y!YpNOc={nMu0w){%W-*Q|?-TFh -z`eYM>nh8Xl;xLUB4{C5SU-KL-Ocl)_~-q*C-3sA-#N~ -zt){#(w1FU|WI1=So6$_b)>v_)JC0-AYM7vd3(98N`MP=g!=pI#|$4=F+5f`66dE(|PGo%!05OD)1ilH!^-SMQ-6j@<6H{z;Z -z5&P#n!lAz(A?1JOTE1JMETfV`0%-B;|6XmQg)#NQ-RKqPtmRw;iD_3i0ipDX%pgAu -zTraajLzn}EsW22T6TDoHkiUm}Q<_vkcaS8|FVV>Mntod{D`7FXLkGG;?h=fV^0rst -zpfLRa4e_$2I)4E&YS$#P@6P0pn8C(y%7y&hW~{}4By8feTzXuq3N&4yc5@_1nI711 -zK7yRDcav&T9}hf-TpA>`mqp1wf8^axCxz#5&rqUJFG{#v`ejVaQ#gMbvPnb2EMdN -zfoEQrx^@U1SbIw%tsI?nmD+#(`n5#9_i-Hs%QM-Sm@sd4>Ir?VM}@T>muwQe)qh~S -zQ?K2v{<#c6r?vZid~C&{{*B8Yx7}kzFnTvWE^;wvgK4zvEZChr@TJ-lc)h_H_3s-O -zbnKWhK^T6Ii?N}Q*18N&;%FF%G4+#~)TB0MxWx$r%Z(I>2E)9*7SnfhWZsr~$xOE5 -zxj#`DAHP2oA*YCaUaOjnMIMNPVmSEe!^2jM7*a?AktUt#;lunE&Z71_ul~so*Sf-* -zdb-Np%0*Dd(Y3oMm@-%z-^Jg4fOPjVD2{bEF>wNI6}!@_U5j*MeqB9qvBX392e38f -z@7-pNyhM90z>rm3#t|%1B4^D_EpLP(q|-%g-5ZId25rneoGQZ&=SR=l97*jY)$tEG -zB~H3RWGa?q>P5$+HMR*QI8WZto*E~`SI`!C2X4wPZ_u7ivS<7Uj$fDRMSKnR17cB? -zg4iiZW`abyyR~XT0cp;o+~zp}BY6aLhK80rV^w&R=2GpYn}3%A^;?Ig)tm4_=&t&A -zr14BIA?gG>D~&8)P^$qo!hCvpv6hppS3eHI7Uz2S)+Lh+(`8=}Cr7;Tn2{#K{jD(d -zg4^WYI7QF3kJwEvm}W5Ifp>FHIkJOcgAg -z`u2m53!3|7r9h%N(%Nc-XjZWUWAMTUw8M8V49V&S^7z=>U&W5gHq{|>E$xZ9p^o^) -zMO+eZn0&7O@725R<9x`k`4;xcI{W2`))@$7?QX7lS7CE8&7wP1{ORFb5Xs+O&1g7J -z*Ut@EYer=221Ef7nY=}W$;|KCoU5pJ{+_OMGe8exykR!>pFkx8V5O)NnV -zwne(}ZgSKvh5(Alo5$~87gOf41}|$Q37Xjcn8I3qG-;?}{$)TZnZV@O+0zK-9k5It -zLHAlu7zI^d4D%q6{|!R1nXMWLaaLAOR -z5^mr(E0DKUJ@$$kA&C+(!3>-GzN=#XqOvPe)871J_hazGUNFHgalkMRNP43AIKs)id?`{Uh_>cbm01SU*on8lEgwdq9mEMVQS -zzSh!Jldv@@X7;lU%vzyhz`|sy*{O5hFQkO%Lz&x+#6!Dlk(0s71-e>ZTOEx`Avc&K -z*D77U=~H`t;wdIEwuo@9kLna+U*0*AJG>dZ$3lZ`@Usg>%WXiyiS!dWHA@LyE11 -zGJQGn3!_R>;F}99^9oHY`s%kDc)dc~crCzi7J_@YUN7A&w3LzVxqjK?EFv^W}3k$jryH!W|xt5lj2r{VC7sX01mxAjS -zj^k1?ANN3x$*GHz(?t^sE^Ixy(@6X2p8FgqQ?gJURm^-qMQ#_`u5ogE4!(*X}`>6@z!LNC-(32=4VZFQkI2bA7 -zGppVNeFx`f^Z&wLy|z*2`T(XARQx4iku_dW3uyf`JNKWX$jk#iTEDuG1O6;$_L*KJ -zSqd8KSn1uv;p-pWImVvb`>y@)0@GBR2fjB<1c^vk!TI@O-@-VvWY|`=r-Oh`eV(6MzXCr?fDj<2 -zxMi4wi;Ihp=VV$tC*iU%ifQkaR#2*d8PBHh%oJY-b2IDW@|UTUnGnGcb$lc{MxO?> -zgh6Vi7ICGjMgYRSLOgR -zrNZ30F2qS`b5i-SMf6D3j(aq+@Bwal{c+XwwR+NzV}#2ump$4Z&S#SZD(=!tagw~dHIl6Wmn#Xwr9`F|aqcRbbKAII&z -zuD#>hWOGGjUi*?ADtl+|y~nl6C0n@mjzY-Z*<_1khm3DX62If;AAh;`^KkDu=Y8Jq -z*X#M(QASh0gv~aka~L<(%ei6E+5&LU-1(;|k%62q5wnO)fC1j`c3j}Zp^5$bBG-%w -z3y3~AQ-LaP^7eXC9*&prW-xG6MZ&fE@4p)&!7av{PzkGQIAT=gCHFm=e|pqt2;>verZ2H!ZB}7V&KHgpF~?% -zoiPlc9Oo0!vm;Iwyq+~uh8l4t1Ger0D*x|Cke8;I=I3^o%<_wPP7Ig>^fcN2BU#LP -z0qBbmv+O_ZiNOIW4~C82h-SYk8Hv7c7JNDo$<3N{^eoR25*o~Wg_avFq3X7;Zc_ai -zm(*oZ7`#pIyF?xnUx8bLP-d#{r;GdQ3?sH=sN>|?kv8U+y`;zRDF*JPkM<;f9#dD( -zCx=*rYHY{}l6^OIzxyD}P$8Ka1Q0!Nti`w@iEyZY6-C43tynE4*JhT}@a69p1RY7g -zTu+Ht3k0gyW|aB}xR|xsxshFAXsFU+CYvd*D=CMJWw_V#!1+GfB%2?`7~O4PxXBn}h_5f?$bFY4f#k -zfsg%yIGCuxECo;*FQ&fhGUJCwI?P{zOw#}zNg_T`++2*wR}MGbcMWFupYg0e&&lpg -zcHQms2~0^9{~Q=>*pz4~i@yE7ge{yC3y3GJtOOE7w#@lW%z;XYF~>>DPA?PR(%>&? -zoN3}KVz`vS{t}A$Qy2G04N--?wW$l?)EI_QdVW&n+D$EZ$j`s73)eJ^>n&IU1OK~Q -z*`=F<7DJA15*EoFuCXbyUQSuBv!PcAy^RN4a!eq2q2(e%+01q_K>)9MN}4X+wpESn -zy}D9AEzIQp`|=&E-!I-;Uq@gyB!<4meIWsfD`kw#&^fnxR(;3e5c_HQ;cnuX^3j*@ -zEtw-HcLJQp^eRJUKM8Ct6GuS9;b!zt$-#>!ps(^gS4w1CFPj{Xs|SAeNi3K5FfXy@ -zH!J3c)4N0&f8oZ%-T&(}d`K%?wBCAQX60rIn@^N~ajYt^U(X{BJuALP+8}qB$ -zg4X0~nf|qYG1o{LI*u9CCjnBUwuf=M+m?X|=NrKO+)3E?%2~nJ3$pmk!rtcxX2X{n -zo_`e-xZX=ivc}T6 -z6$=^SC!M+*aziN<$E);H-Ynxi$(iwC9_@6R6Zew*++tx=X9fH5oMs9G+7uw`HfWk> -zzGI&`(nkg+92^<^{}JnO>uGIJbBp_jbl8>r@fZWT@~U{OO@@E+bn-Z5R8xL)9L5ke -zHYsv+K& -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 -zVzq4ASV6K^qGVws02HEiE -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 -MD{I5+6fGkE2SYF}a{vGU - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -new file mode 100644 -index 0000000..b5cc843 ---- /dev/null -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -0,0 +1,16 @@ -+[Plymouth Theme] -+Name=BGRT -+Description=Jimmac's spinner theme using the ACPI BGRT graphics as background -+ModuleName=two-step -+ -+[two-step] -+ImageDir=@PLYMOUTH_THEME_PATH@/bgrt -+HorizontalAlignment=.5 -+VerticalAlignment=.75 -+WatermarkHorizontalAlignment=.5 -+WatermarkVerticalAlignment=.96 -+Transition=none -+TransitionDuration=0.0 -+BackgroundStartColor=0x202020 -+BackgroundEndColor=0x202020 -+UseBGRT=true -diff --git a/themes/bgrt/box.png b/themes/bgrt/box.png -new file mode 100644 -index 0000000000000000000000000000000000000000..54876e68097e45b215f6f4c4ab2f1c06c5bd1e4e -GIT binary patch -literal 870 -zcmeAS@N?(olHy`uVBq!ia0y~yU{nIK{W#cwWXpePWgsP4;u=vBoS#-wo>-L1;Fyx1 -zl&avFo0y&&l$w}QS$HzlhJk^Z!_&nvq~g|_Tl@W`(W@UmTf#;@V6`wU#Lhm4Z}sF0SlKS+*^aA-R3`>*{yeueW-)S*X4G@YAFJoyCWu -z!{O)Wo_xLQ+`LKbFZ(4ABrTh`(q3?m&E9!O)NP+RvD74Xyi)P_S~F#t;;ilfL3MHE -z1W&=NWnIR?iwip@ariP_*|lfSpSt|~_sjj3f8KO8Ywhm&2b4~2+9S``ULO}9zu(%z -z;>Y5hQ&=)(7Mr-7-7@Rt_uuQw%gS~={Np^M{fA?Nt4VAm@8-(l;>)-1-mMj$9dwNE -zs;kh#k7^}_g&z-p`}S>h!9D(Bb*BT<^;|cq{#~Z~{Q2|yM=gBg{-4?NKQi;#zkmOx -zZ{4~z@lFfFw9H%si9HeV@&8Td*dJTj{p0k@#gWS|-{d(y@i(hYb7IDsusa>g;+xL4 -zYv^}9authLV$_Kgm7aXQU1M*+4*vt;2AAiV*!&CU_z{&>mCVfaPyDrDg8-uwi-HS~ -z;t*7DVQ^yMpuf;Xm%BcZ)8tvXD%2`NL!T}&&+K@Wvg%+$fplN)ckT+d)#c^o^`>h* -zZwD{A9bmkC`SSeNyZ$ZHoL~R;T$Q`K`}^lgA+5SAv%;3@@F(>|6^2dHd{hy_YQT^U|C$4w;ifVF9Iaeb7Owv@}e9~w#FT2z?jTJ8>EaGR@9qdy5ApbKm -dPUG{u`zzfzHqH8W$O>o>gQu&X%Q~loCIIScDqsKr - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/entry.png b/themes/bgrt/entry.png -new file mode 100644 -index 0000000000000000000000000000000000000000..65810dea3ff2a03f620f13cdb9f680aa116c033d -GIT binary patch -literal 1431 -zcmV;I1!($-P) -zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3vdk{c@wh2L4lT|!Gj5-f+`s_Y=kzX#0Nu`@F@ -z$pp&XSRe`X3Ft6>{+QuE6cXhS)stnj3nk{5xuB7*Te-dIiu<`s=hH{e@<8KsFhqj4 -z-2U2;Q-NF`3LcNVKFfo*V<#O$bT_<(=EW;(FpWiSJuwOhXr7qr -zj_Y|esldc|-cllNl)A%btkWRTsFE<<9I(dEoe -zgg7SfDVRA+mCRXiglV?yA*Y;kDR5d~xN -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 -z~-Wh$@phq!Q?`IDPU`GePO -zubHp{v}I>%ANgb!D((`4)jX9jw{2|!Gajmal@hX|%*!6P!QvJT -zAL@7{TSlB;s-G$H`yBI8@a}?h)9kPD{4@0kZ$dHsr*v?BpPNctx*6Ga_33BJwFp7Y -U$^7#${bvUX3EV|$3`ofO8=tzejsO4v - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0002.png b/themes/bgrt/throbber-0002.png -new file mode 100644 -index 0000000000000000000000000000000000000000..8e9a85d8be80e430f136327c98db0185a36fe7c8 -GIT binary patch -literal 1568 -zcmYL}e>~H99LK-*Ln368NvEA#)g)L -z000;hg8U-2YON~+eeKEq_SBaGn;RH}=WB{Zj(aGR( -zDxFSD0NJbrFp(na=aoS}Y>)k2qp5xU&j_yIN?jgL@Om3^Kr>u#!k5GRxWtbBxK(j_i|YIa0?X -zwF8n_|6l2daUn!$I9iPOnw^$FBeSjd66s8>0$3bAvto?{0Kg;!KcA?W<>lu?PSixN -z%oCL4?b|b;>?Qbm`hLx3e -z&CbH^uHjSqJ(uI4aSl(1llt2}r0&c;CvJNE95qbi9?z#yq_zX=kDG1FMNe)C&xDSt -zApSRFx=@kOSLXxMO^Jr#%V0%v2bI$#at`@i?+e6#d`RXh_bf#BhsQpsfixETu~q() -z=#uF#_sBUGwxz}y!uPQNp(r~=zJ1b~m8(LEOIP+N&ctounpMF*sxl@`Q^P-3K(E?R -z+eV5RDXU1i_)}|UEK)bjy_v8}d8&kU%;(1I-{j58^(iCWna -z`$oj$3&cYXj-dt>o&9nv^FLC+&tSaU$pIVIh8F%pgra%SP;$&ix;10Q0snGS^5NE7 -z8XFOO*D?kEF(P61VC=~-?B!(AKu7V$1;474tzLse`vm-+1HtplCdHa|&r@c!a+8>e -zvhl=V{+zw$B7;Ek*r=ui4W_v5k7M{w4A6jOSpy$fFyR!#2YRjb}7JbT+n@3&Fhqw(~m4`__ -zv%9ToKY?pqgn%>|aWT92!vPWSsl24g<5|91=JjO5H;e{SM99$QcM}QFeua0Wsm5CD -zIfvMbztD)j?xI<2=iE7y4*QL4a(CiVqkww4)d6GUA2YaCG-^9y&NuytO6}bAAia(= -zzC-q^rxQ`4?7j_I938p`ZBa($-RVtPkQhda%MZhgrkq8v&IXF01zQQLEi@=tFPR;m -zrpd+4tQ(iS!Rp~fe*4k>pEWKbQh|ckn+2a|nEd5E$`h1&;~GZV(6h#e^iI6~bkH(vw!UTS%uF=b^r3JUWEh|u -zMSFw_f@t|mF0s`|=L6&Ql#*TjZiUavtGNzW9xWab$eac*hj0w5fiOT}G3Ak3_Xv>& -zPkz7TE_$$vx#5tJB&{#nRobkM;Nwr2s84I=Y9`|M_hiqTh=AU~qG1Al>OJqve)jG~ -zzIZR+^4(ICGtaj+vtH9JQ^=(i-VdWy8A(2Gzqh<0*>utSg)|YuO~4nnKhf{d^Oyv; -zW<~V);%3X|JXfbD=F48bvDH23jr;PJ=Plhl@eVaoan5TA+EQ86&n~%oN&CeC1piP! -J;qLgHzXAS3zy$yR - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0003.png b/themes/bgrt/throbber-0003.png -new file mode 100644 -index 0000000000000000000000000000000000000000..9fe95aa2734b499cd3df6e65de24b90aeadd2716 -GIT binary patch -literal 1561 -zcmYL}dpOg39LIlVE^|$b7@^DIDD8rnDVny>#bqw-m||vaVm8}kF3q+sCpnQvTG52) -z9!j}YjD|YuQ7PMrX-bL6l%o6j>74VN@ALh9-_P@YeV+IC^L+pK=7t6bm>MCB001xz -z3M7y~b(}9leemREX3l^D;{^W30{~tvRG6a -zipQm)7>RroCpm+~PUACCd?uYm=b?C<#FP{|_di9(C(~0B;wAT?V3hTI6oJa818!&x -z7KOo}+}s^87~GmQI1lfBy)Y!$vtYg_B9TQ0&}iJh+Z}R0;4R1ue~!YX&O`SzN#}|{ -z&tl%&09srs@Q)zTXtzA2VJ8R|&BJgSJ%tYNnOt^!Je}+4j^4@PiAX)oAcxO$5;!28 -z`~Q_lw3lyq&vOtj{F$9WOQ!Q2!>KF|r~t+dD?Dbs3IL#2g9!KtGE64joFt1}bfAc1 -zNb-k8`nz=E4VDOQ<1LoB=onOD!xduetTW%yjG#EBi8&PR?C*?Q$RKU12=zDoMZrv> -z^hFN{p1+@XJKKYc%_p{KCR--1D_K+QQ~XqL4Qn)Uc#>JC)vb5qXSY8?IJZ8j{j3;D -z#&ws+EO}CW$uDJV+ZewEy0v%}{n^@qDnxNnvg<`S)8?ZqcHk4Ni4RXUJfx~Pcq=0) -z?GN?Z?Y^1NRPJ8FgQB`Lt-Sztj&hIG?He-)k;>CGkRajjy&l!}ZoT*7Tg+b5*;H7hP(S$<>ph#50sB&n{qJwP7j -z2V2*9hKlMmF-5o%uR$uCL@!cR8Co4{h+~1vXpQDo`$ -zcDgjTF|#?HuO^;i&$a_fxvktd(jzi%M%?Z|%vlJAZw8v98tCz=KJB9AN>7!gst!72kR$T*X*`l6`s%Kk_W1J^)X1SWK&o8#kWvhd -ziq&CDzR2r)Ee7%5t+I)tbpqp&GU(%|w8_ZyJ@#YaZ4w42v%<$$l+`el;2=fqQEN7E -zUv3IQP-apK)3!GY^?a`gg-*S!sPFa@kMnnh_D46qTXA?wRXhGUuq+EcH+l_sT#_Y! -z=(GQnd~b5UU)C~)Y1;`}Snbh0H{Cb?)%RAUZ?{dHyR~HM*>o)9>(c{@_ajjLYHqP9A2!old$rgS;iqM$AkB2IR=7+|#Shr%;W1>UO -zE;FX|owaMpx&_sXoTskJzBDu`&z!7F<+Uxa*aA1)mC0pT`HfIuV?E{-PW61C&5-&5%SeLCq8>{ -zAWmwieRb-1LYRXEJZr}L{7U$1OGStX@A{w~9^8f8-5#km)^7RmP`PX}I`*5VnAq%; -zp%@rxqL(drH#|ESF!sv4og&vnu|x0ftFfKi78j=Pnd>X=K3g!@W;rte@fk@PEy$iR -zbnSZRwx3P*`jqE*+CBFjD{j5=$?7}hPf4YKP;ch@MRTIBCAzgNTE;T8)^GRO=5XUqnAi#>(N(d -zJ=MN@l(Ky&c=T>qODxl-JNGoa+_DRNaXYN8YsVN_B%|z;8TStQ-}I7-*sUL}0+2R- -zosJGGkvo^hP!7^CV=L>zQPLKeU2~`E!?zOt;FcN1sS`jc!zi@Yw(^FJ;A72~4KMR> -zU!!*^og-)j`+oh3kjnAGmoTgux*;GvB>OtCf5%vC)fI0uODbd<{M&#aVlbh`KTh&D -DSwXl> - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0004.png b/themes/bgrt/throbber-0004.png -new file mode 100644 -index 0000000000000000000000000000000000000000..687aa8bba7e7c470034487c5818c825a6a6e2407 -GIT binary patch -literal 1570 -zcmYL}dpOg39LImdHp`3*5#{oDB4Try5IPRVT$Yff8ymmOVXSTBI&(Q)c$9}sGR@^U -zDB0?`6e=qz>Y$D__jV-9rAQ@0=S=6E=X{^<=ktD^_v`b#zn{Op=L3jds#~^i0RTXi -z;O!A8SHsOxhRHiKCFPS`5OnWQCIG0QHwyw>;pxcD{VdPJEPQk<2wt}% -zz%UsRn5bwLh8~+ti%(!tF)S)b1DO~mJvuH9Wc;UAlvpq>l9Khik~~UhGs=U^0s$MW -zwFAc58e?N?Xl?C;!#UYGzJwmMlFz7b&ICu(Kmdz%`uE!L>RYcPCr}4$;u)V<>zEZMg~3*w2-^vTjlm=$ -zCqist*ZZc5`BsJeAQ~!6G)3mQ_6?In$#m@og(Cj-q3pk)iJcN@5dCMvql<0_8{NBg -zV}JchM{0}aq`r&rmA#+#;xiQbk16DRFy(i-qovXlH;d$DOCh$@qYaCLp!DGe -zfW_+lPiPdc)LmQ_totCcc563kq)dvF6r4_N@P25pa6A%~E2t!d-dJp>Ak(&a8pN}6 -zm%s)q#q3#DYp+m)j%GvC6fgNtA{L#K5G%!(gQ<$-rw)Xw5;&=|+h#>)OsUnJot>&R -zAzPE~!G6&2IB^QehIPQ>IQyhWrRoN=7kZkAgU?tj$U1=hW;@XHF1Phh-`y5xUz_Qd -zK^KupTZi)T8@k1fvJKI|XX7MDlB{JMjvv;}P?~tO?Ap<6gA&g?#0^0uZOx-WgtB|M -z$2XmzM~a`oG!2&8RI{q}3PdqRp8RHKyE}q=CIR{SCSkWVl;5i#*^q_1Xc?9Gys2~` -z4h$`en%_wrU*CP)k5JmL+tYbpK_E33-VmO;&cs{YlCd%E?{~`vA2mMXWIP%ePI<)u -z(Tgs0ZF}ndIk&vjC^g?Ii5E)3j}#W%B2mP>UpSJRB=nw8(~nmz<{UH~QzR8#xmGP3 -z>aIVOu91ig-*5R60_tf^!&Ay+ElhkrtjNyGDB^rrAJ-E>0a$aLv&AmdQUA#N>B+dF_>!M!V9wSKL{gAZdYTmqy3abO6zw;E@S%IetqHV()dkx<^9+*w{xAaI> -zxy)f0MYOC1R6huqvkznyR0gN73Pc)r+AsjSW01#prQQykkKiDT3=h&wX}7r38c8EFUNa|5G><} -zbC9tbiN>ePO{P#Y2~w@5UUc=Buqr+8*}b_{vjeFYYcq>zQZT%D;_mT6-(9Z{(XtZO -zFYHRMjxSGC(??d8rE?t{PE_fIoTL{WhEBvgkx9r7uXg`ytAX6f_7eDxw|jTBKNk?X -zW_JuNdF8r<4TjLxpVVl+FvU)g1&C(!hSRN%15&f}`6fqmdfK`ov`wI!Qdhq!|KtFI -MC()zv$MCGb0Sel;hyVZp - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0005.png b/themes/bgrt/throbber-0005.png -new file mode 100644 -index 0000000000000000000000000000000000000000..3a56beb7482ff40b652972de1a4b8abf25a3cf2f -GIT binary patch -literal 1585 -zcmYL}c~H`67{`B_975!oT4Gw7xJevdk#wgiTViR4Xyrk_RZ@_Eyz;=S%QQQzR8W^u -z+tH1*($osEvID!E${4SHi*|VoXeyRyi|y|0JMZ&+XTG0jzVGwbduk`$4})5Y0ssI* -z^Y;nTtHXRD;rh-`Ntw`#G1s5L2LQCid>H^GA{)KAQQ#XQ*v5(j0b)!%8zdfPvDuMK -zBA>@3MzaJ&Zd@`u{-_{^D2M^sAfL$RvN#-&_n#7?;y})!sI2Ek`Y4MdR*@Q)BkB)7bG$aX!noQJ_okOKmO7+!o-6v%UMC;i6d3xhhE_1t2f2k93C -zdH+92AbHVt&j|F`{AYGDGY;fC1V^&DdIiXCl=MqBt^i=9p!sax9bzoL^!)Gv(DL|& -ztuFPK9DetAse+$#Nr6cy(xu*}ITDrp)B^P;pSwU?=FZI;L(wXVOIG(T+$6%sQb!A0 -zUDZ&Z)A%STFtv<0)5kcbz4ZsW|If*5@w4g%?Ngop^uBoULR5)8P57j!6{oOcMasQ* -z4qK$XW?^%Ao)h>FbDYHPfUB>KJ@!Z~TNy36HM{9I>PLzSr$zX)c@;12d -z{)&^M3|h0=)*~>QKjUaawRlrG3?)aXvgInA9bV%`I(bUSa)H75o;Xt|u-n3Af{bOqeG+`BDNUtS21YcnQk2)Yb -zE=-x<*Hb)wy;6;U=8kB~;%iY4d~1#wU|~J-Yg6A8rD>hXYB80I>wet69a{X}TxBw1 -zC8;YZD9dR@?!Pe$g`NvYFiSO(8CVN_*CUr90y7sEZZWf6GR)!{#udL#9nVEBlbgex -z!{K{nuo3#~T8(j%NvcWpG<}SAL)*!C5(|NlYv|K$@C!qwdq1PrZj%$`CJ>IhOayBc -zzRS$@IL%Le&|na6sKpJgut!`|4u#<&+5-h+b`6V%A-eLLF;?t<+73@@>tWaq-X_m1 -zT8AF_&gAlRMI)&R<**ZuHuumv1#OKmFIu?o$eb5#Fvy#Qm^(9x7r#tj^xo_H*uBK( -z73jh7E3d8>r%)5k%d_*H{A96Fqfw;~zxy{pmcij@YWQ2z@yYLYlw9|+0g=(?P>Iu5 -zd^<<$p)0L?%aLTOalcwW+xJYG>#dD&6u$wO&CUhuI;w|Gu1^Xd?e08L+Us|tZ?Upv -zyGBtI3q9#PCY@@=O;rGoN55W{X5k?>3r$+Q_06mg(j|h7H|<_enV0W-u+`wFfxu|z -z3dQrIOJh0wqvJeLML#aGX)0*FYhGgxGGWG%f)M%0Lg^~4^Hq*0A?E%e -z)yE7JeiP4J(YhEVXsH>!yC3Pvi2u!`^w!~rDb -z_*aATNt}xXolBG%QHze$qq?X6N>>$q@cNP=eZ^Hld>*!f>lWZMc#KN>GruMd9w?x=Pl{A?CNp3EiI4Ry$)Ta0&1x%!*& -zw2vgKw9Bb5zuJ2`)553$rwRL!GjOk-u>)-ncU9ZG -z+%aIbFb#{y%*+u>g_sBn=fqWtHu$&|S=!a4@J#PGh~W;QcXioN6nnTfc!N8)?|2*7 -zXZuoCqI;bt47_2(_ScoMv7w3JQ=F$`;6*yDruzpUBW>Wc}V%q4fT7h8EI7+ -YfW*HhUqW(Np#Sp#nlIf)x+Nm(Z}Py(ga7~l - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0006.png b/themes/bgrt/throbber-0006.png -new file mode 100644 -index 0000000000000000000000000000000000000000..949cb23012469efb42c33953b5c79d5352ff77fc -GIT binary patch -literal 1597 -zcmYL}dsNbQ7{-4F;-%6iW>z@SG`k_7XkkC^|3B%BaVLf@3-#FI@9Z=N8x$ZzXdIqi0j!Hh)(z{u0031H@rOdgO|BOmPl*27 -z@?6O=<2zm3s?H+KE+~T$1fGLE!SOqfq__Apq8+=<77h@ME|u;!_2Rwts~|!1f}tG| -z{t1S8_o}fn>Ydl=vU%mW+H>|}ixYMt=YGO$)2r@>uPEAkw~C94J>_j}nSMz&=TXad -zrRB+)31v&)v`@lMH-1FqPEAfwdeVFtKApZj#aV?tv1bFL!iYnZ=H%aQI*?8q2906H -zwK*Wqa>(SGt-??ab4Oz9=9gv5Z@w5**;SemQq>P6zQxG~M~ovp*Gc1e)ckeHFqBh&P}cZk?B$O+Mu -zqNXp_Hdgka-7sr*!RpV^_nVBII>a015r0TlGTt$Fanh_G4fye|Vt*Wjem3Rin0I*c -zOeO@DIM|m)y19l+gcXoimTr4es>>j2f(KKyGKwKJTcFV1*NuwmI}*kYA?H;-r}A?r -zHqXK4iWe;eBRixx|0zGa`Au=W&= -zqS|+R;Umr3nVPA9Ib6Pz-)pXv({?~--AWNV87%Icam;<@wn3tJh}^>RUHMi0k{uc7 -z9d-K{q@ZC6 -zr}2(&u0$~kow78p=LhzY`V?rd6gl{mSybEm^b%`4vA2ap=R}a@;#*azLOQDYi7NYd -z?VjT4m!y>6U6ZbcXnU}9(q*3H?bf1Dii -z##PrRs=A@^+t{h%B3vF-&0L>o-Z~9`7Zwd)!&~Qk&~2uYa$c+$43+6?_A4 -zDmfLXdm9Z+R+Lw^L(89-4^#?i&b1+m%nR@LZ96kwqjTjw@BHW2c@`ZJkkGm*0S!6@`Y;rCe#liMZXA^ -z@}}q#RQiS=+AjKE2J&B^tKSye*H|_bBzrdxvKZZ;)Gn?%Ue|5qbNjfCBG@|kpIffw -zIillf1?V>i!&taCwu4NIf$8ias*JRVP>U3dGbMi3fQ-7u%ek8!zSOU+?N? -z7Id;xy~$Jw#bSg)P_80hFV?g^%9N=uq_7vJdSY$(YWOtjbbCvE+CtD>)D&g*!4UV@ -qaGdN$13l(?h0pS&lw)0lSOpG74CvlT0}S;4A3*dc;p+~^!k&JeGvtj+xbK?e>XFk4uFX%EIN3E -z$zoAxAdgD}8B9LNNls^_2>6L0KatL&^FSVl$!62J|0#x=OlN;i6+h60qEPEm1PY%H -zxMFc$APxt*y4mA!cz1XFr`}3f1P1E)V7(`b$)W>TEdJl^39FJULrnkuC|t@q^sLrP -zE`U6fb#E7BaVfw*g27^4PYvpKL(ps;?xoS$bbz18O`%fhTzfa{VGi$j -ze8=S=Bl6C;q~U_nw!7genH7S8qc8nEnepl|`O@(0~XmXbfAb#s1x-ka!$jQf55 -z$qIAu#skxFWz%B5ys6p&>t)QUdE$!n<&NT-8*Jm&M*dVBK7)Gfc&)s(xOei{RXe?6 -zv7^dg3Tw=9SG$qzzT92TT6;I`Q(R?aKY`9IL)q%ot3D#@ibPUV8pk>w#!zfgxp+uB -zWi-cOvspunmdQe|t;Z)-W^Z)jbz&4D>WxoA{_36{E>n@Dr!$LMWR6Sw#e?5>%PdMbxz6XUcsu=Chk$YEbuL_jEb6z2m8IIb->4$3pk~BidQc|oTcPeB -zUqbGGxIn7+)%IylOqHDV@N&8qZ9H1s_GZ&Y_GHS-ijEAEhgze;1h}=r^I-Xjb8`U& -zIFM-|Q#RJSSS7i-g$4T&Mr~xr2ND!1k4HyLihpyE>Mot-S34_*4g2?(*9w&aMa}IT -z7scp^&BV99dVN1ghnT|CA6{S-j^c1rR{ZW(yf|`mBc%_?O2{KyOTvctTPWGx(!v?Xr%Dp^XT7QX||=q7FKB -z=zWi+os>nt0%+qo{H`fy%5V2#D9>Ig@Zp{p!dm;*J}GRe@(@raBntMoEeCqG**PRT -zv&qb!iG>;Jt{(0ChhViX$k!#U=S91?7N_Gk)Wwv2#CPnzHaj(V;MX{~_EF&sUP6o# -zZMG6IEWd9pJQIQTvn7$&EYjsCYJUl-OER$1yl^UN@tEHrx`VkayX-`RpCCFnPj)ny -zUal>P26tPSf7UbI!V~)~j5S@lk*C<`8W)c=jok7S&*H1_E44NYxBvZ*&4 -YV^$rUwEBC7p#Kpd5km=$I}eHf27_eUh5!Hn - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0008.png b/themes/bgrt/throbber-0008.png -new file mode 100644 -index 0000000000000000000000000000000000000000..beef391370a4183ec221e131e4d06e60e1792919 -GIT binary patch -literal 1604 -zcmYL}e>~H99LK+y&7`YsLg*4Jq1!KvH2Q&T>4zW5c?v$LDi_C9@oly+wA%FN+-It{>J-2T0;WgBZ^wann#DlF;>bj5Zg -zTWCGlisz}dSXAI2L18esGyMjSwa|D421e5uG=LMwN{Wi2v8)_1u}pSWz|#&bN38Gw -z?SeGc|4*VYc+%k|juykeWv4|a(%4pkR60|u02b$Z^1PV?0DwkFUb_#Ip_%7*$JKbR -zJ++*>)xM3m)%o1C%~fL<%uZA~ap0~&gqK(_FRZyx -zpfHyGRghhPuhFL5ogO{0V=bj<{syj8>UhWTi`&B;qYN?@A`0{*G-s!h$~w^`j%X1)sMwVbzdh -z5A~FhV*Qhlc1p4fv|^27s_qg&aC`6o691B|T*rhq3Vb?qDA38&%zU-mf>FjH>hM`l -zNN%D}eGH$*VX~Xbe!ShgS+YUQ%bYI_ -zx7?W1z+|StKa73iRFGhBPQhv&Wo{h$i?oghNB-!^|dEK=} -z$K+ntES>Tw$SNCICf=|B{bGou&e(Bb#IVd7;@l52jUSvMADGTh0bulCkl2U-E)5Ae -zx(r!-M?p-&V`MdtJ@zeFPfv^j&*d{Vr~1kKP~CkAg$O-tk8PWPaRMy)>-42Q=e`KY -zj_PaOTZ*TSwIVE(?$a>WOQ$I)c%!Hx*e;LQojz_ssg`g%t~Hw$ -zWf`)*s|c$KN>^L*!KsbnmV{_dMw3Vt?1O*UZf~=_>&yEL*e5C1NNy-*Awnf}NlOuM -z^SidLB^9^yNONZIAQ%tus&vEUmm6^6L=10`u(OnRgrPyjC5XBY%6JAUheea$Qj%Iz -zv1&$78V58&#a-Mor^7;3=4`_=1^xb+`wKEpgZi?uHdR~4uIjaQ)t>CR`L(e|7cR+L -zEDvwoS$KTrLdC5d&8M&19thQkl%6LL8M=6>knFQYH^`%KJgAmy`CbNI?B8_R(d)_% -zd-wOya6NU=Ac}jle-uScl1zq8W5hI7aUj$DOG~}AeC-Xqh*vWFAw=(1{&mNhyY5nc -zR$<UC)oDkg*z(qCj|@GY9Ad6@tFT)I(&%$M_?Fdl~WYr>P{F|w*p -z>57|Nqp#pNmyYm~`bB->LIKxy&h2$y$;sRbTi=0s&%K^ct~-oxM^0t#QGr5fBeR{6 -zyU@kRnJy$OSuatC-(9^;YGcm6Tz#FYDzMC>S~o&f+9N`HMQWzgm&vq5r+m -zYjb7&E6l8Ez;M`&dUEP39l600eaT#GA#y75D=)bHF_)C5(2%|YPE{Apf~(W^BAlTP -z^3g|Q%tTK6?k0`}cUwwqhfpO-E{fbAV~34q?!QbUq~Qmj#O*>H7&+_O?$#5&$0Zvy -zNt}fHAGIa6UW$1jW{_(0XMa6v{o|OZ@^N3tDKg6M__GPQo1baNE|QBXqfvNkVvBL3znvVP3FHFMI%a#GD?1@Na>+oFr4FV+ZgI>*hD1yHM>hQpk - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0009.png b/themes/bgrt/throbber-0009.png -new file mode 100644 -index 0000000000000000000000000000000000000000..b366daa8f009ccc64fa2356234e45d09e544486f -GIT binary patch -literal 1605 -zcmYL}eKZq#7{|wEYcVeqdA%0v(B*9NT1KHJhFZ-_WW?5DZ0v4}k`1e?P+}E|=;fA_ -z<2{l)rWfZ*NZO1_BN54xvdVC`?!D*!&hL4?=X^iU`Tm~2emQ$~`@z5#a*Jc7p0ofSI>md7*qfTgZ=lqkDJtdQn58ZS7F7fq5IBupED}Y -zK<({NS*%#VKZ3$wobra&JXXPVY8XtRCQ$*Lcvdo*Ol2XQF^8D!Okz)~iW{mqQMDkI -z_5YJ7j2k{=iKD{spV>z#bSfJW9Lr#;6yWHzg;!)^4*-Bh@i?E5a45H^KCwJ>UDr8% -zoNw;=J$c#s#n#pu#kxs+sqcCN9I4F1Zd@iqjwAW}j4WMU6wx9VYed4~0t@Yk{B=;@ -zYegoBItP@?eW?{K3hvSXkTBOeRer3G-M3XfghH#1rIi(W(@deXK|VA}Xlv(|eOu%S -z3A5BecktKI0ij^QWdd_m?LquD*1OmX;&maz56=trMgU%=9lpc~km@GA?>q(QKB}&RCH(qfk -zkH;hlKl}lNwnHtj9-A-NVmxnji0vC{Ve+@f0!416FD6W@YX>?+E!lRdBpc|dUE}i1 -z{>-S^$8p>olGsvSVrQLoGV>{Hd{`a>Nyi<&J|W!+Cz{QFg-iow%T?hM_gAj1xrL~_ -zR2gdSy|{ZtPv+g+TPt~A77AHfkeunU_&yoz*nctIU^#9Ku=eqUfcbzs^bqNCB#;?N -zR)Ph$Qa%S_xZsx^_~Iwg&It3<+p;Py04tRcq)arNvtizPD`;zQGBiah8KlW4vfeN2 -zgx7yuHCF^;-=X~<}_Nh&>(jOtVBRuik -zm0}b7Zc5Kc1$r&T1mZ -zdDjzP%4GqfR%R%Y;$Yhfj=YY)33rO<8QxWPy>ax>qP9l0(xu>(WgU4e%CK#**=A0> -zDuCxLz}a8izRtAeK0jx-qtR4ftY}VH9ccK>>DRcs+?Rb~R*-{qZStz8Xqzf0#R}w2 -zH}s~aA>9%?LX5!kc-qGPWM4rHdRj5yXZg$?QWHRMSX!x8oUP@}cVCvKRbUs+3T{ue -qMdmaTM6}GRtxJzMVmD#&y;Wc$yR*qQSfc)S0eIitxSH)T{J#My<=QO( - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0010.png b/themes/bgrt/throbber-0010.png -new file mode 100644 -index 0000000000000000000000000000000000000000..0312f62688976e840bdd3cbd28a0dbab0913913f -GIT binary patch -literal 1601 -zcmYL}dpOg39LIlincE?RNnzDAxox8f-B`rZ1-XT=%`ap(n~F@CTP|JK2}z;LoLWw# -zr4BM8_L$MBBT`zq)!A{2J@e(E{T`99yz=lwkI*XMbEKYxAm{Pub4YMW^T0H90s -z@eF_zxm=oXsIyO;n1w`(>2r_`06Hs|3kH;wnnLD|B(Kn9z{D|VAm&IsjYgti -z*enVrHa-c%q^8gqN0Z_(NpT(Fuvex#96{n_PR<{T-kg{pFd!cp3;`v2H&u4x8~FZ45EZ@2jv#5X50Oq;$kV -zp24!W6S7z&;DeTjAii>$2S5vg -ztpA^Mz&aBH6-f{_{GOdcp@MAW0TPV~DS&fyIaz3G3jk_wh@KvSp<3C6-35g~M(wdV -zIMmJ?a0By*VIzC(uv>kEVz1Sk>8J>`wMz9}f?)gg8RdHgCWcivoxf>@RFvBiHC7QK -zQ3TIDfjMUU57)MrDF!E<=2J%h(Bq5^rb-*<72C!J6%9^Xpi?Up;&1k!Z!1b1cr-J+ -zrS2V?J&-b9x=_$9PV8f#-FgjAMM_eJrjzwn4>0WI{Ke7mO63Jz#ku~DMGeuqP?gl? -zHOXodnFi}7){@iAHcmTur2JWW%^Mpb;oq;Gvv$!NRIhJV@lkn1R=t;A)(rZ5yESe# -z;^G|S-a+GDwNOR7=XNbvMc;`6FulS41Se;eD6VB$h=J#vtv)QqUQ9$Tc8a=|;JzZ> -zq(=Tl$zwjUf;nx((Rm6aFwc&>9Dc#qM#hP|)9aeAiq0BU>uqXtHQ_Nb0^3q6a*Nwp -zdYs)>y&v}^z(>xQf%M;gique~-{t^sJ6OIblyR_^@7ACz$!PL+GPCfm6g{I>f7%kZ -z=Zj>&>Si}JyE+2OuQaQP`<{#Q9Zy^X>y+u1GvcI5{p$trVL^Ling+ADzg>pyIQY9g -zcq}tq=J;60xi3aymVJb0v#^p053Q_4f{A_j>TtzTdEFN(fE}cGFWUb6e4hYk% -zHb~5Vh-qo8BH)M=_$GuVF)d6U6n%eo?L*^k{UXmkel03|O%*_FjJt9HQ9Z!Q7Co{$ -zUK;A{QJEiEE>AeJ*Z=$jKBopHYN&adhW>=m4nrP$P3c(2F^_L;Ey~9_Uz~UUfQ{^G -zod6F#$vR3YyBai=@X6@`LoPR^X9ySuvEd5sDe{W0Z6QN;mN)J`*FoR8?3YE!o6qp- -zc?Z+t#pgQF!(K;exbCj&p{rc7Cv=)KFP(TfDeG?YKQlH~)OEbxa!*y3d_788@@mCB -zrNshiCiye|63#`)}lPLQS*h^*lG&;}@!<;aXZ%>6m6a -z)PdX@by=A2=am6j(^A4)*OGl?RtXr}*4*^UC78P^pVNjq;P;Pf&YGZ*uQ8ubhP`n# -zJ+lSo4~BPl%s8gzS>Y(Q+6%#kos*3hUfuh9 -zBf+EaP?NWx4Nth><}vp-KcDyWykDQ^{r&v)J+R)-3uRzx0001rzLv&- -z)MC2edQcZ7B#c6W5UkxK0sy4(bm;(vMJA9*6?<$Hdq#3V0MF)gL3~ssmm3<67YW1h -zJ0rz-0Vkfzj}f!+Vm8PHMR<`QlE(vu|EXOV2juMtlReUfqD-cvXrW>duqO~Hcp?#R -zzrun@baHTTav)s0rG5a-7){RvL~=oZKydnfiNrDWyflcxf2|@6g&>i*L86_4yxG&9 -zJ7ft%f!|_BAlM&L!J8q7o`%eDkOu-{wvZnd1_~`!5F!L3DdRyM#Eqvp16mLi{{N&M -zfkY3O5JPy*uk8464k)rzOth)6!VE;^Wn-k0lR(}c;M -zLwjnu#{TIt)`I?W_+x|Jr_$kmW(TRRlRAb)lqVNt>EUgL2W6PKMJ${1Z1@s1Vok60 -z!aZ2|&X+%m2NM%M%E-|l#~M1iH4*X98PICu=nO-Te33GdIyU|_zPD>)%%v^gPh*pp -z=%r)~e!DtAKIv!uB%rSJj_uP+quy`P*ayY*QD6|KW>a8tX>uj(T4XP|kg_!ZJwZ4X -zQ>bhRA{bf?m|jszcQ)lJzNGb_1?lb~i%4;1Nq;n+Z?Q|_*(gu%MV-68pkUH*cut(b -z^=>qyqxh2gj=QTwmnX|out>rqH;OdrRvNOASIM^KFZOY>3)F7<8PUw0#;rW}6G4_i -z*3~KSZvBa8g`54WGOH_f4qGM6UxgyMTIC~y_!~~-ILC-F$DT^Zm5MG-n7_M!#nn$` -zA8^s%D!6wnKI5Of@?tZ`$_@ZNp;7^mY+Ze~DbT2bC$XOlHs^k&9&i9u?Qf8R+2l##HwEen5 -zYr65pMA4kw8RJ|jxe2Q%33tbh7vH>W6syuZNB>|cZ?&rT9iCOi93m&de-f;{sD -z@was*F)l;0SyEKifaSq?I9_mM4(wtqn3cafP`k1UMfu0S$F#BH=63nLGmG!sW8Ktu -z(ZBnxucooHu`=q+_H576*q13f=I!P^LBosMzpMB4wyp+^Vzf>T^6p^eqLGYCAMk(a -z{L!L^3xi>55umC*|Ds!k0`umI)xbwCc1uA;{_RQmen(!_-ukKW_Q7a@d1l{x&Ru$v -zVE}J1>w&@i^qbuJnhiZ#1ktm4$ldo`x-Z6!AXS -z=Zav|;ey6vM|;1jX?^+k?WNoI;&9v?4b4NQa2_>KNetgaz -z>{hn3c+IsA8Snc(g)e_Qs07t#Upn@p_L$9jcj1$FK{BSRzrmn%ZX?pUvBjahHt{XR -z|1OfADbJ9@-V8kYhA889j;foUcS%*VM@)sQNv~^AyR7byV)#|WsU*z?Yt_0v(I1U% -zUmj@*nW@LoDeZVSBx@d$u27gSQ;owj%Ijypal`QAIXynZM1hUy1uz7N3~3K>HbuJK -zKf@I=7g|c4ZwRAqH+JrnYm0tW>V^uW33n2sZjN|t`9nd65h?SlQoE0%;%r;>kmltX -zTD-Ol@AP;cw$a0J{}wjEhRu!@pE%2OJ}n{T?3=WoOf@Zey~?)&cRbpcWD}EAvewJg -z7#{15+)`;xuJneDIC_`2{_OHhsty_xw_|fyW&)UGGbxw6J}WTMTz=-j5Vyf@ms<16 -zb>?eCPHk;=#8#?LL7Z((4f+c%Lo}*s5n=nAaCT>t=( -zbWh5DNKvb$tqHySq@=fy=x{v)`2c`0S}hoGsn`TET?Nztfk!k81h7mF8^j)qX0yW? -zSU!(|jfxgvxhx@@6DMF|1x%0)^09nwbZjih`%f_uEHE}QLi7h5iZWS^qJ#@TfPll3 -zuy{O{V28rv$wVTVh^v^c~rbF!!>r|6JzN7SiZ -zHtu6oN~HLtv_=dXvnvltnFW_aG@o|0wjY|x_xrIMC3>~yG|oh(?G^NpK#9!XM4_Su -zCZ`gXl2y;&*i8s0Y}X{eIH6ihdDPrf5*PxV0l7T*{Fr+l7}kHRJVb74S^uPJkfMk* -zrJ=%*L%SdQn=Kp8MGFS^l=p36ZVj_eosYaVZi@DpFZSfBHItB!ME)6X^;j7vhBr}_ -zek(uBWSuJ`>-Rp&y;GTi7&fbcqsMzbHdX>bTCM4F`*+{PiOZ6&mqvx`%x_XNYKCDl -z`ZMSoX5q?o^I>L3Oy%T-ZE|3H8{6V`fmBJOVlqSE9CeyXx&n(zFDX%rZ&kDT -zYiv;JHPh!2KdY>e93Kv=(Mn*0F$ -z?Jv2WneiSzZkrnzsR$AeA=K4l^6)Tu+qJc$_TEW`;)i0@mQO?Shn7CXk~q?4oGi1$u^dztbPcoBMhOlW0^7vxdiu#Vr!i8@};cJF*(w!fr9}$mZ8y -zqd4g=+RbKw#L{VR>p{$(MqO{7LBNGsbUEmrmcC|I4zD>=?w_~!{%@rXFta8i$1 -zDwN0BH1KLgLzt?05U@(V&2q{f)3Ud}HQqw9jxN8_vWs>7}-o`tla6&r1J -zQ0LkLERgH^XcfLrqDPmlhMJNt-qUhwZd*&rp4{ph9P<9=tj-fA`selA=Kpjg3;lD* -zFQxfybruO5&Fb&eeqZ+YK8}($d((^4qGRiJ8|auAXVFK;T(WH~PPcsXDrIhOf&v&q -zkJe{-HaS!L#yf30gO}j7J-Kl*($u=mWN&(@tcIkeP_LucPxsx!n%8CB@K*|hzx$>` -z^gPSYxo{!JaiY8pj!?N*iX(w;ujT -zb)4%SX5gGs*Dq_@g`A8f1oU{sX9SvMUwkIio -zLidv?x^naYMYV&Zq4#q9f?@A$P{@>oEYJLK*Q`_#K>W5nQzjf@+k_YlsPzDO~WnZ8H%4UW=u*%X?ty! -z^+yth1BA9Z5eE4Qvd5O4U%~7`7u2r<8V~qkqaJHhxA_9k5VF1 -tk8O410sgeR09(-E(>kyfAxR8e(Re1SE_W!PK7>9&fKK(HRJk1y{R6MZ$w~kK - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0013.png b/themes/bgrt/throbber-0013.png -new file mode 100644 -index 0000000000000000000000000000000000000000..ace8764887795c1dacd9060bbe7d0e1ea932abc5 -GIT binary patch -literal 1612 -zcmV-S2DABzP)>1eYOb#!Pi -zbZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_VuH;C0000ObVXQnL}7Gg05UK!I4?0V -zFETSAF)=zdH99pgw!+xU0000GbVXQnRB3Hx05C8*FfckWFgh_a8`gHO00008bVXQn -zMsi_oWdJcVzi^q-0000HbVXQnLt$-Ya$x{NVQpn{VJR6m&&cbW>wx -zZe;*;XmW32Vr6n5GcaawbAVFIxc~qF6LdvbbW&w*WMy(xX>DZyFfckWFfK4RK2yu$ -z0000IbVXQnLwRFtWpf}?VQp}1Wpe;AGB|#g7%Kn(1m#IYK~z`?g_c2UomCKqlS>Gp -zgiF;Jq=a%&5G|r0-MFdRg$wCMP;eo*5s>zdxsFN8-!6)oq-9W7~5Q -z+s3sq@pm#^qc0_hV|8zQCVt)l32FJh{?161? -z9sCA1N2AfS&3}M>?-jHO95_c|3qA#ogXh39Sg1f1B2%>Z0elTE)4&b%J&ov7YMnlT -z6pyC3ot^|wfK~7xI0`)63G7zw-WE6noXSt&9Qclj?BzVxJ%QwG0(IOLez|5?><{oX -zxCM@YKfzq0;yn=rHB^S}-t0)GP!&Y_Ol7-3Pnl!R-E8|PHi -z`m|4jGc>lC&RG{(h$95>J`U_$a{mHfzOn->==gsGj{gQwEaFui2TsLDD=CSqoyt4l -zD)qjiR=EmmW8ZxPIPBmh@FZ}o-lGI0BYp*!fWTd;Zp07tsbzXdQeEJ_lZnF_Kf9ijAGJxOJ8C -z6?5VJu$}-%Y;o6W$M-YvckQ8tY>2y7TuX!)ujM0fUO!^@PQvrlZ`4PAkb@&)A%mR2 -z7O-o{Y=G};hh1@eJ?V8d8cFmMAQ_7)PC`5bCdP|09u341W&GZIMlXR|ZO2K*U&Ot3 -zUmNi{E&yvdg@}zF^W7L%{?r|dUI$LW&Q0#Fnnq=AbTuyd~X= -z=dO8OF3KCIuQ(4z5+(_KB@kT-s+Ew4J&Oc;UgeO0DSlsylq;xgEF|j|Cht^&rMnbr -zwf2xu%_--XO8q}~vMd2L*q@P)$KSqVa_=S>OE3l0ZE@GxBX%eg977T|x|N*vaaimK -zxCSKSqjVZ2W>%N%b!4+gk5Tv-^)E9a?fXhPQdj#~ -z5>9~O1UB)l=dkYIDIB?bNtC;#CUb@gSWu2d(ZTr6q_xChxa1^$LH~9vX%^cuDn}e3YVQ>_zffb-{6&wN!8Fg}_*?S$_2D9WZ -zoUefH+Rf`ml%I61b(erqg%JfP -z;up+&$`yFPj>VJ6x|7EDJI=1D8sIr+!KdWgM0ai4y@dqg<4}L1j@;`QYr7vLZjj@( -zeG8O3;2-cI7$h-$HMwq&$p#MyEA0zh?7d`Y5@Bf?KgDVO3PaBKf?}(&AD7sCIFM8JA{d{d+?0kyb -zyv{Z#(%Sm6j!s;3{L%48cT;E`ZEymzpS=h96K7sx^~KJ4(fB4wQa^7o2i|!L>KTqMs8X;j7+TN0D -z^lYa*KcmHq1%3$@k0**X7Oh5TKLtaXAR7dd6L?8+aUjoSC4MJ|FAQn>%gF7fc!=>p -zkoW(SSiA=%w5`{OQ9rX&nJkd+5*iC}j0zBlq^u&Rgoo<1iIq(oi)#Ly1Tol9ZGS%bveCT_1;5qzfeo5 -zC=fMfz*J|u;dNWCHnOaB(}^BzN@;=O16>VX$*{I2oAg!;mVmA -zWul4UE;NrQXdSE8@1SOD{p=~Z+u#_b%%{4R#umEU`~&Ozt%}Oj2(Y_@vde4eF0Hbq -zS%g;IekwRwVxfUYW29m=Lou6C~*?m -z<6c$Ns}-!MXlnnu#Qui%w$-|aFJ<2uG3Y}1&BJrUZIh$VF?_o2z0R!9%RHUtnc4B= -z@Hzf>ZT+6Yt_!Uh3C|ag&tt9r@iYVVrNj&7w%6ls>YPVB%g)=5x1_!G -zJF_~eMb6k)cn7H}M!~S^N&dZBt>Fz9*SH(q* -zH=Uge)8s6ysbaP2p=-x)Yq#Yrd+wML&D-deZbJ9z)IOB1L2TH9fx8XLLS0dB-_TOFv7~L=_Z_Oq(a$|6&!QON{az*lCdQ9lnH)NlFzPi#n}?nF~#j -zhS9QbvjPTeFL)xqD5zV@pY6%5G|k>C=h>=emb_h>0$Nsvq&V;cn|B8r&KGwtiWHYF -z<~n3ftGAGMpS(ZmtbNDXOjMgLfP>cg`(zuPsfMHg+jpKr&{%`op!Dq7gg-XP$$;g5 -z?f)E;hB{y&ZJGU`Na>3~B1rdcwM4_bh1pHSf6V(I$JD2c9yZ%WaILXJp6pa3TP5C^ -zTxjfwH!{oIa8JjopD`dF;19iTk6t3#^r-sgSk4x%^mWFyHEJPft#%qQto?{hWp}Tg -z0sg2Dd_n#@?8imHoXPpp`GH>Y(u#sT%f63GU&4|Ua%p-e7!eVy8rC#;8$OkxYi3{p -z=M(2r#w|atc+!BmxUFn1q0{V=1O44@|6MpkgD#WOC>T@cz?GUFyQ=m5jJWnIB^mx_ -zqFp%yk1GSkGhV)`OjmwD-8z}tYp1DX8k!x+jH)`_t-KG~iSia*5R<%i$D1#|Q=4~G{7 -zx&J@uf_JAx{>_K6`RD8mIs@d{MkFygumS|4XYP*}CjeN{NAdTIj5W?F3qJC7)Y@-L -zF+p1cXs52p!Va5#V^_C+ALkO^wUwjiy0qtzaBZY%+NGlFqQH`H -zyOSx7b*eCbxdrK0UB=P5toF(A;0+zrtem_zIjomj_#917*KQsVkJ-f}EDpVnpOLkF -zjH(%{2+=xv$Ls;OzV~`GTd~(3`B28Ill2W^qwBP5Eo;gswM(0t^#97A)@wq!cLkK+ -z3_{1Zd`GiETo0MMwP@1QwfWZyC4FNt#LmwWqC9neO$N27DeQc;-MOeC@!8$3mVs&8 -zn;^3(jHk)_At)xm5P;FOUF|yO@f{NzQC53A5DY_P+ -zRBQ@b#efb4SVTyk8mhnKRK=Atq~yT|2z>h>dgFyR)|w+bxf64G5=G4P)wjezI&0UW -zM7`1d84z)>HzM6XO%N*dCZ67YYHo7J;_v#`*fpbY`(QzWdR2hkRX(pZxoS6II -zh!+PNA!C)}d6RgZJ4IDhZZy`0sMZS=(V+o3_HJEc*AW@>5Rz$NhF1wLznk3q>g-@B -z6k5NK2m@{h7PNgJ@aqprj@qU$RT`6Q}BglSiPZF8#(a^NZ}- -zy=az<`A9}pBbc$1h~b`=MdT4dRkK-;O^F=&Hl{+JrPWecyQRY!4UvXjikq%#a}N4e -zxJS0h)p1;$fwisI&>zNcVp;nX#O_q8l`0J@7T&j^@-LSlTVx% -z(&7}j^mn-f@gr<@^SYq#_shOz`#fIofVu|r6-l3>8j(BNVnqV(s}5m(<%G)KqOPfX -ze*g57{n(YZZOLNI^)D>50Jp)1p9;I38(K;qUqNNCs=5otiGrK0KK(D#jgSR#t_ga< -zq0Z*b=j&sV&vo|>WfRk|nxT8wo_YPS(lpv{a)-NNJ1uP;HluTm$Hi>p*e6)b8<*ai -z*I`O~k=vzJ+sEZqP6ZEgHW8$uX>EreY)C9%LH2tuGed)P9IN8v@{1^{e%~$YjAP&M -zHA{>(wI-n;UGr=E`lF8T1y`YSkkIA!m7}OX -zeUnQmKE1@>8jmkQ=NrVwte@N~+w7yXF+|#|SU*R;9N0;P6v`LsoJ28Uc&BblY=cfJ -z0n0{Yxs@vWv&s8{^BW&$>UE%USFSG)hzYAkNN2Hm-$fRcqE;0sr^dw^rWPWKyjC%3mmm(i;$`6G( -zMym>YB)m?mJmts=cF6$l>S#j;DKXsgq`11`jIYjk#kx>jm?_e{++bqX=BKlb?W -z*?IAWqYq7|t$wa=-6kK~Hji0YnQho99O&Yy@fhp3i%_yswlqGVBiJ_FI -zQwp8r(xXUj;gCv5W8tJCa$S;~pL))7zR&mbc|Xtl^?5$u_g`Q6ZolowWv0sj06_YX -zhykElEfx$4cF~CwQ=q^Fq(4LefIu(S5+GA)44PZSUV&n7RtN*YGWlEvmd)aFsdTJJ -zNXH&yiLru^<6M52n28lL8C-@4D-y7HJcjT;b)cmzqP?t#*3?nR51f^!r=*6 -zJRa-hY=y_WxwyEw;7V({n!y>p#hE=UE(5^f+ -z6Oeai198o&IA8rwz9sG(ALyOGB>VmG!$|!@=TAqgpC`y<2-SmB$C13<*W&|x53XL% -zh5LVXP8hEr+N7xrZk?Y{5k4P%*K*l;vQ;^$k}RI1;o;%l?TNLDu!0`Ke0}M0R8ReV -z{J2r><4|Tl>hNFm+ -zISUrjp`NX~;^0l@E-gD|FcBS_Yww5J&7lb&4Wt3{qqBsE)^B6>xa-KJuvT2hthn_7 -zX$ZEYGO@>ce-zy812pi?jN4aC7xZxa2@}#6q}8S(qGwq&v1L}jI9gQk?v|z((2WU( -zS`>2{Zobh;)L4{jSN52b6z=)X^w?N1EU9Tc>jm8B<-J@H&j#5RyEAMZief$1M8kYt -z8PV0+re6jx?XfiD7DJRRooX%Ixr$#cWku8~*81VKqEE8>+GbZZc5^sI<7!%vVk5f0 -zFwORoSu;P%R+(9Grt{;O-lE{ZO*Z$e3FK!q$#B<0dT57kdr;`7eXqUaruDxsAL*?* -zoS)PQ$Jd3>C2WJ*JBYo)=EP4^{Lo -zEv-Z9y@s!K)5+@|BQZ7k@1*(*T7qR<`o)%Om*5eWahz^egih~X5;vbN^-8&7ezI|I -zZf)NZOs7PPEx$cPFY^HozN|v -z2zcW9V6}mJq#YwuG7k?7RiWd9U+iyucg3`Us$ThQ2ED%O61OFZTNxl)Cmcn5Uh%#e -zZDtwsJmP7G-H~esdoPkl7dTP`Jt)gSsof_#M@UH`Wy!?oTo)p=?y!gg_ - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0017.png b/themes/bgrt/throbber-0017.png -new file mode 100644 -index 0000000000000000000000000000000000000000..ce792def5cc6aac0b16a4ac9d029aca472c08595 -GIT binary patch -literal 1572 -zcmYL}eK^x=7{`B_%EqXz!<4reDIMFCXoN+XQ>TRTmd5yDY+kl0v|L6B%S$>5qg7H# -zr$XC7VI&=u$ysT#v{s?aTi(LTnYzw(p6j{q?{(du@AZA|zn(15eeQ7BS{MKTa1WxJ -zmr6~RN@InpGm?|1R0547`ZEAP6S-7sKuIY|HFRd~@?-9%P(c6_8A}5(Q4|_2BoxD- -zhhicqOiUa#i58o{jKnY_K^n-wFybgNF(CavwI)-+m@sl$r@AT%wG`zR!UO>uEY2Q- -z!(nW;nBZ`DTU)#>R?sSWs`9K_^7v3_Ab`cHPhQ~2dy`I*qIC6=5sTKt3 -z|37Js-R9x5z*J$xkL;vSD#$SL4xz=V6u{Zorxc>B06@Lb!;RqM2R&cd8C`a8Rr|SB -zzg5cJi4{ak!p^t@{G;!#)jdC@sb~5fZY}+4oaqoh(%NW}d8zK0c^%@j?`l4g!f*2m -z$h>kew50#*Lg$VyE+e+T5I-*69w90%juElres4meB3h8KmlYqYQ;dhMD=dg=~lA90&00gHr+_yJpV&f -zusq=|^wvCDvV0ce;iyiXi@zjQ-yk&lYQ)mEetz~%8|Y+~UpnGqP$~ToEn9P!jtqR~ -zEn9)DXYk9gm8RQI_@)k%*g7rR^%eu(&&tmrg1c*jR_3uoU2H6#8&!Md4Lao~3?3cE -z=NFL&otE>SXT7zZl4sz{bBkN{D*PRCQA4q^lEJdR6i#(Cq9$r&v=&(~d*dPm)BVz{ -zvNWlKuC+e(rHRE|n3dq09#_D3X76#aX*E5>cAwrF#|uMOG?yJm5T7)Xio~qnjiqW@ -zl}Bb)5P#_p?~t@=3U4}g;l(pvXtG?d1t~PMhf2+$oO#59hfUEN6E{*zT0Wbfoe5~M -zm5nsPn%c)KB*V`3xop9&tbWK~>Phn`M~AD_H1UAVothW>i=GAuvPTXoPC`?Je`SJs -z_<~dk`WtS1W|)_z5U#Z!4sy|h_8m$)(4MWvaza#}I4VO}dVG0Se%v9?BHUB+h>VPEs-aE!cHjZq{5If`p83rCCe -zPiIc9C-5xMPePOt@LG2YE~!Ab{tdln=caR)$AU~>>QC(yMLGE|oBC6yKD_oz1eh3*_o++>4oC^yV_01KX%x}oCo0zPMq$8_njmL&fE&a8T_ZA;%@qE*n -z(H~2bnhWE5m>-;q6$!HIy;nBxtG;9s)T0CAT8YL=X#0nCXQF$nM8&=iHNnXS-rd3#Tsuka4)}w6 -z0`VS!nka3MP22xeUt8YW48N_dyVAl?3{ssZ*upBA-Z-Xi`K=cMd=od(AXcq8E!{_| -z?%QQ{@pZ3K#zUbj9d1Fj33Kpcp;=X% -z>y<*2$-+=&9*nDl66COgS<8oozOrNA373?xlu^&cn$E{VgZi(K8fME3l2iN{>2fLV -z#`SiV+|Q8oP0rgsJ=PC -NW7j^n+dG5P{sq3l&Vm2{ - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0018.png b/themes/bgrt/throbber-0018.png -new file mode 100644 -index 0000000000000000000000000000000000000000..6423b95104fd1fb81420f5cc0cb5b1baebc90726 -GIT binary patch -literal 1601 -zcmYL}dpOg39LIm#*j!?6hZW5wXDsX@oRLCDX@%SpQM)kLjoE%2VHr+QlpIDEN-pI* -zY9cA3wo-1V=_W;@nnXgB$&xemoacO>@8|P=p7-nXyuY8nzDIn#Jv7wTr~v?=LEi4} -zr%;oXQh_TvHznn>LR8t?gSh~puDenY;B+ZUVY+}@gTQUkOa_3Dif1wKG0`j*Eey}) -zgyAEjK|GszfEAwzM&ZFI28+SPbJ@{xaSYCXilZ|bapCmL2TF=4)Jl{)4P*ee1R@Df -zB;sv1m=K9h_V!Npgr+;sdlWNTD>DJnECxUzIQ_gtQl3(sg@UR4ScOAVKqASq!ga60 -z(_Zm@S6Cbx@KbOEf^BZU$~^_tTY>&zj5r1WMseclbOy&{10jOV<@@zCE4c0o_fss$ -z;Qaq2j^IEJkb?@W^CSB}7?Z&@@u#ua3I&L^q=UsMD*#X$AiKK-1gQ#&dvgW5Q5})E -z!knN^bIv1jc+Q`}IjU|r@O7YCrpj{mci58p-o_~Hr+2Q|>~(L9F+7=@7i#Heb{FNa -zida2f^A^0=JN9ypH{CqFN`Oooo^$R!aPZvREtzEHFyrHUx6ht`Z+1O4_Tv6Q2XAJ` -z&1aZJT=r4dF;rtlMbFVW5wCxtDGjWTAH|lrRh&Qu@1wY^IW}LvyyIFhbqIMj(`&{e -zS>+ibOI-718F_F_yHQiA)bx{4j~QWH%Q9s9sV$=vIu9O~wVRy_w~p~xH&JyuvW0K{ -zhcf0g;-Uymecbkob+sIJ32)_!6lq_9Ol8E5=Mt0*w@62~)|Ee(x>^O3mO3lf%vw>%+4}E;1qK0ZSg@wkMP=EoMQ`i -zhwu9OFP*ml^tle2zZko4e!fD_1lHBjIX9=1g0PNQ=b=n7s?DcQ?Rw-9(YI_s_3R>d -zo{4-v7A;zLWdYm@_(=p!jNdL*q;xK$M70K-GN=6<=8+=&M>~vjk=g?ex -zqKRJGzFwYInCv`|kSRZzqU1PX+Iq+cIHb2FNys!!Y9;GXo=n}hAh$?j_?z=f*Vzjz -zWp572NNR#^uxV$xTVUco4y($cKp7iZhw^keZZ>c^tR&6QI^1S613K=Ro3~MX)gagq -z3u!Pe -zHS&$sPciX@7f}7rFllLLcsG}{S|O7IX01;r(&4pK=dEQ`q-l&S@iH$#i2P{z&E$s4 -zS^jM?cV^GM_)7+&s!v0i*WK>EwL=z*pq4Il`}4+n^#-L%C1RLKHISPOzXi+wtls^r -zovLA3gJ6knnp#{U(wR}0*`%Zo_w%Q}LP;7D=x`#>ynp8V*)-_4)?GDa{DIE;@++n{ -zG$%3Ucr?s|mA$+zX_@%`)iQ36PK5c#qgj=k)NTEq8(<34HQx<}VyPY4)aPCh#PYCw -zX?}?3J3BA$SzNu4Go9CJ{*$MX^ -zR@eINUptfEjTl)wvekK2%eZ*(vj42#cRe+}o{%A|w=^MtCg1aSkJ~)JA=tE6LQCna!V)P6BwmjP~WQjhU|7f6Slks1M -sHyw}tVF8gt-stkA?cnZ`rS_ghWCxsXXObb9R{Vhgd8@a(a0@l_U;abPJOBUy - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0019.png b/themes/bgrt/throbber-0019.png -new file mode 100644 -index 0000000000000000000000000000000000000000..45e935927623eb5ebd3bbd1f5f6aed9207a55c88 -GIT binary patch -literal 1608 -zcmYL}dsNbA7{`Bj<6^8xBxmzB4OgaI3MER>1u5mFDHf)AK}k(+a%twJK(=M6c-f{| -zG;0;QwW(QI9z@B~)-bWQ2ptP6J1lKpn&vdM{cLAv?|Gl+d(QXsobUVm^&a0H9gak} -zA^-qDG9qZPpn5JB%mM7;{QPN9;KGOmF#tF^Ef)khrE&pHs)Wvx?8xSF09=-U$H5)U -z=JC?fabi(AE;Cz#6LJsp1X4*BPLjppal|;WFq_Zki2l<6HkZTCU>D!B1EXA)qiAUo -z4nV{c$T$K4N8IE|AW%po3JKrVZPJ4?tCnY&**p$_$5Z~jge`Au>o0>0_HGqX8VCtn -zQZ5SnKo7O-Z3it;8t|_K;PJ%LN3b3cqL*P@I)~2zBv~Q>o6Qk$}NLQnw$k$j}a#SZ}No-k-(Ocwm}8g0&n -zc=WL^y*BDw8zYi3SRW%$Q>AqD56(=xL=<=9w58<=ntS!~Rc92<4wcZtLiuyiRG3%9 -zirjL7L%FMOh~e&{R-8%H6buJh&0@o>b|R{#7Ch0>(KSBLcS{mxJFdqy^E`apwEG24 -ziY#L+^k7tmA1&A=;9x40yemzaz8qqp!B_32Ls7#9B>VNENhJMlW+cGz?8W -zy4lrjcIkSh!98puRJU&R=?tV9Vw8`S>WZODsjn!{T46WA7-I@YV -z(vkp7D&Z~AaBj)a)@lA5v#@LO*#d0vP8D13WLD^sTD5_hXE! -zTN_WC1-t9$gV*d$Kb}XnTTA?Pa8~8WXVbYUXTsUs8O#CHo6R#@+LiN#e(%#8er23A -z^&4eyWX7a_3;csCIdd*%TX%=*XECDL3ELQj_p73?CJI9A9WwzS?i{f0nMfF_`khr` -z9>E6RHWVK$lc>)K5f!pKvfN)8y&|?netq(HQuF46@k~!6Ce?=OYxu=S6T0X?*5z78 -z;4=R4#E>bq_qgnmj@DZhnbgy*_1HU2YGyXGFirBiBkdUuCWivDu_!{;2}@_eD2tDw -zRG{MK`15L~eAV&qE`3P+c3U8}MKnV?cw@ht%LmC{jw1HNfAwurYL04F)^pPQtc6hV -z8iF?_Ga(3GoUKzq?uw^>L~bKwU-5IV(~e%S2<-FAETfKPIZYaQPnkAo=;7XhVz=Ko -zn%!9Acgl0+HP5FZ_Z!xos@vHRG=*(+7>@4lE!)~pJ9YpwdU!~EP>Act4Dg;aw@v@MZrgI -z#g(=GRNlGk>%Ye0^n(^Ox_?|T3{Pb@4BJn;wCS)PxdxhhBrK(`5stcZC -zrwp<3tkFF-hr;HJD4&v_=isYe5=W&%H?C0gXT}%PwbMP16W+Wk#h4zK2aM;|-IW=rU5qjZ0{*I%U -z*Dq=1RZc<+yaTad2PN*M_;IR(#uNDugS<6sq_r5Ad}!ZPK%Sz%XehIS!gzy}G7H>0 -z9QY*rNX&zySu;g$ef0&-pR_MBP+D#nIoZyjFzCvA`;6~Dcs*wORtt+&7uq{whk>(&9A0>1Ai_m`)Tyz -ylZqQ_OI6YL)DWxfZQuDH{K$lL(m@=3_Ajb$XmVakmnIzi3IPT^n%4AjYVkkv|H85W - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0020.png b/themes/bgrt/throbber-0020.png -new file mode 100644 -index 0000000000000000000000000000000000000000..b84b04dd859b199729c63df17ebf7cbffe8f3185 -GIT binary patch -literal 1583 -zcmYL}dpOg39LIl#2}dqtTPc>?ncFTRLwGEglq8f((S~8!W^E&ua#z^| -zacx4#I31QHky~=vsZ>TR$3fvZQ_p$M_xXN4@8@~HKF|C6`RjYb!`($mVXp!J07|Y$ -z9X%zA*r{D$NoTUzD-w~XAN6AbfFfk4q=27_;S$rH<>bq9CR0cNIy{m}LSG4D;(UYgEE^eO-k?lt43#l6TQP -ziKn{b9g$cJBJfR67>rr^*seb$P<;n_1(RqbfECV&3<@GK5C<`#bY_C5pjE;lJKR&U -zAc^t+lPHX(otNOX1gm|`jt!=ems(11=f>Q -zuqBknf`!l*C3a=ZfwiZFHn8us*QeiG4a80lSasU$ocm2p7P^Ml%LNbLca*TH8@Ps# -zAK678(%s)6^DZA5^IYAqecKgtDHNa@g>{NFiz>5dC+}C|b6OWjW4QjVm6wXpuJ-xC -z@QOuLi*$;*xf^KI2FVWgiCt5Dj4aiwe^tfP6$15d^f4eP(Lwa~p3tDhK`nh^B-NUH -zLCO^+7yY2FI|NF=N7d@LIw^J85{S_I;M$}Jty8ZXryZ<%_aB2rZDz(w;n;020%=1V -zh!Ff5ckB!sTny?h6z-G#&P1oeq!KFRCr%xkpd{!;|CTwfGs)C}3S}ml7hb-2kBo7> -z5?_^<+%tD(uzKi57;4WXZGYYJKYdNinrU40BG=96(hOcp4xM!1L;zwg^gO@x<}Y4* -zdAza2L}k#EgdrtDRqY8{&LpHQY5=4q+jDWIJS*|6u-dBM=ku!Z-6!L(*FatkKiM|t}fQV7E@ -zVKZN_L+=jzO1aV?g(3)F@MWUI`~$2uJ-XOq@G+EdV6DFC?r7BcYf^^Y-3zN;boqjD -zd~tQd?j+qu3hU2&2tcvrR@xpJS`eqdA<(kLonONq`#CVH<_QYeIt{(B&P{jR5U|RHlM@kVHIW;A*}WI{;F9(7FTY%th+3VBy0p+cf;_ZlwMPU)!zb=EA(T$8QERvz`W%+p>2NZv6X}F7a|Ew`Wc9IeJKNMtOS1;fH$90-1R6P2zRlVYP^wY8WWM^~sv=^_Kh>$_kw)jLp|c-9gC&n%x}{VW7Mn6cfgN}F -z6Mk4Olf!sNFRO?jF(zoJU)c5t@KnTn5(qU2vt^heG_o5}!wYnG5!GAF?YUi-{Hkg4 -z_`0;O+#AE5Q-N)3S4w5=InS4NMJ9CQu7VX#Z(kYjkX_kU-IPIbjDxTg8re0YBNzK{MGz{e#*6bxuWK&3Mf-O=2gesRjyk* -zsMd#45M$=txj5@RWIbbH@C-e?q*~#IXpbI#y<+!io|-nP>315r+b?X%;mi0O>}=Ez -c5cH<~U;AcCT{$u^$&UxPI=MU6;t5Ir0u~;_O#lD@ - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0021.png b/themes/bgrt/throbber-0021.png -new file mode 100644 -index 0000000000000000000000000000000000000000..a64932df50150f1ac1e29b1d181b80430f802459 -GIT binary patch -literal 1602 -zcmYL}eKga19LIm#JZ!|pT*|WumDz)bgtRcTYHq1csCn8Qn{BqX)lAq>Nm8g=vh~QV -zZc28Ft5n!+6BDj(EfOP%+x@9?&pqe+`M%G2zdq;v`F#KR=4}fn8W~s_003Y_ -z3JZw<)nTdNdf?4ZOVfga;D$x<0l*NsR1lz4wj4A!3J8&cPzH+zpy?bo4V}zjv*W2~ -zK97n{VhGS&mWa*SFQB6ZbQ+t+NAtOiloT58KlMmp(Nca+$nMYqqn0m4g~SVJ01kuo -zMPspOoTmd8>*ww5=Z&dR^tFLKCQCg#8EhJW!T5bYIPBm|2p(kcZ>#X)L5Rbq?WouQ -zdZtTWFlh1Of$!ph!Qk?H;YtviFTovDS_%yi(0QDM1RBr56O+j0OCs9tfgHKSBfte| -zy#GgfV0=hBzX(8V_AOgPWzqN!JL1_~PysB?H}lN$wE&>gPYT(zGZIm7wu5Wci3LH4ELpv{^qg6-wjl-eokTLt0Qa@}4JopqG`<0{JH57E(^g}NxhHVobL -zLD+kuTXARs!-})8*twxg+H;UoY8-HGz2|giKvJhj-5*XSlgIy5sZ?cj;&9vj7wij} -z{C>X{_Owbim)|w&d$&KNck?iNSzWI9QmEe8s>*>@XK^~MjZxJfoYNRrDtqYtVZD}B -zozz_%3AHwf-U1t`>l-0<2gX6HK5gUUp303v1USap9DulBfp84r$#Mv1q=)D%5ca;}i4#s9EZ2b_{V{Tef -z`_(4%yfClN#kIyhZ@r&*IhRM$wZ>1b*<$)y(fH -zwMLt*JdC$MTtTJ8D|538d83M=-15&^`#WZg!-m}=LS=3R~^eck{j!*B%owKdnl+{IrTp4rpRt}kSAaANUi2^f> -zh16#!Nv6zGEmDawklRvDtnzl$@7+as#B5sN-SF4mRms#vQK)STf6h65#R9;ZFb^<$ -zeQ5A{^WL=egDWjeR;#>Lf8b6Hclq6)@i$sf_m&7->&oc$dSe}y;Ik7$f|^Q-t7qx| -zxQTk7peB)%1>7~sYP0%s{-Eb{tGx}uT^1@gx@*+4Rm>VGYMQN`Z(#UBn$ZYs>@}|k -zFyGDCnUTjwiniA=0&K=7m;d9e_IHqFPkOYEkx!9L4Y#hjfmW7{5-(Iw7`Ky%o$nD_AuAPnDUA4E}l!=h7S_WRGq{QN21!Ad%pGc4KXFALfl1( -z?6N+mu9{CuiXHSqy_$PARL9B|%-!({1vTOFdzlT>UGh_dP1Obe-CvSpppT3W3mk{8wA$WXMpW9SLmpji -zlzM57#=YSOlH27MVfHZTeWuh;7olw|NQYIek}u9jEmP+XtsSyt?sTt#R%SDYk}lZ* -z#D+SD=G>@I6hboy9lWJMW#RN>=Z`#&;aV)f4j}oD|2QUoDs0S{+*17&FV?q^2yY>5{bq3sgh_8zAh!^)9nYex}R?KS6**2oI?Yip%~Nwrj*Y - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0022.png b/themes/bgrt/throbber-0022.png -new file mode 100644 -index 0000000000000000000000000000000000000000..4b57e234270c5b3810796a93de9e85e008f446ce -GIT binary patch -literal 1595 -zcmYL}e>~H99LK-PHRIB1$}-h-N-nmU!;Hd3BZ)>?UGihiuk43yE>ze?8g~+MlpmG4 -zx+L>+QuL)&Ty>~hcE@H%NAlx{Z5DE0caMAA=ka;JUysM@`F^}U@4r5xfCJ>!hGvEU -z0Ic@$_M||HSuTTBQ0FEm&q4xcdmrHffDv-J^nlAHD9CihN -zjBpx`%c0?-Vt6=qToQwoz>CK5qUj7e7sqACFqw4De~OKWqccxL2wv(#QK;o8&u|_c -zAmHtYI6FHW!5(90M{;l=Ip7=H<bSiGZ8&^!;q>;B13qQ%jjM74NWJ6KPLer8awaT$Eb4rqAFvCv1xP%ewIzTba8$*KcgnxgfC@8Kz&T(P~4q -z;A*kEhh&ecb>H|0-r_r?iUtYdg3>oI94=A6eQ|Fn>OYTOp^& -z#F{=I%qUh2i2PEV6-gc; -zskvU%FsXfeRL>(g_Mnvcvg)4sXxiRVcfp*boBK^Lax5^|=9e65$%swIq4-Vl#R*wc -zNtbV+zsFp8Z`st)c*VymJMw0UEiena$xF@XGM-`Y(VA{ -ziFH?ZF_m(SY0-WvR8J|F^}UziyO_f2KXjKGT2e -zs?P%~wMWhnT&C@tz+y(1bwxjQ&v&GHvRHziw|V#d!>4!ptW`g-;og=%MI1a1E}Bst -zcI(IqLN5FEGgE>2oo|N<2J1i;n1IoRsPx#drZsn`Z~PMAlJ60V&M!I!7bWNU_bJG+ -z4;5gm@$ZFDybk^yU>eb=NLLo~4Yjf=kC3Tu( -zA6)ed`EUWel{<2)h_SXaosyt6MiF6HK`Q8~GkrFo(&mIxyM%QrBI?s{`bkyxD|pB` -z!LOs~RlDG2`dtEhFz2mq_Vk1LdD!fX%0+yMUt!Qlt1-|nwr8Rh@h2vtDCcLypD*;k -z0T;oqKdlJnKh~h-7ZXWj1)0@S%@934B&wd2@tt~cJ?qA#sS>1H=@+{CosZ>XMG4X7 -pj+6Ucx<}|`XAc`QUQ3;qw$zWv#>e*6g3#{=_;?-gy!UmO;BO1~<);7u - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0023.png b/themes/bgrt/throbber-0023.png -new file mode 100644 -index 0000000000000000000000000000000000000000..b3dbeef0ed06455beaffa218655d8070cf2324d7 -GIT binary patch -literal 1603 -zcmYL}doBm|NnwcRZPeW-J?vR*@C$Rb2?0KnL6w_rep#0oNfxIq!z;8Z#dz@#wKX_&Os -z^z;NOhQp>}l2f@D7M+*QyueMta8qdMG!BNtN@Xx;?EmyQg-&B6QUp&BP?XhfRA2&^ -z1~`LQ90rTUIJ?+lv3OTkyeoM3*O6XmX7BDySZX>A073k}*VzT!bf81b;Gb342@rI4 -zDT(PZg*?+;F95RG3BbQ{90Z-O4jU*TXubjEaRI636r`w%zV -z3WlSbpAvzebZ#%mMy{Z -z7Sb=UFwrh30BM&OA}C=^twxy@H$!5N1sEq+H -zT!NGsafT6Sb=rXf<$JbEL`uW$g#$yTaVVc5svG#x!H) -zCp0m3Duz>iTXpMazN^JExK8)lyOBJ^?>5H85jPT19$zs8%%U#r)xz(E_z)BB4b3!4 -zR_mCv&jVhVci5qL-%(;;U@YSBgCLZw>zQoHvLWn;;I%gRLNPbqcwC2HvSa&R$Df)+ -zhnyN&n7L$1N3Fr412*uF#Ld8!GD3H2nlMDE07k6|QP02W=CNQihnCAL=J7v0sYEV1 -z)I~L>32vv2;rF4I)K -zk!&*pDnpU{`FGTpUmtBeXKmiY>^2+-~(ajh9}F`veNqPA7|r1|c^W()JS1G^4 -zEz5q9TXVa~T+aLjR;Bk)=QQ7EJn_-_;fQIAlMd4(I|iz>J&QRm=q0SGvDB{1+g=zu -zdEic2N1z1$d@K>2>H40$zw47fje1DFY-Q^`MdUlKK1Bbpv#S9jamc#Ejr^F97B|tI -z=YHkpbvjQQtILWukz5`5vqr3QY8I}g)mI43mEXw -z?(H3CG+*U675_nPhRY~KNzQndXwo#-f1|uV>zEQq|_nw(S|l#M$1#*3TxEz -z36e+~RV5;~t<Ydlqt;ie?wH8Rqaa5!$ymVbd -w7Va}%9+gQkg;W)49{h64Q@D6+QnPa~JmKc`YyErcp~H99LK*gV~H-4qx^27b?k@6to%%DsmVwy9Hy~h8{7N{$()LWYGLG8bp1G4 -z#nB4+adIbVbr&fMQMwyrjOd(mU)|##_j!EY@7Lq;dcGg;&+D&G&LOh5&iXCu0RYe; -z5j`oOny-}>6zsf|lzC8Kam1rM0MLf7)jFWG%n&qP`TMARFJ>$qKruKhIx3pUVueSb -zc-#n76qApNi#@^OB=8w1K7-Dp^H97vCYw#?{-<`dSUUSSEwc{-t}aRin2s)b%@EKeVjYj91+oL1nco~%52Ox*9aS9la -z&i(&MJG28SV3`kMy)U~@M8wj0=KkTVI8Xr$7N1^ZxDx;%!z54l04gl67{jPItbaym -zSmUMBNVKv1aAPkFdCZu=_tU=?Lp19;>NfpC;tXCr6a${uhp)V~a -zI4`H|^M?Gr%}_!hHuU4&Vx_eI7n$T~%#o70pI_}KXRbD6pWX;h0uKDp3JH8T>}^K0 -zff<@@b9m=^0)n&II%@v{OYJ{<(<*!pr}Q=3nxq*!WHJBTU4e9##;cJ`6>17`9ra>1 -zUS~QnFB&oM;*vzCsh|J8YWghaDmwpt;q1%*By6sLOLp#3MN -z)4ibL;=0?Hev!y2t&>wl{f;lDC#}|EDYB%LN^iui2Di-As)UoTACE)G@`9J5r4WC` -zaLMi;KRXT_T@bcsZQ5=5z;aHH;c9)U8Ut9+|wnpfxw -zP1}^{nK}{Tc7G-IFucrX)D}9DG1F0e9z`hWYZL}I?_c;$r+@*cCfLO#flEKok4P>}FN(yvEXu -z5KfW8uRlA_bd!$hZRo*%JV(3ov^R3dc0OKduEY~ -z5$7Sp>x8*&AyCtG3f-!ppqJ;O=$%NG4AztfatP68N{hB_I1w7Iix#N5DoC@XF_avauVm!Ef22z)- -z{$8sk`&<&uI_8bll;Y3RIjn77+>+VT7iYTAn{PF*=)0o;=}?hRSAGgA(M^~LTRx5X -zT<|uu@Dx$(QGZfIVIqlR=a*Z`Q#C}gBu>=HBGaBqH@!T@ZZ$_iRVPM9+ -z^Hcc+N@FO+wS$v+L=eT{))r@YBpnFGTLoH{gj|rPb#CXAM_djW=iceS%^CjIRR-0quIY_p -zU?5S|lL%qe$0@jqdOnHV27xcaKjDy^<-$FSu;h#SIKj6?8#}ziGy~%Ohvcn?Zof3l -zoh{iB_>DzQnzoCH^+wpdU;lQoLoQt$Je6cBYqAfFG -z_4YNYs&Q((%c$YG&yJjgIHMMwXX-%}jK_*@F{K1A;C3-G6wQ#HhoA4lZjRE+3q#2^>ob -xnW{0GfYu~c=SS4;6s*o!KNBIY>@RcvTcZ%$p7KGe+64ZC0BIlDQ|u9z`433t&fow5 - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0025.png b/themes/bgrt/throbber-0025.png -new file mode 100644 -index 0000000000000000000000000000000000000000..3905e00eeb09a3546eab2dec2158fa9bc5f280f4 -GIT binary patch -literal 1604 -zcmYL}dsGs36vsiy0B0%Uqm1bmq`l;kHnoM1K%;zt6bZkrln|nmSLJL?-Hj|I$$3}BFOx}NLPmf`8BIs$)K)NW)~D)tx*E~gJH(?R$$3}7%hOn`vJ-OqTR4)B|7+(ci8SMsz0-Wu@mS -z9(E}B#v7oGQ|&_<@yEfg7Na%uiOSB-iwlumO{ClP_4T+Nc>L9ks&n%Cn!~x>oS0|% -z^0ib3ox44q;a`)gE|{-aEj%MU`A6e?Z^e~}Ja&V@Z+#j2YvRnK+S*+N+BFCGh?H>r -zHS1EhxxBsOO7-VO>e=g8cr@9=hnOEvva5FKEyWiz-{Gtkp5PD1069e|v>cri(#q5;ziiY58p?ksP -zu_V29EJ`-(anf+t+sSS{sG&t6V>-p -zGmBH4ce!bU!a5OPYtehVrrKx94c-)^bLCsLJb5)z@z+N+7if5>XMY<#uI#pc*SWG@ -z0`~~jhcyikE0|glM(K#Z2bbM3jxp!v-`Hk&kZ>#sVW&oos03a5H6to -zp`~-BM-`?bt%z&^YZaxH4BgK}wyum%C60$aSwBb^Qq5j^cr9`?^p$m5RBE%7n@*)v -znp5+Ni!SVf$&oxWd3lJ|*sRUcw!u9hx5(LnaM%B;L2slYXB{iASK=X`ucL1FRoSvcsM^y_=sOM?v#moSz?Av^`%uIs8f=J -zjsm^vhDPnYN?NT&Ef{%= -z@ps<PYq;ZF~D4IVE@+G>%VU|P~h%*?N? -zTaq|ppr$Qzkn;SuOz}0Km#f(htaP=)D^_3r$axYZ2a0BM`t{<+d&F~XQVR*Bk&Am^7d4XaWsbl~oT7)zZjixz?>dejRqAvxsS|r|qQq -ztvL=>_7)aooX>-^7G9L-I&j%Q5|j$SjF -wD~E2)ka~oIzC8+u<0Gd@SoVvtpxGs$Ch&UB0pY0y-8Tpz5q$~O9${(!0^C;FL;wH) - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0026.png b/themes/bgrt/throbber-0026.png -new file mode 100644 -index 0000000000000000000000000000000000000000..4c02eb167941a3611d36f1b0cfab5086d77ad0ac -GIT binary patch -literal 1605 -zcmYL}eKga19LIl{Yh&g4DH6`&dT0-5hIAur6Qib7M%k>WZDt!|=3$~Jc0E-0dRlc{ -zNkTiggeB!6*F}mf<+ySdtHw*leqO*CtPYQuBamUyIprN~2N%ntP7kLb -z*enX-bQA}{q$SX!V>yusP9&91Wh2uywg=Uk{_Mr(5>D2h%6kVw}b*8#mRZ*WGzz~5J4g)5)~`nB_3 -zk;2p7^!6((RygoO;7Fvyr4ewa0_tr-B8AGJ0-Q)zG?`3gnL8p+G1;kydhaQ??j}E^ -zSdhy4|4BF!jSpJoD6r1=>;wvp$~Gs4)0qkdP!5>nt44MJ02;@8c?2DWB>mQYHuSJo -zR{{2xj%RiG`9Mzt%VT=Z=WWyAzAXoxV+UhzxOs49Mz3gSZ-BTA{ZMIIbEG~J!RZzb2ecD19+C%=b=4pH6}Fo6w_zp@pR -zg<&1-c5}k1lUqA;AAMNfB{o&Eo3xSk_`ZTB)!4}L_G^F>j+`65!Wl=uxd6ez3*!y! -z&!q@d-9>&@bw!#l&DCnmMWfVAB92UI@wcp)bh7Vi?QXe0r9aG&U)1X$O8>x28@s^~8W#GJLJZ(7xW9hML0){J)rD -zv@d8PplbIQ(+)?QMP*US*tdb4aY;PH)VP1gJJ0%LRx$O0RN#yTcpn>BA{ -z=ft;=RQC4O#>sl6P}7%clf49VFtfj9)FQ@OAgg6q5FS`IjHxwdj-kV%hCjiMBpS5d -zDa+j6n!g^eGg<&0hWNF+n^#UZfNMLeFoRzLZLZV!ya5%vTJqC2ry$mf=PNz|T)Z4t -z)W0)WsB~#`u3*%ytfCk4e8j`-j&xzRIJ-^HG$o`;(mmca^~p@B_+#Oc@2FR{VUC~b -z3(z=G-|jy2X2Xmr;rjh|!B{?W5iqF(E}^b{6_*%`aM>nfJr0>OYo)?CUS7^ET_}$) -zx;S1jsX`O#O@ZtqGEA$#l$$=ld@v)r%_pHD;$m^wN2s^fscs?3L1TGaNot0Z@q{dV -zb*i=$W^udfYt!}oi4q-O8mc;T50Sx=Tb#K)bSIuUd=lar)MFRpHki_!RQ)y=i_zBL -z<+H12M9hnixUu%p^3n7?1YPigNB-xdkOk>Ti2Jix9Zl9v_jIkf)*C9>Z=mP<#4)X! -z3F?nFEaSJ}WQim<+@ehKz#7i -z%Gb%y#@zNoE~`C|Y(G=CpTd7!A3`!~J~7yKp(1C8Bvin4%JdE_-Qa(PmTeCOx_*BQ -zpZCH25n7y1@WGurC^n&>Qc`!kAA4IUV1HBRM3!al-kJo0D_2Zoc4jfG1*)zV!5Ww4 -zR(G@PCeJ?Z)^wgtR<*Sdjt93Ss*#i{1bA3XLoO*JBVx$l`UYHXyrwMTEl&MB))-tC -z>-S{I)2i-qjky?9|^4S*FA2I)RZ_`h(WEkpwZiqXPtGcQguH21YkZ9q5 -zP1|+%wlRj$jkwq8XVGx?UZqf0=yUe)L!4=>pUZsF^pcygO!yq}ZfOI&;4(oWZPgp% -w_dN>G8A;-dz?^FSl8Pj#tYHI*=?RwN&~aO&a;Y)OHos;umu=0hFsa-Qr5+WzRJxpV -zO3{k-3gQ9)6uHzYK+y#wrRmIbr|>*jQ6PYch+%`6gDf_i#=vkn -z3=EUS!^B1_~RF`o_^vrup*}4owO1#M4-~rqa`0 -z@_tiV92)RT&{!-!r%SU@3H6ttKLd;g0bT?rhE4}LC|m4-SZcCCvU7C{pK05$jL?r~QfU3E7_hh#l)4at-srgS9j`%&nMZGj=zi!HKI8v?x% -z*5(n`c73y3MoPbOC(e4WN|-!vYs(yV;y#Nns;aE4^vTQ5x5`ek6t{e&3|5;`r!B=z -zFVD$}TjfTbk>%XA3yyQSIs0p$;*+B~Os<#G+dpm*iNMW414txw*q9N|wu<|td3Q}@ -zupH~!JRo8dic6XZkZX19flfohyDc}*xMVXoQ$m~bdMmznQoQ=8A)ceeYaQ<^oAeil -z8gv_))2*Au^@+TA0)p%l)$}J)`ZTP)2JRRKzc5;q(cq_Q*%RK{E4NixC!Cd!>(lR} -z#3rJ1HZg3b&y?L^YFG__S8eO%@QNoJ5|H0v7K`QgAi-9ZrL%<@ceV=QgnDD4I=@a` -zxU8CdkT$MAD5){bN;H-=WkSuCeY_HOc)Fw|J_UMtl?*6oy;9wg{OpgegO}R!%hy%x -z5HAFVrHlINOtZ8Hew!P9 -z&z@itHO3&*K>@`aq(sCwEMWHJn4$)m^|8-PPW8%i^|x9vGE+DR~pWP23BcEGPq|-c_u|Z@y@` -z0v-_e*i3LFXGTKsAX4^!iBC5uOe?7o>YVw~^4<_P>7vs_=vKd3NmuNZ@6kSR(Y1ZB -z!=U!f35ZXDP--3ybM6w)`3F5eYGlyR*hLkIy@A -zy~rN(*a6jhkahZA-Ur4uCxQC0lF#cc*XX)a88knue%XP}_Qpo4*j9aIWZcLUc#2^) -z?rXDt(?sZVerF_HO}L}#{Vr=db2X~_Jt$pneB|Zdd6HMRZcC(J;n$_@k1AO@yP5Mg -zaOVIIRs(D>4aQx5d$ -z(Fw>zpD)FJ)vQ)+t##GQ?q>)+joCg@-aGf@XHm3=Ncts&dDH8yDyt#!0;ynN&U?tD -zrf0XeSoeAFJN#gLDDeqXw)>t&|K++L`lgxXBMx76&V|xTRd%X!q0+dWW=^S&SWU}? -z`HW8TC)It6MsZdKg*A&O69myf+obla-gk}MZdGReBbOId?K5jmrb!o9RKsT0FnjuQ -z9RvuPr$G`VL=`QTIO0Tig=ys4>WQa2eTs)x>ZB!BL5KtAQ&rIZOnZ7{Q8)tDuYOlS -z@;K6_lCu%L`A)@H2KmR;6^u=2hrw#^D5TdX)7ZwoTxi*tOP%)_G$H}ek}4b%v=WBJ -z!IYNQ4#AccKKE7hMj{p_>mLtQABE;q%Gwqk4OC5D&PSZORzDr4LunacNpBED$7Td6 -zj^=O8>a64>s1*4L467ryg2yg;XRkBbjSazpYpB%a)C#xoy$N8E#oSWjkwf7!J2- -zu^-yA^O~uEM3&30)*`3Av!_?vLtmxcm>Ek|*>@L`y}fdU-QMuNcOEVyH_PLQA3|2i -zjJtY*-=ufj=claYce$4(D`46_u*_V@;JkD4K+93hd@()=D$m&+Y8&J@4~=&-?v6=lec?z2dlCF^(%e -zRssOvNG3%mfQno$dt312A3XRH6eyRJ!Uq5c#Bx~yCmPm(W_Ug^IsfBqHUmI2^EeE2 -zPBw=_rK9;gIyx&mAI)Wd$;sQF&qU`l85{;5&F5z4<}!HyX#kDQ$jzXMep>-XtyzwW -zrsgvM90rR=W3gylAQFoW4GIbk!fJGrd%+&qa!*n=hXG(Pq5p0izHQ^;BaqquGYXFi -zLL43!9xaOGP(Scgd05| -zM=bLMa6ks{|0e@5Az_I(CO{1TC;Lk}o54pWQaM~u0W1zLJicZV0IaZ(qa%`%p+(0v -zECUhNpXTjDs%$+9ixd;fNzNkoh$9nCZK)KE)LUDTdg0*gr?4l)xY?)iu!Ap?TH5`+ -zx4w*PVb;LPNty)O$c4l1;j*H)MRl)DBc*wng3JQ5s{8F&Z7aA2H5v_RpQqS=?lh~R -zfX+Ipy`%I%9O_={S!VK>{6hTxec>;6;7o2(J#{C|{U@ofLzSq)h(5LGAQvGP%22=FnvrO5$yR5)HqAPZ`lHm%bR&NT -zNZPj)@eQg2h1-Lm?+fX)4OXu|a8`Z;pGDY_j-0=5d%kRSoNhi*dy~Dd*o`-~StG+;E5!ZFqv1cbfv$$hU#+qE9K{yMQxCI=0}=r -z{o#imeXrF=6{U-Pi#v=&HvCVb<A8zxLV9JFa@{xEt2FcDZ4W|!7j%}-jr0ORh}*N9X2||i9^#lG8w+f< -z9rf^@X*;~Ue*C#Cn_x{@UDNnL6|s8?+oP8%nlC0>`v!JetQWlX3y*f6hv(hz=$d|% -zVy^e7P`;sbCJNYvX@5k%+FiVXX2-rlvx~e&FuujS*q-ucv(xQ!24f(d2#ZD*R4%&{A-9}(RuqvB-rJJpJ90~?>3J;y5dvfv@_ -zYBaEcEeyF(4^?P4CS5eeR0qmBr9Kmx4I$z|acyLbug}~F@mpj>(K=ls!yh57wZiP|w`Zr7a)$J)EEG(nL*lo-P^*R@YZIygM<{*v2gw -zCQxe`2+9{)@=YPs5c -zzJzk>UGT7h)t!1K%&(y*BEZ^BdcDH9LT~LBYd7BbsG!8M1bMUex%pb%2HH|JwGfX* -zR!#aP@I%-yLOa*7)OS=Yv?W;SIF&Fw?^jE2HQziShXh>*d=2gVezj?E+WEWiXG`Jj -z9ps5dt=!*~?b>_yl%V-m;GPW+F`C~`_ORfp_D{{R30 - -literal 0 -HcmV?d00001 - -diff --git a/themes/bgrt/throbber-0029.png b/themes/bgrt/throbber-0029.png -new file mode 100644 -index 0000000000000000000000000000000000000000..d9931e1ecbf2708841134a846f9d36d9cdbd20f8 -GIT binary patch -literal 1588 -zcmYL}eKga19LIm!qOFifi;-usn{8y~p-HWVgCuIM(q{c)?8!Dgka_A9NuAQ8sPu5v -zwXhJ$*j(za5*4kaEUARrMC^K4_ovQ1_j|sd&-vP`U&tKoX@Gy!Y(gFzpfMHM| -zIRa9fxmutPbwO(CI3x&OV6*@L7MjkL9#B+_f=qwm2C8r)lLZ3U1TGuICNkM -zW8FP$@OU3jPajXbylrp?G_!baCX&ep0UXZf*LC;qbbHK)*n*#{@aYhA_ZH^b8$+JS -zoVOmb_;lcxxZ!Z_`N{=t5Hy>ETNoe*1cV8EZd@G5xADO3<_R(*9^Hkw=^T%M76keK -zKk0@e1Vv5@A-v>g_I?Hn6xeK`vw4sLcz2@c36 -zd~XgG-|T7q6#YuQcTZFC9(me}p5csJ(hl!2=m_rJyC*owU)fNc_ICQFvaZ9l?``E| -zUX##=QrhdAdM2*d=?Ap6RPs=h -zv#oPc-ubJ8$irvl&sDDVfxSKlY{mlfLTytdE|ZZYDV|R>%2zpR9JQ8#du2*hjcBys -zfEVXo^c~v(bc+iQ-U!nHjD~{#P~3KUU#_>q$ik^>RSmHdjj9LdsQ;J<)!AdTWEQvK -zy~p_VU=K8_b8mGnr~LUQgH4oo!bbSpdDTvo9pfIC;!PRd$^4PnOP07k$)1V=$BN_2 -zx8}UhS5a{J+h?OR`ou2h;M=?rri%CtNklfjC`DNIDZMxP&cYvGX%3GC$}m;w*Jyo< -zNauUA&ArsFM2843NjLluV&76~LP(g-TEjMTtjD6QLnT5Mcf!@CnzB?_K~O--s>4@mU -zm)(jZn8{OrbiGTGB${(ZLDj^}##db@byqSLAE%=-YD0vG?Vp{)a8q_{X?l%eeo@(1 -zYmu3jFhS__o~{>uRmiZiI~%UUC-|%(ySi1ZtNgf(haWifg^ScQdFCExV>+r3K?wTj -zd!s*j(4x;vIw5Lu+av&^bwwByCfkm*;9NpR4yzwZmB5jO-LM -zIEKrO7ex0`K6O1j-=teMKK8&M{V7P|063?CgISmW@_U9++_7-1|5SEO|Rmey;+UOCm~rawU07jqNUQUUNHqj_0AzquXC4W -z_I}RL(;pt2x9@@z>mvXr8fvL3gi0O!cZ&{n_tmg$rdvEe_4oHxMi=2d2gp7ce`D** -znW3Dj+M<@w%hf^2NWZuBlCUq*X-uL~rHs1YWc2xi?vo{L-)wnH6lA3wuR6Ul14c4% -zBAmyVm#_U{R-Gm8ed(FVqBHWb;EA7L6P3k^-(rjU}V}$Z3 -z;z_1J<-oH`G5=n{w&^psOtJrwJ)NnP=o12FH^dJORAM@bZpGDvlB~it^DpWd=YTYO -zb11M*1LHmGkaXEe%wd%zWY}ggyO?cmwd4{fVX4$oN$DJP -zA<127>xn3)q%_V?=Q+>$KHtyh{XFm2=XrlWe|@v};=MH0*Q)~npo#PL -z@CVgwwbWF=&N*`AGbk{YcQ6M4;5w_N1YEkZ4m4f3o~b|>4gWE1sc4>kt>DR`K|#@c>8DY^oqsef)bOCFi8b-c)+2q -z>zvfSGOr`0AM0rJnsJS0v8>>=wceFI`&03$t0wKWm871)i8hVDLxL+brSCgma3=e8 -zg)Wx;4uMBM?Y(TCpc%SxQIn-N068rjl&c5ba~~q#-Zc9qezw^#+r)1!cxK}w{6cHx(+!rX7tyCFc&K(}wK-X_um -zbkfH>)sY2%0q#k-rQBV$>Nc)kCLUCV8x}?tn4e-Qo?Lz7B+HR!|Dogdm(?vlWps?Xb22Zys5>eJ$UBR_x{Ee^9D`$*rsQ4L*DoUo^&N -zl8b~Yd?Qy#b=Qvk_S^ZNT4Z(ex_GabSAvz6+26&J1J0JPc&hmR2R&UfI$x$|rro+E -zH;?4$Kd^#*M$Yn1YGK#n5!_OhkWQzw=;AFHXBkKq33@DZ^oCFJ8i<#SdNlaPHU~tm9;4clFB7nQKE(bBfZS?5;d&MvpbwawC2K -zv1dQx>&G{>+a#i2?IaaCB2(>?hYM^U0b#25&8B@95>rE9hVaZ!C@KGlasl%t0{e7* -zgIker4R0G6sXE-(x2b{Zr+O6lRViI*Q{*}~O09b;$*28< -z<&M2R-Zc|W=NA>bJ`{hMTOszpKa@ -X`%H>)eQ8Yx_}u|GPrOH^dqny_<-gJq - -literal 0 -HcmV?d00001 - --- -2.20.1 - -From 10fddacd1e9a45c8f7345067d61974ef249a1deb Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 3 Dec 2018 16:20:59 +0100 -Subject: [PATCH 22/82] two-step: Do not rotate bgrt background image for - upside-down panels - -Upside-down LCD panels are fixed up in HW by the GOP, so the bgrt image is -not rotated in this case and we should not rotate it to compensate. - -While at it also fixup the wrong indentation of the -ply_pixel_buffer_set_device_scale() call. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 641eb70..16b8fc8 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -312,8 +312,12 @@ view_set_bgrt_background (view_t *view) - if (ply_renderer_get_panel_properties (ply_pixel_display_get_renderer (view->display), - &panel_width, &panel_height, - &panel_rotation, &panel_scale)) { -- ply_pixel_buffer_set_device_rotation (bgrt_buffer, panel_rotation); -- ply_pixel_buffer_set_device_scale (bgrt_buffer, panel_scale); -+ /* Upside-down panels are fixed up in HW by the GOP, so the -+ * bgrt image is not rotated in this case. -+ */ -+ if (panel_rotation != PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN) -+ ply_pixel_buffer_set_device_rotation (bgrt_buffer, panel_rotation); -+ ply_pixel_buffer_set_device_scale (bgrt_buffer, panel_scale); - } - - width = ply_pixel_buffer_get_width (bgrt_buffer); --- -2.20.1 - -From 534aa0cfd591c5f9abc70551c4fc736001e51c5e Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 27 Nov 2018 19:21:33 +0100 -Subject: [PATCH 23/82] drm: Drop unused encoder_id - -We cache the encoder-id, but we never use it, so stop caching it. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 9 ++------- - 1 file changed, 2 insertions(+), 7 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 34b52d7..9453a87 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -81,7 +81,6 @@ struct _ply_renderer_head - int connector0_mode_index; - - uint32_t controller_id; -- uint32_t encoder_id; - uint32_t console_buffer_id; - uint32_t scan_out_buffer_id; - -@@ -492,7 +491,6 @@ static ply_renderer_head_t * - ply_renderer_head_new (ply_renderer_backend_t *backend, - drmModeConnector *connector, - int connector_mode_index, -- uint32_t encoder_id, - uint32_t controller_id, - uint32_t console_buffer_id, - int gamma_size, -@@ -505,7 +503,6 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - head = calloc (1, sizeof(ply_renderer_head_t)); - - head->backend = backend; -- head->encoder_id = encoder_id; - head->connector_ids = ply_array_new (PLY_ARRAY_ELEMENT_TYPE_UINT32); - head->controller_id = controller_id; - head->console_buffer_id = console_buffer_id; -@@ -1114,7 +1111,6 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - for (i = 0; i < backend->resources->count_connectors; i++) { - ply_renderer_head_t *head; - drmModeEncoder *encoder; -- uint32_t encoder_id; - drmModeCrtc *controller; - uint32_t controller_id; - uint32_t console_buffer_id; -@@ -1146,7 +1142,6 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - continue; - } - -- encoder_id = encoder->encoder_id; - controller = find_controller_for_encoder (backend, encoder); - drmModeFreeEncoder (encoder); - -@@ -1181,8 +1176,8 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - - if (head == NULL) { - head = ply_renderer_head_new (backend, connector, connector_mode_index, -- encoder_id, controller_id, -- console_buffer_id, gamma_size, rotation); -+ controller_id, console_buffer_id, -+ gamma_size, rotation); - - ply_list_append_data (backend->heads, head); - --- -2.20.1 - -From 42bbee8c3883507e51c722f75a80f19757ec5406 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 3 Dec 2018 12:25:25 +0100 -Subject: [PATCH 24/82] drm: Directly store the mode instead of the mode_index - -The only way we use mode_index is to get the mode, so its easier to -directly store the mode when we create a head. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 70 +++++++++++++----------------- - 1 file changed, 30 insertions(+), 40 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 9453a87..52f948e 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -78,7 +78,7 @@ struct _ply_renderer_head - - ply_array_t *connector_ids; - drmModeConnector *connector0; -- int connector0_mode_index; -+ drmModeModeInfo *connector0_mode; - - uint32_t controller_id; - uint32_t console_buffer_id; -@@ -465,12 +465,8 @@ ply_renderer_connector_get_rotation_and_tiled (ply_renderer_backend_t *back - static bool - ply_renderer_head_add_connector (ply_renderer_head_t *head, - drmModeConnector *connector, -- int connector_mode_index) -+ drmModeModeInfo *mode) - { -- drmModeModeInfo *mode; -- -- mode = &connector->modes[connector_mode_index]; -- - if (mode->hdisplay != head->area.width || mode->vdisplay != head->area.height) { - ply_trace ("Tried to add connector with resolution %dx%d to %dx%d head", - (int) mode->hdisplay, (int) mode->vdisplay, -@@ -490,14 +486,13 @@ ply_renderer_head_add_connector (ply_renderer_head_t *head, - static ply_renderer_head_t * - ply_renderer_head_new (ply_renderer_backend_t *backend, - drmModeConnector *connector, -- int connector_mode_index, -+ drmModeModeInfo *mode, - uint32_t controller_id, - uint32_t console_buffer_id, - int gamma_size, - ply_pixel_buffer_rotation_t rotation) - { - ply_renderer_head_t *head; -- drmModeModeInfo *mode; - int i, step; - - head = calloc (1, sizeof(ply_renderer_head_t)); -@@ -507,11 +502,8 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - head->controller_id = controller_id; - head->console_buffer_id = console_buffer_id; - -- assert (connector_mode_index < connector->count_modes); -- mode = &connector->modes[connector_mode_index]; -- - head->connector0 = connector; -- head->connector0_mode_index = connector_mode_index; -+ head->connector0_mode = mode; - - head->area.x = 0; - head->area.y = 0; -@@ -530,7 +522,7 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - } - } - -- ply_renderer_head_add_connector (head, connector, connector_mode_index); -+ ply_renderer_head_add_connector (head, connector, mode); - assert (ply_array_get_size (head->connector_ids) > 0); - - head->pixel_buffer = ply_pixel_buffer_new_with_device_rotation (head->area.width, head->area.height, rotation); -@@ -652,15 +644,13 @@ ply_renderer_head_set_scan_out_buffer (ply_renderer_backend_t *backend, - ply_renderer_head_t *head, - uint32_t buffer_id) - { -- drmModeModeInfo *mode; -+ drmModeModeInfo *mode = head->connector0_mode; - uint32_t *connector_ids; - int number_of_connectors; - - connector_ids = (uint32_t *) ply_array_get_uint32_elements (head->connector_ids); - number_of_connectors = ply_array_get_size (head->connector_ids); - -- mode = &head->connector0->modes[head->connector0_mode_index]; -- - ply_trace ("Setting scan out buffer of %ldx%ld head to our buffer", - head->area.width, head->area.height); - -@@ -1048,10 +1038,10 @@ modes_are_equal (drmModeModeInfo *a, - a->type == b->type; - } - --static int --find_index_of_mode (ply_renderer_backend_t *backend, -- drmModeConnector *connector, -- drmModeModeInfo *mode) -+static drmModeModeInfo * -+find_matching_connector_mode (ply_renderer_backend_t *backend, -+ drmModeConnector *connector, -+ drmModeModeInfo *mode) - { - int i; - -@@ -1060,15 +1050,15 @@ find_index_of_mode (ply_renderer_backend_t *backend, - ply_trace ("Found connector mode index %d for mode %dx%d", - i, mode->hdisplay, mode->vdisplay); - -- return i; -+ return &connector->modes[i]; - } - } - -- return -1; -+ return NULL; - } - --static int --get_index_of_preferred_mode (drmModeConnector *connector) -+static drmModeModeInfo * -+get_preferred_mode (drmModeConnector *connector) - { - int i; - -@@ -1077,26 +1067,26 @@ get_index_of_preferred_mode (drmModeConnector *connector) - ply_trace ("Found preferred mode %dx%d at index %d\n", - connector->modes[i].hdisplay, - connector->modes[i].vdisplay, i); -- return i; -+ return &connector->modes[i]; - } - -- return -1; -+ return NULL; - } - --static int --get_index_of_active_mode (ply_renderer_backend_t *backend, -- drmModeCrtc *controller, -- drmModeConnector *connector) -+static drmModeModeInfo * -+get_active_mode (ply_renderer_backend_t *backend, -+ drmModeCrtc *controller, -+ drmModeConnector *connector) - { - if (!controller->mode_valid) { - ply_trace ("No valid mode currently active on monitor"); -- return -1; -+ return NULL; - } - - ply_trace ("Looking for connector mode index of active mode %dx%d", - controller->mode.hdisplay, controller->mode.vdisplay); - -- return find_index_of_mode (backend, connector, &controller->mode); -+ return find_matching_connector_mode (backend, connector, &controller->mode); - } - - static bool -@@ -1109,12 +1099,12 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - heads_by_controller_id = ply_hashtable_new (NULL, NULL); - - for (i = 0; i < backend->resources->count_connectors; i++) { -+ drmModeModeInfo *mode = NULL; - ply_renderer_head_t *head; - drmModeEncoder *encoder; - drmModeCrtc *controller; - uint32_t controller_id; - uint32_t console_buffer_id; -- int connector_mode_index = -1; - int gamma_size; - ply_pixel_buffer_rotation_t rotation; - bool tiled; -@@ -1155,16 +1145,16 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - ply_renderer_connector_get_rotation_and_tiled (backend, connector, &rotation, &tiled); - - if (!tiled && backend->use_preferred_mode) -- connector_mode_index = get_index_of_preferred_mode (connector); -+ mode = get_preferred_mode (connector); - -- if (connector_mode_index < 0) -- connector_mode_index = get_index_of_active_mode (backend, controller, connector); -+ if (!mode) -+ mode = get_active_mode (backend, controller, connector); - - /* If we couldn't find the current active mode, fall back to the first available. - */ -- if (connector_mode_index < 0) { -+ if (!mode) { - ply_trace ("falling back to first available mode"); -- connector_mode_index = 0; -+ mode = &connector->modes[0]; - } - - console_buffer_id = controller->buffer_id; -@@ -1175,7 +1165,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - (void *) (intptr_t) controller_id); - - if (head == NULL) { -- head = ply_renderer_head_new (backend, connector, connector_mode_index, -+ head = ply_renderer_head_new (backend, connector, mode, - controller_id, console_buffer_id, - gamma_size, rotation); - -@@ -1185,7 +1175,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - (void *) (intptr_t) controller_id, - head); - } else { -- if (!ply_renderer_head_add_connector (head, connector, connector_mode_index)) -+ if (!ply_renderer_head_add_connector (head, connector, mode)) - ply_trace ("couldn't connect monitor to existing head"); - - drmModeFreeConnector (connector); --- -2.20.1 - -From bf8a2e893eb99b373f6e6de72954aa171e766d88 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 27 Nov 2018 19:50:33 +0100 -Subject: [PATCH 25/82] drm: Refactor create_heads_for_active_connectors - -Refactor create_heads_for_active_connectors to prepare it for adding a -step where we assign controllers to connected outputs which do not have -a controller assigned yet. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 99 ++++++++++++++++++++---------- - 1 file changed, 66 insertions(+), 33 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 52f948e..f88d445 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -115,6 +115,13 @@ typedef struct - uint32_t added_fb : 1; - } ply_renderer_buffer_t; - -+typedef struct -+{ -+ drmModeConnector *connector; -+ drmModeModeInfo *mode; -+ drmModeCrtc *controller; -+} ply_output_t; -+ - struct _ply_renderer_backend - { - ply_event_loop_t *loop; -@@ -1092,26 +1099,26 @@ get_active_mode (ply_renderer_backend_t *backend, - static bool - create_heads_for_active_connectors (ply_renderer_backend_t *backend) - { -- int i; -- drmModeConnector *connector; - ply_hashtable_t *heads_by_controller_id; -+ ply_output_t *outputs; -+ int i, found, outputs_len; - - heads_by_controller_id = ply_hashtable_new (NULL, NULL); - -+ outputs = calloc (backend->resources->count_connectors, sizeof(*outputs)); -+ -+ /* Step 1: -+ * Build a list of connected outputs and get pre-configured controllers. -+ */ -+ found = 0; - for (i = 0; i < backend->resources->count_connectors; i++) { -- drmModeModeInfo *mode = NULL; -- ply_renderer_head_t *head; -+ drmModeConnector *connector; - drmModeEncoder *encoder; -- drmModeCrtc *controller; -- uint32_t controller_id; -- uint32_t console_buffer_id; -- int gamma_size; - ply_pixel_buffer_rotation_t rotation; - bool tiled; - - connector = drmModeGetConnector (backend->device_fd, - backend->resources->connectors[i]); -- - if (connector == NULL) - continue; - -@@ -1125,47 +1132,72 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - continue; - } - -- encoder = find_encoder_for_connector (backend, connector); -+ outputs[found].connector = connector; - -- if (encoder == NULL) { -- drmModeFreeConnector (connector); -- continue; -- } -- -- controller = find_controller_for_encoder (backend, encoder); -- drmModeFreeEncoder (encoder); -- -- if (controller == NULL) { -- drmModeFreeConnector (connector); -- continue; -+ encoder = find_encoder_for_connector (backend, connector); -+ if (encoder) { -+ outputs[found].controller = -+ find_controller_for_encoder (backend, encoder); -+ drmModeFreeEncoder (encoder); - } - -- controller_id = controller->crtc_id; -- - ply_renderer_connector_get_rotation_and_tiled (backend, connector, &rotation, &tiled); - - if (!tiled && backend->use_preferred_mode) -- mode = get_preferred_mode (connector); -+ outputs[found].mode = get_preferred_mode (connector); - -- if (!mode) -- mode = get_active_mode (backend, controller, connector); -+ if (!outputs[found].mode && outputs[found].controller) -+ outputs[found].mode = get_active_mode (backend, outputs[found].controller, connector); - - /* If we couldn't find the current active mode, fall back to the first available. - */ -- if (!mode) { -+ if (!outputs[found].mode) { - ply_trace ("falling back to first available mode"); -- mode = &connector->modes[0]; -+ outputs[found].mode = &connector->modes[0]; -+ } -+ -+ found++; -+ } -+ outputs_len = found; /* outputs now contains found valid entries */ -+ -+ /* Step 2: TODO -+ * Drop controllers for clones for which we've picked different modes. -+ */ -+ -+ /* Step 3: TODO -+ * Assign controllers to outputs without a controller -+ */ -+ -+ /* Step 4: -+ * Create heads for all valid outputs -+ */ -+ for (i = 0; i < outputs_len; i++) { -+ drmModeConnector *connector = outputs[i].connector; -+ ply_renderer_head_t *head; -+ uint32_t controller_id; -+ uint32_t console_buffer_id; -+ int gamma_size; -+ ply_pixel_buffer_rotation_t rotation; -+ bool tiled; -+ -+ /* Skip outputs for which we failed to get a controller */ -+ if (!outputs[i].controller) { -+ drmModeFreeConnector (connector); -+ continue; - } - -- console_buffer_id = controller->buffer_id; -- gamma_size = controller->gamma_size; -- drmModeFreeCrtc (controller); -+ ply_renderer_connector_get_rotation_and_tiled (backend, connector, &rotation, &tiled); -+ -+ controller_id = outputs[i].controller->crtc_id; -+ console_buffer_id = outputs[i].controller->buffer_id; -+ gamma_size = outputs[i].controller->gamma_size; -+ drmModeFreeCrtc (outputs[i].controller); - - head = ply_hashtable_lookup (heads_by_controller_id, - (void *) (intptr_t) controller_id); - - if (head == NULL) { -- head = ply_renderer_head_new (backend, connector, mode, -+ head = ply_renderer_head_new (backend, connector, outputs[i].mode, - controller_id, console_buffer_id, - gamma_size, rotation); - -@@ -1175,7 +1207,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - (void *) (intptr_t) controller_id, - head); - } else { -- if (!ply_renderer_head_add_connector (head, connector, mode)) -+ if (!ply_renderer_head_add_connector (head, connector, outputs[i].mode)) - ply_trace ("couldn't connect monitor to existing head"); - - drmModeFreeConnector (connector); -@@ -1183,6 +1215,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - } - - ply_hashtable_free (heads_by_controller_id); -+ free (outputs); - - return ply_list_get_length (backend->heads) > 0; - } --- -2.20.1 - -From 52bf6e3e950729e39b838c119284ced1aecc39a0 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 27 Nov 2018 23:09:27 +0100 -Subject: [PATCH 26/82] drm: Store tiled and rotation in ply_output_t - -This avoids the need to call ply_renderer_connector_get_rotation_and_tiled -twice and thus also the need to call drmModeGetProperty twice for all -properties. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 30 ++++++++++++------------------ - 1 file changed, 12 insertions(+), 18 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index f88d445..b68265b 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -120,6 +120,8 @@ typedef struct - drmModeConnector *connector; - drmModeModeInfo *mode; - drmModeCrtc *controller; -+ ply_pixel_buffer_rotation_t rotation; -+ bool tiled; - } ply_output_t; - - struct _ply_renderer_backend -@@ -442,28 +444,26 @@ connector_orientation_prop_to_rotation (drmModePropertyPtr prop, - - static void - ply_renderer_connector_get_rotation_and_tiled (ply_renderer_backend_t *backend, -- drmModeConnector *connector, -- ply_pixel_buffer_rotation_t *rotation, -- bool *tiled) -+ ply_output_t *output) - { - drmModePropertyPtr prop; - int i; - -- *rotation = PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; -- *tiled = false; -+ output->rotation = PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; -+ output->tiled = false; - -- for (i = 0; i < connector->count_props; i++) { -- prop = drmModeGetProperty (backend->device_fd, connector->props[i]); -+ for (i = 0; i < output->connector->count_props; i++) { -+ prop = drmModeGetProperty (backend->device_fd, output->connector->props[i]); - if (!prop) - continue; - - if ((prop->flags & DRM_MODE_PROP_ENUM) && - strcmp (prop->name, "panel orientation") == 0) -- *rotation = connector_orientation_prop_to_rotation (prop, connector->prop_values[i]); -+ output->rotation = connector_orientation_prop_to_rotation (prop, output->connector->prop_values[i]); - - if ((prop->flags & DRM_MODE_PROP_BLOB) && - strcmp (prop->name, "TILE") == 0) -- *tiled = true; -+ output->tiled = true; - - drmModeFreeProperty (prop); - } -@@ -1114,8 +1114,6 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - for (i = 0; i < backend->resources->count_connectors; i++) { - drmModeConnector *connector; - drmModeEncoder *encoder; -- ply_pixel_buffer_rotation_t rotation; -- bool tiled; - - connector = drmModeGetConnector (backend->device_fd, - backend->resources->connectors[i]); -@@ -1141,9 +1139,9 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - drmModeFreeEncoder (encoder); - } - -- ply_renderer_connector_get_rotation_and_tiled (backend, connector, &rotation, &tiled); -+ ply_renderer_connector_get_rotation_and_tiled (backend, &outputs[found]); - -- if (!tiled && backend->use_preferred_mode) -+ if (!outputs[found].tiled && backend->use_preferred_mode) - outputs[found].mode = get_preferred_mode (connector); - - if (!outputs[found].mode && outputs[found].controller) -@@ -1177,8 +1175,6 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - uint32_t controller_id; - uint32_t console_buffer_id; - int gamma_size; -- ply_pixel_buffer_rotation_t rotation; -- bool tiled; - - /* Skip outputs for which we failed to get a controller */ - if (!outputs[i].controller) { -@@ -1186,8 +1182,6 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - continue; - } - -- ply_renderer_connector_get_rotation_and_tiled (backend, connector, &rotation, &tiled); -- - controller_id = outputs[i].controller->crtc_id; - console_buffer_id = outputs[i].controller->buffer_id; - gamma_size = outputs[i].controller->gamma_size; -@@ -1199,7 +1193,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - if (head == NULL) { - head = ply_renderer_head_new (backend, connector, outputs[i].mode, - controller_id, console_buffer_id, -- gamma_size, rotation); -+ gamma_size, outputs[i].rotation); - - ply_list_append_data (backend->heads, head); - --- -2.20.1 - -From ef55ed99e74d15ae7b9a53b89450b6a7b4c297ca Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 27 Nov 2018 23:58:26 +0100 -Subject: [PATCH 27/82] drm: More connector enumeration refactoring - -Some further refactoring to prepare for adding code to picking crtcs -for unconfigured connectors. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 94 +++++++++++++----------------- - 1 file changed, 42 insertions(+), 52 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index b68265b..586df62 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -119,7 +119,8 @@ typedef struct - { - drmModeConnector *connector; - drmModeModeInfo *mode; -- drmModeCrtc *controller; -+ uint32_t controller_id; -+ uint32_t possible_controllers; - ply_pixel_buffer_rotation_t rotation; - bool tiled; - } ply_output_t; -@@ -978,51 +979,39 @@ close_device (ply_renderer_backend_t *backend) - unload_backend (backend); - } - --static drmModeCrtc * --find_controller_for_encoder (ply_renderer_backend_t *backend, -- drmModeEncoder *encoder) --{ -- drmModeCrtc *controller; -- -- controller = NULL; -- -- /* Monitor is already lit. We'll use the same controller. -- */ -- if (encoder->crtc_id != 0) { -- controller = drmModeGetCrtc (backend->device_fd, encoder->crtc_id); -- -- if (controller != NULL) { -- ply_trace ("Found already lit monitor"); -- return controller; -- } -- } -- -- return NULL; --} -- --static drmModeEncoder * --find_encoder_for_connector (ply_renderer_backend_t *backend, -- drmModeConnector *connector) -+static void -+find_controller_for_output (ply_renderer_backend_t *backend, -+ ply_output_t *output) - { - int i; - drmModeEncoder *encoder; - - assert (backend != NULL); - -- for (i = 0; i < connector->count_encoders; i++) { -+ output->possible_controllers = 0xffffffff; -+ -+ for (i = 0; i < output->connector->count_encoders; i++) { - encoder = drmModeGetEncoder (backend->device_fd, -- connector->encoders[i]); -+ output->connector->encoders[i]); - - if (encoder == NULL) - continue; - -- if (encoder->encoder_id == connector->encoder_id) -- return encoder; -+ if (encoder->encoder_id == output->connector->encoder_id && encoder->crtc_id) { -+ ply_trace ("Found already lit monitor on connector %u using controller %u", -+ output->connector->connector_id, encoder->crtc_id); -+ output->controller_id = encoder->crtc_id; -+ } - -+ /* Like mutter and xf86-drv-modesetting only select controllers -+ * which are supported by all the connector's encoders. -+ */ -+ output->possible_controllers &= encoder->possible_crtcs; -+ ply_trace ("connector %u encoder %u possible controllers 0x%08x/0x%08x", -+ output->connector->connector_id, encoder->encoder_id, -+ encoder->possible_crtcs, output->possible_controllers); - drmModeFreeEncoder (encoder); - } -- -- return NULL; - } - - static bool -@@ -1082,10 +1071,13 @@ get_preferred_mode (drmModeConnector *connector) - - static drmModeModeInfo * - get_active_mode (ply_renderer_backend_t *backend, -- drmModeCrtc *controller, -- drmModeConnector *connector) -+ ply_output_t *output) - { -- if (!controller->mode_valid) { -+ drmModeCrtc *controller; -+ drmModeModeInfo *mode; -+ -+ controller = drmModeGetCrtc (backend->device_fd, output->controller_id); -+ if (!controller || !controller->mode_valid) { - ply_trace ("No valid mode currently active on monitor"); - return NULL; - } -@@ -1093,7 +1085,11 @@ get_active_mode (ply_renderer_backend_t *backend, - ply_trace ("Looking for connector mode index of active mode %dx%d", - controller->mode.hdisplay, controller->mode.vdisplay); - -- return find_matching_connector_mode (backend, connector, &controller->mode); -+ mode = find_matching_connector_mode (backend, output->connector, &controller->mode); -+ -+ drmModeFreeCrtc (controller); -+ -+ return mode; - } - - static bool -@@ -1113,7 +1109,6 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - found = 0; - for (i = 0; i < backend->resources->count_connectors; i++) { - drmModeConnector *connector; -- drmModeEncoder *encoder; - - connector = drmModeGetConnector (backend->device_fd, - backend->resources->connectors[i]); -@@ -1132,20 +1127,14 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - - outputs[found].connector = connector; - -- encoder = find_encoder_for_connector (backend, connector); -- if (encoder) { -- outputs[found].controller = -- find_controller_for_encoder (backend, encoder); -- drmModeFreeEncoder (encoder); -- } -- -+ find_controller_for_output (backend, &outputs[found]); - ply_renderer_connector_get_rotation_and_tiled (backend, &outputs[found]); - - if (!outputs[found].tiled && backend->use_preferred_mode) - outputs[found].mode = get_preferred_mode (connector); - -- if (!outputs[found].mode && outputs[found].controller) -- outputs[found].mode = get_active_mode (backend, outputs[found].controller, connector); -+ if (!outputs[found].mode && outputs[found].controller_id) -+ outputs[found].mode = get_active_mode (backend, &outputs[found]); - - /* If we couldn't find the current active mode, fall back to the first available. - */ -@@ -1171,21 +1160,22 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - */ - for (i = 0; i < outputs_len; i++) { - drmModeConnector *connector = outputs[i].connector; -+ drmModeCrtc *controller; - ply_renderer_head_t *head; - uint32_t controller_id; - uint32_t console_buffer_id; - int gamma_size; - -- /* Skip outputs for which we failed to get a controller */ -- if (!outputs[i].controller) { -+ controller = drmModeGetCrtc (backend->device_fd, outputs[i].controller_id); -+ if (!controller) { - drmModeFreeConnector (connector); - continue; - } - -- controller_id = outputs[i].controller->crtc_id; -- console_buffer_id = outputs[i].controller->buffer_id; -- gamma_size = outputs[i].controller->gamma_size; -- drmModeFreeCrtc (outputs[i].controller); -+ controller_id = controller->crtc_id; -+ console_buffer_id = controller->buffer_id; -+ gamma_size = controller->gamma_size; -+ drmModeFreeCrtc (controller); - - head = ply_hashtable_lookup (heads_by_controller_id, - (void *) (intptr_t) controller_id); --- -2.20.1 - -From 76b37d50720b6c07c976789943fb2b02069b168d Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 27 Nov 2018 22:51:58 +0100 -Subject: [PATCH 28/82] drm: Drop crtcs for clones for which we've picked - different modes - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 22 ++++++++++++++++++++-- - 1 file changed, 20 insertions(+), 2 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 586df62..87ecbfd 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -1097,7 +1097,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - { - ply_hashtable_t *heads_by_controller_id; - ply_output_t *outputs; -- int i, found, outputs_len; -+ int i, j, found, outputs_len; - - heads_by_controller_id = ply_hashtable_new (NULL, NULL); - -@@ -1147,9 +1147,27 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - } - outputs_len = found; /* outputs now contains found valid entries */ - -- /* Step 2: TODO -+ /* Step 2: - * Drop controllers for clones for which we've picked different modes. - */ -+ for (i = 0; i < outputs_len; i++) { -+ if (!outputs[i].controller_id) -+ continue; -+ -+ for (j = i + 1; j < outputs_len; j++) { -+ if (!outputs[j].controller_id) -+ continue; -+ -+ if (outputs[i].controller_id == outputs[j].controller_id && -+ (outputs[i].mode->hdisplay != outputs[j].mode->hdisplay || -+ outputs[i].mode->vdisplay != outputs[j].mode->vdisplay)) { -+ ply_trace ("connector %u uses same controller as %u and modes differ, unlinking controller", -+ outputs[j].connector->connector_id, -+ outputs[i].connector->connector_id); -+ outputs[j].controller_id = 0; -+ } -+ } -+ } - - /* Step 3: TODO - * Assign controllers to outputs without a controller --- -2.20.1 - -From d67e729739f7cc3cb138bcad8182496c818bfd41 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 28 Nov 2018 00:53:46 +0100 -Subject: [PATCH 29/82] drm: Pick a controller for unconfigured connectors - -So far we've been relying on the kernel fbcon code to set up all outputs, -now that distros have started using deferred fbcon takeover for flickerfree -booting, we can no longer rely on this and in some cases we must pick -our own controllers. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 132 ++++++++++++++++++++++++++++- - 1 file changed, 128 insertions(+), 4 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 87ecbfd..20543ea 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -980,7 +980,7 @@ close_device (ply_renderer_backend_t *backend) - } - - static void --find_controller_for_output (ply_renderer_backend_t *backend, -+output_get_controller_info (ply_renderer_backend_t *backend, - ply_output_t *output) - { - int i; -@@ -1092,12 +1092,119 @@ get_active_mode (ply_renderer_backend_t *backend, - return mode; - } - -+/* Some controllers can only drive some outputs, we want to find a combination -+ * where all (connected) outputs get a controller. To do this setup_outputs -+ * picks which output to assign a controller for first (trying all outputs), so -+ * that that one will get the first (free) controller and then recurses into -+ * itself to assign the remaining outputs. This tries assigning all remainig -+ * unassigned outputs first and returns the best result of all possible -+ * assignment orders for the remaining unassigned outputs. -+ * This repeats until we find an assignment order which results in a controller -+ * for all outputs, or we've tried all possible assignment orders. -+ */ -+ -+static uint32_t -+find_controller_for_output (ply_renderer_backend_t *backend, -+ const ply_output_t *outputs, -+ int outputs_len, -+ int output_idx) -+{ -+ uint32_t possible_controllers = outputs[output_idx].possible_controllers; -+ int i, j; -+ -+ for (i = 0; i < backend->resources->count_crtcs; i++) { -+ uint32_t controller_id = backend->resources->crtcs[i]; -+ -+ if (!(possible_controllers & (1 << i))) -+ continue; /* controller not usable for this connector */ -+ -+ for (j = 0; j < outputs_len; j++) { -+ if (outputs[j].controller_id == controller_id) -+ break; -+ } -+ if (j < outputs_len) -+ continue; /* controller already in use */ -+ -+ return controller_id; -+ } -+ -+ return 0; -+} -+ -+static int -+count_setup_controllers (const ply_output_t *outputs, -+ int outputs_len) -+{ -+ int i, count = 0; -+ -+ for (i = 0; i < outputs_len; i++) { -+ if (outputs[i].controller_id) -+ count++; -+ } -+ -+ return count; -+} -+ -+static ply_output_t * -+setup_outputs (ply_renderer_backend_t *backend, -+ const ply_output_t *outputs, -+ int outputs_len) -+{ -+ const ply_output_t *best_outputs; -+ ply_output_t *new_outputs; -+ int i, count, best_count; -+ uint32_t controller_id; -+ -+ best_count = count_setup_controllers (outputs, outputs_len); -+ best_outputs = outputs; -+ -+ for (i = 0; i < outputs_len && best_count < outputs_len; i++) { -+ /* Already assigned? */ -+ if (outputs[i].controller_id) -+ continue; -+ -+ /* Assign controller for connector i */ -+ controller_id = find_controller_for_output (backend, outputs, outputs_len, i); -+ if (!controller_id) -+ continue; -+ -+ /* Add the new controller to a copy of the passed in connector -+ * template, we want to try all possible permutations of -+ * unassigned outputs without modifying the template. -+ */ -+ new_outputs = calloc (outputs_len, sizeof(*new_outputs)); -+ memcpy (new_outputs, outputs, outputs_len * sizeof(ply_output_t)); -+ new_outputs[i].controller_id = controller_id; -+ -+ /* Recurse into ourselves to assign remaining controllers, -+ * trying all possible assignment orders. -+ */ -+ new_outputs = setup_outputs (backend, new_outputs, outputs_len); -+ -+ count = count_setup_controllers (new_outputs, outputs_len); -+ if (count > best_count) { -+ if (best_outputs != outputs) -+ free ((void *)best_outputs); -+ best_outputs = new_outputs; -+ best_count = count; -+ } else { -+ free (new_outputs); -+ } -+ } -+ -+ if (best_outputs != outputs) -+ free ((void *)outputs); -+ -+ /* Our caller is allowed to modify outputs, cast-away the const */ -+ return (ply_output_t *)best_outputs; -+} -+ - static bool - create_heads_for_active_connectors (ply_renderer_backend_t *backend) - { - ply_hashtable_t *heads_by_controller_id; - ply_output_t *outputs; -- int i, j, found, outputs_len; -+ int i, j, found, number_of_setup_outputs, outputs_len; - - heads_by_controller_id = ply_hashtable_new (NULL, NULL); - -@@ -1127,7 +1234,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - - outputs[found].connector = connector; - -- find_controller_for_output (backend, &outputs[found]); -+ output_get_controller_info (backend, &outputs[found]); - ply_renderer_connector_get_rotation_and_tiled (backend, &outputs[found]); - - if (!outputs[found].tiled && backend->use_preferred_mode) -@@ -1169,9 +1276,26 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - } - } - -- /* Step 3: TODO -+ /* Step 3: - * Assign controllers to outputs without a controller - */ -+ number_of_setup_outputs = count_setup_controllers (outputs, outputs_len); -+ if (number_of_setup_outputs != outputs_len) { -+ /* First try, try to assign controllers to outputs without one */ -+ ply_trace ("Some outputs don't have controllers, picking controllers"); -+ outputs = setup_outputs (backend, outputs, outputs_len); -+ number_of_setup_outputs = count_setup_controllers (outputs, outputs_len); -+ } -+ if (number_of_setup_outputs != outputs_len) { -+ /* Second try, re-assing controller for all outputs */ -+ ply_trace ("Some outputs still don't have controllers, re-assigning controllers for all outputs"); -+ for (i = 0; i < outputs_len; i++) -+ outputs[i].controller_id = 0; -+ outputs = setup_outputs (backend, outputs, outputs_len); -+ } -+ for (i = 0; i < outputs_len; i++) -+ ply_trace ("Using controller %u for connector %u", -+ outputs[i].controller_id, outputs[i].connector->connector_id); - - /* Step 4: - * Create heads for all valid outputs --- -2.20.1 - -From b082f42494e8423f08f40addc833d7e9b0192cb6 Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Tue, 4 Dec 2018 14:31:13 -0500 -Subject: [PATCH 30/82] keyboard: add helper to get the keyboard's renderer, if - applicable - -Based on an original patch from Gert van de Kraats on Ubuntu's Launchpad: -https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/1794292 - -Signed-off-by: Mathieu Trudel-Lapierre ---- - src/libply-splash-core/ply-keyboard.c | 16 ++++++++++++++++ - src/libply-splash-core/ply-keyboard.h | 1 + - 2 files changed, 17 insertions(+) - -diff --git a/src/libply-splash-core/ply-keyboard.c b/src/libply-splash-core/ply-keyboard.c -index 80f7694..e11c093 100644 ---- a/src/libply-splash-core/ply-keyboard.c -+++ b/src/libply-splash-core/ply-keyboard.c -@@ -587,4 +587,20 @@ ply_keyboard_remove_enter_handler (ply_keyboard_t *keyboard, - } - } - -+ply_renderer_t * -+ply_keyboard_get_renderer (ply_keyboard_t *keyboard) -+{ -+ assert (keyboard != NULL); -+ -+ switch (keyboard->provider_type) { -+ case PLY_KEYBOARD_PROVIDER_TYPE_RENDERER: -+ return keyboard->provider.if_renderer->renderer; -+ -+ default: -+ break; -+ } -+ -+ return NULL; -+} -+ - /* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ -diff --git a/src/libply-splash-core/ply-keyboard.h b/src/libply-splash-core/ply-keyboard.h -index 6147cc7..dd428c0 100644 ---- a/src/libply-splash-core/ply-keyboard.h -+++ b/src/libply-splash-core/ply-keyboard.h -@@ -72,6 +72,7 @@ void ply_keyboard_remove_enter_handler (ply_keyboard_t *keyboard, - bool ply_keyboard_watch_for_input (ply_keyboard_t *keyboard); - void ply_keyboard_stop_watching_for_input (ply_keyboard_t *keyboard); - bool ply_keyboard_is_active (ply_keyboard_t *keyboard); -+ply_renderer_t *ply_keyboard_get_renderer (ply_keyboard_t *keyboard); - - #endif - --- -2.20.1 - -From c46f446fe44457f599805b685547c2258bb3fa96 Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Tue, 4 Dec 2018 14:41:35 -0500 -Subject: [PATCH 31/82] device-manager: free keyboards when deactivating a - renderer - -Based on an original patch by Gert van de Kraats, on Ubuntu Launchpad bug: -https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/1794292 - -Signed-off-by: Mathieu Trudel-Lapierre ---- - src/libply-splash-core/ply-device-manager.c | 29 +++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c -index d70e709..8ceee10 100644 ---- a/src/libply-splash-core/ply-device-manager.c -+++ b/src/libply-splash-core/ply-device-manager.c -@@ -136,6 +136,34 @@ free_displays_for_renderer (ply_device_manager_t *manager, - } - } - -+static void -+free_keyboards_for_renderer (ply_device_manager_t *manager, -+ ply_renderer_t *renderer) -+{ -+ ply_list_node_t *node; -+ -+ node = ply_list_get_first_node (manager->keyboards); -+ while (node != NULL) { -+ ply_list_node_t *next_node; -+ ply_keyboard_t *keyboard; -+ ply_renderer_t *keyboard_renderer; -+ -+ keyboard = ply_list_node_get_data (node); -+ next_node = ply_list_get_next_node (manager->keyboards, node); -+ keyboard_renderer = ply_keyboard_get_renderer (keyboard); -+ -+ if (keyboard_renderer == renderer) { -+ ply_keyboard_free (keyboard); -+ ply_list_remove_node (manager->keyboards, node); -+ } -+ -+ node = next_node; -+ } -+ if (ply_list_get_first_node (manager->keyboards) == NULL) { -+ manager->local_console_managed = false; -+ } -+} -+ - static void - free_devices_from_device_path (ply_device_manager_t *manager, - const char *device_path) -@@ -152,6 +180,7 @@ free_devices_from_device_path (ply_device_manager_t *manager, - return; - - free_displays_for_renderer (manager, renderer); -+ free_keyboards_for_renderer (manager, renderer); - - ply_hashtable_remove (manager->renderers, (void *) device_path); - free (key); --- -2.20.1 - -From bac628cd05783499d5e4dc005fb566c51ace2df8 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Sun, 9 Dec 2018 15:22:48 +0100 -Subject: [PATCH 32/82] ply-keyboard: Fix compiler warning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fix: "warning: enumeration value ‘PLY_KEYBOARD_PROVIDER_TYPE_TERMINAL’ -not handled in switch [-Wswitch-enum]" compiler warning. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-keyboard.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/libply-splash-core/ply-keyboard.c b/src/libply-splash-core/ply-keyboard.c -index e11c093..27395e0 100644 ---- a/src/libply-splash-core/ply-keyboard.c -+++ b/src/libply-splash-core/ply-keyboard.c -@@ -596,8 +596,8 @@ ply_keyboard_get_renderer (ply_keyboard_t *keyboard) - case PLY_KEYBOARD_PROVIDER_TYPE_RENDERER: - return keyboard->provider.if_renderer->renderer; - -- default: -- break; -+ case PLY_KEYBOARD_PROVIDER_TYPE_TERMINAL: -+ return NULL; - } - - return NULL; --- -2.20.1 - -From 2dc81adb0f1a5469b15c62d3dacf53dfbc37c17a Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 19 Dec 2018 10:43:09 +0100 -Subject: [PATCH 33/82] libply: Add ply_strtod helper - -Add a ply_strtod helper which always uses "." as decimal separator -independent of the locale. - -Using this fixes e.g. HorizontalAlignment in the two-step plugin -not working with some locales. - -Signed-off-by: Hans de Goede ---- - src/libply/ply-utils.c | 14 ++++++++++++++ - src/libply/ply-utils.h | 2 ++ - 2 files changed, 16 insertions(+) - -diff --git a/src/libply/ply-utils.c b/src/libply/ply-utils.c -index c17e0c8..4ff7b1b 100644 ---- a/src/libply/ply-utils.c -+++ b/src/libply/ply-utils.c -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -1109,4 +1110,17 @@ ply_kernel_command_line_override (const char *command_line) - kernel_command_line_is_set = true; - } - -+double ply_strtod(const char *str) -+{ -+ char *old_locale; -+ double ret; -+ -+ /* Ensure strtod uses '.' as decimal separator, as we use this in our cfg files. */ -+ old_locale = setlocale(LC_NUMERIC, "C"); -+ ret = strtod(str, NULL); -+ setlocale(LC_NUMERIC, old_locale); -+ -+ return ret; -+} -+ - /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply/ply-utils.h b/src/libply/ply-utils.h -index ae4776e..4dd9c09 100644 ---- a/src/libply/ply-utils.h -+++ b/src/libply/ply-utils.h -@@ -132,6 +132,8 @@ const char *ply_kernel_command_line_get_string_after_prefix (const char *prefix) - bool ply_kernel_command_line_has_argument (const char *argument); - void ply_kernel_command_line_override (const char *command_line); - -+double ply_strtod(const char *str); -+ - #endif - - #endif /* PLY_UTILS_H */ --- -2.20.1 - -From fb6d4b4983de70296ee84d0029e5e7b91202d526 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 19 Dec 2018 10:45:51 +0100 -Subject: [PATCH 34/82] two-step: Use plymouth_strtod - -Use the locale agnostic plymouth_strtod helper which always uses a "." -as decimal seperator. This fixes the various Alignment options not working -with some locales. - -While at it also add a ply_trace to log the size and chosen centering for -the watermark image. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 14 +++++++++----- - 1 file changed, 9 insertions(+), 5 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 16b8fc8..c1e75a8 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -423,6 +423,10 @@ view_load (view_t *view) - view->watermark_area.height = ply_image_get_height (plugin->watermark_image); - view->watermark_area.x = screen_width * plugin->watermark_horizontal_alignment - ply_image_get_width (plugin->watermark_image) * plugin->watermark_horizontal_alignment; - view->watermark_area.y = screen_height * plugin->watermark_vertical_alignment - ply_image_get_height (plugin->watermark_image) * plugin->watermark_vertical_alignment; -+ ply_trace ("using %ldx%ld watermark centered at %ldx%ld for %ldx%ld screen", -+ view->watermark_area.width, view->watermark_area.height, -+ view->watermark_area.x, view->watermark_area.y, -+ screen_width, screen_height); - } - - ply_trace ("loading entry"); -@@ -746,28 +750,28 @@ create_plugin (ply_key_file_t *key_file) - - alignment = ply_key_file_get_value (key_file, "two-step", "HorizontalAlignment"); - if (alignment != NULL) -- plugin->animation_horizontal_alignment = strtod (alignment, NULL); -+ plugin->animation_horizontal_alignment = ply_strtod (alignment); - else - plugin->animation_horizontal_alignment = .5; - free (alignment); - - alignment = ply_key_file_get_value (key_file, "two-step", "VerticalAlignment"); - if (alignment != NULL) -- plugin->animation_vertical_alignment = strtod (alignment, NULL); -+ plugin->animation_vertical_alignment = ply_strtod (alignment); - else - plugin->animation_vertical_alignment = .5; - free (alignment); - - alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkHorizontalAlignment"); - if (alignment != NULL) -- plugin->watermark_horizontal_alignment = strtod (alignment, NULL); -+ plugin->watermark_horizontal_alignment = ply_strtod (alignment); - else - plugin->watermark_horizontal_alignment = 1.0; - free (alignment); - - alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkVerticalAlignment"); - if (alignment != NULL) -- plugin->watermark_vertical_alignment = strtod (alignment, NULL); -+ plugin->watermark_vertical_alignment = ply_strtod (alignment); - else - plugin->watermark_vertical_alignment = .5; - free (alignment); -@@ -786,7 +790,7 @@ create_plugin (ply_key_file_t *key_file) - - transition_duration = ply_key_file_get_value (key_file, "two-step", "TransitionDuration"); - if (transition_duration != NULL) -- plugin->transition_duration = strtod (transition_duration, NULL); -+ plugin->transition_duration = ply_strtod (transition_duration); - else - plugin->transition_duration = 0.0; - free (transition_duration); --- -2.20.1 - -From e111ba8bafaa41fced0824e6fbccc20372917a3d Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 9 Jan 2019 11:31:06 +0100 -Subject: [PATCH 35/82] libply: Add ply_key_file_get_bool function - -Add a function to read a boolean value from a ply-key-file. - -This function will return true if the key exists and it has a value of "1", -"y", "yes" or "true" (case-insensitive). In all other cases it returns -false. - -Signed-off-by: Hans de Goede ---- - src/libply/ply-key-file.c | 33 +++++++++++++++++++++++++++++++++ - src/libply/ply-key-file.h | 4 ++++ - 2 files changed, 37 insertions(+) - -diff --git a/src/libply/ply-key-file.c b/src/libply/ply-key-file.c -index 862d6d5..1c05766 100644 ---- a/src/libply/ply-key-file.c -+++ b/src/libply/ply-key-file.c -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -356,6 +357,38 @@ ply_key_file_get_value (ply_key_file_t *key_file, - return strdup (entry->value); - } - -+bool -+ply_key_file_get_bool (ply_key_file_t *key_file, -+ const char *group_name, -+ const char *key) -+{ -+ ply_key_file_group_t *group; -+ ply_key_file_entry_t *entry; -+ -+ group = ply_key_file_find_group (key_file, group_name); -+ -+ if (group == NULL) { -+ ply_trace ("key file does not have group '%s'", group_name); -+ return false; -+ } -+ -+ entry = ply_key_file_find_entry (key_file, group, key); -+ -+ if (entry == NULL) { -+ ply_trace ("key file does not have entry for key '%s'", key); -+ return false; -+ } -+ -+ /* We treat "1", "y" and "yes" and "true" as true, all else is false */ -+ if (strcasecmp (entry->value, "1") == 0 || -+ strcasecmp (entry->value, "y") == 0 || -+ strcasecmp (entry->value, "yes") == 0 || -+ strcasecmp (entry->value, "true") == 0) -+ return true; -+ -+ return false; -+} -+ - static void - ply_key_file_foreach_entry_entries (void *key, - void *data, -diff --git a/src/libply/ply-key-file.h b/src/libply/ply-key-file.h -index e69d14a..ef7124b 100644 ---- a/src/libply/ply-key-file.h -+++ b/src/libply/ply-key-file.h -@@ -42,6 +42,10 @@ bool ply_key_file_has_key (ply_key_file_t *key_file, - char *ply_key_file_get_value (ply_key_file_t *key_file, - const char *group_name, - const char *key); -+/* Note this returns false for non existing keys */ -+bool ply_key_file_get_bool (ply_key_file_t *key_file, -+ const char *group_name, -+ const char *key); - void ply_key_file_foreach_entry (ply_key_file_t *key_file, - ply_key_file_foreach_func_t func, - void *user_data); --- -2.20.1 - -From 6cf1bb3e37df6b69d3b0e17eee394ad8c6e57e75 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 20 Dec 2018 12:47:39 +0100 -Subject: [PATCH 36/82] two-step: Rename UseBGRT to UseFirmwareBackground - -Rename the UseBGRT theme configfile option to UseFirmwareBackground, -to make it clear what this does using language which most users will be -able to understand, rather then using the cryptic BGRT ACPI table reference. - -While at it also switch to using the new ply_key_file_get_bool function, so -that users can edit an existing configfile with "UseFirmwareBackground=true" -in there and change it to "=false" and actually have that work as expected. - -The switch to ply_key_file_get_bool also fixes a memleak as -ply_key_file_get_value returns a strdup-ed value which we were not free-ing. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 3 +-- - themes/bgrt/bgrt.plymouth.in | 2 +- - 2 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index c1e75a8..8f1ad58 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -813,8 +813,7 @@ create_plugin (ply_key_file_t *key_file) - - free (color); - -- /* Boolean option, true if the key is present */ -- if (ply_key_file_get_value (key_file, "two-step", "UseBGRT")) -+ if (ply_key_file_get_bool (key_file, "two-step", "UseFirmwareBackground")) - plugin->background_bgrt_image = ply_image_new ("/sys/firmware/acpi/bgrt/image"); - - progress_function = ply_key_file_get_value (key_file, "two-step", "ProgressFunction"); -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index b5cc843..dc5eaf5 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -13,4 +13,4 @@ Transition=none - TransitionDuration=0.0 - BackgroundStartColor=0x202020 - BackgroundEndColor=0x202020 --UseBGRT=true -+UseFirmwareBackground=true --- -2.20.1 - -From 410ba63c81f49b08ab674d359239869b23bdd80e Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 19 Dec 2018 11:52:03 +0100 -Subject: [PATCH 37/82] two-step: Make the box image surrounding the unlock - dialog optional - -In some themes we want a simple style text entry without a dialog like -box around it. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 50 ++++++++++++++++++---------- - 1 file changed, 33 insertions(+), 17 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 8f1ad58..c6e9be4 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -91,7 +91,7 @@ typedef struct - ply_throbber_t *throbber; - ply_label_t *label; - ply_label_t *message_label; -- ply_rectangle_t box_area, lock_area, watermark_area; -+ ply_rectangle_t box_area, lock_area, watermark_area, dialog_area; - ply_trigger_t *end_trigger; - ply_pixel_buffer_t *background_buffer; - bool background_is_bgrt; -@@ -648,9 +648,8 @@ view_show_prompt (view_t *view, - const char *prompt) - { - ply_boot_splash_plugin_t *plugin; -+ unsigned long screen_width, screen_height, entry_width, entry_height; - int x, y; -- int entry_width, entry_height; -- unsigned long screen_width, screen_height; - - assert (view != NULL); - -@@ -660,17 +659,25 @@ view_show_prompt (view_t *view, - screen_height = ply_pixel_display_get_height (view->display); - - if (ply_entry_is_hidden (view->entry)) { -- view->box_area.width = ply_image_get_width (plugin->box_image); -- view->box_area.height = ply_image_get_height (plugin->box_image); -- view->box_area.x = screen_width / 2.0 - view->box_area.width / 2.0; -- view->box_area.y = screen_height / 2.0 - view->box_area.height / 2.0; -- - view->lock_area.width = ply_image_get_width (plugin->lock_image); - view->lock_area.height = ply_image_get_height (plugin->lock_image); - - entry_width = ply_entry_get_width (view->entry); - entry_height = ply_entry_get_height (view->entry); - -+ if (plugin->box_image) { -+ view->box_area.width = ply_image_get_width (plugin->box_image); -+ view->box_area.height = ply_image_get_height (plugin->box_image); -+ view->box_area.x = (screen_width - view->box_area.width) * 0.5; -+ view->box_area.y = (screen_height - view->box_area.height) * 0.5; -+ view->dialog_area = view->box_area; -+ } else { -+ view->dialog_area.width = view->lock_area.width + entry_width; -+ view->dialog_area.height = MAX(view->lock_area.height, entry_height); -+ view->dialog_area.x = (screen_width - view->dialog_area.width) * 0.5; -+ view->dialog_area.y = (screen_height - view->dialog_area.height) * 0.5; -+ } -+ - x = screen_width / 2.0 - (view->lock_area.width + entry_width) / 2.0 + view->lock_area.width; - y = screen_height / 2.0 - entry_height / 2.0; - -@@ -689,7 +696,7 @@ view_show_prompt (view_t *view, - ply_label_set_width (view->label, label_width); - - x = (screen_width - label_width) / 2; -- y = view->box_area.y + view->box_area.height; -+ y = view->dialog_area.y + view->dialog_area.height; - - ply_label_show (view->label, view->display, x, y); - } -@@ -881,9 +888,11 @@ destroy_plugin (ply_boot_splash_plugin_t *plugin) - detach_from_event_loop (plugin); - } - -- ply_image_free (plugin->box_image); - ply_image_free (plugin->lock_image); - -+ if (plugin->box_image != NULL) -+ ply_image_free (plugin->box_image); -+ - if (plugin->corner_image != NULL) - ply_image_free (plugin->corner_image); - -@@ -1091,10 +1100,12 @@ on_draw (view_t *view, - plugin->state == PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY) { - uint32_t *box_data, *lock_data; - -- box_data = ply_image_get_data (plugin->box_image); -- ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, -- &view->box_area, -- box_data); -+ if (plugin->box_image) { -+ box_data = ply_image_get_data (plugin->box_image); -+ ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, -+ &view->box_area, -+ box_data); -+ } - - ply_entry_draw_area (view->entry, - pixel_buffer, -@@ -1223,9 +1234,14 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, - if (!ply_image_load (plugin->lock_image)) - return false; - -- ply_trace ("loading box image"); -- if (!ply_image_load (plugin->box_image)) -- return false; -+ if (plugin->box_image != NULL) { -+ ply_trace ("loading box image"); -+ -+ if (!ply_image_load (plugin->box_image)) { -+ ply_image_free (plugin->box_image); -+ plugin->box_image = NULL; -+ } -+ } - - if (plugin->corner_image != NULL) { - ply_trace ("loading corner image"); --- -2.20.1 - -From 27e671bff7df6310e32e640b7db91642ab31e84b Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 19 Dec 2018 13:28:28 +0100 -Subject: [PATCH 38/82] two-step: Add support for non center alignment of the - (diskcrypt) dialog - -Add DialogHorizontalAlignment and DialogVerticalAlignment options which -allow placing the (diskcrypt) dialog aligned at another place then the -center of the screen. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 39 ++++++++++++++++++++++------ - 1 file changed, 31 insertions(+), 8 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index c6e9be4..0f79795 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -112,6 +112,9 @@ struct _ply_boot_splash_plugin - - ply_boot_splash_display_type_t state; - -+ double dialog_horizontal_alignment; -+ double dialog_vertical_alignment; -+ - double watermark_horizontal_alignment; - double watermark_vertical_alignment; - -@@ -668,21 +671,27 @@ view_show_prompt (view_t *view, - if (plugin->box_image) { - view->box_area.width = ply_image_get_width (plugin->box_image); - view->box_area.height = ply_image_get_height (plugin->box_image); -- view->box_area.x = (screen_width - view->box_area.width) * 0.5; -- view->box_area.y = (screen_height - view->box_area.height) * 0.5; -+ view->box_area.x = (screen_width - view->box_area.width) * plugin->dialog_horizontal_alignment; -+ view->box_area.y = (screen_height - view->box_area.height) * plugin->dialog_vertical_alignment; - view->dialog_area = view->box_area; - } else { - view->dialog_area.width = view->lock_area.width + entry_width; - view->dialog_area.height = MAX(view->lock_area.height, entry_height); -- view->dialog_area.x = (screen_width - view->dialog_area.width) * 0.5; -- view->dialog_area.y = (screen_height - view->dialog_area.height) * 0.5; -+ view->dialog_area.x = (screen_width - view->dialog_area.width) * plugin->dialog_horizontal_alignment; -+ view->dialog_area.y = (screen_height - view->dialog_area.height) * plugin->dialog_vertical_alignment; - } - -- x = screen_width / 2.0 - (view->lock_area.width + entry_width) / 2.0 + view->lock_area.width; -- y = screen_height / 2.0 - entry_height / 2.0; -+ view->lock_area.x = -+ view->dialog_area.x + -+ (view->dialog_area.width - -+ (view->lock_area.width + entry_width)) / 2.0; -+ view->lock_area.y = -+ view->dialog_area.y + -+ (view->dialog_area.height - view->lock_area.height) / 2.0; - -- view->lock_area.x = screen_width / 2.0 - (view->lock_area.width + entry_width) / 2.0; -- view->lock_area.y = screen_height / 2.0 - view->lock_area.height / 2.0; -+ x = view->lock_area.x + view->lock_area.width; -+ y = view->dialog_area.y + -+ (view->dialog_area.height - entry_height) / 2.0; - - ply_entry_show (view->entry, plugin->loop, view->display, x, y); - } -@@ -783,6 +792,20 @@ create_plugin (ply_key_file_t *key_file) - plugin->watermark_vertical_alignment = .5; - free (alignment); - -+ alignment = ply_key_file_get_value (key_file, "two-step", "DialogHorizontalAlignment"); -+ if (alignment != NULL) -+ plugin->dialog_horizontal_alignment = ply_strtod (alignment); -+ else -+ plugin->dialog_horizontal_alignment = .5; -+ free (alignment); -+ -+ alignment = ply_key_file_get_value (key_file, "two-step", "DialogVerticalAlignment"); -+ if (alignment != NULL) -+ plugin->dialog_vertical_alignment = ply_strtod (alignment); -+ else -+ plugin->dialog_vertical_alignment = .5; -+ free (alignment); -+ - plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_NONE; - transition = ply_key_file_get_value (key_file, "two-step", "Transition"); - if (transition != NULL) { --- -2.20.1 - -From d62be07815fc4830c5630c9b52a5b7ec08c62637 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 19 Dec 2018 13:33:08 +0100 -Subject: [PATCH 39/82] two-step: Make clearing the dialog-background when - using the firmware background optional - -Since the ask-for-password or ask-question dialog and the firmware background -may intersect so far we've been clearing the screen to black when showing a -dialog and using the firmware background. - -This is not always desirable, this commit adds a new -"DialogClearsFirmwareBackground" option to the two-step based theme config -file, which enables this behavior when set. - -The new default is to keep using the initial (firmware) background when -showing a dialog, which matches the non firmware-background paths. - -Also update the bgrt theme to use the "DialogClearsFirmwareBackground" -option, keeping the current behavior for that theme. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 10 +++++++--- - themes/bgrt/bgrt.plymouth.in | 1 + - 2 files changed, 8 insertions(+), 3 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 0f79795..53f19ee 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -1,6 +1,6 @@ - /* - * -- * Copyright (C) 2009 Red Hat, Inc. -+ * Copyright (C) 2009-2019 Red Hat, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -17,7 +17,7 @@ - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - * 02111-1307, USA. - * -- * Written by: William Jon McCann -+ * Written by: William Jon McCann, Hans de Goede - * - */ - #include "config.h" -@@ -138,6 +138,7 @@ struct _ply_boot_splash_plugin - uint32_t is_visible : 1; - uint32_t is_animating : 1; - uint32_t is_idle : 1; -+ uint32_t dialog_clears_firmware_background : 1; - }; - - ply_boot_splash_plugin_interface_t *ply_boot_splash_plugin_get_interface (void); -@@ -846,6 +847,9 @@ create_plugin (ply_key_file_t *key_file) - if (ply_key_file_get_bool (key_file, "two-step", "UseFirmwareBackground")) - plugin->background_bgrt_image = ply_image_new ("/sys/firmware/acpi/bgrt/image"); - -+ plugin->dialog_clears_firmware_background = -+ ply_key_file_get_bool (key_file, "two-step", "DialogClearsFirmwareBackground"); -+ - progress_function = ply_key_file_get_value (key_file, "two-step", "ProgressFunction"); - - if (progress_function != NULL) { -@@ -1081,7 +1085,7 @@ draw_background (view_t *view, - */ - if ((plugin->state == PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY || - plugin->state == PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY) && -- view->background_is_bgrt) -+ view->background_is_bgrt && plugin->dialog_clears_firmware_background) - ply_pixel_buffer_fill_with_hex_color (pixel_buffer, &area, 0); - else if (view->background_buffer != NULL) - ply_pixel_buffer_fill_with_buffer (pixel_buffer, view->background_buffer, 0, 0); -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index dc5eaf5..86c2622 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -14,3 +14,4 @@ TransitionDuration=0.0 - BackgroundStartColor=0x202020 - BackgroundEndColor=0x202020 - UseFirmwareBackground=true -+DialogClearsFirmwareBackground=true --- -2.20.1 - -From 6117fe683ba704041404ee3462faf0f768e2f396 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 9 Jan 2019 14:38:26 +0100 -Subject: [PATCH 40/82] plymouth-populate-initrd: Don't assume the ImageDir is - the theme-dir - -Before this commit plymouth-populate-initrd was only recursively copying the -/usr/share/plymouth/themes/$PLYMOUTH_THEME_NAME to the initrd, assuming -that ImageDir will point there. - -This makes it impossible for 2 themes to share their ImageDir, which is -desirable for example for the spinner and bgrt themes, which use the same -images with slightly different settings. - -This commit also makes plymouth-populate-initrd also copy the ImageDir -if it is different from the theme-dir, making it possible for ImageDir -to point to a different dir. - -Signed-off-by: Hans de Goede ---- - scripts/plymouth-populate-initrd.in | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/scripts/plymouth-populate-initrd.in b/scripts/plymouth-populate-initrd.in -index c2f46c0..109b649 100755 ---- a/scripts/plymouth-populate-initrd.in -+++ b/scripts/plymouth-populate-initrd.in -@@ -412,6 +412,8 @@ if [ $THEME_OVERRIDE ]; then - fi - - PLYMOUTH_MODULE_NAME=$(grep "ModuleName *= *" ${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ModuleName *= *//') -+PLYMOUTH_THEME_DIR="${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}" -+PLYMOUTH_IMAGE_DIR=$(grep "ImageDir *= *" ${PLYMOUTH_THEME_DIR}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ImageDir *= *//') - - if [ ! -f ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so ]; then - echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" >&2 -@@ -423,8 +425,12 @@ inst ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so $INITRDDIR - [ -f "${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so" ] && inst ${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so $INITRDDIR - inst ${PLYMOUTH_PLUGIN_PATH}/renderers/frame-buffer.so $INITRDDIR - --if [ -d ${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then -- inst_recur "${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}" -+if [ -d "${PLYMOUTH_THEME_DIR}" ]; then -+ inst_recur "${PLYMOUTH_THEME_DIR}" -+fi -+ -+if [ "${PLYMOUTH_IMAGE_DIR}" != "${PLYMOUTH_THEME_DIR}" -a -d "${PLYMOUTH_IMAGE_DIR}" ]; then -+ inst_recur "${PLYMOUTH_IMAGE_DIR}" - fi - - if [ -L ${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth ]; then --- -2.20.1 - -From ee2025824af4aaa119046a9f9a9399d36792b016 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 9 Jan 2019 14:42:53 +0100 -Subject: [PATCH 41/82] themes: bgrt: Remove duplicate images - -The bgrt theme is using the exact same images as the spinner theme, -remove these and point ImageDir to the spinner theme dir instead. - -Signed-off-by: Hans de Goede ---- - themes/bgrt/Makefile.am | 73 -------------------------------- - themes/bgrt/animation-0001.png | Bin 1579 -> 0 bytes - themes/bgrt/animation-0002.png | Bin 1573 -> 0 bytes - themes/bgrt/animation-0003.png | Bin 1591 -> 0 bytes - themes/bgrt/animation-0004.png | Bin 1594 -> 0 bytes - themes/bgrt/animation-0005.png | Bin 1624 -> 0 bytes - themes/bgrt/animation-0006.png | Bin 1646 -> 0 bytes - themes/bgrt/animation-0007.png | Bin 1666 -> 0 bytes - themes/bgrt/animation-0008.png | Bin 1634 -> 0 bytes - themes/bgrt/animation-0009.png | Bin 1640 -> 0 bytes - themes/bgrt/animation-0010.png | Bin 1613 -> 0 bytes - themes/bgrt/animation-0011.png | Bin 1621 -> 0 bytes - themes/bgrt/animation-0012.png | Bin 1619 -> 0 bytes - themes/bgrt/animation-0013.png | Bin 1617 -> 0 bytes - themes/bgrt/animation-0014.png | Bin 1618 -> 0 bytes - themes/bgrt/animation-0015.png | Bin 1615 -> 0 bytes - themes/bgrt/animation-0016.png | Bin 1605 -> 0 bytes - themes/bgrt/animation-0017.png | Bin 1581 -> 0 bytes - themes/bgrt/animation-0018.png | Bin 1582 -> 0 bytes - themes/bgrt/animation-0019.png | Bin 1578 -> 0 bytes - themes/bgrt/animation-0020.png | Bin 1558 -> 0 bytes - themes/bgrt/animation-0021.png | Bin 1545 -> 0 bytes - themes/bgrt/animation-0022.png | Bin 1541 -> 0 bytes - themes/bgrt/animation-0023.png | Bin 1481 -> 0 bytes - themes/bgrt/animation-0024.png | Bin 1492 -> 0 bytes - themes/bgrt/animation-0025.png | Bin 1455 -> 0 bytes - themes/bgrt/animation-0026.png | Bin 1427 -> 0 bytes - themes/bgrt/animation-0027.png | Bin 1407 -> 0 bytes - themes/bgrt/animation-0028.png | Bin 1385 -> 0 bytes - themes/bgrt/animation-0029.png | Bin 1348 -> 0 bytes - themes/bgrt/animation-0030.png | Bin 1316 -> 0 bytes - themes/bgrt/animation-0031.png | Bin 1245 -> 0 bytes - themes/bgrt/animation-0032.png | Bin 1185 -> 0 bytes - themes/bgrt/animation-0033.png | Bin 1111 -> 0 bytes - themes/bgrt/animation-0034.png | Bin 1061 -> 0 bytes - themes/bgrt/animation-0035.png | Bin 981 -> 0 bytes - themes/bgrt/animation-0036.png | Bin 989 -> 0 bytes - themes/bgrt/background-tile.png | Bin 79464 -> 0 bytes - themes/bgrt/bgrt.plymouth.in | 2 +- - themes/bgrt/box.png | Bin 870 -> 0 bytes - themes/bgrt/bullet.png | Bin 131 -> 0 bytes - themes/bgrt/entry.png | Bin 1431 -> 0 bytes - themes/bgrt/lock.png | Bin 329 -> 0 bytes - themes/bgrt/throbber-0001.png | Bin 1578 -> 0 bytes - themes/bgrt/throbber-0002.png | Bin 1568 -> 0 bytes - themes/bgrt/throbber-0003.png | Bin 1561 -> 0 bytes - themes/bgrt/throbber-0004.png | Bin 1570 -> 0 bytes - themes/bgrt/throbber-0005.png | Bin 1585 -> 0 bytes - themes/bgrt/throbber-0006.png | Bin 1597 -> 0 bytes - themes/bgrt/throbber-0007.png | Bin 1629 -> 0 bytes - themes/bgrt/throbber-0008.png | Bin 1604 -> 0 bytes - themes/bgrt/throbber-0009.png | Bin 1605 -> 0 bytes - themes/bgrt/throbber-0010.png | Bin 1601 -> 0 bytes - themes/bgrt/throbber-0011.png | Bin 1595 -> 0 bytes - themes/bgrt/throbber-0012.png | Bin 1602 -> 0 bytes - themes/bgrt/throbber-0013.png | Bin 1612 -> 0 bytes - themes/bgrt/throbber-0014.png | Bin 1601 -> 0 bytes - themes/bgrt/throbber-0015.png | Bin 1588 -> 0 bytes - themes/bgrt/throbber-0016.png | Bin 1577 -> 0 bytes - themes/bgrt/throbber-0017.png | Bin 1572 -> 0 bytes - themes/bgrt/throbber-0018.png | Bin 1601 -> 0 bytes - themes/bgrt/throbber-0019.png | Bin 1608 -> 0 bytes - themes/bgrt/throbber-0020.png | Bin 1583 -> 0 bytes - themes/bgrt/throbber-0021.png | Bin 1602 -> 0 bytes - themes/bgrt/throbber-0022.png | Bin 1595 -> 0 bytes - themes/bgrt/throbber-0023.png | Bin 1603 -> 0 bytes - themes/bgrt/throbber-0024.png | Bin 1605 -> 0 bytes - themes/bgrt/throbber-0025.png | Bin 1604 -> 0 bytes - themes/bgrt/throbber-0026.png | Bin 1605 -> 0 bytes - themes/bgrt/throbber-0027.png | Bin 1615 -> 0 bytes - themes/bgrt/throbber-0028.png | Bin 1614 -> 0 bytes - themes/bgrt/throbber-0029.png | Bin 1588 -> 0 bytes - themes/bgrt/throbber-0030.png | Bin 1580 -> 0 bytes - 73 files changed, 1 insertion(+), 74 deletions(-) - delete mode 100644 themes/bgrt/animation-0001.png - delete mode 100644 themes/bgrt/animation-0002.png - delete mode 100644 themes/bgrt/animation-0003.png - delete mode 100644 themes/bgrt/animation-0004.png - delete mode 100644 themes/bgrt/animation-0005.png - delete mode 100644 themes/bgrt/animation-0006.png - delete mode 100644 themes/bgrt/animation-0007.png - delete mode 100644 themes/bgrt/animation-0008.png - delete mode 100644 themes/bgrt/animation-0009.png - delete mode 100644 themes/bgrt/animation-0010.png - delete mode 100644 themes/bgrt/animation-0011.png - delete mode 100644 themes/bgrt/animation-0012.png - delete mode 100644 themes/bgrt/animation-0013.png - delete mode 100644 themes/bgrt/animation-0014.png - delete mode 100644 themes/bgrt/animation-0015.png - delete mode 100644 themes/bgrt/animation-0016.png - delete mode 100644 themes/bgrt/animation-0017.png - delete mode 100644 themes/bgrt/animation-0018.png - delete mode 100644 themes/bgrt/animation-0019.png - delete mode 100644 themes/bgrt/animation-0020.png - delete mode 100644 themes/bgrt/animation-0021.png - delete mode 100644 themes/bgrt/animation-0022.png - delete mode 100644 themes/bgrt/animation-0023.png - delete mode 100644 themes/bgrt/animation-0024.png - delete mode 100644 themes/bgrt/animation-0025.png - delete mode 100644 themes/bgrt/animation-0026.png - delete mode 100644 themes/bgrt/animation-0027.png - delete mode 100644 themes/bgrt/animation-0028.png - delete mode 100644 themes/bgrt/animation-0029.png - delete mode 100644 themes/bgrt/animation-0030.png - delete mode 100644 themes/bgrt/animation-0031.png - delete mode 100644 themes/bgrt/animation-0032.png - delete mode 100644 themes/bgrt/animation-0033.png - delete mode 100644 themes/bgrt/animation-0034.png - delete mode 100644 themes/bgrt/animation-0035.png - delete mode 100644 themes/bgrt/animation-0036.png - delete mode 100644 themes/bgrt/background-tile.png - delete mode 100644 themes/bgrt/box.png - delete mode 100644 themes/bgrt/bullet.png - delete mode 100644 themes/bgrt/entry.png - delete mode 100644 themes/bgrt/lock.png - delete mode 100644 themes/bgrt/throbber-0001.png - delete mode 100644 themes/bgrt/throbber-0002.png - delete mode 100644 themes/bgrt/throbber-0003.png - delete mode 100644 themes/bgrt/throbber-0004.png - delete mode 100644 themes/bgrt/throbber-0005.png - delete mode 100644 themes/bgrt/throbber-0006.png - delete mode 100644 themes/bgrt/throbber-0007.png - delete mode 100644 themes/bgrt/throbber-0008.png - delete mode 100644 themes/bgrt/throbber-0009.png - delete mode 100644 themes/bgrt/throbber-0010.png - delete mode 100644 themes/bgrt/throbber-0011.png - delete mode 100644 themes/bgrt/throbber-0012.png - delete mode 100644 themes/bgrt/throbber-0013.png - delete mode 100644 themes/bgrt/throbber-0014.png - delete mode 100644 themes/bgrt/throbber-0015.png - delete mode 100644 themes/bgrt/throbber-0016.png - delete mode 100644 themes/bgrt/throbber-0017.png - delete mode 100644 themes/bgrt/throbber-0018.png - delete mode 100644 themes/bgrt/throbber-0019.png - delete mode 100644 themes/bgrt/throbber-0020.png - delete mode 100644 themes/bgrt/throbber-0021.png - delete mode 100644 themes/bgrt/throbber-0022.png - delete mode 100644 themes/bgrt/throbber-0023.png - delete mode 100644 themes/bgrt/throbber-0024.png - delete mode 100644 themes/bgrt/throbber-0025.png - delete mode 100644 themes/bgrt/throbber-0026.png - delete mode 100644 themes/bgrt/throbber-0027.png - delete mode 100644 themes/bgrt/throbber-0028.png - delete mode 100644 themes/bgrt/throbber-0029.png - delete mode 100644 themes/bgrt/throbber-0030.png - -diff --git a/themes/bgrt/Makefile.am b/themes/bgrt/Makefile.am -index 4cb7aba..5fd40dd 100644 ---- a/themes/bgrt/Makefile.am -+++ b/themes/bgrt/Makefile.am -@@ -1,79 +1,6 @@ - themedir = $(datadir)/plymouth/themes/bgrt - nodist_theme_DATA = bgrt.plymouth - --dist_theme_DATA = \ -- background-tile.png \ -- box.png \ -- bullet.png \ -- entry.png \ -- lock.png \ -- animation-0001.png \ -- animation-0002.png \ -- animation-0003.png \ -- animation-0004.png \ -- animation-0005.png \ -- animation-0006.png \ -- animation-0007.png \ -- animation-0008.png \ -- animation-0009.png \ -- animation-0010.png \ -- animation-0011.png \ -- animation-0012.png \ -- animation-0013.png \ -- animation-0014.png \ -- animation-0015.png \ -- animation-0016.png \ -- animation-0017.png \ -- animation-0018.png \ -- animation-0019.png \ -- animation-0020.png \ -- animation-0021.png \ -- animation-0022.png \ -- animation-0023.png \ -- animation-0024.png \ -- animation-0025.png \ -- animation-0026.png \ -- animation-0027.png \ -- animation-0028.png \ -- animation-0029.png \ -- animation-0030.png \ -- animation-0031.png \ -- animation-0032.png \ -- animation-0033.png \ -- animation-0034.png \ -- animation-0035.png \ -- animation-0036.png \ -- throbber-0001.png \ -- throbber-0002.png \ -- throbber-0003.png \ -- throbber-0004.png \ -- throbber-0005.png \ -- throbber-0006.png \ -- throbber-0007.png \ -- throbber-0008.png \ -- throbber-0009.png \ -- throbber-0010.png \ -- throbber-0011.png \ -- throbber-0012.png \ -- throbber-0013.png \ -- throbber-0014.png \ -- throbber-0015.png \ -- throbber-0016.png \ -- throbber-0017.png \ -- throbber-0018.png \ -- throbber-0019.png \ -- throbber-0020.png \ -- throbber-0021.png \ -- throbber-0022.png \ -- throbber-0023.png \ -- throbber-0024.png \ -- throbber-0025.png \ -- throbber-0026.png \ -- throbber-0027.png \ -- throbber-0028.png \ -- throbber-0029.png \ -- throbber-0030.png -- - MAINTAINERCLEANFILES = Makefile.in bgrt.plymouth - CLEANFILES = bgrt.plymouth - -diff --git a/themes/bgrt/animation-0001.png b/themes/bgrt/animation-0001.png -deleted file mode 100644 -index 6bd823976167325046fb5759916e6883936461a2..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1579 -zcmYL}c~lZu7{$Q^#a&RLMI$t|oMDkPlaj_Tw@eZ%N->2nDL@n=$kM{ea)enV3c{#@jVv}3fJsZ|Ffn^s98L-Y -z!_Q=3_OJvP9$U;w-!DkR2-27wCLhD+vAA4j=6^)f*-Y+ky0p*IT!omgBBcnJ0Dmkl -z2!q36{P9Q}E;wLKFcvqx`-cW|#%Vqi&*CrvSZwgW2luwqyTj~Re_bUrW!}U^Fnin0 -zn)AH2!7OE_0R90Qi^b304WgJ$*Ljn|U~-v&6fTRCB4DL+k$7w>kB@ZJOU(h;d?3!e -zAv5#;H__ODyR`FKvkm=PE@rTqd?Y1>!!r|r^AE~CiSPpeEIT7f-^EiQ`6pxd?b_;8 -zP)82+ZH%haDdJqBR-j2?d2aAI%OPLofn`mD*4Ycj4)8pcaf#Mar9q26uB?WVi*F-V -zk^Htkcv^63W^MK7VePp0u?6X=+S)af+FHJLj>+Y6jXg%A(K(Dz)mqwS%+M|#nDn}? -znUdXkELYdwHA>1(%s5WqR+qm;z}tm2xuf_4SFQFIviA~F@1b711lgYkmrDi+1VYWd -z5pqwU(#vvT_?{$>cZc&6u}cCeqzV;LHv)e3p+EZgl4UWc&!KZ1%iLo+Ks?|f -z2v=fN)RhR1rc{+usNMHImm#-SzYUsB&~Z$>(WMPTt?y5iUvu>?686yFY`P->@y>W> -z!EXTFRDTuKm{vaVCwH6^Ow`Ka;W0Xt$Z8hi04u*OTdZU7{D16qUALhJIr-CP6i1lj -zJQWi3OoaM~NI!y6J=TSr2vj|Yy@j-Ve9?$6^fhH;f~WMsKsIQJ*YIqt%2tK$8=QG+ -z-&%#yR|J%0(CC!DwUHy1(3qEKSdA(Z%FH$8S^n&ONlRw1hu@$gF{gTC?5rn+dm>csxL|Xl`!2A$p(()iK7z}!pYsk?G%N62gt4BRho}h -zQsMzRsAvhvcjDX0mm9>%4s9$TigryF9O%=Q$h-t**T;5+vg>GKd%5?gLPLylRJ#(w -z=aO3Vc-58WzNTiF8>+R7ZRf7JFm;7k>6KOaDf;D*UkB=@eAph=BpsJ@MbYUchh0QQ -zx91M|n)5B2CtS%VvkfP -z2^jgew?K)8Ez|~*NAB%6$;%0j;S+ysFQq&$-63DPvR5m$Rn>=py!g$+(bW~gfy=I! -zY`CGu%42o+19OViw}=rsfmWQ~wycPg1UBB!LQ29!?;j?x4n)ZO#`I6{?%0(M*XX#Y -zrTcP~#F@FqiIU(iJEukOPJ3RT{5?r{tPvJKC}sST1uX3I(aI{;z}qf9`r^0@COUPv -T@C3yC*#RQMHj|n{lcj$H!ojpL - -diff --git a/themes/bgrt/animation-0002.png b/themes/bgrt/animation-0002.png -deleted file mode 100644 -index ef8ff54a5ba88688b91eeb3eba6753e9dc28a169..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1573 -zcmYLJdpOg39R4+z8J28?quXRSrOcfaV{up)l}pn>4NYctX`96un@gs2LAsGVMQG)6 -zN~!bYx;ow5r8OH1549TVDOdokpXdAeywCH#@AG~?e|_@z1qVV6Ee!zxfMSFE -zL$rukY6E@kWU$#^wE&?79b^E25qzna0awZ_v?Q7t5W)P7m_z_j2~;uxl}IF$W8zQ@ -zdK~H~k%^)urIM-1%mfrOfj}lOPz)N8LLt!qLx+XKZZ#FoE@D! -zQBF=MXBUK%lb738FGr`jBR49vo)t@;Fd~@%I68X$`<#)R%1f&G)2`3>B`88SukDoY -z!4I?GfT%|Pu}b}?4rkTNJ66gpS9pSb^wC)Y**XzW>g$YCs(o~ZEq9f_OZ3}jSmO@s -z;+nMW^$mGmo?|3@b=G>dSTgfFfL)$djE8Q|zo(|cGb`O;VidyAQiM=^*5bQqdXfL -zAZnC0HSO{&Nv{hx2^^C5q}&W*tqF47>^p3Z7+t(Sfi=TmZymx4>YpIbO|+;7+VZB3 -zU!_VGJt|s@%8o%<$mx@OH0gBcjD0TNG)hNPVbGfPoXQP=531f{*JL)~yff%~vRUC` -zId1j}c*Wtl9ka$Fpt>!2`L`#wzs%XHS1RQBgm0X$GCQ#Z{=N3VgDc34lEu3+pV_AQ -zN8StDLs`xQtuYH3}@RvuoWXbt -zLItOx1y3`GvVSHEI!Dqpz)2aIe<^LBU~MvcUFqF1?Q@{9 -zOs|M70@qHrn_TYDgl+MA{aHERzX+P#ig#fA%9;tgy4(IErXSsthfwieBgqA} -z?eW%_4S~~~ZQiSC)Z0;Y!4>A+Xid(eBQs;(%Wg-Et-^oF|_au+8)%Lt>T&wrJf=sjvFXJiJp7 -z5_vdWiBQNRX=XK%HG*;1d?70#2IH(?;Ma*B-siLtC3hx1MVd<0?|qQn(n_xb@GZPf -z8B{icNq@^yY%0Xzm1-O}cQQ}Ge%4vI@WpM;>ew9exzU61<88xjL{Y6^0z=3BHG|ZE -z%y~cRCv(&gK`Hu41$qQYOBkqQjy5YTQ{KRW*hcsAedXubuwu)L!(OLii - -diff --git a/themes/bgrt/animation-0003.png b/themes/bgrt/animation-0003.png -deleted file mode 100644 -index 205380b1ca8e000f19adb89243a71cd48bfa579b..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1591 -zcmYLJdpOg39RAH_u~F8#teZP=lx?jtmvdHBqO1!tSu!kEcCpPAVQi%xMMA1Yom4I- -zLz3jOIfhcAa?1%j5prL}=z4xS=RD{8d_SM}dEWPZ-tYU@SF)Gvs*hNS002PWZRfWA -zAR5n)4jkOPsHl%1=yG=Y@&Evdo*xKs -zV>b|t@py+#_6|7wOmNP1&|@&~@nSIP01oHy?AdI}L}$?f8jHcC@fmEEF#&gk!!usgp8y)r^M?IkLpt~W -zH*Im7-Ml{YL3#0y@Do8{be^#%jmZHKz;7VNUc}e{0IbDr+g2}%ZdT@#WH0X}rz@p* -zyp&MY5Y11=t05<$u6k#o{peXOF_CYsr)T!&DGZA@X+@b@ -zBv8XDB<-<%GhY(Da}mze$90h@V`{ZGnW)XUWYW;ce)sFVOtHCb5SzDeIXDYIj*`i%OiWQuTrVUF< -z@Yww15@~K)NQyC;bzbKoQ~<1o6+t7Cd`CFTZDk3bDjQC^d8W$KBR}yeq3qH`U3eFw -z7uu*eth$z{^!QQ(*fh9TJ<8A|9q?ZBstWOowvVFDQWh&OVYA*UZkJ -zpZjIN4jhKCMShCX78KR>+v1aCq5g5?KsK!HK*YFrWQ^gvm$tO>S-mgqs$-PA-^m3`XK6cFdHyI}BZ;6i5GF4bKM1s!hdk!=2XT-p7K8%D28M$9mmWb{b^r -zK8nO_$Bg}Vl$GBcGr*v4(E=;3eb43VO?Na81sxuN?{kG}@ylm1!`L#(!TO$C#N;US -zFh^HBV@45cH}8Gd{d}|^J-xb^7c>q_(Lz4x-SqlbRwNKKyg*D)$ZnB@lThef#%qs+ -zoT*hX_3?uS_5x|i=ukYmOS>aJWRl&m`~J8KTdDjOeYGuJ_ueA4S%3lZxv{9gF{^8xvNFIV -zq_#e4X0y#SdN^HRvR-W3J>JMdWf!_xK)cH%PFmCaqGo66_p;K@EOp$e{L;pbyrtKJ -zw_7H^4zG-bR_SKLM+Bo!lz!tmR~W<M{<`dUMl-l%DyyivK6O{a9{eNClI5iavh~W6OKrTeI_8!hSn}(@s?hSI -zFKC44=(wX=Vc9=zsb-y-IHG!0Ig!|8H)3AXJ*`_WThEnuAbZRU41KeOb%0AWU!#ol -d5A3`Z2SJL6rEpG+2>kc}x9#L@GUtGVzX5+W%Q^r6 - -diff --git a/themes/bgrt/animation-0004.png b/themes/bgrt/animation-0004.png -deleted file mode 100644 -index 6038af8bd429a28118214dd308533e60107d531a..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1594 -zcmYLJdpOg39R6uTVQ%9@7wt)?7Te5a?aZZI3URO!B{nm&7_&_^Mr@TXqM}kW6FNl} -zlHA$qFzFB}HA;(e=|V?thn;q&bIx-<&-e3rpXYtw=ly>E`ke9i+Xc~DqXhr}#A~;E -zpbBBjy;4IpnMp}ADp*C|9l`_vZRm2V0oU_QRHO^bBben$jU@w!=y)0#ahOV@5lILp -zgM^?^SqOS8n--tQibk-a$uu$(!K72;;>e8u&?X|592XhE?E;Y)Ldk7p~|Db?Ac4DkpUzU`|q>MFMZ~#(pLUhg+W{v?J#;yNEK(W -z%(-H_q6dRliN?z!oK7AT?7ktP#q4%VGKu_M8E%$UBepVBw00w+-XovUs8hC8o!S63C -zZ9hN~Iet%N3Y9ajt!i(WExg^%9Q~cmM>BjE;oGtTv -z@B1qQJiV{CK6kdc|2cn;rB9E0OW<5rj`jW*j8<+nK>+K9 -z{x*lZRXz`%MUQ`W=Kc|tIn*_@T9WW}Ge$=zl`6Jxze9j>be&fSFBJniMn}6rLFG9eR*qvwUgi} -zHS{&gg0iDUa>}V1p3IxpS>ob49R_0L7GoDEKWF3SY4Qfe`SBw^^|MZWIaO9y?(cnu -zAk?hjrHDQI&NP)2L+FMawQdl3o_kBel&kd^l5)G#wHHfwoT$h;KM7j^6e}Gx6c5J( -zjulLCNn$Y{DpgxD$>!EdLg)q@jo9J(m(5mA?!`B*N=ysC#ix5_hBd9yy`R7EI7+I; -z3KEaVL*)G4(#e2vj%Wej`=b6yhJZS4;fTXCuKbIrZO6 -zviin@#zs52g=Td_e5LPU57$r|`u`8XSTLX-@B3DLpfRA$yQIU&M(q#&e -zZMc_k0*b+;Rh#X8JYZS<$vww8VQ(_Th4HfYAsd9k?tHHoir;o@i9{C+Xi_0f0XAg&g0u|2eU -zwb+7?wtcIhZf-47KO7G)^y`ymbIeobzWEo4!wR)hUzA1LKdTwiU!PYhlg)jMcFU`Y -z!754elp)ACymEW!{HT>vAISg0*1}^aVa`!Gy11v{chUCuo@!6^n&h!ocH9{g-P>s< -z3rg&6`g2YDMDazy$Px?Mcwv`58`5PNX>RI%-G|Mk-}h?Obm0}SIeVA78na3odcZuL -z`myn=B7ulhksI`6kbLi6cpRm}!hgFjTa5AgEvbHBTj!2KIU#n=)6 - -diff --git a/themes/bgrt/animation-0005.png b/themes/bgrt/animation-0005.png -deleted file mode 100644 -index 7a967678a0fcc44fc8238e53a5de9a88d0ff5336..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1624 -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 -zJ{{0XKM!(vI2fE359h!9)U3tY -zm7#grc0QX%QC6u=u|$Xbe7#=$X2L8DiBf -z2St`ur?B$eL|v@T^A6N>+nd&d$Q8KtADa5%aH@1^GOi2SOY%6>vzNRvG!B{lO9+VQ -z6T5(;k{ZV-^COa?b|OK_zucFTSKsz#g&h0qyhYJ&`zq~Yqo=qpLEL1_+7w6CdOFr@ -zV#{KbHYS%skRp~AKjzV|=Z;){S&^%5gxF4I#Qb#cZ@leguDARM;Th2~)C5!aa{Bi5 -zz;_&Ub>gd2yP(JK*mxwL$PF2a{w=7rspIo&tGQ)m<%`Ud=fCc*AN4x6B2uT7N|%xv -zERTuOnoPiN^439vkFErn?ia_n?+@zs>b}UrY&YqvF-gv!)gj-&;LAkqwL{fc&w2d_ -z3CKLrw7j_wjQ&7MohnYQ_3dbO>m9{YCo;MA$HBf$A`^>2j@#3lfLxTHDX?$tTdj0_ -z&N%kS)^N&uQnS~_g&xsOUMR2Qw$Q@+=v+9qRD=u^u#DTBN*}juE}}kG&c%PG=;ZTP -z1MWOASgn*6POdsXn>L<4dp+%DVi~DB@f{ad+37vmf%q7+k)7R`oK^l7`}0nbD`wkl -zmi^oN$d8jI=)m2@P8quSd4b!ORpdS7557C$CV6@DZjMAD+;vZqbv#??z9T86cY6&u -nBWE^xSySxaK8cekt4@HAzE>A1gVN#VdkMrv?Tc*LO&0$fmG<3V - -diff --git a/themes/bgrt/animation-0007.png b/themes/bgrt/animation-0007.png -deleted file mode 100644 -index d2ccac920882325a265fe11365dcf170461cefb7..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1666 -zcmYLJc~H~m7X1-IkTqCjNnA*wPpVOVSt=nRC`dpML1cHJX(A*L$R-K3p@1Z*C|i+N -zl_Ca$by_V;Ky<1g5*0!AO$1wtkx-FENMwtE(qQ}M&3yMeGv}N+_uhYQc5u)k3sa;i -z000*Lev}YBqBd$1O#cf~Qy27L!uLBa001-VjWPf(U$NJd2ZTORLSGh}0e}fS4g*YN -zaX9o?P>>u8#QiKVhFoD5g2tWa!#pN=R|A#Io*bHvm2}u`JA7#H0MWG8B -z01kt71F={Theu(tq0u41msMap*!8kBh=%n0x^Wu9oNx)*FTp -z{e+C<|Mzsk5cY?5jOpc1K8A~8*$e?Hl+NMn5y0ZyGA`Mp0l*09Pw@(iGC6Z8Fn7eq -z>g=hO!NoK7*}1SUU?x|c+kC<_=QB~MeNu_B7IoDa%rGdRlA&+|_zsE{)ax-Qm+P|R -z=cUNcToS{~vs;Sp%ra$*qQn)#0N#D4QPbqq)UVY=)wAp7FzJK-rKP3+e&&#~XFg+Q -z@j}HPbJl-S6+_u+W8Pl!lUr8u9XrlxdsAA6m(t?;<|gnsLbm7rIN|);zJyy3SMpV^ -zd?3cSTZ*Syq*(-6o_&-*`oVFn+v&B%FyExL!u(X`A>|ty{Em5yX=U@KH8b;ZGmWb* -z6B>k{^`jI&UF(EdO?*#7cx*plX=yM)YPhO}VUC)-vbLo{9gY=N&A2O$oX<5xCCSL9 -zI}E>lK$Pz({>lgp2lJk9Z;CJ6W}pxYbjZo0I24Nx?3rc0VQH*-U)uJT+YCe7t6739 -zvwl(qD7Bl(7j@-~Uax;LvX;TO)7e}X5H)#w6>BakX2jz@V7;L7avRw{yyyqf1!oCV -z`B0`3|4gf!TA$h04wCXs;8y-_Uh@uL_|-MLm_5Ii7|zg!+Fo?4$N&Ho{ -zZ}pI}gm#~>pv5!>6RxwZz9Y}Q=Zr~jT6T^RG`1yw7+X)g_2`P*w+*>)OcS6O&_yF6 -z2klZaaJ_-b3dXw>F5F&uR&}K8WL}}&-Dipp?A1qxm)JqAL50&SxzF>hYJK?%&#otQ4v-KRxszyOumD -zkn)1DZS~kj?qcRvPtrnK$nFB=;hDa>z9BsJ&)szqrf-~+Q*IeYYi7T+$q6))L*81e -z;HrJ?kv*9aRi0O{;MDdz`ZWR&NjO45;6D1axU5&Z>E2JJO*YynE-be+vN`myZ#u2< -zNLOWG)$iUB3Y=b-)WWw(*Wp$0;;1CLs3(^2GL^i7A6u2&6w*V-h@#O}+1 -z4U)>s`J!|VxWzna04^o_l1S!hHt87_50|~1VX?nDivyF&VjwXCH|CSO6aHe7%0%IZ -z4}3}hry#YaFAPiiEP5agg-zmu{zV#yi7t4e?!V!6?KExL0}))sS&E21NOVb;oHW|z -zU3Fm@v&{Q#Yl9eps0o^W)ckt+AkNK@Y6z3%C@+24Xc#0MT@9=K{1`DAEz}`&o1a8~ -zU6v?~GWdNmxVX@LNXw<&Cfl|#M;10CkGAGJmwkt5Eq2D)HPD2#yUSvwB0HYc3-!j2y|4-_p934jVY6ud*F*2w80;^NsE3|oh>?7wW -zqdgaWs3o`GJ9ezZ&0Ngey+ztt_cd0ua4Wa^rsg@QK3)H3{q#(AScLwD0{%Whlt -F$=_zH?q>i1 - -diff --git a/themes/bgrt/animation-0008.png b/themes/bgrt/animation-0008.png -deleted file mode 100644 -index 85849c8f8bf3d6f785f39567b2e58f6af9c03102..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1634 -zcmYLJc~p~k7X88pVG+WjRF)v&w3HT=ENmevBy7skQ~^;cNCG4fvnLXOyJ-EYDl!$nkdEqaisbQg34-OLfbj>&hNc@&b{~C-}~#G+)dr- -z;^gB50Dw!tpq}t$8w7Tn2!{k^X+fI)4SzsyY0*iio}@ -z67k(aUn}Rn#>H7F5gqsoLU6dyH@AuDR?%}!OwVWV7yzBe;?f}&pN9#>F$H3b>xA5D -zSifdSvu?-`{r}GpTtrgFGGvuK{tPe8=P<;WbUIgHMF3AAO6$Eg1Ay&PQamMNzhg!H -zwojY(ZaDGei;`N8aD0us3&kCu%=tL%LT%;+v#Z|0Nws3PHQ{)eypHC5HEjcZ%k_a+ -zoAE&8_wE<(DDe&6K~WPg;m$|=-xvRL-EJDbcJE;MLv;mHXe~OM&8B?enowVn)1nX+ -zw=_*=_B5|AJ@X@4CfN&NA4`nh9f3s`j0FVmlKJzaw~XN(^&+$;{RaYibZ7-2I#1aj -zk@@xpwj=)q7M>i>L$~`k=2Sg0$jb~VMC0JBR|yi0*lc1dUozSq4})No9aWCq1*4zs -zrYt5u)Nugel+$71*n32jb1xZEsoO|u&n+_NQ(&>D1f(9_8!QSxY|yz;w5~@l5APn- -z9V_oc-d^-06Uq|2x0pe)CVYBIdC78k{&oVa-W)8u8 -zn|l|FQAUuT=6L380QRR%bwkjruoBy|GHr3uKw6`sY8A{zWHQfrXsVs30$*InO(J}* -zZFTSf?B|xcTLnQah-{FVXECdhb9xLUbtNL5v!$u;z6f4$zx*`4vf`lvVT&@bY1nob -z(o5eD|EN5=>eh(Zha-$>({e3NDDc3%jUeW`Hn(4DR!YHBA0>?zRa@NKZRWtvk?K1s -zL46M<6*di%h2@g$9^Iip>alx$Kht)qPwzk};1!yqk^@`%O;}p4%dQ}wr415!YvDBs -z&o@iEsYX15TJYN6m#podSvh{~t*!vrr{2O-j);3}Lgcx8s{N$$Q{?38lWIxkRj)4st;)ZN#XEGc-N`nfE(Z`qVOMQ1NzPCW+E+tGu=yGhUz%MTbo&M<%Nm`IVIZWt(+ -z>sLND<5hCwded7bliugp>?#6ukJhoth8S98`$tcg+OCpnJ!({!gg~5KGKREmohH-1 -z5{&uaz{JJzGtZ4m&Lo$V=x?9O%WBj^wMj$f73>J@X0W7q*Vgnik#jnONsk(Hh7*a -zshN{?eT$q(U6AT+xJ#3q4wPyJEt4X}sHk6yX9P)=I;_^szC_hZK -zXMU_O*mMQ`kK~ul>AGeq)U&baYHjm~_RZUuJVqX>Cg6Mlhqgr*9g$O4JN@seN|%XY -Vb9~PAKI@GHk`k!#t+6!ue*vul*6aWP - -diff --git a/themes/bgrt/animation-0009.png b/themes/bgrt/animation-0009.png -deleted file mode 100644 -index 3e79b9bcdd7c337bb0de3db1fa15ea8c05e38917..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1640 -zcmYL}dsNbA9L9eLh=N#J8eUp7yW8R?lp%RfysTy^Y8F_KA+i7ou)JZSmANu=X=aDa -zHBHOXRJxF+P^VNhGrO46)FQJ68q*ZaNyA;v&UwG@=bYzx&hvi%dULji2BDFTNB{uP -zA;AIRCSvEt!rXKVQ&K*gV95{ODFgu2g1LbJ=cO2v=p!OWivrmkCV-1i;4*PPvbkJF -zEKVqh#j)5T9G{cSO-K~Q<3#aHE>nmT^4UBdQ}7?x?d33e`}Sr&hMB4`b5#Kh5fi|J -zZbY1$8xBvvy19`yc#uGR0(acel$k%5iC}Y?00@%)Jsxi{)jE@B@%JhM#+>O9*yNXM -z(ro6m%_d2}0RF)`5G4HBMWmQayE&5*%j7Wu29M2Uh}a1{ECGz;3$gRmnWn&kxj?vS -zL#E*WH`jq1y(#T)O}6dd<;k%erVvYEaQP+zZg^t)S&S)>52=;~5+A8r!vG!3$3s)znr{6Cnr~4w6k4jh7+Bl)eh7N<;1r&*qF7+bBkZ?m5A?>XQe)6mj|zLBaF5Bc#e`mNFt -zMG8kh+PBB6PDlmb%PKEkuD=a`){gN~y;cvwl3>n|LmA8I+c!c!Iz~g6WYiPo7E6{7 -zd&|HKVi7b~V{p*T2U9<~mr}Cd2l7!MCZsn}w;^efwESCYZF_nE%%j?OVcT!r-iQ(e -z2|U-VaMLZ((Z)MgyPs~2wvQRsd-0Li)cdP_LVUXK14LQlO69L~I45J@EN*|+fmdUY -z&it9-M-Ny8x$zMF5cF?(}3}#F=^4|?4c1s{lmZ13&Cj|v9MRaO&X)YzRmg#1!R^B`3-s83f -z{-Pd6lyZiGZ?l^u!-vf7R5tYiWIxm-y_816XC|U@6FllhDBVwLJ#A)V -z-vG#v5%V`kzFN4ex2qp3ziIh^_N$ZqJfe`H&mJyZQ`i`%h@Ve_dPiAH%Y+Be%stn$ -z)MO3pL$T()V#bLxxC?5d%_ZW6MJ -zZ?J}B-*4aB%X#ZNu<6i6f(Y>={=znKWqt9c#8;|G0wQi~;xPQx=4@T1U35WtV7SES -z2@&W$b)!4JJF=x&vQ1EP>;`!Pfru-~rjD4apYJLZuXbo_P)M)zD1#Kq2HQqRlNlLS -zr>>ctW|uV`tGG8KT_bK5GAml-i&!40PiA$hP@@g~XpQWr9i`SW-!1gt&k<9niMt@U -zzLv;N=gt%Ij+9a&p)&n?=9kvA95k+u7SSAsHM{dwllEDAcmO(vR;fJc=dXKpYc7(&P9M#qz^ih?O -zM}}yC<1J(}&}N)PYAdqX+qi{?xAxJUlf_#|vhU5QG$&H%*;&U6mp+ -z#`rL}ZFGx%YQ>^AaZGsHA*bW1Z7&U@H@ryeGtNWr_;J;x#>#lt&bm|L;o*BbhQ|5I -zn<|A?dmFc`uk=jBlf0rqE7k*FsT~*7MRyH#5$=H)&g5qA%yvbE?RG77q0&L`rR*&0 -z_T>F<=&0nd1cD|E{#+%Y?TWZyyw;Oft-nOL`Bd|~*e85VZGB&&RBRQB-a6dda+%iq -cdAHU$Pk2Da5jTWPn|?|lgd7@B?N87A3!Dev#Q*>R - -diff --git a/themes/bgrt/animation-0010.png b/themes/bgrt/animation-0010.png -deleted file mode 100644 -index 1f64875a17c6ac9bea646cbfc133dfe5013ea639..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1613 -zcmYLKdpOg39R9JHJ1fbxTFG?X)n&+S5lbae%w-K*tah^vEeb2QBbQSysR`9_=|VMK -zR%gdlC!;Va*AmH*R90jpIaAMh&gc1lKJW9q@B6&p&wrn+-MhT?bwZaWJ(3vY#$;Q0CbHOTMalXG*yvqJg;EhHX5A@AY)hzD)JzW!H9@Laye1R -zXc`a6rt=xBI9?2r7ei%GxkxUX#$-}C{~;ohPGwRe1+8FJl<8uWX9SN5U{Gir5{*V; -zurM^*$DnhCQkcsht1+ -zM4;>mfpa{Sy!2-{KZ;J}!U7@~Y!w1%4DMKw=|%tmj}SaP0)w^Figsp)dqLBq;TJz! -zT`(Fpky#5e%OjUV!n8kyW!*LWp^=K-4999WkVsbB6G}h;mKHazyl9ytJ1G=Pp70!3vp~YH}he`t4 -zGQeLudDFMaN6aoNxk^Wc`eDdRZTl280{qPp3!z$5<9gwD$SUg**LvF&Trnue)sUnf -zOMk2ce2;40y&rqL&v0!!LZECMy>ms&BX?syAPccUf=XX&@)U+=)O?R=nVxLhQmp55 -zX-zjV89bnIZszQ`-?O}WTfkuR?4iN+3h<1sskFfzbC+^;vJ{Rr9en`9-yShiEHCUi -ziF&Db**lz4^m!dl&p_RGR#PqycOS)9J-F<1zCSn6tAv886GR2Z?Z+tHL-Js1utakl -z-F(>r25euW#2^`PQwtpu_84T?rUpfR*b4s&nK2MPulix$;0V%s`XP>7ma`>*SrQj- -zE>v$wVVry_Hi~}l3gJ=au67mtg;&6p2%Di>o}J(fe?`vtcRwg*4k>MVR|*Q99h6zz -z9vbc7TOx~If4T(kfUGh4sezO85L`)nPl#@kL2 -zqKG60*(|IK^Sct9N6JZT|Hkc>6Uif$Z>4S3_*)G>Y;!b+3<2M|$wPyfnHNWOIqY!P#O<&$6z4y6nJjxPt6Za4`ji&CfFE?AI)h%0Rr3>GrV1Z`=o* -z6Us!58rjRIAikk}r?W_{rEz{dpqDkreBRPJ(ENJvLv(+>uMAS94Zj(9LPA`r);HGN -zLTZtiKRD1cdcZg--PNj_v)@}or@`79#}5r9xD5q7`zLQnS4Oqhu(UT(vjg_hVqPMx -z8%BYgd@5swN1G%In|(IgtuBSYLsPr-VlM6c#(!&OdHhE5vGnNrA?TT+(-+e!z-vr4 -z*RxbSD|FD?OU&JE+#F6R6wl$FI61XENvzAy<`Agl%IN`?0Eus!{YVzybX?(?_Uw5) -zMLT`+v#8nQFp-wrmmq!0$SOobX`0Rt{igBt32ze5&ELCV3tgQS?edE2C|Nbuw5`tV -zR>%1Bdz%zZIsR#t+c?w7U*6Gd?zP;^omVUXU4IBqxH=Cl-Uoo-wac>>PZs>1eYOb#!Pi -zbZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_VuH;C0000ObVXQnL}7Gg05UK!I4?0V -zFETSAF)=zdIXW;hZ*B4#0000GbVXQnRB3Hx05C8*FfckWFgh_Y_1G7K00008bVXQn -zMsi_oWdJcTQGWRT0000HbVXQnLt$-Ya$x{NVQpn{VJdbW>wx -zZe;*rZfR{{bZKvHATuy#aC0CJiliLMUe=XYJNLD%eqvkgs!jIWp2pcw -zu7<9q=zq9bUIZ@y*ZaV3unXJ;-k%A61SsqrM^NJ|qysiPC%DDbYe_M}{=w%(v7CEo(sGq{ul-2Vi; -zM<;HosAN0a9hJ;%>r3Ey@F4Jz_!pRjL#R{FTDAKoAv|j`lCsIjPk@tjb$2Rf-DoWv -zNr2sF!E3+(I+J?^+rWTM{CVKi{|)TceqgtbfhT~8w&LKD-FOFl3qCWZ@#Jd}TmYRN -z0SWFwEBFf->>~IQ{0e5AopL6D&aih7ybaz0l8J=u(7V`w$GP9!H1@>63Icitq=J8t -zt=fvk7vKzbSHX539C^nk{1P@FfRBI)kICX*HI{LuNfz9X)j!vE=YhR{6Y#z-fOFV- -z1w;Eh8;V2r?AC|iQ{eeZ4(*%$3u{TFeHy9U08Y71ynidd48EZ{hiwS1Tq%XPhppA0 -z0=P=HLpAoj-KCZYTjxS6X$ZU_4rm#vbj@7?$r)z{5n@y}x{57C8o -z{q0ZJufv^o$<~>Sl{j!)38?cPU`Jr=T5@v8*U$v!m+j7+{4_V58<%Yc$i_(*e(zQ< -znM6wj<93$`ta2u4H{fooypv_8UrLy4PFCdJ5W#h02@QFt~9AzIaif__fEaTml=?+ -z>ny=pH_}0pQdjjoK_~ka;MG>r=e3+^PcaKCyp6(yeCz)J8k(&?v38@q0q~`iio!8E -z1df4wkH!4tpRmhw5yw4S*Ct>Gq+E?pv7e`{yb{|~&fY>7To*cy{A5{2yohk!g??Hf -z1@9ShYHgXXpK~DhYL1|@1OB_UW3W=S2`U49Y=C;jEZe7f8a}+JV*~$%GN5x1GN5Z) -zxt~OK5nwoH&?TMmtGWO()QF9K;P1Iw#Nf!xQF!1A@SfE9E*Sh8@VCN;%Cj -zOW+1Nhr5w>;9dezSQ)YhodXBaYf<*Fa9B;`4hd}6pksg0VcRI{@P#YTLPc+(KSEY* -zh2Fo3Bq6^HAE==k)Po0jbx-U2jNzkPf=CK4(ug?e74yi&bsk`-H3nn -zEqb!4ig - -diff --git a/themes/bgrt/animation-0012.png b/themes/bgrt/animation-0012.png -deleted file mode 100644 -index cdefdc78205460aac77e50eed3ac35b2f2c15456..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1619 -zcmYLJdoCghqC)<+b5c0uM^X(cHsG2}MetYtU0XllZuI3l^E3$5ExE~T5K -z%ch%^FG)7jgpbBhs0?4@_F$3m5r|ZXTW}43qxd0`x3j^z5b5$p8xF`Mb~<+WV~@ptkhaDaiy-L}SFMH*g?lxX5h= -zsbm818=O%nm$`Oq2q>B^iXlWYgA5QDR62n}Wik*hs00=pVKA5l8jKeWd%z3H$^Y+k -zM!EZjv<`r>(XVhWkw#`CLI`vgh~Q>ydYQQs06@nAaGUmq>tvS&GD|~Eaz^xmZ(c6N -zX=T~w+l`8_d<_>{hRq@!~^nAwKC=n*M}dA -z^L>3bt@t&`@SGT*_sKiL>7i$Chqo=WDTTG)Gc -zY}XBo68jWiBm5?9h!;tupOQKqo4J~Onzar -z+hlq82QQ*uM-LR+i4EQG!Sy(-E~sjkrqlZRR6l0Hma~Jix@%^7{Ct<#wCDCk_+Rxq -zUsQ2wDdT*s79}&+8{+9YYgRvhUL>#|ys%RVMU@xq@ayO`KO-`IbnZ>Jdt?DZ2f;Ix -zrO0b;hr-3J36SrpqRnwzw0PEsHofByXJF_Ox1{332DQc$Kk}c+TD8hXP%@7=)0Ai1 -z75I$kS^Xmh=^9>1II@-+azP89k=k-~%7KgAF&aIo*Juzqyh4v=1oiRhG0m_HM%^*zkQAhcveAX4zO_|N16-$?2T~ -zUDL^hZZg+zlPzZC^tP^P^~3I)Hmvcvs%C}LwdLd|mNw5A -zdn?+6FPf^K)=Q|u2lBkSUhP*B>HIQlNggr(aS=roWgV#<>z@71MtI7l*HZQIV)}R$ -zX=5>_an_U;UbN{NwB|@#iD``54Yf@EJoC#GwMEguTQYCvWkaDs8suJ=Zr_T%64M>^ -z6lxtA2#5`pt%6mW@~>Oz&QohmYtWFE^)?A22~A)BkP$LJSp9xmn0wgRwYvus -zMn>O#$@{t;=(6bHwY68Q?#s4#&gLzcoljG~eV}W<>TJd>S(5vY>K&L$$&X6G%m_qm -zDX&Jc@_i)(2Qb-01NJ~^c&Ek8vH|Knre4e|XSl=d{M&eV;YCtmu%Z}{MRh{JRv -zN38zLrBKSb+C+uU1s6QY_tQj1NK&x$(d5^)(uR`)^ql3(Oy*;fs`BiyUAKkv{>@Px -zG2848v?BQrL^QQZ1!vu((^UFv?y4N&vRxe)<6CV1{Cn<11wz*8Tw2p!%!*?2=Y-1L -z%6;YgxSA$E2i!W!`8y#pYn#AR{GiS}6kw?pe|Y^{bclU=etoRHVyBV}k~S0+3w)Q>(SlJ>DH -z%JXaL4w}+)YEO17!8cuhBFssDdJA$;2*rEc6_`2boN6C;GV3*U2ut_l35<~m5awl< -zpV}doYYQT*_-DGDXAj2@9A5e;`uUrh+~RwEUWBp1&pP^SkI;%eM!|v&GZH4rgP8-n -zQo?t1F|6;rZS<)r?5W4sqtzG1HO_Mj6!=T?NImR{9z$GD*t_ZC(27ZJo`2h&-D^!M -zrCxcSW7qSgN{W@$oq#(ZFeZByYhIuz>epAQqB*76g~HkejW$xXLG30=5L< -JZu-S#{R<=3;bi~- - -diff --git a/themes/bgrt/animation-0013.png b/themes/bgrt/animation-0013.png -deleted file mode 100644 -index de5aa6ec0cd0e46ab5e254855ce0ae1f01bbe6e8..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1617 -zcmYLJc~sJA6#cQJ;hI^vFPW($C0mP7(uNs{=7dvJYN3!Dn}C?ODHk!%)#j^J@v=%`2zhY^Mr -z3c}Fgks>so9nay#iXzaW2o{GWL<{+mTrNxSA9{qcSzKml+H*Jt|JgJI3DM-HRxHg;0cW6umB8(`14`$HeKQhP+RUiZS228zoUL|Pb&%K{kONDf03$>TcWF-Q19N7I2c&|tn`*aL3J -z68!(C2WCAb@S6yfm;MNk4`Z{0jx+{`40<0Q^!oqnlK(v3lK|!nFjJeh{2J_65GOsv| -z^Nl1vFQvj-CTgFngg}f>Z0ls|E*HMp8r~9ac8Z-H#^-9jTVJ#t_>Um!{ -z5BWT5HmT3A-EtU4G7N#YsG1L#L2Klu)YPg5qx&%JFPhym<=Z+a>)O~*guOo><%KBH -z(@*KNhY%I8=~P6m!o(gb9yFLS(Czf8`TO)2qd(s1;8FF)tDVzzCZ|##s8;X|ZQ-Mo -zgw$ZUjd<9BkGue}dHA`>(WLXK>wMO6&E6OT`W#N~)arf=CYd!H(f=w(iMMUc!6Lq> -z&ncAdbPE3+4%xj5B4xjFhY_PuiAFt9b_esOT&|qNl&Ts{6Sfe?;gwUbd#+3?-KA?b -zo+v7CLda*A$pts7JJpH9_C4?q9;usCS}A&>Ks4m$6!(1Y@dR~wgRw`pQt{Be1e4E# -zp#pm(=4ZYe-s&NXn0LFC)|i>Kr%I`X4oU{!x&boz)=SQ8FL*4|gljB)yOZP``=L|N -zzqnWR@~C7>jZK;wICwv{OPZT%ch7_bIRr&tUhm>Mn|ldzeNXih3bIZ1B}a+0>ATxE -zH3v`ZCayua#&l;#o2wq(Ni=9Hli5n+wjUD@#)h`a@CJDo3U`P#Ci1A9Ps72b%WE`4 -zN8F^P54*^lVJ@_^vht($$$<%1Di>qSF-PCCplZH0R#D+8dubu4=--!N+cK@R6t7_V -zoQ~&Jqv9@)9;I+$mvZv7$U|3){nB?Kx}NsZEPC;)8#mPXa(%ygJxgw_?1NNo&5z?Q -zwO?voh7Lp(qFm*L7f0M$5D}r*4fD)8*hWXbNqe=c`YI5}mKe2gFh=l&`ss89_U@l2 -zwyvA9B24J6R-xilBy%bd@6Z=JCAZ6Imz;moc1l{V%~Ft<^6eTuj8*^bH*OXYA$cQr -znYlSZelLWsTL@#xt8P9ha{9aihf0@BG-fru>lnMbJ*l`aZ)yIs=YMIBa -zj(S|gy+iGW2pgYi(oyrQn~K^hWvFk{KvzLZQKHMNbHefL-zV7p@ONT;YKkVANdm^8 -z^)GVTXE)KGZcsiy%lMeKyZy;rba;Sier&w)_^PyLK{o>1iYDFZi^L2navDn?+i(Ed -zRzVa_AwqHDEpEK*qzKt=_{y^>dtDfS#^M>lirPY~)v8NF -zJDMj@P5ineiN)RRR^tTin&Ojwbyh7go(Z$g|2Vc++KrA((&m>n-`AUOb|R2`!UrA9 -z`pl{)kO#ZdFE_gl*pk>?Q*A#0)KJ0FENS+IU%}0wN7hpEd$~!AEf_61HReQhT -z+u7;s`tLNJA4*U^CAK6ZE~`J4gnZy+LNffU2#KCJ-3|*9Z|u8huI};dvT1F>tzS#e -zb+YX2>&J(hOH6seL(3auj4CfR>JNu$>w0cv+8%rR9nvzA(M#`>n1Lq|pm_U}%eNg) -F`xj=u(4+tW - -diff --git a/themes/bgrt/animation-0014.png b/themes/bgrt/animation-0014.png -deleted file mode 100644 -index a0199041fce991f918eac5776b9baf7a1cf10287..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1618 -zcmYL}doj2cn&PqX`r$89;?c(#WU?3XK*_La~@6 -zR2U^1#h`L%kulNXsOWGqjm$!^7!*34%>0kY5Gt7-8p3-ER#d^)s~m%)$$%9aV~fII -zP*zw327|Y@!=tStY2OSK8Ljn`hfkdORE4{W}3R7?0^dgbzWFVMMp#?`%BIyV$`YeNm(462Y0y^sfPsN60 -z=KpUZ(KZfVuRkhm?SIQTBr2JO@Cv3e6a+9JJRyJX#R(z+@& -z5_!n83qybai3)}v6?Q-Tg~rK_inZ65itaRAPjt-KaI(W(IC2HPlaSE~O-+B3JI9%x -zS$NPR!uWRW^9cwDcv|`E)0?w3L&IZZWA}=UQjs(H3+(AS*=l?J(;3=*R9=UN`NGx8 -zlG&=^BQ`lbQXgT+6Zq7JNx6;m#Fw&3urIlH2FlQ%NfIPT5Q7l*WwjLzWWpZp#vw>^ -z!o_919}q?ZL9!f_6n`j7iE;pa{gOZx%FUAN4Hj1)@Ts(L=cd)<9^@tItU&8~cp^cw -z0NJS@q(7)q)J->EgCXNJg__Z!HotsPo4P98E(^|)I7arc=N4N}%Z%la*oLU8b`9e2 -z+e6x34iE>`k@jI18&~H(3C^TJY_FLQyqb~3n;QBzDs7~jwZ{ZOT;Cw?R;x8D2Z9XM -zGW`cW8oW0uvovWC=7W#NFUK#KFSNiy`|!6*r;_U;{Y>u_&$@n^2$-yCACZwNOZD>l -zf-e|-9<_k6Yr62bBFmr+{wk{0hop|NF_44Zr>_xnl@IVxSj~*_drG=zSB!d#GVOQU -zBnx5BhZZ%619^RQqpN?+=7CX4T)T93`_P>DB5dsA=n3^ojZooVv=)f(6TLe>aq>8> -z^mesR;Q3RsBegCjt^9ch2J{Sg3H!{y&0|t$adAh$9m7$Tq^(Al*IZwu$}WfQ)L)iF -zxi_su(M$$oox+5i!tG5`>tUh}p16CyZA&7-;O-UiNJPQ~(TV3NtbLxh45`OGyDfXsodz)(A{J?T53(mcMVKvT0ZiZ_GmiTaz9i+Qsla$cJ -z!4gh>T{Rf(HyotC?5U_rJ~F~2AYIMhcjd=?c0K4l^1*aMR36S{3IuNDH@Co>&8l;} -zo_)vGW^)RUHI?>&7arF3+}E8}r$U&fXPWu%3g{0lMQZO^QRtX;TgHP~#J@ho8G``@&t^mgFSgn05iF8WBm|+1^p}~iq;to{o~?C^gThXEkmQSx -z!2ZSjPWe(@o3Qb=+c>0Z9C-6q3jV2K51LID2DE}4K!H=Sm03O|)Ap+0${)Be20Z)s -zo29f-n>S95^NtH|>0T@RoZUS^dKieL*ows+Yl9QzZe<|V%&IS(fuWpVrs=df_|(DH -zyUmP+Q+3wW(>1eYOb#!Pi -zbZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_VuH;C0000ObVXQnL}7Gg05UK!I4?0V -zFETSAF)=zdIXW;hZ*B4#0000GbVXQnRB3Hx05C8*FfckWFgh_c^0m{N00008bVXQn -zMsi_oWdJcXRuequ0000HbVXQnLt$-Ya$x{NVQpn{VJdbW>wx -zZe;*rZfR{{bZKvHATuy#aC0CJUtc+2^RT -zlCSpOYp=a7-(KgOn$PF+*>bs@Db6F&W!;axoqBD1Ke6rYdYkA=r*Ra{dqdYs_Wy5B -zyW`{I`C_qHRimOw&SmWw-Bz!3o?z3tYYyGSa3{D2oC2S>UzF>}+5{5Z5m@1U;7M>l -zxCIzg7WTWf3A(4;0saA(!G~ZMMvmf_^+-r=%s>pO`erO21CIiox|V9Gw_2$;3HMCE -zWKHe>n2b8@J^&ws17a=1hH;d&39u=p20jf8q@-%+p1v3O*l4RbH}KuSB*KLHPr(J4 -zuz-0Y)npCgC9+_&obu55eOA -zeTi$5kP+G120K6oJtLbkC>!V66IO8zRD$v@CT1eMUm5U@z4PyIZbHM|Iq#(}1Y6I2 -z1bziF;gy<<3_lJ|X)h`PCx{tpB;}4)Vo+&4=qt`)^d;`~`_7RoU>A5D25?kl;WP!$ -zwOcgf+Tq7)y)Q@U_eHbs{k9}4P|i4t>|xu_P5ujDVJ4toufy@A*Tp#7>JDpU)f&jm -zbzs(M!V1Q^BuThfmxKYR((i(S^eOBG6Y~ivsVk5URtDENm1~eDbY9gZ;eK>JO{fms -z2rLW65+<=|F;_i+LNS=sn~ZZawV5i(1n8?x;Ot>LNDJVbFn6Cli`?Vv>I&30x@5rM -zcCJ|})j&GarVo^Pn9x|A>!y?P7l30g7WRG44X@&6;bxu$GfW@o#J!D@gfe3I2zVY? -zR4=mX6H+oXAsPA2mIXW2D=?@pArmROl65LYKdoAof6aXEUj=?krt&R{pH%9n?x%C; -zW2gA?uwoMs8~^XQ=Xu2h3GV0kHSn@3(2E6b1B)#CX@gj~Zz~NeFiuC*8zf9%Gt67l -zJ&fvga1K=SGDghuEAUy~0d5QlSVe0_v#XL=kAi!kW6Px#OY?K!EO-g{MVwZSYW4?s -ztBtNph6JptCE*_j_4PkatL$a&s9>L0q;(O$4@2D -zS2mqhp5 -z5^$Y84`e-^uS+;KIpdh1&LgX`S;fh)(HO}(4wKL(eeB$i?Yh7@|1X?Nlva;RVp{+J -N002ovPDHLkV1n9E(TV^7 - -diff --git a/themes/bgrt/animation-0016.png b/themes/bgrt/animation-0016.png -deleted file mode 100644 -index f72a577c023379bf99ea2b7fb77fba843bc9e37c..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1605 -zcmYL}c~FvD7{)(EL=BTPP0Es7D$`iR%mvd*NVBY@92%E_4krKcWw_!5I4Cv>rWemE~fUFO3fZ&RCoq -z28Y8q<54)A$7XjAtTUH0w^ExyEM^WcIUs<=di*{(S5|WxO6wW?yGlGwYvNpcS8~F% -z+OkD$hgOQG0l$I9V)5#yZe*=#zG#voz!(sq#V|QEK9d`R!eb+2c_@>2Y1)9Y%|J;s4Yb6wW5oqM~`h35r6d<5des}5W%mT%Azd|Fg?m=oetf1lpp{N%9I@?C)!e+d` -z5b9BN^MtI4nrI?BFT1YBpALQ^INSuE!cl!vbkb`w3sMb3^T@5tW*%%GL+vsnIusK4 -zaDbio3+fFK2v)6sL3UOITXwKyKD*nal?o$dRn*AXAkFlaw7zgTsnRyUvB)=jjjQTL -ze;DksCi9(@lPK>sWCW6|>{4ad%@g{^)b$yvR;mJUDti=pzQcHQJv;2%T!Ry{(xu-~ -zhPrvSwHa2YFlr%q(abZ7?Kf;H(32KbYE;k6UUf_2B%afKX7^tPe1~EM)8sV)KT07{ -zcUPE;%-X|?TBM&8C-YYLFU9N;C;jN#c;ds==+KCtOR_L#PumU-&ki$QSueRXGkLYF -zJ@`Qg*WQ9GNrw*=M(qtN9ymEIdQsKb0MqAZZ#?LEZy+_OYJ#zfBnVpgT+~9JxHI0< -zTXP2?8RN1;4o!=&IL*(DGnYrv-7gudTL_UC>d}VcRJUH`xPvN`(fMV9k$L0&sjkui -zlW{5QZCQA#^U`f3HVGkr1!REmfCa)Q7>Z%X;E#IMN;{{6cAlh&i%3Ffs94Pe33Kcsz_?HN-C{7Fb0!6aNS&&PAaiQ7M-z;!jza5?;<@SXd{O|@4pYK~y$CG#b1 -z#_069k=;EDw)+;0J-ozwhK`q1-#b1T`Cz}Pi8!lH-=vz}IyS6ZAWNFq&zVfeRNou2 -zw*}6XkG?+Rmt3HyQ}&GxE1^x5|FlVfQoera-v7c;<3;kG+(81?c2y8Nn&j>orfrZ? -z*w=xm!5X#=Da=0Q{47hJbL#VE-KV>V)@D8q<;flP0<&hLKwCO1i`(W%%`uu6I+T82 -zqjUKVax;Mlr>;<2Hza=@nA7==n2VdGmDN)wL -z!Y#O(09n2j(56|yA4Y7k&-VH#ZIw62oLfe$`Ky9{`!+tx3Rb=97e4{*`f=;udt3Te -vvk7-xn%>0@ZOgjY+gP$!e635U2Gu4#kk=Mgf0fpzp2i)U6giQ - -diff --git a/themes/bgrt/animation-0017.png b/themes/bgrt/animation-0017.png -deleted file mode 100644 -index 02926e7137b875d477182dacbf0a3f457bd34ac1..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1581 -zcmYLJc~p{l6#Ya&DKXS6k6T1m<_1VANn>ibW@(1Gz&;09bCi)H*;(sX0V$1AQYwKPHO-;8M731}>G!X44XJ -z{PaXzG84q{SUGHN2AF~aQy6RpAIIl0IUGj%f9OnSF*y6_1yA*$DD$N#3JqicE_eb7 -zMeLtj~|cVZq;(D3DOL{uaZuKM1p&>b!-R3 -z8830$Au62)`~YV>o;cr4+5?GZOX8kH28RLAI7~JTWO6weB0h=7$E+ABfDEQfhA?PD -zM*9DMI^*2}sb4`zHu)Z&lgMK5F?(oi9)tkFg(N&@?f?LK4+1IP)JWt>MaM6DebMl# -zi#la?_SgM*zH+%D%-t_mI=wCP+6K<%-Q~-pXxM;)VO?K;$kh__q+|=s%(rns0>B@MxDx<>XxrTDn7Nt -zKw|M*wJMcI&^lX7V%ws)p=Vxw^g`{Cs6r53`Wcn-dKp)w>dPh@9~hN+!N4y#{WAUA -zCgY)7ZH=VKuz`=(Wv8C%iuN~@#N=*;aiu+iv>~Z+fZ=q;TCK}vZ6SSwe!KO~i#^DX -zHSI#u@K~+t!(BnvV0c={`9b8U?M=(~@A9XDq`6gRlYbh^Hrt7b-euL7bgImt#wkWT -zsayE4u81nY^1^X?oq-RZh!ql|=tk*+U-0xQVKU-+!VMoJuiHMjet$!;scdMp`T4uR -z(?{>(5HKlh`}hf4P#rc!>l`Wu2GiVr_W2C!QZKlsJwJKSvgMLYHZNbR4=NHhftcc) -z>HBs;M~df24(FOvxN-ZP(%9Q8DfX*XsjT*jE3zFK=9e|`dS^m&mOs-8d9kG)?Rlnn -z=&Bvu$0|GDs?YOmi^dzJ%$TbRxs^0h?`3=(wg`9IxN+cKz#%cqZJ%uYn~C)Y{)#Zm -z8L6mia-YNv6*oJ4D0f)(P0Aa5CAK7@;dG2$m^aZTqRv)=NNljaP?KqFc3^#XPvi5` -zs4vGrX3XdX5##tKk2>QctfPjjlhLw>*lm88cZ=fp?#((c-KVnAyC0h# -z3A!RG62=#Om9?{E}#uPl)>_a<5BUorNMdkn#Xf$(`U_{Cx3Ha -z_Yd7Z$Rxm9Sf!0SL1{PZJ(kJubuE9^3TkWy2K3x{T)kTTdu`P~&W&xTCkk<`=rcwX -zIv449u;hLW8_eLyyY#s5T12(SaF7BkIP0T$6KC3=sdSAy?)XT1wJ1+EvvYK|P()s% -z#ky4-b&!0WEr{Q{v&dB>`HYHIw)VHJx??)SX{6$X9(Ro=v6*Y&tB2F7kG^)*@wZD- -z>WyK)zM0EZS;l{gUci~mkEj+Jl!>0hy|X2NuLB!=PT2SQGi%3f0f*F4b`Tg~ -W=68_kkLRFs2L$@=qSW{#6#NVJGszkN - -diff --git a/themes/bgrt/animation-0018.png b/themes/bgrt/animation-0018.png -deleted file mode 100644 -index 667cd7d4ad375878eb731326ad70a12f5536d389..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1582 -zcmYL}dpOg39LIlbOxRpg*~TO#WE)SK>A1DIwH%Qy$o9`x=erKj;@6;_1O#1kxkcMVc% -zdMnxvrNoK=e!>=qvsd&G0+i1iDl3+_P9e#Hb!S8Lm4nw3HU2F -z1X=&TX^V64-twDo_KCr8DBY)n7|jj1GnwZ!+n)WaF81$agphUB -zBm>2XkIi*2kaXP~H1rZ|Tr1}-6uUQ^IHw!gno)F4LrdR{l(f!WA2U@vJ@azi+<-^c -z`L3$*@$r=SL8qF!y1MwoT<)^r`l9krDSy|Xe|abVl}2q8|FIaaefqJ~_~n^$>uzcO -z7GGFR2s*Uv*|9|pDduG0AXjPdu*RsKMLXBI^OiWF6dZyD=hB0lLdB*UQMe(>m^~(`eyqtzD(@==7!bpDJtiQ{u=0@b}@zDI_1ju%*^EhaFRzkH(Kpe -zBd^OVdRv3Zdy1#g%#|7SzTT|Yk$vB9t-p$>4YE_+Zgd+pYNX;aJ8&t6u!g`jM=Pw- -zu+DHw8#qINd3tq1vV*tExUh+3&D#Fv>5V)m-Z5T0h04iQu$b+FR`au}Rhgj21xwy$ -zsOSYul}FGQ4zYRA4bW~(!2pd$<^frBl$@J -zk3{o%=OnY9^n>R*OnE2DR)xY1h1~=vA})||3Tkix@|?*xJ~&Vc*=d~o`N?cS2SYj$ -zn7X-#Otq*;6(pHCR}-z}4?NLefHhjaL`L -z$ZZS!$iL`6bKhaCgL7n<_Svre+KD^ruNDWsOvmyI^qHmY?H$yCCtk;Ozr=jZ3*2(M -zu|-r!Hi7M<+BmuF7>;jnPg}j;L*=Pl7gl@wC?vq7@RqQ%-xl^pBFO0dzzpj{B({N_+2=er -zaVZ>>+~Snk!9SCeD{N(wdnI-Jpf0RD#k%o~Ta-F#FDT@f(9tFE%MkAlLF$w6X=(0w -zpgg#zej=eePju~~^ja*c+jKAE@6Ph4%nsjkoJVnn%4k;8BwNzB3Jisc7C%*TxoK@SuR^j=w_(hg(>Fh$^OJiGGEJFiia58BwCeyeLGszdu+&# -zKN~5c>{@&%c_s1baXQ;j$jwpgl2sz-1zJ@hs?lMUabbudgksI)$tL5aI;P8ZtFK{G -z{*#fI=NnJ%OOQVi%8u>IIf~=JiTg~&&qhim?tawHM3&fxSe3;!FIe6^N&m1QKWL_Ufa_$^-&Mq*U53MYLnO)l6faRa -zs4OCvH}^z0>BL-f>zyIFjJ!W}-t&IW_w#wqd7kGy-_Ktk;b}Mg4rLu>004G46C6B1 -zgm1QzA~?C>;om^m$|juW0>Czn&6WeQaorc -z6ecPo!#Og -z^xf2WyMU3Vz9tdo$2ik*r0MU(EN#t82K$WXwOjYR@Lycdnhq2QjaI(oScVLqS^A#4 -z4p!ah=%}>=;!NLS7sV?4DL3a+cW9OCVz#cP!h}v&OsQ$gLPsRui?(sTy!`t@xQh{C -z*I3$g=pr7EKXqwi3W%~f9aqtqI|LWK@OhXVxUq3V-&)XbAh(p}EzlBB1X|FUVn{sJ -zcK-g5os?3LnN4k2O?8^=Nu$(88@59AY+%Q{x)7HlI+#j5~4hH&&G5sB*1qyQd=v$Q?_=&_SC8;`O3AJ@!Rui3!+15uXjo- -zSde5FB3-j6aSL_YhojfM;)bIgHc@~IL#Ez1x1DBFB1}<9BfPQOu~l*&{F_x_NBCCQ -zllA^-G~M{msrr6R#@Caord{#)8h52gD>W%R(#b~o6yI71r|hkRN8G^agp&=-+3i -zV}^!F9-fU}u|DaJ^py)L>~_5blgpAPLx&>@CYRfLCNisfopW+j{a=M7N8YFl%h#Qs -z{GsEWSZ0DR$VBS|VkE~kCyj5pAWQ~H*u+Tg7uSsSRG!<(Vp05oP%0ieY)CAWgRcOaZFD={QcR}OIBO8sS58n>(6W~a*0rCCUC53Y5y_nL0Bd~YCz@zT) -zUK|a1V9c$ZyoRX8Tbgw!>XfZj*qwu}4umi$gV^!@1yS8D0$mwVK$LnrJ-&i(u8N -z#x6niU=jMZ^QxWUAFFF7KfJrhXWM*w4RK`G=g9lViJ1l!Q?V&BVC4WGlc{fAN%h?p -zDY1gj2Oi5Vx9TXmd5Sb@mOXZ_O-o?f|6;FX%WoRYrT&JzfPRC%;eZ@SP!zA{1XmD&!ljBv!pG4ES)7%7#q`2UO%&QEl&2HKfVDGXRyNf -T*Shb6w+?W2baN;_aZ&IujE2>N - -diff --git a/themes/bgrt/animation-0020.png b/themes/bgrt/animation-0020.png -deleted file mode 100644 -index d228ed84fbddcab44ada03bb79b5c3d842e58a24..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1558 -zcmYL}dpOg39LIl{X(UqEak|X0I%;LNVkvhuE3IiN5+=5pwi%lZF=j<_ugB^Xq032# -zBAvNkN<7K6W2$l7PKPpCGEue1{f^))Fp -z`_J(v>LzYx4*t~##*z|k7p9}To?q(9cZ&e_KoemwZS2Tm$h+#QK1xJJ31VVmtj6oab#V!Vz!J66f!vo(p0YF_hm=T+8YtQ_ -z{1@DY{P_p<{RD6eJbb_O=RSfyfwht9Yi%h4H)~`7%V(4vwd?@i$lRa= -zQ81ve8p}ZB^DDGjLJaAr?!@A`-^*ipifycwvr0#f+2(4ZQI1y9K-Y3hJi6B5^p^aM -zAxp<#kAli)+Dq4Y$&sekkVjmi2&q}3Ri%4tMr!o6OXQhxvfMzB>aKA**{+PkKk7p2 -z+--Xk_;eWl=-Tb#Z4zR@d6)Zrx;HNDG#u-QB|9ZVUOt0Qzl%ee<(~FVU!x>{yI7<< -z+SdN8F|9W4UgX1GVs*cMr%(OY25E;f1BVv{oIoU&i6TgA7sU2>-S>hWvpzb1d6!<_ -z50i?e3eDz8%{eXy>5;IbG=v|K?7G}jfB((kWzO!J+OoK$q!$$4)oA%E=uj#B8%e1w -z4@x~81&1Vl=swnvl1mud;#)i&MH5BA^K8TtqT+lL4q|-0?CRTr(X6~&a-*}D7Qxi4 -zGQuIHIGW=N+YYS458ionBVxB#HTrBcP|^aS<1&J;1UEkg-hAolR>WO -z4g=$G?H_iXqr>0CX14KP--zkyz)}Fc$xyc<(fFRJ%$*ri0X;mqE9ddI{##x-!)vtMIJL^pHHU_#4@B)V -zs$$75yu4#)Ty3Jv3!NUkS8W)c56%wSP9{NcJhXIU%TmIVFNd$7y3WN-R|;Ds3I9CY -zm7OUq2%YvxzaCfGW8iF&`s4sSWMvP*(nF*n+(wS8eF -zzt{AGqa&%Cz2X27?)&^=liTH*^|6$^)}aAVVThquUznPmO|o2v2?o^}M9EEW4Z94F -zX(~*P89$kMR&U=noj&28@hNbww_y}g+qD=8g}iaaqGU;~d#|aB!%RsNBk3Q5LB3!+ -z@Of|vnsc|a%Ti|#A|4jg4LPjWa;`z%uwajebHkNm?a>2P;z@CixGH;oF_j5oWA145 -zllb1mc!@J8^Hr;eF~`V&C@xOxAr4$evLzPz -ySzG6V*gSPVFW)9qI+07?IazBPQu=YcWXU(fB0{)GIKHU**8svnqI0n$CGKAn?7oBm - -diff --git a/themes/bgrt/animation-0021.png b/themes/bgrt/animation-0021.png -deleted file mode 100644 -index e7bd0f5ca29b11e6f3f14f5b14ffbfc53dc2c6f3..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1545 -zcmYLJc{tR09G-+I$6#fm%(Q5Vn#-1PlE -za%@|Ol2T|R_cc4Dk(FZ_=VbS%o_+TFd_Ldz`M&S_yx-4XpQPjNPO4jVw?ZHgRiZP& -z6GX&DD=C6ECp!8I2+AyH3I_t&rnS+VAUE@2AZf#O@ZvfKhXN3E5R(p|LxSmaS^%08 -z7Jxn%%tf<8qv*_VZV;Lq1keEvn!^faFo3ZC5ak~VFarJg9r9olY$J+5;{p&I28%~y -zv1ptr0*kdcXl{Wqg@rs5fF9_Eha5}?AQ+6r_rhUEr3710Q~EYa7!4G0*l1G4VUW|< -z;EsS)7!C3rP#BD<>`y!i6ty=*QUJgJAT&lWoyHAjG7zSivn&omeVh*(v^ET$;DkWf -z|9_$|X4a%PB2d=+79JH43UCl48l43q1dGG-a$qJ9i2N-g!H(>uoY2>icESOwFqg|F -z%csZ-d@~5!9X)g$bx^LdkKT{Fu7S@MF-%)-?*evwMLNv!eH#EXHm|C9Tv6eEVyR)a -zVFWw{B_$=h?5ntyi&mYy$(2s_C(E@C>jF3@-_ovV*T9`=$>}eyvuE*xBSS-a+T5>^ -zeUp-!mClsRJilt-NMNC*mDO;v>cj`XD?yf)=s<#q$Aa0X*J -z{>iU~7EcIbw4(9dGkpjAZK!7nYEb;iwB%BCIiTl-fG_9avAY&lEhD+K}xoB7#R -zC&$3APV;`aigAcY>Uw>fNiM2hyM8;O2}N9*s1lZ?NA{xxYVTi(pqq%TCz~hM3>%f& -zwK1nC7R!u1Pz`65i$6SHH$V2muIQJ;ZF!hv!Pt7ehj5_MM{@w*n<71YeXZTcTD<)a9DP -z_4?wa*xst7C#_E(lEp9Ht9gZ~gfgGM3v1O)FZ9bFRYM_PUD?4@T&m@|lN$m>)e-bu -zQd4R1u~?lQ8T}?vuyIYbj-$Mhz~#Nm`yVu46o$;XvCJaxW*>ivZ`7w!4kZpPn!MJ+ -z1yY|qY!mc-K-vxX|C9O$H=qdajGLzT&H&yzW9o+5&&8JU%P5!)xrH(tlcJF{(nZ-X -zeqEb>176zWRD4n&j;&OHD;7r0*NoJc39kb?@AM7bAd2+PUpk|DUUG~7Hm)j5=$Uz+ -zaQo_-__a@O&DS@=I9pGrpzJLgvk5k-oF~u^iy&36Ei^)yi$5$v_obXOUvJv3YU-yJ-qu7^K7GG#BXV|50 -z*SL+RbQAIEH$FnV6X83ACGKgxFLd-zn^+*3|?C{(agAHk!}{#NDB-)^g=-0l--i!u35hHnA12ciJy46=Ow{9_0(P$WN!jMqUW_m -l#LTP=R?h|}IX$=}Q}60dsL<_peh02H2+_fvP-*YS{}=dUzTN-; - -diff --git a/themes/bgrt/animation-0022.png b/themes/bgrt/animation-0022.png -deleted file mode 100644 -index 4c7728223e991497f28174a8789626155cb762be..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1541 -zcmYLJc~sJA6#c0fC^;5dQU;P*l6C}9%O#f#+?p{=W)ZB2%Qgf?x%2IQ} -zGi94bR#>8^9FOJ{7E>dZCQX=DluNWAq0Y}bbLO4zy?f5R_uTLO^-3cnLM+Tzn*#t~ -z5f)0^1tMm#VN1Z7nw9kt1T%hUOez4ttrpt|I9-nf$p9gVEDUC`=>U$&_U=(sOikK**0|dOA -z7tYNMM{viux%qf{`{3P?$=&6kXW61Bn#G|5c)ZW|M<9e4R_H+u_H7kGA}A6F>R5d- -z$Sq&wwtYKXmlzc(xU?g3Ly&QggJHpD-pCST6y$s{5?2(2D{#F0uus$D9kz-^P|q9~{4kU~ -zRXqn*XIopFUw5m=;7qb|%l=y_4dX4DDG_Ri^|y@XPcwh?$@@E=`V|U=(x45h%RUR) -zKg%RG4D!F6pxN^!M`ft9ZKY;XsxNjj_ra%ehQXv2&!!AeRkhD -ze!6|QvN;*O_5`N0QN9IcrYRosS`~&W51mJD&P+dxI{FgJ?DsbALMlXo?@vfR^<7A- -zdB$+rTgJwP4|{ar(UL>Nw@Wb{(4|GqTEWNQ=yH-cX*oYc1lLg{COm3`s-U5CzxB}J -zJItopd!-5N5pB?h!$p-{=-iZnvVIcTX})|^uBWAyYP^SF9?T%w@%HCuyiVw7RQW5$ -zpFxA6mq6zayq?CAc%=j{yZ7#yJWv;S#N`OAsr0ya= -zE^{}BVI$1Dc{9)3_tWLdiXJ=S@S$@O9O!W_rc;Y`RFY>6S9sx#&IrHbb*JtR-?K8O)FZ1rv+JtAe8G+YHvq}D0b$1ON -zNxtm{i4r&JABi@_buFT{AG!79HW$U0uDew7L2T0Y^Q8fvq`~DT86^J7V -zh(qB?i==0vw245{tJgVvtGcyV<+gJ!(C*{rV(BL!#20juu^YwM7 -zi&+iK7C~`5#?4s0;JkC>_iNk7bg)>cEMz*w;H#kQ%FFJ#>bj=jPK_NcuY_CeE1?;A -z$ECfy#;Nk{(f28`6_g3TIJ?L9LtYT%uI+qjQzMB|>c6Acy*|vQ%zmrx_CEIjXimIL -zXX8k&ORyQ*m={|;6&z62g}QP75(Jx{zVzx%jo1!*exMV1#WMT1R>$KxXGym#1wxZ! -zmSPe2&Ar33y(`xgC?st_I^eHA^p`ja#@j*(79DH(Bm=^d_& -hmU7xtH{H!x)-ud3U=iGbG{oY?s{^Oni3p11%000(b -zl3x&r=*3>T1e^k~coGB{j}$HdfMtlqh5%a -z;M1@SrVz_xiP+p^VFFf|KxfkhSOJg8;n4a2p-U`_&WVf7Y=(kS$i*l>s*n!gajrzH -zt1A{yK)bqne(&LlBOnjeW`iEt%~YLHMpdBUAmt57DX|rU`m;K$$_#t?u1-%Uj2MqI=dkeT@!O(+^1A3Z^0Ze -zLCapd)S3na1caKXqOPP6DL+k^q2l_WwGW>>Cofn3Ir_2yYrMT{V^bBh;djhN -zq6Z9lwK|-=Fb>gJt@UnRnW{0Sd0 -znkW(Is-uz+S})v~yXMxq%9(4;$Ad+~QrG-z(2>2foP4578f%TsP#!=(PwBRVs2F$c -z@}J4lsbqOxkv^)i&oQZ^iRK`T(3}NYwX)*2<_fauG(G~IIIP}s(JvS3SZ>EX)+$i; -zR3CMBjq)~uAxqb%Ii-_rEeEu|ECJ@ix}Hlt^_$7#=SRb*t8ZAXvdy}%({lRx)pha2 -z_73xoskqRwbp5GO5%Th2o+Q5aT#eU6LS*)3lS*}F@(ZQp-3kXZIpKkV2`_gR7v($) -zfbY;5`8+ZUa*&4@PWFFDz1#dLV%x+?xSjZke7JPGMQHNV9qZO(hY&x`8uizojUTS4e -zM$5eOc#OnjYs=i5(K1!sHgj(hyvr%=)(z=(?n6bzstb(P=5iqe>QI?{igBiU;pljiP>-Osa|S*M!zZ^{e#gn=bS*!Ast5TEo-dsSiFKS_E= -zpesOK1XE;M<#CTZu0c#=+G;XvZ0o04DO(3gy;Ez-C6LhpkwZ~;0Y~!=^S~G(PR)e99AEILYMI&l76x -z2{AI{+Ijm82TeP79yA~Zq-)<<3M=Iez!#<22T+{_TS^D+#ZwpFB - -diff --git a/themes/bgrt/animation-0024.png b/themes/bgrt/animation-0024.png -deleted file mode 100644 -index ed52d3d40d594dc4ff4c0f9b796b3d0243a9aa81..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1492 -zcmYL}dpOg39LIlSN7EQKGMPeHa@eg4BbQ7}LO3U#6WQz+W3$CMk6|s<{;* -zHJ2h?i5!=-dJ^VV2?xn7PVIy`Q_p$M^L#(w*YmvJ@8|vf{Ph)id%CKx-?$zC0ClPx -z#YaKIwSlQ9Zhl-`P0vwkW%jQH0LUDpnkPY&2d@eI00_6QiD>@5|V9=AFLKRi$wJHit00Klj!5T*( -z;D{tc0)f24hKwhn!oD?FaG^4!{2Vd|`zzQJGw2+$&!Y?^?{i7+JLk8=5j8l%aI0BSAZqu3DS -z{r{#Fekav$S)j0y-^ycySs>rgm&WEQ2oQ+Y$8*sZ003oCDNcU=swsaAMxdP3Qe(Q8 -zG@JFHNL@>A>ko5ZF^NhDB@^w)Q1jwjOw^ZWwqGTrfTnXXcJ*zIGYb&|_3Xi;H~Y71 -z)^?ER7B8+oAH6gx+qDdCo_0>Vsngz{y_*qVPtCpCQ_IAjr}_oO$Alfrn!0i7oH`z( -zhpdPqTW3qc4|N+l2UeMK+}Z*3*DbH_Cnq#PO12!51=-3dlULvFxU|QFM@^HR(MjKg -zSr@#S!R_@xm>D>tAtQD~%<#***aFc+MvVm`(ZK7Yn@8kr+oUTb35cMsD;KJIVgXat -zB~PfH@dzp4N!*VG`OV!Lm^Se~x@1#OQ#u4@AlxsDZk5ed^-Wj6TOfK_(EE>op7`lz -z*=`u3ywcSCFCdzZyaZo(n1^_p1MN1CEb@No-c=`!Z{+cc2P_sqx~L{*+{8KidRMFP -z?fk6!d;Dd~t=CK9#_k)3yeN2QWUn$(Me>|zum4{+-2XZ -zkGADab=3{5z;p8Il|wJ1-s8p^d0kY*$ugz+cU_MYW9Efn+-VE_RZ~?-YGQ8w1 -z3s<`Vq>1TPuU1$3EZ2NkUnnO3I`z5IN%}i{BnP#cyPB1EGF|;Q-9DoeNHrH|PJ-8p -zyPEam=kH-F{?da{$dLn^qCz?g?oC)WSgJIH2lr)HAP<|*nl*0F7-w)rPBDLreGSyK -zhLUpGEd?N3&$=-;c6f16n^eR~&uT%pCerZpd17HU9GEfNnW?5#Re6==y(fAydYFXS -zmwX^!_#xvkc7kM@=M>;^gtb*W$*DMC2d(hHX^20`I)3n7%K*Q0=tKczh<;U53=pdj -zqL)jKJwwL=)IEqtu|CL>cs>E$ZUQ;5+o31YDz*C7beWn5d;gizH&LIldPAa)3$Fnw -zq+s3I%B+Ll;i#M(p;K%|t?|RqG@=(UZk -zJqLf2-^-7(yjDb?s`gdeT!no*6t^@%Ul{?X8YshF%nQ4q$}4qwy?vA&x8^U&Psuol -zri2AF`7WhYkX+AKF`y}d`kG#i -z`k9G^4C_J>N2G_p+%VpyR3q019A}r)5Q@e~#nns!j_agT{`50&U3R -z{{N>rXzfTHc?HSpU&E6b(JY=WmBxvK5U{}F)6Stx0YKJ`Omy}OM5LbkD~9THL@bj0_q{&Rh;iU}fr-be$aTgzd&1tD{L2vPSb&WD1eyDQo%@{htZRWRzk>^E|qu6=N8@FC*UYxpy -zH8XnHm6X}2yzyzz91$Clhg(F1)E*gG09e8R#+|11eO*mJfKug<$D|6vQQ=lDv6<*EXkYU=d7Fv{4MuD?dVsULl3H54SSP -z>>9_*$5KsJPWSV7%gkD~1<3YJ%!e=?g3U{jEw27f^!Md{v1Mk$sFZ;lP99odQu=}+_ -zH8>S%lPP}6jf(>_Hcz$x`>D%)vSOG-J))tW7N8IhkbLTg_JQPIVa~yDaB` -zJv^+8@H2d~{qGK%V>8l2^2^imYOnWSq@~L~1ecQb4ysHY<4i0g1$__|dJ<-@&ouwh -zl$f)Cwo3C2u{c*S;m0rLymx5}149pmAjH*hb1i92X<=~joaj?XayTrB9VRrEf15J1v7eB7lhAa6 -xe&)U_H6hC)_d#JNHcFv`T(9FOSlo4RF#YNEcwwUpEEGC80GZ@XtaAwy{0oZvaTWjo - -diff --git a/themes/bgrt/animation-0026.png b/themes/bgrt/animation-0026.png -deleted file mode 100644 -index 1bfd5dcaa6cfebe4fa8fbe8a4c53a2650e039182..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1427 -zcmYL}do+}39LL{5WspWLjYWoB*Ja)@%S^}&u{enkkzC%!U^FxA%*$kk7OORu9S3P- -zkw$SUEk#EucZCyMk~PY;5n3W)nnl}=I(zn<=l6Wh`F_9W`~3cTa*p|W?pFCm1pt8E -z-d^qja$>eed8hnlbGd7BAQQbp*#MxbxjhJ=v6#2Bjesj@Ks?;G|SbxcEXz@Mt -zzVsT024%oK)vG%ve=)dJyu~4kDzME8?u$mhnd;VCFSc$H0Qk(DLo!dsEGqIo>&!0g -zvwUA}_2@9ClhY-fZjkk_He!D0BG?WqXK0O;kEpBljpBcuoPN^H;0=U^Qwv=L67P~| -zK&F4ra5DmR8__K&w@4W_dO*tE%03AW)Y|l$<;-s}WEN`i(x+X1@0>rFB&F*~KH>8! -zNa^&#;_7;Bf8No(gYKJPYC>#98_b#vx4IEu5v!G_hf?V91jTXl^~0}@MwvV+Sji=x -z*2tLiYPr|`gd#pWR(J|EhKzQKu|ZvehcVf6T4CW=cZCXp`B{A56+x?(q-G%-D-=}b -z-Yyg#N>%;w-W}ttd+QO#QWU=}>nX2irv!i&l4nqwQLKrdZWN~>!0ILP1=L)_VucTB -zXfPF4Ga;vZmmWWnjXTe+uF~l)>jYBPwbaa6);StFy4^9B%ZeFc;y(%y7(V~R@VdFc_T5G1~Spo-) -zn$nQz>6HC?scLRCXzh-4`p8FTuFKC^t}h;f)wYmIleb1rV0(W+bfMKlOxTe*ndKKSWw9f+O!LZu7`<5p -z*1^rDf~8_wAz{Yknf5U8&xKr*ztKAkO&BKW-csvS{eN^w=^KL``)2!B*7I^Qfc~%* -z9vW5jynT!F*MQl4xGYHQi!`?6z2PU(EXC`+p9&r?ecCAHY65p{P?sC|#&zR-!_Lc{ -zTJ}IB9drza1t-GN4p!A@EY3{j_l}&Cj_$iQJG^?Uzf^<08JVr?)Tbn}My<{3J8`9D -z_C1|Fi!WXm)cGUGT?Uo)A41+v`O7>?NT!+fag%}KkIG!Lj%%}HO$hMJF;!7S&?%kd -z{6Mn~H}g|2?Xpxw^(xF_Y3|!0*cIv(_0BX+_ny!*5IU|YDvuJ`)d&lIX9fONxf3&Y -zN@>02!(Ak7u8(Oar{zB!lhh=9^bGdPv*X4I4Im#;Bc-nYrRv1hkv)dF@2u#8HiuUn -V%1LTM1PC>0whMGv-57~7XZB>`}9B8>!3pwMUp -zBAmq}!oQ`k;S6djEs?_}!`WmKjl_bp7!*34#QcwTaa0ohM4WI?Ras@QS%oFANq{{9 -z=?q6A;r1vP5_!PUfE0D(C0<=CUq#giPRr}23eCP8W1ql*w< -zX(%=F$usI*dY+8jbY~yrK!JZh7d_~5D08rh5$9jf_Y4VEI=|-O0 -ze9T=2XY@Va@b9VOIC(T{#mVWj@{77E4g-zp%%o#4=)X-2PBJ7I`FZzwyENmBxHJ=D -zT2#SEjJuFiwSuAcy;GFyOuKOFSQ)&#yK?BLWx7%QVLVcHcBHOh?C=}lBo{1e7emCp -z+l$8Uf6U;wcJ0Rs`gau^sw~oy7&lu$!UK+%N&cYw={ip4k4eJ)b}G!6hk+D-FN+qa -z-_H++^gHVKR6x6XVC5PfC2JhaSEN)`bme!qZuQvfyyUilOfR>-X&LS?y1Z92ScPnQ -z-^3`7d*!+>(ZKN33t!$&HMcXLELv--1Bs7am$ZFi4W-Vrr!#-0UY%whNxsc=KU;a4 -z7nFSEY1Wqi4BhE5sIBH7$7icf4fk -zC#?l3&~NqL3>45}0pV-DrAccm#t{|JXM7Z7IP3@xW6pUW>4eB*u8IW=OI;69n{-S? -zs)~*k0fa~(bIvyBik+KX&qT0`v)NJBwGp!i?lo2q5+cf)N>~|-u*HN$9OikKn(LV$ -z|L&}XR@05F6mTMWw%dP;YPKm);*d0tOBmNKjN*aBG1r|z!)V=KARAceZO4*9*S(%R -zS13JmN+6iqr`9*UC|G#Erz^_k|2WTUS-Lu)nqg#3qAC$lAA -zryh9P_a^%myhlZjGU9L~Yj(FWnP1SAbFjPalKN8H309_g$%-PVB=_~zro!fVu4%8{ -z!1&w_9h=L;^#bu*yFhV!kF;;Kg#Gd8np)!wSKilPV?|0GU3*?}S1m&vt+Hn^yH8Zz -zjj*j`xz7QayUjgj^tVYk9rdbAeQnS3wZiptYS1Utsgaa`KvwM(U*m?BF7S^$;FG1R -zb#t$1tD8^st0i6uzW8P_Hjj}UrH>)7<5n+sruPr-u8bGPE_-yg^# -z)g{H(R>?;|o!m>eD&&*-C2hi0uvcr5qPie^Xz~hk|H?b$(E3`rs8=YA|(pG1KlMu`+A$PuoQ!-!?ooqj)JPW^iPyT#icU|^zWHt<#g -zX4N(}!qDb8=TD&QHDPLK?&;Kv`OIvCiaj;34i_J&ui -F@L%rzZB+mO - -diff --git a/themes/bgrt/animation-0028.png b/themes/bgrt/animation-0028.png -deleted file mode 100644 -index eda5e3f2f3ab415780c5c7fcfc273bea1920cf57..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1385 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zHM!~1;QW&K|mL#79s4^GcdOcKK%$NEd(~a -zGC3!;SRptuw*W{p7#dmBO_R`OU|?bNba4!c;H;h2={GxEz-?pWG`-A_Dc|c4cm%S> -z1|51-lWz0;`;Sv8OA^0*?dvVyefQm~0*e^N4^382J(tT@)uhYSF2DaJFy3lT=mCHC -z6o=paIX^Pn=NEXc&$E|(sH2oS5ub0>TKOVaVDq144J>TZ$}?}z4~lQ -z>KprGUV*Rof6|?QzoGGhg8N7B56>TDf7t)vbY1;Ei{vD2kHbfUI;M%bA;h&F#N5Q>f*i-4FKwd7(|6_nY1~ -z2_I*yXV{gl{W@47yhx(=We)?F@mkMAVhZS(nY7FIGpysHwKp?2hEG%QtXZKkw0X7o7tt|5+@LFeNoOYI1pm&r{oW -za7C>wl$>q -z{JU{-wSuA8vC}OdGFz52b#KHB`D=k2n&a>6zq%$|iN -zSLap5{%N*+z3%C5mDLTAJolD)uw{k&*}PuHmce`>y!KW1irs(P6fGFj_szMtyZ`L< -zM`mJPXZ#OJ8BK}d+mXAwuOR0@{bq|UpN|K1EmjIgMC^Pk@;I57HM6PaQdY~2SLn+$2oZKz6zx1nFAn%uB+IAbCAD^tU|JWzZjAE8T=@WZoJti;kKUST*`~wTS -zgS*WARp-T}H%y$@C$I8PN{RE}=Ejb#qSq`N-6Bn^mW6G5x%`S^JfrE{PfINB9l9S_ -zz|SJ&U{skj>8w*g -z?yLEWe(w_7-gzNeu3z)qZP)VPKi$u!8?w6vG0lO -z%yEg4%{j+qiv;ULiwiz?cP?|8-*(94gInT(MIWBHx3T#*^{wW!y)eJ9uZL{`55pyf -z$)94@ue+^uQPd~$Uk-CcW&@K6vyWumM9GxjXAS;7Oy{foa=_5qCx6iv-P6wL2jyRW -iJ$yXr#glZMKjn=3Qa-N}cgqA86%3xPelF{r5}E+GgkxC% - -diff --git a/themes/bgrt/animation-0029.png b/themes/bgrt/animation-0029.png -deleted file mode 100644 -index 33f2683016b52bf778779348c8c96cdabceed39d..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1348 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zH0f49q-3ewP5Hg}{ba -zCg-FUD+DLz7654mLnDj2X%gBD49s^tT^vIqIBTbM2T2?9xOy(QaOwL0`qbsYQEVKZ -z?=Sw6NWHm0a(#;DwY{76&VEz2`|j13CA*w9h}NFl{jT!I$+x9v-d5VW*Z=gm)_7NV -zrt&fSu8HX~yH8JxzrRmCiF?`I=Q>t${l>>7>OP-7;XJ>1Yu&XZ_x<)wf(5(_1pZDc -zoLzXL;*8Z7kyi@qL^12&6&>c{RB)F@m;*d`q*}xr$Q^^&xs#RnX7ewSgqV#p&Xihe6OYH -zf17DqP6rYqHgP=o-J@G@AkKK+Tb}l$>x(;6wS(Gs2^i-6lRJLuG`xXPAmo1$LHPt!&tENW5;xOk_=ETwZqE>sL|AS1F^;gzqXf -z2KA>b4wOCd^<{cgCUm@PpUd-^!LzGgBo}3czvAmTayH*7NnpnN0`?2jBucj&*L&c! -z=L+k*N?F@RqhmAI>{jPH9p24*>Bsq9NAwLgriD*m@>ss8t=P=-(62w)z0=zciM^Nl -z&1Ct?a>doRtL}0ZWLgF1h@~)p6JAiRUBJG6RVB|QS%K=VY%4~)^&AKIo^96@Tk}2E -zt1Y76`uwe|gcp8oOrk`TUW?yOt1dpRDl?s@U|-R` -z{S1{n-`_ROz14W&TyMIr{Y`=8#U`b{^+YZvxlWwG&~si_>ZQvob}k|B7k@IZZ_PN# -zxTpNQ)rJ+mi(46Q&J(HsduSuKhy#m@bCSH!geO<$xIXG$-BQITQ)VmtX!d$jPQ{O9 -zJ2wRLESP`9Ln2Ah`oX>{>{?Rt(LU|>M6W&4pLCJqTd+ag!N4SamMf2aetLepACR6O -zxP9{7L+-9@#YyWDch6M*>dAjjg>~7%QyRxVIe*gUYirfAlVhmtyK%+Ad&&BZcJ*<5 -ze{UG+8$NvFY%HX>Vc(R=wMn;Pz1toMJ=zg>?SVzsy|-x<`>_?#6|MW&%Fa1WGJerx&TJHC;dqtv?BbQ5&;4OBP}10@ -zazQeG`h_D~`R$GNF^9CUFc<9p<|KDF&tc`#FFVUzw@*sRS#$n&_5OEmYszJX1xnP8 -w&iL}?)`A1)tQl)xY`t%3n4QBY?Ea6L{cQB)#qG}?14{u0Pgg&ebxsLQ0Fll~+5i9m - -diff --git a/themes/bgrt/animation-0030.png b/themes/bgrt/animation-0030.png -deleted file mode 100644 -index c5132bd9cc5ff00f5c8bc7c495d215a48cc85dc2..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1316 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zHDi8)K2m-n=wFqISo`Jbt@aacDX(6!T -zmB~4&#R|cRxdlL)!O+N}ZkmKP0|WCOPZ!6K2+r1N-9@(?cwCv6`ri8g|BBx)kA{27 -z?<2XBSEPw$e%&>xEVsr&hEM#wX%)2{4%zvuVDD&wlR5PUiYeYBx7>6)j(Q>sIM;>$e)VpWWw9<_(zF&|ebj -z@2L2s{fQW(x&5*e*VoqCu^yf|`^e1qcQvfoew2sx+WukNP`-?Jx=vDe^J4iwE12XK -z{k~f*XnWv2XI0fRW&fDz#rlc5O~)oB)qd*Bb#AqJUcGpE@qyO{y^Y?o5`QhqWlC;+ -zvYKa?^sUH%s>mo|6;xYA!u+?d^%j -z6PfR*o#lP*q$lhk(X!a@l|j+v*WVVIY&gA`G30a8)wI7acXD5tv5Wcfo;4-B(Mz5x -z_TA~)JK5L6WBN@YtFRlnlVwZ#7FkX|C(haFd(ZOI;ztfVS8qt`tJ?2nuu6^Wuu(6V -z!@yAbp-x3*%B|prQ%ol3YeEm~Flew|_fq1a%ci}0x@^(gcguU8(A2y>_t5${m&H+W -zYo9;N{GL;3`BCuG6dNXWA;03k8^vPce!ddg#u?D!A}IE0mQwJCTba{23-tTDm>7~3 -zCv#UmTYAH)NoX2B*SyO7+Wq`K4||mky+5(e@WJGxN2#eU5|nk$#^4Gt#P4xEK#D3YZk-azyJ~)6*Z1m_zmYc$hvfdlaNo -z-dJz{j(Hy2>BXyDRG3?2KKMO*>d~?I!uh%!tJfCsJdd4(Tm;wn`7t{zn6wRRdT!_AUsNARX*kAvy#M#1o!=*x -z7u3}B{|MS$_TfhNfz2~cyk=X?_ETunpJfsb5h8~D`bMo5MGmVs|yCFK++< - -diff --git a/themes/bgrt/animation-0031.png b/themes/bgrt/animation-0031.png -deleted file mode 100644 -index f6ed4b2b3cbe1611c2530eed5d67900ef2ae557a..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1245 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zH16H7Al^AwB?(h7Eaj?!Pz>kGf&!($0b`mv+>{m^UpS&K7Mtw -zdX%K9Lih0r&RP2Ldecv@|NZwLw`2I1%;)ng{v>SfyKzL-t^PN|YX^S?v!ojF!{vM9 -zq|^8G{t42Xp(hQ3j;pO?*%tHt_SazI%)^M`Sj9`h8o>jYA -zb!XzY=(XRY=8J5zU`&yH@ys}gS(hG*H}_lr(v#Jl0&n -zu%teF?}ROa9rjs{_b$(zAMDBCHrF=yV=a?J>D|uaH|I|%*6F{QGlk_y(hH%bc3F?J -z81s|Ed%Fz&ep{wvKl#7Hc88zQlWxp2Th&@}ma-Etz^R)f0QeJ3F5%XRapJiS*T~d!D(z&QN5UM){YmipA3&9l!DL -z4BM}dT{Fsfi|4Wks9KgynysI9LumK;Ie7^()ALP>RMP7cXWgA*=B)F0q5q*(ldB#d -z{Mw!2b0L4bg8tT4_sMSkuM2+o?Vs0F&8SdfDNy+%ZS6kJ%!}!B2&p2I_MV4>U=3-&(Ror -rNw8KVhI_{1_}jDI{OE~3|5yIS2B&Hd%}8rt_GIvM^>bP0l+XkK%<~xE - -diff --git a/themes/bgrt/animation-0032.png b/themes/bgrt/animation-0032.png -deleted file mode 100644 -index 097916423d6c42f03f07781a8ca380ebc91a6e36..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1185 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zH%kO+W?0AO%4{7p4{=?9?+b^9=c20+bd4 -z8(x{5lUl40oS0hxq!|p2Eb697XfrS{TY9=UhD2~Kop!tIwgC@|^6|I-|K|(sl$hbX -zKI3Mk#<@hsN1M2twp_}+y{-TD+i#5t+Q05BKWFpjiCW*znbR$Q-FDx^_r@osU!q=I -zIsg9m{?kvJDg|C&TKRsKU(U&}*|x5#J)B}&l$8&xlKUp@>k+W8`9*vBjq~9Nlcut2 -zy-fe9Vm@b<+P6q&4M3HmfI-TRA%$*<+t;&@9oCKldZocT#LLzLs& -z_M-S_stGr4XWVl(nQ8ZFL!`g3f`yyk8xy~C(hr|(-@{a-=smwoc!%M}FaIahA7&S0 -z+V&))HdkQ&u^((#UhXVD_Rq`VX7WUJzvBv1XDpax_jWbg-K$J5?%t@^I>(urFsb3- -zs%QN788=?_YlvF%+C)RIaZY%Rnm~Pc;Q7FSk}j2F#>@1-&T&v}I`ZTE692eX{gaAp -z5}r-Q2DMk#Jhqd2K9BQdcI_e%btFnV%zofFOLU+g7 -zGNEj5iw&QumjBIqbFzN3V*{&y?_RSh42kv~$LGJzbJ*bFQ+(RG`9w|UmodSCU$tY}lSMe|I<8^ww$FPL~PJo~U(=;YOj3M(aE -z`Mq?vkdtKj`)F~*=gXQEyEX^w+jXdjv)l4JZLVd_y(91X|Cw?1jVGnT>KpfQ`OE3= -z-#GnG-idfo-u3Z^ZpMnddTe|)f5&W}365T!>S63YvlBY6_hmi$D11oIz-qf;gO0=Q -z{&kB>NX1ryWwJkjhJ>FC%CC#gQ -zRn}MUW}L44?$SiFt0_fGQqYQ953J)5uh``_LZ>G)vH372H; -i1Fy>eOK;rqpJCrO<8F7=?H7PqjKR~@&t;ucLK6VT(*5NC - -diff --git a/themes/bgrt/animation-0033.png b/themes/bgrt/animation-0033.png -deleted file mode 100644 -index c9ec0e5e62b10de61c6d8f00e456d2bc8b2fff1e..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1111 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpq$VUY -zHzT -zS0?AA7ApiN<`w{H216r@x@i*H3=B-~JzX3_A~@GhFxtU1s)%boxL_q%)PyBeeM1I0y(bpUtgKoKL5@UL-Wr@?)5)Ct~Ji>TqF2+e$tb@ -zaqHI~f81Cp`1;by_cQ%+PP)xDb@jcWw%yBjLDSmKxoRp46kP3X?(UOs^b|9S6n1+& -zQRKc)MoZK5!z+$I$z-0ixN_DX-H#pq!uRDmcO+l>d!Wiq{r}}@Hv4^TA8lH9_m#zV -z@2>gJ%h*@EiRSyb$??-aSB2AyFRWvWVYp%aPyR`1U4r+$jq7_YT79>?oH>ilj`Mjm -zOKh>rPl4ZgGoEcp^_JLYxp(9D=nK{<;bG}<+jk!gzZ@C$Q~`TMl%*}?(&u=Ir%VOYcif1_P?%mgS0^F -zzIoacA{PtHSTE;UZc#C%n0=Ap!Q4Z4t|+YW2>ZAB-s7gvPCuY0og>AfbXlneV -z?;Y*S+obw?FWhX1UHI5(U56V}=kzL-?-HvR#Y2)WyL?|;wn!~%Q!Mk>Qx8umZp{{w -zwwPP!`JvQ)r={h$oc1qM%ZfH;s~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpkKsgoBtr|c%4zN>-5`mJ&Cc;X2pMhe6ATej4P*EZSgwiuGF#dDFA{Zzs -z3X%*?PR&bYNX*O3O)SaG&r>iqNGm8-;D6i%R3Hpe5Cn8#Y7xRtJp*&Q;M0$Q(n4Uv -zE0c3lixq+sa|?hpgQ1Z{-82bp1_q|Ro-U3d5u8h>H%@w`z~j31@&EcwwR27^%;b6% -zJ#!_e;?D0vUGMU4Z@c@gcE8~V*<*9kXMgUPJiGAB*-Fdf6-PYG8s-bnG>)m??so6< -z&pmhFm*2U(L65!Hwn!j;(<|fUEBY6Qy2X`+x3D~an%w;1%beGOSCSlVHVobCxBuRf^8|xN_y&zP=|*-W`uU7SFlvqt)_l@`mpOZheZIv$pi>8>Nl4 -zJ$GlnZVG$gv+LAa(?V{ZeVdt_)E4f`zLLKGQRMW`??je}FTZx=PW%p@fWJO#>`$LG -zJn-7uKy-ma1M7J)d*;{D>2b+IzWcjkuRN0%ZZO(;;8~XON<;HQF+DFDbj>zKaoz3B -z783X#*z@4oxizNzjZs4Rzh6n6Gw?G!x!P9MSIzgtjy4_r^+~UVn35fmV!y?nUu!mP -zt?Y8MK7~22?-w;sc*M4AZNtjvFDn!G|4b16syf9)zSYn`P_Vc>QC;oPffHMUeb@fm -z;q*h+gYlN+1)Xnt_ACbuK9-O@;S`fo=Jx1QW73li>wI6^>RI^5y9ie7<-UA~`Tt^f -zTYe`I{(VynFxv - -diff --git a/themes/bgrt/animation-0035.png b/themes/bgrt/animation-0035.png -deleted file mode 100644 -index 2bd3b0dcbd17f182023d4d609f1103a8b128c7e3..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 981 -zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNC}>~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpkRtBcQLaqCNavWf%6eR*BjZITj<5GcQf*>(xpiogF1BB8uFfjge!6Fza -zDGHJdPEO5BWk}4+%uOuG%+FIWHb^TdR^Wf!1XLglQV;}mVQLY=PCWy2yWrE0fYL%> -z!z+_>Qi~OW6LSlIG=rg$Mcp(BZ3YIWTu&FrkO%^GtTzm@?3tV -zIb5r{o?pLgJIUbVCY{rdzgF2s{Lm{tmMQEmm-DH^Hzw)KcbNp?ADk*_k@l+_tL^6Z -zm&O*_Pph42@_n*r&Cyl*hTe{HS4zkp-=gnFw6-g<%aijqs@TOWyh -zon3li?enycy(Pb8oR>W7cb|CjjnxNxxxNE6@6@~OrmlC8VgLRjzH6VpWtZoBTBO}? -zvZ@p>U+%YlgW2b#y+O$=v3$4QEK`qg*!tkewOL25TwcGU=jd9i$T>f|nzy^(m#Tdk -zF85pL`Uh{jzgw3d->kgmz)XXtXJ5B|dHnu=dDt_tYTF5(GsNVLrtkYHVya&DO(05o -zn(zb{?~Rjs+nzlUc=q<}zGw0Aj4XVO@f;psmohm1iZ1(;l1tcKx)2pSco~ -znAg=Yu{7zN$+7F1B=h!5kACGZXO7O3GdJv14*FI6+wK( -zpWlMshd=l-;cwduj|V#aZO+Zo?-?iY6}c6->#on?VK8)l^6`$M8vC9ifByq_lUZ-o -zEDw#j?SFtlv8L_7JwuOAPt?BtmOjYnwyAUXiJ9i#*S2miy6ny8_vVLdier(hwZ^;i -zzh<8OE%sa?>hs_44!%((9FGhOrQ4n+*mm5=-W;y&xB8hywh*USLi5(udn|q(nRI!& -b|8IWxb#wQAN#$7xOqL9uu6{1-oD!M~e -z8d2hwnUl((pOK%Ns-Kmao12)dUtE-|pPpHwUyxIon_pUzpkRt9FLq_2SVbAX*vln9hGHv6l?e;+6&2oiG!3KbDnW?*0{^>lFziQw#=))=Ja$iw3L_kaAei{;-gwb<51 -zw;Ip%Nh{W9-G2M+x5EAR?JWxWXO(WWE7^1QVsyOitM;}?#yDlu`sLrx-1`}ms%7=wH@#Z) -zIlMA|KNCBL!3~3K+XPd~h`#le=N?v8v*%cCS$(n2S}%rwdgyfd_YAE}&YQ!Sf0tZ+ -zC^P@hntA?y&*oe$PS7u%nKfhGt5CMkSR{dpqwZK+PtP?5FR%M4a%InBo(i?{ -z%wM18E|Wjt?z#1YW5T>TuN<}K%Vobi -zaQvg4#jTH}cLdIwX3dkbTK@29`uCgL#ZFf5xo3Y^s_e&p?-#ERPc(o1)$q+TzV29; -z`BB+_J~QcGwJ+3tP{7XfUg>GYT37vqYn7%O_iknIb#~b4{H=UpmO}9&$wiTCuQTyp -z+~M5*^}6%=s-1Svk0vv6`?MMGY+v4YTyDF?Mh-d7KNwNG^2=^ZeA`@COs_P*Nv;FsE`lROs^ -maxcX1vU~Pr(aE#I{~0q^X>vclIt`S189ZJ6T-G@yGywpOfw1BL - -diff --git a/themes/bgrt/background-tile.png b/themes/bgrt/background-tile.png -deleted file mode 100644 -index 6b70a2d40790fcbec68b2db067f4f6b0d47ec740..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 79464 -zcmXt<1yGdj*TxCykOf{k7b&HrJC_h71eWdw>F$n2S{g~|1r(&aL%Kn_8|eo59{w|* -zj)U$v%IRPT+ -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 -zZQI$~@9<}KU@;kXN@H7w@<Cy6DdV -zBiCzmE^Ki-)VR3ZpQ`w6hMy_q@k0@G%cZ8syQ~NcLH)8Hb^AuTXBp<0!1K;C62vc$ihrwk`I;5DvE02$lYcCzr -z|9-zXogkZrBDj`aod)6}R`8@CA0fPa7d?zkIPP`ue_6!{qk%wwGX!BBTD=0Yp5<=YU3=AE%~aTUZT8 -zkd>XiUI4p3fGu0ZhnG0P)6|qsTVKE8Eac477d?CEAFtn0ReyN?L5B -zI?r7fahoF^$g_CLx)fgD-cJ2eKws1VDfzEC`_o+tY}7&l3PXsXd$wQy_-dV5Xd3F# -zK6VlabS8SgmmlrCp51C}?=V7=W?>;HBLqr*?OWRFZrh;l3iQbTNW6-BP>-w;$DG$Xg6JPw$$Wht -z&-&5kpC_ycRiR8^_NClvO_d%M%@)z;$BQn3<|-IrhqF=It*tUcV)SG~kibL%{4KTR -z2WWn6ZLJq5GT<_wdZd}&f8{p*;G7k+bzwB9;`OD_NsF3K5pZXQKWQV8PgnYO=YT$i -zj)^_{Mo5sr9isHh$z;P8|0r=Hx+NjL?-}!>0p@g=*}v%N_#d%Of9pV>zxfv}TqtxHrP-@Bne*?>7dz -zy6;MV(WKySX$X|y5OnB2`0p6#xbUK6_rAqrck?u44NYcl~?#>a6S_39f=gl -z?Dndv1pW>hIBtTJ3~2DirG6)d{axWKS~NJFs69eNVQZ;E9HLq#848qC;|tLDu6Y(V -zHmZWLJt3bY(W_}S8k3--Bz}t3a% -zUKUtR2c2J9(lg3;u$H46`i1<8|BG4|mikQnn5s|&aCT_C2g~1368LY>otxliCW|U~ -zU&Fq`+PXiS0nOe8Sr-`^gVT-)Trblo_`=rw$;M4jC~vqYjo@$|%#(=CtJUBqEx7H8 -zuP9^!k~K%`;)z~;=7MEjG^iwpRsLr0lV}uv(#^u>pKeS6sjaQ8zQ7Pbh8qzEM`cvX -z+|yPRQh}cIL=s#O?u090euWKux07kjMg7sscGh3@7umG>j>u%zU|D>000DeT@;EXw -zk~ySl)*#RL_DdEIwmye*-;MCOys>r)aDTQOF*G!^U*C3B5n|!%%*li{03%W|XZcD>ql&ndDdjxW?#yS~#jubUdlWy6 -zS?vPa_YllV@rs58wn%x>ynT<$nD`-DAw=ao=lL$@ggQoM-HfwTBEu(MLKw3wjqO{M -zob4J`8}WA~EG!$CA8^9BBu!1BS7I*(cHHQ-Rc-gj%!p2|oqP%b=Yn%=3!<;_l`oEj53&<%>>CN=uAY*k8Kf$ -zo_&lh_!&?#RIcENSg#E{)Gc5F#CkNbs1!!pwwA$vW3PQrowcBgkcKstdM}$xmjIR)r48cf@1RkvnB5O9xoFn -z5~g;z*L_&V$n@bAnbL1YS_psj>Cd_?qNW{n9qae;va{24!O@llKtbEgII|#P^W4je -z2-otB7}yvwVz09edXOQDbOa&%GBPcF+=+x`iu&D0nb9EcUUfI6c$1?akjShz2d2~R -zo8;Q8!rmI8Sb*^tWUk=wb5`|=*R_-kFwrtT+4jeK8@UraQmEGlUggK>`|4!1A#*4I<2@5Lfqei -zx6L>uv{p>Z_HyrePAyZ1b0qSkbNsIVWZR{%gH5)X12{;M>SX*1Soewp>od2%!{L}e -zfzg_Sn%wLS7^En2xcdC>234BDt+$6QS@t6b&AH;+AQT8L=F!F-#o3?ro?dpy8!p}j -z!apc^ZcylZ#C#rc3t}Qy+c9f|!Rza5uu2RiGO1uGv3OYu95uJ6$?X{!vz;cg{lvG; -zlD?xPgFf$NFsd}GL&xx(Zon7>StZQ!hC%3zBaZAxXsXYzJgb~ -zaspmvetTnMBwSr7nWz$-T*EmI0x|I3FN{S@yK>Q<>C6|U03}$Ae+JHPgP?%Q*1 -zQ(owE^(>72v;J(IRJ$1z<;eIoj|V~^;agdRLl*BZMR*sBnUM=5VmC`JSaBlP^YM+K -z1~e#iTQ-hL|GN*~NJo+hmLVcF7eb5a6-J}CRiyY!gd&A3>T){W!px?Y*UcX9O944yFpSQ+XwQv6&Y9tLS= -z`*0iAyYp>9S70XRp^}Kjsm2T`fy+{=iOS2HYhNED^uCJiq$z}x1-td-M39Lr45OeC -z3@xPV!Vk1xZA?ZdE-&j-L<8>BT-$Z6IYlg~9>V)y@$BHzZ9luHulIySeCc);r4z!1 -zqK%X(nYhu#@Y1ldf6osA&kmjIu~EqbDJ2l~`ZvH_cZhuBaqPl2F3pPG5QF}%Q8W8* -z_#A8F)ZigmXb(DzfWXcv5$cz2q2TBj| -zs3L?ww&G1sv0EPMuWaC76SYN}gI+Tfah18%EL3U}6} -zrYSz1smE=f$G9;CS!)g8tYNf1TD4h~!6UkD^ZdNxzEVaj&VfTRc&*#HT%Di4wzLh) -zeegvvKyV*Ecb^EAB%)4$a3h=I4b21(rLzA7?A)fN1+yPW6~*k}^W>kt=A-^AoKA6* -zxE_nRw);u^rfAYPk*AY{36C#BvyUE_TK{`2AXw#$=#BJ_#Q$0$H6$oyq3IUV%20l5 -zxVq~7v$FCRe*$ZJeF=g8(ute-EG*GWYId3_g}*nA(R#VQIg`VdOP0r-%s=B-{UjPV$l28SAiU -zaLF-@H@+KvHC{QDSj^#hTQtxLQ0e4x{qGU@w%Rn_S#AjzFA39m!PyX%K;(oQtgm{a -zFI0pyp(k_g|J))vg%AG@kuHk@vWNKN`=M6vI!BzL`sHhV0p~5bkiDKIJwl<|Fl8Pu -zTfOKu3?FLIH;AbM6TF{arC%xs+$Vna6@(vv#*_1?0^)>4xT5o1h5ZwCl3RVadtTZ5 -z+yG|y9~3Kv?e4Wm#%wLx4402Sf+#Rma~f1FrP&sDj)S$sF8fXll -z|2Mxgh5z{E&JD6DSdp&@+P+9v6S3O(NMmj+Nm@vCD-wF&85i)liL&T``mi)musJ>z -zrc?F#2NrV1?a#uTpey4yDRp%=IPa7A#-V6fpK+KI;Hd6*BA`e(+$Qlo!h3odZ4)~? -zR+&R)HN%kwA29yd$Ow+1*LE`Rhkz@IiLE~Lhf@K~w_CC9#^Tu`wa99+e{q*$Ka-0FtLy2YD@6m^LGJ -zG!7bC@|!~C;(EdJgLS17arzU9cq1lB8CCBwrQg(ibu&u))X>=Yr}zRhIBm|RRuFf! -z9a3YKLu;WIkxidbrRjXW^*b7&PZH`v_l_P{bW?j(JZtt5=!#ZR0|@&>82zWj{H#$# -zpE?t2A_F*kX=(@i)uD)}A0WO_76*jJfRWvMpw*+ATv|j!bB-N9QxIe=flVP#5|!!V -zjoeQ2HGTvE^!X6oHBrkJw9Pf_Ib`9vJ{^#vgJKup0EV|2UakAocb?e*EAqtq>@*nsK>h -z&K8&l#=ueqxJ+ACVw0IXWq4cK-VbCLm@`(r_V1cHG!8uUz(VQbR9bq^eDJR@szJx| -z4{Ao1`Jb=)gU%YU()3@O(vjaJ!{Iw)Ibve2`&od_3EN8MBa2y^Xr_^BfRLN2c`3El -z{7v~~K~>brVAlBZ_WzxBzb4=MaM*2u$+8yyV3A&YFs_1+#LyKk4b2yO+E*UY-lBom -zOha-ncE?^f{)v1|I~hs+xP~@<5cQks#`-m;AdAtegz~7aws!i%{am|$Ag&7Ps3#Pv -z-`v9g(XFt9&BDH~wY{}9E4@yi1}yUVt-N%>=Lyg?jSK%JvQW=Ob*RQZ5|!gzS9YzG -ztz27qqtgdHwm{i}f_pa>RUGLzA$c|24aPI&s!)OUh}@4XV3Rj|>H(^sTVq%-(V5Sk -zhI+Se+Mk~UK*m9-p0n9%>Vx#F^e$;GxFYQeH!O}!?X5n6tyO_z%8C>qn-QAnG@hs> -zJ|KG~_6D+5Z5iw0xkFZbTC;;FrljG@1HgXoSdX8h&5@?MV$hY-Z@Jxw!jbB-oD_Jz -z33#sGR7oKKVbId`*>r=y3IiS(11K9IwMi4 -zxK4gOXa9aW^?IUT9PCL^a_2yV#^#(|27k%S5=+Ybp-@FG!Z5WT?=Dyk?0ILKCQ)Q2uk10dDP;&} -z(f~HKmD(4Olbcj|@_$TCtg0VolYI#E%(rm0HHik~41CXeWuQEL-ROlqP(}D*4z7hq~&&87t^joVI*8L9-Uw~(5K)1OL6Xwz<35`j4NH}yir=t%E -zog!}$!QiL@ueJA{HVIJHTzML{cj!{m{bC+}^?*wGwAu{DPw#Zu9~}2%f)vouRPfFh -zIdwFJJg!cwXK{hf;#1-$Nc0*U^FFv>NWQz9F}DU;ca4kOu7#XFf{c}G+rSG06A5p@ -zCZPCT{;>IprH|!r{nkSC -z?olZW=GNQT$S~K7tS1k>iZ0obLHO0!Ncsd+8@8?MOoVzx;<1p)Pp=j@ux!5eUO^yK -z{X9XwK+1oM -zb^VC^#alQZ#|O;G9bb>pZ7+fp1Vg{1+KRRR&QFy-6@j~oa=Ajl!{=HiFclN*(f5(uOC>SIxbM8~=nzP0J63cWJ)Ij+^2#YD3grm9y7>8Jg5qY#KxW@ClU -z7vaYmVa}o|1Uk@ur+^kOoQmqMt!L3Tg -zE-HVyhpL>M(6%m_-ljX_)$P=>G_6Z|lrrBj_2xGA;j-iPwRJ1IC#ba;2ZZ0sl)y#B -zdHg*~z6~zRw|cVIxb=a*`tAy?3Wx_2gA(M7Dokaqdx;Ymu6S?3VAN6R%`^VoQqBqN -z4K*m|r0 -zk&|)LyXfyz_pDs#0!+kxKmKLvUy5$01qoGr_=wygufErgUV;gll;~MqvE*^n7(CO1 -zP@TL_|2R&iZ;DUSLJQ7%IBBOQ_>#t%b&le~)QzLNnM7BeYUtm%OQOyTPJoK^#JqJX -z%?1pL(SrjUq%0{xVp6D@a7J;*m{8OXg&?zs_@~J6cC{`%RkV;pfrQ^#vmZd#c>F|o -zpisWN_aW%2f@mn~KW~7}$Nq1FxP9-U5^JsutjQ_bw9Ap_E05w_{6;On50LwcDj{BZ -ztY78Sc{VHYQ-eUhL(7u7Av*dRkggE4*Zzok@7VaZ>waUubu)x^ul~EP7lA64;BeKu -z9vVzf1v?)^3oNPE*@&GF(7ik2K?{+v9@9KQ#@S87lx+uQDHZ~DusU@0d{MBS`=fN| -zD^uw=B2F8SxR%B5aE79{_|$;K|pf|R(+KoM%{ -zXbnV3ukBKhZWJp`oWWDbUTXsfTzy7vfE{f_Q1FCKlT&y>w>yj&5(R-Y@xJc(uPIuE -ztV(f50yi6OkupY<_`3k|Pj&^I)tPo)PQ(nxpMUc`l+^x>^!EFE1)a~JnOQDDbk>6u -zB%CX}{OxKjM+((OKZHyFeNSO3yrNG-{IorM-9e80yfm!Rd}}BEH_frIN;5%hd82hJ -zxqDnN93b9x;SCy@#r{(dpTGZGd#ohazgfx8E2%S=Xw~``fKJuws$9a -z7eAcrM{_X3fL_uw{0QsRI1dPiM8o*n+r-g7tJ -z)+=GW($|-i#jJ3LAO#-d|FjPh>s@xfXbF@w*VRG2vJ(J}NC8P!# -z#UcD?&sT=eGg(3TGlw^`x(>-4;VHrAw(^j+fhX;hoX&Z13Z-h8T#(9Lew^qaz$6S# -z6)UrgK3z^xLc@kRK7XBw@CSYv1t(54y6oaE1ck~g$Xx!BgSG-jOr6KyrN-;m0k_>K -zjUrb(sA?aet^L#iEg|Pv!WreEH69$$y;u6}^0wDRfE9{!E^Jr=w~6iE1Yj3nsB3O+YRc$XNVK3O -z@zJ-e({qi3b)_y6cs;!qz0IWuvvPN=i71kbeLrne>Mvhpula)BLO=UCHoNr?fPKh_ -ze_6J{bh+#Ov}8>9&GDO=Mh^_um4HV8#ra{-x=<*SwTC8l+ldE$hk6bEh2FP$20#i+ -zHX@Y+rAjDSs;+N5YVa*S1nrq|sYi_@*so6#gQeAXm%kosYi&<5PHI{pVzKZTo=W;Jb@3+7W7QDfSLCrSR*LpP^ -zSR)jAbr`=(UI8anVM-(Z#Fa%6rvBfQBLo@(ctu4#cqr3WAPOP(@?36{m2x^%Z|>Y+ -zQ#Yp^1vb<-yq0p}J}e4_@Vn?qJ=?*y1T~>{Q)>t1dK>^#NF)Bhs-7upj*^%Z^W{L^ -z_G12Tht1)8w%-6yHO23=(et>oW08{dzW@eCaSo?C=QK_}yPflZjnpxGHA#CwmLcW+JxL7Gm=hcS7tPdu7 -zK90FW_YbeyBCX;}&BG5a>#wS~=-Y7n3^XVdah+Ut4S~b^=*G8Q=qg -zx?G2zMTqYh(~HtFa=_;*ekFrn=(^!9Cy4Ou=MQ{gPEnzAG+yH?u&=~lxA8`K#@^Ii= -zETI~iOfu`PHpy-p;!m5oFWz~j*W&4fJK8~5i?!q1RWe#*vtLy|Ihdu=UGnnc!BPhPGZQSXTeZQYwz0|?TFEjBD2FC@JzN!MpcDc -zS{q%JnYHfMVzvX6jh-pVQkvxBM|eHt6z+$YN7@b{bHL4pf2qEHk?IM=`k@Jvm-~&^=d1CMafZbtCY`pl#x&>1W06N1-6&GSr{YT%> -zaO{|^XgUsGcb;4td -zEOAfXhg|>%P=h}IvCQeMDSQQCR{dp;z*g8<7!;C;#)Z!RgH}3`M4?`B!uDABK6FDi -zsVL~~H@46$2r>o%gDEXteOT&!{wYMMXQAIYzQ4am3dylm&$`3+4LG>O$rV)bi&m6;npc}y8Z@IMV~h#O63}ox -z@L?(w0kW{x&HgxQqmdgQTj#CO0x7z9FNJIV(o&2t@ftf0^o}xA-Y@K@FCP@}A)}~i -zOIwY0({GIh{BwDq{}1QWC@%vgh>q>MFaEPAaGg$XT@k-8FE8^}NK3BM!jY^*%uga< -zsAJVeHX}k-+LWUy2kj*3f^U{?$wgT=1mlEaKQuqh2l%^yLGXg#F#i=C6xbZH} -z)Au^+_ai_9(kau?2jVFdZ9zs=wk+n~6{HhZk1xGiBRqPWD$6ElNu&8#3;+@gYg8)F -z#GWt2>}0w?DC4~z^gVR0sRAMRRr8(o?N7&T32%$GzQ3@6WH@tnG#OyY-02CxN!oHx -z)hvatM=NnY&uALzhjw}&*UqUhl%ZLU54;m?5iMui4P1Tt>+u>Nj5|4`@2qmV0M_~KmZ&L+atS#joFGD}og1?)@$KJWtx?mld_kJ~LO -z(5Kg8kCnzPA$yN^7gF(sd&9Y8(6Ip9TAi$`E4LqlMm4?w$n-Pd>GRNax}~w_n<`3@ -z#*!awpmoL~Rm-C_%lU5t>dq7kf~R3U(MB=(pg>|kLWy8xibh=iOMqRng0UmHdu?Rb -z0eyo&g=v7zGp!2QdZ9)0XKZHPib0`a4An{JGA3=A(gZ5?c26cR82a9rH8Y=qDC6AKC|eeGp$Z$21Yj`j1!C={NH28s_4f-+7|2#n&uyQ& -zXt#+-vq5@IuFQ6|I(AbRWxDyLOS{eDSJCIC!$t@U;#bx+p0=MPezmsZTr&tFd$D-# -z70@Uigp{aZ;#1i*BCsVE#GfEXyUW80;VBFZ-JA2sJ6OKJbS=VPDE(4m0lVrXU5z4A -z&iin-Vr#lo4d=qWmanMuD>^l@Bn_$db;nqy9~wW2>%YhC(Etbw|B=$GBZ2@eU~`K_>3 -zcfDY@>*qJLY1*heO^<-izbQHU$tHhd4}|tz$pMIEeUIj=x~?lyW=wF=_3Icu?}Apr -z^);;EHrbY!p?AQR%Lx<2jN?eo->!;p(PwVV0X7G2J`e+-7n}0GD@FWSUbTlmBd&g+ -z^R9v9Gnez=^+ojN%)^Hf)@&Fd1OFeiM9f#gz^n_HV3igd#!19JI6t!Te_)3bnj+8Y -z5zd$2FP-V3Akytg^wYksYyeu(zR>F3C}Ju}cf=Rxjo@sdO$C|MQfBb`KxyLQ4r!@n -zGIX{nbpcN2*YTvO;T5d9kCPxKb0RYiDVar=j$CGCi4M{Z?Mi_tZ4pE+8TD13zvXcF -z^!1`5Eg}-{OMK$GzT8I|IuPWCG$X8ZG@J*7Q#mDPX3{g2_J%++h<&BZ7 -z!MlZ4+%zq)plN}PZ`{&00w=NS5RQ5JWFnyyrCW-G@jI;MW&5e<;mr4+{h(I>0p<}O -z9k7gSyp+(TQ;OWL9jQV`IvSD{a!Zw%l>l65g3ic@g>Qo -zgbmpap3o;*uLmWd`?W|9r$PVkHBGVC$d6USui}j_gp?ffXpq|;&cH}y#K(c&m -zs)2WDh+Kc3J{tT$$mAC%zyYHL68^x?UB_6f_UeS)U_r?_$7zd;cxTJ0=6I;$kc9|D -zp|9nm{>k@ScN)9uU(=3;SM6sg!N+;>SDZT?eEla&x7N8{pyEcrPZmh1UBsl02Pwjc -zr~m-QJE2H7VmQXp+n{L5dI~4x(Zz%kT3J(~C>18#FtrD;S`h+aj*_iwfR>w-m^4xN -zUCk)zvZRPnY)s78?zAb>^(k1tM%&ka^!?mgWLxonI5q(YWfnw-KB@FHk4wt6-#jMS#w1lRm=gBk&j*^jI-r`bx -z`j4p9f+b_{LC%E`p+%+#M_f%w3ZgU1qCR<95G(Y}gy_o0%S(VhIZqIi18E9T_@}hS -z6s|lpA0R9HsL10)z9!8fAVur{h -zY=cxpz4+Iggl4|ICudDZEP}a=(=k5AM)$0%YV@|ft}}sj5q!j!XZr8-w{8Tk(QJ5e -zT3$AxCbV|IjBJ$eeR-{=fL&_0%Gv9e0@N5XEc>*!PMVqb3-oi&Ymy&iZqI?;YiOXTnH{Nx@)tVPM`) -znnS#j4UH$!zsdIb+bH0(>)w=nAJTOz;lEGP_NpGe)Htp^ -zZq6#5UWW(&AsCz$6N97CTzVk_|0auIn#mapgFUZDQ1iY_^f%PcXVg+vjo5O04f5+n -zuau@gMMQM3SLW`S%Vmo>Gmn1k%b57sW4FSbT;mH~H481A4j+TdHICTXs*=8U_e3O( -z%;u)_b^ta54#O$GOdl{E6pKAszoysZatwo+@eaRgAzY=1QpW6zrZd|~FD6NHO;Cl# -z_`d+VTy+xL8X%C@L22>MZ@GT3bH`hhc+Q_r;mTr9+z&f^?Tuit39;5d;Gkyv{Y)4f -z?)w(MAhY@-_w~F1_ZURbY8&UWSTV@NoDv`sx8N^t=Ga~uz;H+kERQ4K6sj%(o*u9l@XM)+ppHoEGw -zHi8}G*f=uEUK$o(AdnX=Ztq|j&gvp^(r-AVnJW8* -zCs{Aif{Ju&{4M%=G+V2u -z3=b`L$bSM=v8*Wzq?q1m|HFirxyT1>H8uCirjnGkkgbH0}U2&Z&!@i1@4sxt~_|ypP<$6*#Zy2_ACN -z_J_Sr{QZeB*0Vy&rq=U;U+(>049T@3OK)_2&d?w%T({a3(_lbQdKj{73pgy))9Yme7QACKSnCztt{I_zWcwdj*3WL$&fh`ewep3(C -zM8$Z_{nTl<$i#d -zX3TWVaSJCCIqg7x7n_QjP)ZAK3{y~0zu$8lwIYt|<=0pDfD6Thhcp#dbW~jq++dB{ -zj0lNqfgKA6a2R1m1K9vI*d5w+6A3;5lClkeMzAik5tou|INDdL`44~%uCIXAS40Lao>hD9&1eH4Y|0gwfwBgpcOjf#dP$U= -zv<{_as>{k(f2rh;XR{|QW9B&d^Zs+#IK`JAEZm53#P~tI9?lDF`YYa##5JfDzW6lq -zvkfc*$ -z$`$q#`Fn%Gnm-Lh#8Hc>RCQA5$!r8u-qOR#viO}$sIrS^Y?dwg6%*O1kbT7fm>^Gh -zkshJs@p4MJ8V+yb{o%W!&Bu$2Q7EJKAKtq%W0eof>`1e@Q<>Yr)>cA0t`-T1h7TU? -zaQJxg3MUX -zrBr;e{E6{%zKb!j_O1ySPmA%|pt>n(Ol}l*gf?M@MQCay+>G>27c+kvs -zCYhbkKcZhPBZ6vc8p8G?*U_t{-r$p$3=DTqBmU*D$!vB%UdWutDt09RR)#VxmbDk& -z0ZTpXVnEiI9iy|`GQ|bw@|ntpy}`o5@;gGl+yL=p3VU&W`^Z3wy$5u^!XfHNw-Dh$>n6V`2KgS^+%3wHL?1UtlnAq7co -zur)4uU{x~Cgdm}79+nrfDE=_v1NidafOjsP)3_6cKvQpA+bP14d*=gMWx8@#gX^sI -zyU6N%D|X#YwZwhaLMR8?r?gUttl~0?4lZxv6&2yMu?F28K%igHoT!NQVY1sA(?M|* -z-wqQbWD;?3u}?1pi%y7jj#r%rhraIR$Gw3$Lv5avr`Dm_f-BcUDJYZifHS;T66PgUL56fW;1!~T*k!fn2 -z4J=c~%~yWHK+p0AMkw#2Z_-$KSHU&RV9Xfeaf|4XH@C>}YaVkMf+$9CBhJj0@wlDGvHBbw3YL1=KR~w`MbEZG+Y`vn5EvG*RG5vTyy^E;A^R^UE?wz -zEi!?2sCw$8BRa4`+&Lh%KforAs9^+5%4Y?XQLiK;h6#ty@wxiC`w6Lh;ACzF_2~c4 -z0th-UvUW$IDmCOdx!_+%f3NAn3m}n%C|}JBb{p6-JdrUU_*KQ`@#O?b;bTzk7O4Vk*c(lvI(}=coQEg2V?x8E%Z=t9tH( -zfX}jIqEsNh!}-YaifhZ$>)T%EZ&3a=GO<$|gsP2h&Ff_R2@jsWTdL5lM->th5=cIY -z&kn8mG!z~_7u`qN;<@S^@OmX%266|__$L0F0-OVE!tpZfe`gPr`+%3sq|PJcexzk= -z>^X%2qRUP@zw^!aW#hge1r@viS>VXslX`#)4J)irZZ -znU%AKvCc`30GZSx-G3%tc5z;hhBn-Wp#-2H>6G8KY{ywUs{9m -z2G+5aQ-|!_@<@LDA5CW&6?ON1eY(3lhED135@{(3QM$WB5Tu5b?rxAyN$Kts1f)y4 -zB-Hyk^Ly6+4KIYXoLTdo6W8ARvvt-*ZBV;vlXvIE{H!gT7t^Yqmbs0DRq;<~z?RIs -z=1+ZKG2ztV_Ju*H9^$SN&@%le_Hf{|kNb{#ub0F0NG+XL(8U0EuURU(*O$(up49H6 -zw#^2M~PRRn-*f+jHpW2OQU!C~fTY24y%S7rsn2>;R@XB~kxd+eo~}$_d-u -zc3)@u_v|h{KBQR$y%l7>F(%zXd?dW7Tn?P@Pk+lO;bIw(#h2$8_f`|&`Xs;DH>(v% -zF{KtKXbU^fs`~i&=meJ=uy|TX!93yIh6t!R(rV5USGFk8*~Ya}f<*z~;`SdbudlVl -z96sC)_HrX*xmTOMZgE5{z -zZ?ShGP_4JzafUcucBTAVA2PYV{?ZH39Ya$*;ciST<{=b=GmQ9eqnNnGj;RUCP1XGD -zF+i^E%9duakcKGI3ExPabQL(UB3B`4mURp)xRk5(>8H_k4=C)K{6=^ywXf -zF)b?XSij!=O)@GAr&>WEpUENrf<%OxvO~l;IaaWmBidn5Hj=+F#Jl?QXXM+A41tdI -z4zDjHE8U*Q+CKzn#5^}8vu@I%$}{Zl^yCYoSy@C$+O3pkdvC|XxkK(o_7oOuG-l3D -zh*Rwj{`-%HK#jYn9wzgozp-^BTcaNUVo6>DuM_(fuj#LWu0m#?s9HlYM{ -z+&Q|bFj0?pepov)3bS-^sk^wORM4{^B+YE$#@cMZ-gZWoQ(*kx$Q0v_4Yhj7+ZIlF -zlhSAeEYRsPqsy>^=vo#C|HuqNo9$gW(ySH)loK7^7Tdu4*bL|8|i052M{qs -zuxhGe&sUMp8{pmxce(boJS1p;9|HBXL*uAu%|s+yssmODBl9QJ*m1%iFGPWx38W!9 -zopS~2WB1oHy-!v*ku@@PxZn3kG~W$bp)g4x`;GML;x;iJ%ar$G!v3AnoMcp&H#OR% -zy^Z9fK1WNmXmBV$YfoM&MhuV+T#Vc63RbS+2f4VotgJZ;wU9G;mQk<_sqSGZ9M#B -zP)$p!(EkO2>4PFhkFu@9RKBqK4MiVJKBz=5Dlp<{^Gy3)A*<9}i5|!4Tv=r^>NHSe -zWu!qdn)_(2lNeR?6w#{WZrm -zhbRqQ{X|nxc;(z%2M33S7RN|_c3R#2pM_+%v+nTd>T04pg8NDgc70hn3CfUOVuj^<<{| -zK<-~V&|)}|edR>U7yn6N5Vmi~4#=EWK{FGb#YB+#ZAtgz9lIiXsQH_DZ;`jY_689r -zA=im6f)9DFzhBOIFQH%dMihxasoqIGOzaXQ9Rl&$Y8qH!U>qnfS(Ne!2_1-7H-u+Y -zH;Xg5%B=mx4_6rDgu^~M0_Syqp+>C8*yC?e-7n>u@EAOU@LOloen>v?vW@rFW3L7y -zMA`6xY&;CbF!mRtiXtOVDp=olq~nL1hsRCAdZK59ewXThUN3@rTU;S(OZ?~6o<|7P -zOxtXUqfTS)#bzsB`yk>PB|74D4^{H?I+ipc&PvFd774%Ima?cZ -zmP>Md)o2wbm$|UNCkX>zzt>(@OUn|Y-BmE0Ev?VIFXpE1;>h1Sq^hNB4HA1-7X5)y -zlonnXal&v<2&cpkxxNc;%^J`B>&tHK-erQs*jqFPdrvzGwAEH@Y}V?L&_}TOx2L9m -z7#5ob7FtHFFu`r@9b{kr{sUK(8vb4F)PY46tkU<5IkmD%9LNMj -z8?77!j)uh7*P?p*Z(GY;P#a7&<%j7(P&DTKpB=tZyGmX(kLXVryVbv)#x-+UcKhD~ -zjS3b_k${;)RGN$+2%>f0yL^>$@HO=a`Kx&03o@w5@fL75rR%E3Swa~gJMc^_Y8H7Z -z?gQkNa?W2vRJ*Qi;MdEfx5&54;N@LN-Azvhde&(^t>NQ~g0=6jlInY0I1J6ZozMQpu0w@k|yQ=DJiZC^GZ?ZQMp|fAA#>>&` -z@l9CY)(-=8L2z7f)f0)(2&65t$X(?0;7?lH2-;PR#pj7YKX9mgeS=w4-dpLUdBviP -zZ^&61%pp36LqwB5Xlo(TctnXbJQgIx;{L{nTea@(dR5_Y@Z*@7j^DDcRk#s3BrK5x4k -z;321tDe_XnY4b+!-5=dP(EM@w>HdzS0t-!DsVAREk@w}~xZ(cy%y#<71CoYP&oTLH -zPB86XMN|uC~<(~EAZrJ!Cxy~_8%nLe^&(6u%C3|Ec -zHYVtu1%dci*y~QSR`A?&8AIK@Xna}pqQv++Kw@8gtjL}@@6THyIg@?!93h7Y=EWO*UCj)R>VU;V{w49{VLPBd^je?L0a)sw`$ -zp}*G_$2=M8WxB=wapeS!dC`U}ZV}c9Qrv@9{lH5fi-5zh;t%wB`b~V;>xDNEBWBh> -zhfrdYMnN-%O`+$C^IwRrD@v6&YICENlfT|O3)4d?V?)dX{#HUs4hganbP*K4y^O8= -z_B+9agZiD?*<*TIn*M%#7X>Bij7nJ>Y9ASH!8^uaocJ)evnBKtOjfn2Q@LB}nJ~Yr -zDCi_*^eN%!elnf4%!1Br&lsTv-Arzbax$D8FCG`9)ntzf&a-J_DNn^z*+_3G=P%{r -zL0G~$1y9&R<&t6FQPm*?4{xlLS5q%=*7Vh1=*o9ss`AbLf`F5(o%3hY11iQNRQ>wR -zq?W?4RkhbMOy|ZyK|ES{7D(FKFvU(EyjzfQ` -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 -zw3Eunzbv3krp!mq&rfL`M}~_ -zQOjGiLNrRRi|5eRLc*<$;N8gBrL>yQaqUq85b&=gsLoPa&@t`ikEi+h%+!Y`34^H* -z-&SDs<9Bg?8na9~vD0-GU=cl(X9*tvXyunz2NxANo$FCc_IV`LgWDJAL(-}*+AQgD -z?O!7;X7%mF*fJb2FSS^VspHqt?P*p}=!_D5N3a_)tEH3aE@KJQVYw$TPfhJ2+w?ok -z6&0NwLM83P;jwxdPi448l1l#}%>1oMN*IAQZT{G+p3l{_;xs1u0+P&Go8*+%yMvaaVR -z>H%yYjI(G3q@);geDu`eOmEXQ3N;M-ntr*wJFyRNuMv&aFi_l0r%#x!v>*xS>MIO$ -zuzX}E(JNB5?tGamU6y-xM2PyFdm(MP6Lvm)uqnXx#b*TpPw3urEi8@97l<}#_2on>G` -zB!-iViw|OhAjo}&mR!aTS}zCVlx7jhhUU>~!g&k+K+o~W4APH*Z-Bu$Hbl-S^zt$U -zX#nKR3?p0YPf6DH^-==K_^;1(?m} -zfU{FKz}`1MKYvoGQ%+JCZ5}NC;$ta`tuiB+5xxK4w&&^Ze!D-(Sa8kcHm&FChkO~f -zsQN>a?z*|T3|kLHV%~opwG;$Ny>IugbAoZ-rOZ7DyoYZ@{mSqu&UuiM0?)(xv -zB#=@EYg-3FlGQ3AWL^Sz1RDhm-@QApt*O!b_}k~Bu>4A5wDKhwt~^4aqcBdg#nURi -zm=@gQ;&-d@fNS9J%ir(S_=VegK4By^q${K*%5R}##6#dHfqlE#v<)a#-T7f9+)I#> -zWBUYea4GQ^^L^Z`7avcMw06{w -za^$~EL6)Md;WDKj1}(WtnQ|^;bclpzol!n%IjSOVShh}~jC<;adh%xzIMI0;MZlDh -z&nG*h`}Il;)}4t?d%99y*my*E6~y$HbgJ7rs<~l1S+@rEB;FD3)1v7TSA&Exw|>M& -z4KVY1R&m -zgbSCc#!P&g%Jm;@{(rC-!#^ou9wv$+J0_XJTJpW^pDuiqaXPF_?yhyjH=EnAtGKSV -zif=yKa0Xf2m92ov;o+g`23i!9lT9kv6YETBm_<(Xl1-U4H#{&43Vqw{?-ib~839EC -zv_&UM9j({N^R3?epPseed-zKwdemw=T1FQ%H8#$h4d@VRk*`J))Jc00OH9W0gr1(B -zPKFFYzbP6X^d><4i>ihNqa}zpgWuJ?K41j!+)=1Ghy54Sv#8Ju$ -zrSGg>F-SySydoI9#%#{rW&7-D^zy_dj~sPbo(W!89gJX`L9n&qb;(dT{!i2VPdV^n -zjshBr*eX9p3c}6FoTz`@X1|Nn@#P1E6*fbpnzRfWRvisOp##t95Dr=g&4049vUajl -zX1g3)BuV;32_xygbElY? -zJLSA%B#Q?5XIX1$?ur*O>F`Hj*sR?r_EVOQk%qeXlQD>fR@7(mjZ01?sf?4=BsIeD -z>C_CP7@B<VG1Isr%yNHJYUhtJqPmP7%eZ>}Hv -zf!Ur5+zDMXiSTecXV1}XJEBDUA{wPdQtblpkFC`X;_140@WK_1qm)bRJe7XuxVruY -z&*sKL_`)1vgBEAFY)Pyz$A>H1=)`ai0(rXrPE4@f$Sjl3i=*Z&OY_TGRWGr20C>E9C?e -zt7bd)&X*N6!!3R>muYHcLoU3fXmaVu`v{|7h!q=@9o3CDn_(A}oXgzG>lw5&M)v}d -z4}d!7`t-8eQT -z_>G~#8UEPK(SVaT#-O5AwP3%;tyNKOIs@0_4y0Tf3&s*e+os4$#ADcWau?)61I5M& -zRBwjYsNLnrhOX+s^(j$fc}R7HLSC75ub -z)b?sIWAq;p`Mb2}7|TUw>=GrsK~YjFaEl^=HjvXqUGIdH1K^a0zVg8q-Nm*{xD2kHik*?+Nq@i2NA`8&ay -zdAwi^DFnehDL%44l*ZukmjQu7STBgXEKtYJo6J^7|6QkdO=YGlqJ~D?A*N;``WH;b(^VU?}Mq3Rniea9y|ND60Bu -z*rk|;9QyT~=D=Lz$)xXmx5Eg^`m>Ul@e8G6lcXvaT2mn-Y7WPd9MJUi?90&a -zI5ml@i4Jk@Z-{)-fnSh<9~tqta&S}u -zxT+DO1&e8h6`eNAo$r7cC033xzXaHjp!Lc6r~o}-suxFN$zQbCnV-(-s{pIIF;xZ; -zR=A(akFRKt{xpAZ-RtiyIfUqz{z?wOQyg2dLg=640fe2u6X00xGiN?n<5!fHX;fDe -ztbcVYe%W-djQFEj<~0RYjt9J5k77wI!L5Hclex^$R}$A9`U6|ea*8zy*~21*fVq;y -zaA>nGX5IvC3epgm8o&aDSWtwR^k`_Fy%PVI5WG;~@U_H%1RY^nK+G;TXQA;wuu{hm -zM-GY`+3jnZk@_J_rxO-}ukxm^!G-W4MeNXh!&3gFDr}KMBiCcDR5d*d=zo$HFVe_% -z@JXEdQEHWcdNoYY{`W94ObR0JhHELrhJ`b>Jfn78ZpJOD@`f>RKCd3rmp&W3W&!@q -zgu7r~qK@;yOE?JRY%7q{og@TH&#>e;k~Rpfx}^FT;VLVe!s;8ayc1Feffop2aXOzv -zRZ}p3*9-fJtOQE_FlroBm}GTrBNHrn5yNzZ9lu*p<0k@5qm2WCxZLtG -zum?bOSAYD7(VLJKsC+*|x7(ocff!@!4)8Xsz^X;xh(pGS*UP||#138zqGVsUECZKr -zo|41t+aRkh9GiA3(4u6*$LeJNG}y#Q$)!{?((!Bw`Z&^ErxpDhhX%KH({$5A^g1-o -z-$ZuF!uS}QKtX)Qc-P;>uyc-PZ)_#|l!UH-RAQCEUbImI&t_BUG(n9dl>7>Gf^`8V -z`$+fB?-q&CT#rO+%hywj7RhF$f(PVl-0KgE}G+M7fcZcoca=X(hzJt>uRoy~34K{OR{De@G5;_*RXQMwShX -zl{Lm0hWF0F{b&o8v|I}}4I?LC$M`i$yY3__q%ZFuWp@w|9qV~8nMvQUhBH#nCa6eHDunt@0fRa&}o`W)}XQh9yOA!a_U+7;Y&63XvEPCVX6z+6)ulOf-r? -zG!4@BshaT=OE9%G&vr3}YA^F-QaI2E?X-l>It2hJXdeG}?2lhvLVgFkAZ3nBD{-rF -z10$B-1HhF-V-&`yZ$}%&X|Q_i(%@GS78I9c6^Hi9p{DL`6X4AP?_8^o>g@-_4-b(v -z{rQfqZ;}#`UD-b5u -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 -zSOq>}e?g(b%t>d@0olMYo=ACmuQ= -ze(*nS7%|EcJMa!xCJuEhzyUX#G}P3pqgr-X=3A<;b*KgYt3p!-)cXq&yX16aQ~;v~MmJ -zT*LCK6`s2odU5oL)zSD27U>as7S1L4vH~!s3KrDrd?3YkQ>&7r%@rJ2f>+ -z)PqdyP-TBj*vg1kgh%S`&r*?)iR;ttF*5&~{s%eP(zlh8{`q$Ofl)}N1VyZEIUZvz -z4l7x@Ldu;R=Z!V#=(EJH8^if_WF~gV2foX9E;php8ZYUY9F)D6#Fj&M@#doc6R>hB -z`YrI;yQu3wIfZ#(CinF6Y6)-0wN-TI8KURURMXA~VHF}q{AxGaL-Jt~3lgZMb>P&5 -zBJPox>bU?XrrBX1-ce2jtV>J0M!24K<6%P72UFr|QGviC-!Us`^TlFA?HHVKu3>f` -z|M|4(_E=`ZOp7Tyzn`3^mz&)IqDqSUGCsBCEQa9WfZU0rO+v8Ms5gWK%}^L~8{iu! -z&)HeYS7s9elmba8y(92UxkLX{hvel1d3YS?3ZIsK`+>w)W0|h}>y0IK;hL%8flc-+ -zL)#|$P_1G@qynN2jOh25Tl$j<#5f25qq0{U1h2ticGTpA+*V~N4#*EYc?bs&IudJ9hEup>i<@Qp{ -z`ich6SwTMecu0(^A>rS^7Z0Fwi0dDi@CK6H)s{&pXRdDbwaO?cLej|vLT2)yNLpRI -z5!lEHACU0WojT1G7+t&J_P#5k_2OP4XOsaQr{fU>vF<@SKKm2V%%BbA`CNKW5AM}5 -zQTG9eK34wmRt^y-PSmc8>_(4Bd1Ylw?}iSlGhZL+TBylR{Fl>8=*JKd#?&mLL;p$l -zC`Z*xyGbs4$us{?gjUT!~?_glHFWslX4+ -zP{A6$w;cC?LtT9+Ne($92jdG&+Ign~+a4 -zIy_{**9rncB>(7gxPrR}3P>ltEMcQQKAkBog6!$RMrpIJY7)t66Hsz4^ap{%Efbba!XvZXWh@bD%bcn{ -z7C08mpVZ}hn6>=W3KWHsN3E~wAZmm7BK$VWFCxFYjPo@spwjOk^Mn&iZufU2`|@Qf -zyq(V2bf|_mOY~oXU-@8aH+TG2>=41}qm?ytHy=xo?f;|cEWD!n-Y!lK-8~4>-7vra -zA~7J{AR$Og2qK|?(lvB~}}w -zZK2H=@1F!#e2eVji(x9a&tRL^e85E^JWUr7DwNpOHXq7Wft_gOo+}%3ywbT;HAS5v -zm03wZ;q;C~axkTmqg`5t`Nb7OkGIS?7!0HW?%r4az;-1H7jbc1=gV6rb%veu`koJEM`4jq0{ -zLicwfRTY*XBl`p(3AdworLF#kv91m0@ZUw{m`^+OC2Ky1TqTHkTH!k&C| -z4r5z*vEAQ=kC(F9z8s}izs}Xswe#|E>xU0d$)1}L#{1)kV!~)0TUsYDjA8%9yhZrl -zYU(qJeY=H;EAnmR5TsHL#PoA7xtklW1Bnytx+%7=z5?#?s}Ar0{rej5@2k@8vy$$k -z!o}y9?7n|{?U2AC5dyUVn!|H*6WLbRnXBZzD{rxa0 -zg!CP2_fIH`6nDjdy|%6WIFsmIpnR@qT5b7vw8@BrpIFfga2hVfN-HghbhQw>kQ_c= -zLqoqB@>REf=tfR-YR*~@Woj+{cVe?C*G~x?c9cZ_@u(*Xl^bN~e@YmV6)Tjmdk}e1 -zvwAEceAC^!bL9&thtyP_rrijJJ8C4IJu~|c*FVU={z|y-YMEYCx4u9RE~&ydDb#)Q -z8xLVuDvZ^K1x@rLLI2{eqYMfJ2u&0`K{?u&sp2Ou#v+ZKxD!r?o+xv9g|ehbCnB-f -zOidQuvFUowKz*O9HShO*?wL{1sn@4+wyP?0&%Ol8c04&`DTPt&-Duk_{w~+-w&9Lo -z$P3PT*)rLlOIL|`_Y7N=g3J+M%l;8me}{_MiigSXUAvqvhq}YnxP0Kd3d17VwwiH~ -z!w2-MS6_w!EyW+4)GvYXI1Z;F;GT(kkikCuLiRkZhJ*kF=RQ|4@C(FxtUt9^ZVh3!d!D(9tRr=Vh4d0WR)w){YQZQWF?DN^>| -ziQ-2*ZFKpPe4+B?kUYm#VI;kd*+{_t{@@CB*xg&X(26eP1@K#T?f|VPd{6ni`~${F -zqk2iUFXqPjMJMa85%cPm&dfzpOC-`ifoT{dSt4s0#Lq{C43y0C)AonA)_%=@N6LFi -zmZBYM`~Tz<%3tOAJu10N&aaPQfA6?sy7ykqKvb|nuHyFAAezL_QKw4o8>dJ%4WsZ! -z{eOe3@q9XEHo~EPo(9En60Jgseijl?trhI))o7y|XDejgeOB}0y#ceuZJ^wwQYAs`J?f7B -zXZ_fwr>vhbBun!(u*W^{N_gOagYuR?3b^~%{rz3>OFS`AT<7Tyj@4p;1Y0Ys9a|&22ugP -zw0UV0&<1BcWkCJr0`&Z!YCot)`vUX@sFON&0*QVycRHPKLbGuR#zZ{M>xy?t(Sw+m -z$E;0Lo)Q~O!w=s7bQOB+KkPKpj71+#gI2oFXobjp^8i`}c`%K8%0d=mz55K#7{AF0 -z1ZUhw&H-)*U4xz#xIYpy<}4k2@S|9%Y>$#ACvH?#td*>9-&j@fI8C`q>*(}M|A9F- -z1R{Gl^wxW#t+RjX=(;0*CiKY8p0bbw6_@iHHSq870%T8)6&884kzFN$o*ciET!Oc& -zt7`?mH1gs#kvHxn-!+g^Z%r^a3{vvgp?nE=DZ3N-f-O%UzkOIEE{rJ=3m_fhXmk6$ -z7fn>2dX!O%jZy^E4iRXj-Ef>I#;?cOxB8=R5QkLUoca-eUwvs$IJJN-7tLB?PLpoR -zyL^+!wHgR>-f)GGc#yTuY{&~(@_xy%k^4~+<+Pbn_CsOOVJ-;Qnj24)qQL@4N>A_v -zD}Rp8Vg<{lbHZpz8UrUSwU&i5lS=#A3tXYyUNXCsUpS)vVHOX+c=3Xs>ov@qQfwt} -zjj`p~@F-09!}=s4e$6?v4NWx(jjri~T;Nsv@0kZv>b~^xC;iGKH|sGGM^SMQK|Gdm -zxc+hq;&#FWO~8g)(!Qk`mo?r-Y95@Mn~PtWlK4wa?t8)U_H}oHYm^8nfkOA`q_shf}EoV6ob#Tr=A9E61XXH}VLFvBi2 -zi}apLX-pT(Gi3`C#lAx0>)wrV^z -zeL1ccN?)S(Q4T)|S@XZ#Z`Lv$jr_Y7LSky~%?Bt^DDMnAPGLqc`P{~=Up723#ZLf< -zPa>KaBWkkytSHmMx(!pdbe@JRwZokG_aB?%UlJM9yyR@OO+6%1hcW11nJWx7jBExYn6rdhlKfZ2_E`9`p -zTow7QbxLd~T3uJ(g9dc8Y!34=r>pad=kS&|o$I}!hva{`B(^o4=r5R<{zK>Lz*-YY -zB#?=?0Is%uASIjucl86^_Z32z@T(a1-Dg*T&%4B}^v0pFT#7g`5LeSW*k6%2$JIX9 -zgL&jd^c8n+Z7{O(8bje&5HOAYf+X9swCx;?>^X&xGv^e8$$~|@1HV5U{rox5EP(z% -zVzR}t#q?3jF9DaIu`h^|;*ozXwvTOo0ab -z`rh-5#|QcWEG-C*mbKTTDG`rV?nx58iMOD?Y^L|)89jJdMu3_~=Tn+)K>wlHmWwar -zY*LYAtcvOl*T!xq*p@s{Of*Jd6=kv9gmYcLRomeKoRGJUcU^NhI*6=go(|vNPMGxH -zb4dNLR7H}3>|WUQPbq{R>@A!hjrl{z+bEk3(dvJ#bY`Q@HL0sa+FvqSy*}6&tSK_a -z?-6|KfrKwPJjd-0-p(gr&gYi7U)fMI_h^Jbc2XoB?KNE7XENz$6=s*^^=EL?x--ob -zcs$NNWLzA0d%QAsQ4&+3-W)nj8l>D5jQEQ$9Qid^8-0|;b3FCun~rnTW&&(^H^7!O -zbO+A&C3VpU^W1fkkqF#W0TA^uuku;Uw@OciyzVf`&r?&0oAX6Zk{s0J%Aw-ggXOITkeA7jM0 -zwy+-_3(U;Jy$*fRzlE6?2qQ548%r+{Ra#oAfW8-srY-)jS*|*vLZcu8LQGoCf2@Q{ -z|L#BbA$Ib`cA`YTRN7gR`ugdhAUCj_P_o7&9SXd5+R7pD+L3Y}PsO4f<2|E|tU8w5 -z6;b+oyc;R;O~hFY+T`_;%jJhH;?7|@TmW&&UrJQ<`~W7dc~}>OLnNMKq3wE8H!MMV -z+o3+*W+2L0cA`aA;((BBWGNVC-Sa>T!w}f(IC`lVs8>{Oq#zZ|zcBA~r1LpImskTd -z8+SijjTmn`B6xn)OGXvbPib4S?_KhneP`z8V%cNH=_P!(H~#S*t&5%dD4ia|$ntII -zio9Arju6=)za75xOeCsgNy|$I!8YA+%q1c)#hzdJ*_V>dj2y -zDY12dd^Alj`$rD;Bzbd3BLt!xSCK3dB&W%*lyLP!gNQ6LrJ6iS<;mf=xbH9bwIuqpvagfms-5MtKld}P;fOL5 -z3DV6R0+?JFRul{tc%!GX-8kJYkOaw8BFp^tN3=gfX0DU*Jv03e3=N~i%QJq5(zJHG(~t9!_2;<0OT1^nLa0#U@HN~NvVZ2CH -zeYkD}MQQ9M+0Bq+0R%z{8mX(3QqmJd$h4`$J&6kO{ni4z3-q-S-K`JKio&RaAssqB -zZM2qrr3))6WVS-ZE -z|8^fg7ISC@yJe8-dg}<~UtV5*&>a(J!BvS;QTMsRmLaIr -zpDKR4uWG8KYiX$pN``nCa(^XkzV_J*O;DV9o2OV9#4RM>Zct|b^2OSE&|rDF2`l=k -zSP|F^8)#Z}$2l*T-;akluPk_1ZNvP6LpmNp#~^5qWL(=aujJ=!J#b}ZqOEorbcjKY -z|5Sc$H4-uvdPSJX{gr~OXQHr#klWi>~^XMH`v%`u6}M`L+DSN?^7%H3G_=&p8BMn-lMg!LV`e@j-W2BEbZmbuU&krl;S -zVZ@M8IDdV_cps|slJR1xK?sbG9yI}0EYM8P&r0$_q+Yk*l==uh*KtB?8I3%?)IAo9S5}oE=VECM_>Z8kgDT^Ly8ac%u%mqs)484j>3-56vt)vfnKI4E^;@BHik_P?rkLYi?l_y)(U^aBm{4eBA3X{GEMBMFsv`|7uKdC -zX!99WNfLMtq;dGJwe6es@u!3qNl~v2enU5|nJD5)KD=7hqP=CG99nvmXsTAVMT(da -z53=W;hSs>8oM5U~Ob!sVWXMIbFn_CRgU4njGf3^SFzi{*AY&w?zdwa6_ZO{c637PF -z8oXs~dd(s=g`a%+ngN=`CO)VabWJQ$@hzy?C^lGIWjWZM=$+8kN}bfgR^uxg@p>=L -ze24ZR;}2az@J~;ZWlRPp?f-);3VDm%C>W -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 -z+FT*BQcmuF8=Ld~SKeSorD -zdCl}tHk%oKlRK`2^V3O_=Mg*sG5z4b<` -ztg1r)%gQ#(j06$rO190mx!Bna(HBa#-oOXI(MWf||HNQ%3z(=zKx%YKpRk~q%N>Va -zU0eRxO}zq+D|vpAN78T%D$sX9GXU*u111cO<~nBmJC;n*4N$Zv0EWmm+_+vPUATH+ -z!Uvc&25h4$?`})x5BaBmV~5VZ-IjaS-0<<^$NuV`n>D5&k6N9VtZ&8#O7tE8C*5fz -zFIbOYZYVR6wh;MKBUNxkrcstC;M8q{Cb~%InI!9SvTpvVramV+m?Lx)q-K+j7;Q8l -zR&hr;v>X3|@5*p=o5Qg6SC1w@-}baBWS@}*quLV|97ewifW?)U%o0zQ?zYiM$JR$P#U*GaYUkk2H6{W`CacnfV&VJU{&83OPRjb`XHQrRW!ufv~fSA2b-Q%f0 -z(f52@NHdy`5nrs@v>=S4)MHse6_wM-yzSYHmqY|J$<-gtT}=JkxLJQrc<#6VH8GM| -zs>?KrI-H5wu0SH=^1o(PhO&s9vV;E<;@nJG&XdnCOrANmAm!7Kz^&j1~jE%K=JW%wp|`t -zTN&0O@o5EoTF`-PW7ZqxP&$xKpBv^h}U3 -z{q>JTK|RfW!S$4#$fI9SG8LL^`5ZY!=z*lnhb>U%Y|;Bp*Y11H&AO9I_%V2PxxS5c -zIrOviq-yKNnj=Z7F`6Xk#Z1*<$oj=#0HfaoKMDHx)URU{I@M``nDwq(9(p -zH{gwqyRpw{7Wwe?Q^?w+P0TqOw-=vV)Ee@m1#9@$J!z$A^j2sWeT@)dG3= -z6*L0R94dFSQv=AQYR*2a`qS&Hw_$`3?LL#|5idjr;?YE__=4ifOR(H43XW-z*Py8R -zK%<24w7PMuLuFC5ck^WBer@7liD8HISmt4vl)3B5WQH?#?qUYMEa85S$**O983b4E -zPR79o+%B_&HH!HQvrKvc-}W!ISv_7hCFU_m3;Tk33i=2A9wN%cQ@|oCPZ_GSn`XF$ -z9TLBi{0A?zrLDE!Sk|ea#iM&rW}@ZrPln-q6S_$V!cGc9C(M4{N@EPqF3FpQy-AZS -zMJyGN&g~v56Lc!^FQ^RZMapmaP0lO!e2`iNhQqQut%Ch#LkicGa*}-fzgOS(Ae3K_ -z_A2t2`ia7tz2UZD7P@JJKX6|i466G-hN5`mgO=n*MJMXOz -zF4CQnfjEL>xHRmLL6FQ}BfMp7S_nt8t_|&1Wh>X;1g38Yb -zcBV|kmzFKrsvx8M6v?d;MDH{v324qV?jr)Oa9TYN?)S9=oJ4-4YF!P&)A7V#WXy9AMm%NKk>8BeH1oj3A_=WrHjbXIuEW`ZQxb{ -zYsY_JYtLxK!I~FhO-81htH={ipCg=+6oLtXbbZ2$BN;Rn17t6)(*G1g0JiP3@w=HH -zz)9G+n?ukABAgTFwzNv)2`mii+Ay8}9Hnxhm()9F`ugFaU*dS#7`n@joXITTFtfRd -zz>LN;oOezqCj&W)6iS6}{TPn|KQQ1xYUigeBS&T6(@Vt9Y5w~&7}Twlj9Dl$h_UUE -zVt-;=fJn;7w56w~f3)!7Dx8h>)t5YE$w5?#gE(1~N;SbJ)Q>M080q~8sj}eI;=9bv -zLRF?9{qQw#!ISOZZP0vn=(aQ%i9trB%Bd*qv^6ztCOVlv*A)E}LQW}4ujo%rn04R< -z;pzCY(_D~nGiy9=r)6n6?!J|kYgNEwH;&%SThEBf`R$+r6~IBM>H&bJ2NK32$V&ch -z#GmJ?c4|e3mE?&D*s75$jI?nhDYI}AtOXN_da_J6Qu1|n(nO8&>5u7gN~BIHn87g@ -zyw~8{x$HG=_wfCR{0LX6wd*6@f!bQQFSOwjsJ2R80<+nCC(X320@F0@Cq-c9UZ_O(vIO -z650V#ozRqG=mIz?FwN)X=DNsrrgOK4vw1p9R)m{?Ha@qze?EgvVYW<|Vp3k?0|r?w -zhkM^hf6RvER(d0MUpYK2v#i%6zBus~X|i^@l;}E*g*zE4kHZO-!_)+d@b9>k(%>2HrdY}4t -zu7_LMfhgL4tQ$XW#vprvPxt<0Z(9RrD=e<`WOAa9|SWdA@Svg3PU#wzdco<*-hTndm7q -zC2WaQHS2GrfrNu|#i2{DB;nCiW!g)+%%9W@9PrZ49+0RR)-QP=WIg>{1&xv?FPLmg -zM|4E|BQvmYxL`fhd+y&2r|G&}bZ+uBZ-T9H&pjt`nF5~@rGf5tHIZl~Hqh|o#7&B8 -z+UoG3Fs09CsL(@zX*niDrk+et>SO&>T`&nR-AQ>MiUmR3>S2B47zedwtO -zu?I7+#1#jN&d~koc4?DgDJ9Q;cL?l+Zdf*w@F5s$u|aSYazwB<0I4xLl!w!1U(_~a -zyynx+n6P(R)P*hn1wHGvM+z}oV!;%UA -zPmtl9L1RQ9*Mp2q^%J}_Pk@219eg(2zd;;#pMf5Uurv<=+u(R4U!+RNmtOMEN$>)X^Lt34$-8Qe*%Jx?I -zNB_k?caB(gV~&Y5^#?oh6BJfgENp)`h>BuD>?sSm9Fvt8v{XunBEiz(B_vS_(yXGp -zR0Jz>yp8!;=RPdO7~co*q9ko`j{zPwf;Li^HsX4kH$<{H+^NdMUW1;QX}D%`Ek<%T -znCAKWh9&S}%E*4Yjw^E!<8upG=#RBBpLDn6NMV9SzRs_9c8|gNuFIA?(13XjNO@m> -zsldechY98I`11v#69VPBrv!v%i6ERbh;fgXLOu=#l{z%VvtBKB>CxbM0x? -z)q3?8I84)=C%wh(KHi&QU`w8}IpyM7qnF@%UQe@5%>6S+LwnC){=vj#xi4)iwO|U46zgS;+0s1K#fP%IDCewt?Fji*Pfat${+lorHiuP@E3n^p0 -zwQY*A`C-^V**yF|mpX2dh&=a~)>-??hxZSU#JbACt@-gw^1z)Rp$0`+neqJiD!Fz3 -zzyBkd799oDfCwoX?D==L(98^Sr*T3@cC}xbb%ksnMnkQ}qtvTkygDI!_(06%r)Z5? -z8RuUFaT)qj_)&7SN@HVVFa6>RrTf!|_frxDWJ&*i+sP_^VW|=N@2nrb`^JXBybHGz9z(Kh$TDx=<<^;yd{$pBxk@XEyaQ5e!it~!g_e(E^3Y& -zxxkj!6N*!{`3aq^*>SE@Q=>;kd*>M<3qYEO;~qY~3q-1bID?{~#Y2OC_qgwtXgUr> -z1O8nvujbu&?2Kw~h(f;?jfyck}a@h;7 -z!>#;jnb**N=76FL&^5W{%L*L1LiLd%QD-Nb#_DDRaz -z7kIfC&hlq!K1&^2vT=U2M`{=MSJ71oNsWBzdqLD#MFTtam2Qj9`D22-vyDoG81xH7 -zYP~U`N1t{nU9N9*Erj>ki}axsM9Sj?-yH+4)+4%-P{Dbe#a21axCXtFkKJ;JVN@yW -z53uID1iNg={qMA>lJ|CDFR(qd3j6J3Z9%0|Q|N0RKl?elwVN;^U9-HYtAFPc^WbDT -z1vUcFZrcd-PoOL7Y;UUg8z_dUGGg$T@&p_l!YuS=Ndq#7ln;{6)HTNBNPE*0quCjZ -zZ%0iN!ERJP+(-CvT4Dsi&UFUB@@*5;c*U{0n}rOHMEZ(OBG|>w$TdN5_>p0GAwzR;6UYUiD;Ux&Vjoan> -zUpv;ezMldMfkj`{7esL@bZyW7-j%%kxP7?ra;Iq%d_^dXl<0`$ouzW$TnzLt&W9sp -zVE{PQSAUH)8+z+)7?viDI$;YplA}JdZ9N-b91Z9Toe8IpS_#RpgohhoMmo@9X -zPAI_;X)#0ic^~Wly#QvQWf+aYh-$#Mhe)D4 -z<8Azc1HF;X{!cHaPqeYW3iRZSTq|1}^RL-H{CHyqnz1|m=FQ*6RwI>bKNxAdP0C(= -zxA`vxmS~ccsY*efNn%Y^1b^3SST}Dr&>^(8xh$nyFVj=X>7*I)`!%rAs+H?A)JVOL -zB3*$$S(vbI`uNR>XmC15P%TcY$@ACkLy@IG<#ru%MBxt7NUaS~M0lToG+J^ZJxaMK -zP|TX>E6-1L@8fuePA|7$Dx_A*2y+YM|kZdY+R_c*H0SNd%z+f*pBi1?Qgu8cAJ=C0XEX)<)DbvrO&*`Fx -zx{rH#lB5)=Dh)E^u&%&&@k>J#3_~sI6_HM(_mO9tAfaL@>pt*^QB7)@)Ym=y;+;ZK -zH{_#>fO)&Yf#&M!!omS*OFzJo#uIypL4ehTuJEv*b8&8}7Trj*>pV3Uqk>9&HBn&>{G -zcm0!KTBH+e6gc2{x_t4&sJT@^VWb$urWEk@S0nt(tJbX#(9o0y@l3UIRSYG(sdW{r -zpI-d{4o)<<4W7AFLk;fQv(U?F1AbY=4)|nH#UdUJR@CS?eN9oTc~MrNQ9c7DR#_81 -z|H%6OSKF=-B(h?eV1MW695R_*TKwVB>J^TI4IizhJm1aK?A0WE@~x8i-)7uJA7V!T(Fo7*OCi)FC%`~0r_g@;n5U& -zlwmpvufy-m>GYTXQ6N+qx#q)sF8o@y4(*DXp=?DpGM3=|1DeA0)HC(>L@4VYt9D~RP~`*l-k>|v7XL=LYw$NIZ^TOn6eqi&W;W<@OqPK$pr+h -zQLX@cMF=CXbk?NxPQOVwd>FhiKCmqn4{&<~Y5elrYMzmT2UmtpT-sGQN{MHI5yis`uN5dDJ -zKlC|b))R#I6(X=i6S>=L7#B|YtDrX;kEo=v8by>Tp%yA;CdIG-oR8u`JcOhMN){E+ -z^vPfpUXtHs_3qwZPa88N=8Gp247{+(OByeO6uQC^B~-p)p8p8}UXypR -zwCap1{i|)D+pwc7f6O6;AeLUsk|mpktiw}8k|CndyHUf{5fISqt; -zQSh+gWLQTN8~*u|*ip=7v8t*{n3D_iT)Bo^=9{}K=o|UI;b0%R9vV3~aC!yW+Vp!8 -z@0$+hSAjATUsc3qgi9N($xY;^IN5E!79xuZ*((jp9&^PweTAp%&H3T!#yfVr_vX0= -ztUf33&u4g&OIO*GYiw5^U_r|7*4l!S$wvHoe(^aL%?!xLhZqYs8V{OhkqFaP@^CWI -zB&rCG#i{ivp2vusReX$Nia3&E^~Y2d$dg7xs&a-uj!lLuKX$=V=q;gdX9$KU;)}bU -zbk<$AGvUViy#FqDqm&QH=9qdj5aG7bFF{a~r@`@d@Y9B%=lHg%6a+B&l{oI!x&AC2 -z_BF_NU2Q}!ru^_=As_8Aq@_|23ZDLE@QD5H71xYGm#Gc0Y^KHmuqcBY0>#PW82({R -z7pS)2e>yXLI4$uD({a1vZI}hBwISonq%Txg4ZiK(n -zLG4#V%k^-LeC3MMB!MLYy7FepWn{d~QViN~P9CrES|^sCLo(;_f`SU}Kxs?munU37 -zoTJ(1=1wLZ?!Esr!r8cMFVJgBA8@m@`YZ8RZgI`0I}ge{6|@jLMBWed*%IhO#@`bR -zU(gvV(&7{|wI#mdBGq0JOpBJ^3ihOpw -zFYzQM(a*f|^UwW~{r~};Ze<5KE*%{+iM5oF=WCnwA6NAYasFNEFk?$<>;-ZIhET8v -z@n0Md9F8w8mt`~9gJm_?nbr6S@2NtWJ{MxSdVo9*$%XP5l^kYJS@f|MyHmktW!x9t -z-(IIwSu)wAr_NS3HmrsppvQ0JY(x?}yT2#qD(HA2`}c?AHpDFWIP|j?;ptV$dL8H| -zAQb`h^t=82BTg1s_-mj1X7a9ow;ixCMn^}p3ap#e%oQ*f -zicye(WU>E@_?z#0_m6m7kz)%@G8EWK0$cPQ;6Y@TXjpLv!wx -z(4~!n-`{#s#?BRR(JdPNnicPm+?XTnHZJczcGFNmFSGpp`<@N{lw0C8{sr)A@ZUkndexUgCP@vlZ(^A%$v}j?Q -z;$SpW)Me~R#B%axg*WrxGu#KOyI7;x^DuYAdE?aHbc2yM2pPT!I@QZO6y$is9 -zntF<58Ta)Qk_rxzbyQ*^DySS)=>h3ezhwU;TFz5NCeouN7)`# -zIqk*I7?dtqZ+#+6_`$A=3I!GHl_2%E6x0k4tweTXCg^T+G~wqs2!$p9E5SGjzmSu` -zNSTC-=<(&L!osy%_t&Y=9ySd9A5B*o7FE}-X^`&DA*4%MnxR8lB&0hfq!FZsl3d@(2ETgtv -z=ivTE$Tz|pR&s6q&N(bUpKy>rp6l_fj_uYhSe83;)P_yhV~XB!PR<5y{J~rG*@{b) -z+1-jzNh!DKG{6*jmMKM*QCC)>JcQIK_s5>H4XO9|YXbfwEgxSp*nH^r6iFPXE^Z~P -z--+caxOUvKXxlA?ahI2^srfcCK~nWm5@hbwOK?R>kB{bb5MFBb)Qv9zUg}HWyI5bb -zVVQ%NSd8|u?0!{UNk!pxzk4mv2LuYh>`GI|2386Ertm7L(Vrx>wPW;_NLXBOtbGb2 -zaRzu1(`OV0w(;BeAk7;X}>(0{Ogf==t*iPhD&l7+Oc+nOCVFPW%Qt|qS>EmQ3zD=mSIjK -zFEG1ftyhKX3z~wX1$k#_{LWJp(+!c -z{{03X2*5!b^378N=_|r---XZ>-!orEGSLY!u&Wv9zC@eG_dpG6POEQrG2J^o4EUM5L=__h0exwvPvc;N`7jO2)F9eaOiSuS -zM@vBS-7cXr@~))^jVR5XKXc}08ArHTv*Ne09S%1>lGM9`y=bCF`JD|<`YR|?mPYxi -zy2=@HP`}4W2Z*_{$;3@Q66a}Z(s*+rf8QViP{tUi8^eJ=SUDb=0XXtjGSx6#vmo*8 -zQFpF2)z%%K2Sy0t(rsH>feiB354e@(e+jwd%yt_s-CLghzEL0Uwf<+)!-9lgR7GAV -z_}(Ib${Tb(Z4V@pa3$XZpb$DIt%Jt~U+NI4r3ECEhxI=s|22qwI1qogm#9d4Fx~&{ -zi!ul6AUsJwdUNcBi~3F31bJ=P&-^g?M%GpnXvy4?;LJ?vNF#a_V&6n^eTaReA#@nW -z{=njT{^#N%r4P2-=vmR1|4v#ROSUN<|8?oSk`M%y=yB>ut`+IZGAMMr^X0k(amV2b -zl7Uh7s^L}0R}gGy$rI?TNe7Z(f-Nah22b}to|gFgTSAVp -zRw4iwP@HxMG(QuelESH6L8tYI@z<(C1W}hfjEip?)%KQ~44&%9Ed>KB^RPOt2@b9o -zjQOXGO1U635^C-{7q1Nyx0#4#25i8Go3Sv2GU-$cxZpjx^6>EZpGxfPKQ~Op#*X0> -z_Voy*qW`xp!GuCP1b%e_n5>V|aO?)}COb$V)TGDn(SKf0d3es5ihPQPK8prrYHS^= -z)sbWUcd9=MWrGyv-K~}*a>aI>!*Hn)+NeuH-WjT(<9IxT<1(G1Bg85QZ`B_^r$c^S -z*;Jy@XxcP&1QqsDo2D+&!+VnTAA8Q#7rU31fTO}GG@A#F2! -zI-}Nnm*376b5ObMYzh<*mKm*;`irGxsl(_e#Xu6(WQ^8@LA@_gzD;Tx4w(Wj9>ez43`dv7%QPfV|uK|yGrI4 -z=;mom+HBUVOvNjm(DQR2u5;uheScxA(vLh7NMpaz`p;hm-2Bm82%bRW%@z6f^bKaU -zzIUYCB}Va1g`ea8Bk-!${51=!MJGrEi9r(gfOhsU!78+nxOp?9kBX}mHEFZG{HV1w -zwUZdw<5?*18y_pS{=kz`<{UzgCw{XYS_~hC9^o@7iv{LT?%&GtJW71AH!vk=NCH7! -ze%f(2qYO?ACDOFw?fMu{j4%&W^_&*yGx+ZpM&iPhPXBE5$f1@R7TI7#SWx@`3DPvs -z7az8$*2p=0i%X;lf+{!Q96`sbw)m9ApcC``>ZKF$AQ!YoIDpR6JnK3Fx)KXKnTpok -z9w}x-B%}}F*|_zaCm!Px&AgyD6*%h%3G_x#rr9x@k3ah1Z&#h|Q{W3aIWX(KIw2!p -z&bOAbanv|J0}L~_BS-qfxzyA7{3fx$$%P*B4hl6q`kA*gJZ#+KaHet&exVgq2-{Ei -zBJh1(FiZ8l#V$HP>nkL&V@`OJm;xIB@Y+sjtI&6(_>E{MBOM2xrA3#<#IrL5uBpTv|`Dq0ujCrK4>avU0g2 -zoCL%cHnI_-A -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 -zlq~$GGMG -zbnE|L3-B3RfmQ-_L0g^QaPrMNR)4l8!4;^u#v$NM$Q9CclhUKb<&1TKJg>NVYry^QIu8&~(h_@HhnV#p@;SP4r)|MdN`~LX4##kBXg*x28 -z=8-1peT0bk#>b{h3~cnZG)ltuaeeHZHa~D -zWi>mNPpDD1&U9$x($Sf&8l^P(wbWQbLK4)ZYPf+7hDxR2tUL}MU`1hr@=zVZt4;4Q -zYo^H9Nz1cOQ<0+23Ct_MU?u}Sw>3Bc&&tSK?WLo*n)WUvF5%#&vb3gd1Vo#IuZ;d5 -zf-RyAgs`U>H_$%Rc>a#6ccfp(^FzEq>3A7JgZkvjk**W)3n1H(R_;G5sgUR1W9a73 -zLPe;iC|v?bo8uQFndVc-%46lgTRTjeHfN7cG)U5sw_KB_w6L}E`@?5+)Zz+lAi%JS -z-Xgn8b@sDo)G*m7kZuG*qsXJOIQf!p5qpr68;0%Q)IrK&)|Cz#m#tnY -zlRwi#Y%z9CU*VfEe-$9(#81E#=GRakGP4;f2%_V^5UV3d5R6b7@QA}Fl2wm(;TtJWh{j&xh{}LVzBms;c$4D1i|`X -zZV>1G3lFif#*_aq&WT{fqOq0)1zY}HjTjINXia?@9``r@={6tPS@_{2_=9U~41dk; -zqZ?S{W{xiL7MK)bIn&FBtRXp=V)9;l(l7xg9ZYC1gX@Z1?5M>gJYdqJ& -zJQ6jI-OTldB966EaRcQUlZADATZ?0A2onV%DW1JP?UU)*!@U0i?m)KPl-VDbBPjlJ -zj35iji&^!?g0@{FN`)6^V0!indK*IbYL^r>UBr(cg30bU!BNX#fq+hVxs>hUK6^HL -z(;bf0cYD4^riM4iFLokL_x?CXF2$p&m&H`b(wr|?AbWHXI%IFO3)!5OFS!BD*#QZD -z*P>MK(#oQhs{ -z@T$}*uA|xBiU{+(EQw1w8s1&Xn>C%ycI{Z0jLVNvqKbbpL`!X_U_4^B0BSAE5Dcng -z{*#LleQu#{?I*5e@nU(Cy~+T=GLa?{&VUwGBc&_Fq6Lom4XV)ruTD`}a^9*c){7Z; -zis$bXqI<(6{xxaC2AzLt7g=f`%po)8joRd3>#i0&IrB>qcqHhu7zps*##&gmfXiA% -z9}2#<;&RF6fckX2M0^s_*{c4SpBPqerwFs(mCXjo5!%lo2fjS -zgh$TNefo)|(uG4zh9S?iUBPR?@(tsc0|#?1+xLVEB%^_f-$?K57P;I -zwd3W1pco-q-1R*ESB~T{c34da1T^0y4Ihc%O|fUu^6RnaiRa>36GjzG1oH5KgoG1wh4+~=|4piq -zAM=1<>FQlZYCj~2^;hQ3e}XP1G$3kbN)oPo_|irm6W6DL!imLlE+>J&TiedwaAQYb -zuSxpHkF6Y4J=sIy)wO>sYcvVBx^x7I8^1x*)y-6TM`Ib4npsR=VYbuMU?kDAx8&qG -z=aitAv&NpIfet{#5Mnjz;pUkW9 -z?}iZd7R~8fRlp45LoPeD$ZJu>{~}7MJKyga -zS2&|KWA%Xfxm3utrfQ>|t%QEN$`#OOq~K>^iQhbM=X5I($AVAF$$t(_XOYWZ -z%XaLh5|&yAed3HYIE?DCr^d?&D0l^0ikpd{N2I?vvP{YFxl({(6!Xih -z&{r*}pCPw9hp-|(lA&6)>0H9BK{D1mGZr}l7E*+!jPFI{TF-FN0@I{LFK^)>1LJh8 -zA;TZEheh3CG0wkk-ri($rpN7($PhaSHpOx|zX93}eI-nHpnLmDc!C2GDxDVEX`LD)(zVXWfN+fch66I|+eB0fkAD%ra -zp2ar*QyIDh=lK29hC-2b`0}CE}d21;$sQ-jH||ztmprR(mj|J -z40t4miBe#r4PT7hA0r9mYP?Jyw36?$64?*5jyk~q_b-DxG}P{uU0JRPh?g8^;%(Ff -z4iBnIA<25e6HsEhkB|eq%r&pFz>(Z4Q;yxZd!Z_%?b1(;i;`e;wUUaQrPc&3`46ZY -zD*^-ZDKghPI$wlBh60lK*tMNqxxCT1>|=-uE)o8qODLHca{XD8fEjU-CQ@%FOZ_`| -z1s?t&e;Kaoe`=J0C&1!hK%Ty@?d8X_R2sv6}-{=bOOukYCN+Wge%G2L$ -zrY{T7b;)~$f$3G)?DdtzX5fM+@J|$R4m0a%@ws+VilDV-%H~pRdEd&1W(wVISZ+k9 -zeA3WEP9VzbW>YCtFbijrHl)TzV}-$VQXGG8Qt -z)ZPpD03CqyU@9_$&(I0_9Ml=i#Aqn}q!GU8v*=ZVUZe_9(oJL39BgJ2(KmoB%6AY!LtQb575ji?;3WY~&ic7Z9Kx}hLY6Z^#{O6C__ -z#UXsK#)iR1M(AM$xKV0~|EgFf)k}nJ!SXzb%2$@SUwOHX4NinqaodH*lmAJJZ2^Y& -zU=XsO?;mqwAhckP#)8>PajNoLW*vhX-6cr?9vg)yvY1$gv9BfPowgzH>_uk1=NJH{6xXeyk9QE7M?wk9WUS -zC~`&y@sy4d%^u{P2?jW6vOcFjylf1AHdrPeT1uI1k))SH#@`OwH^Hm$rXUdH%)k9Seh)H+wD)78{#9zhfIl5ieQcF`q6f(k)k(yaGzZIq2HSQYBHMG|8*}5ykVo^ -zIfo3{Sy3_$hEA~|M-eJ!rV>@p^M5PXW+3DA!z%U$MAtM}al8?)yQA&Bdld -ze^hBHp8ZJ-Ti*-q4uR_wgBdpk<)-Jv1kd8BMeFN3I#vNI7fqk;Y0zs{8-miiYL7Fk -zR8m~J4HvoW%HvtD*$eAiNw$DY;6jNduQSW1yRT2J(w>$Nv?WZDLnyKGSK!HDUv$qM -zmUDdU+9nSE=nQ$q;DpRrSYnQ7n$8{eOtpOa;9%FFwgqBq=xhV(!wr3yw)tWS@0_94z3i_8*d~fc+;KIka_Ec8VM(@{3Bcm@I43 -zV*p!=`30o-Z@JVz`@XImb!oPVJ>a+U_KKik{mjd-L%AH4PX3a?Sw;!nSTtAT9w*od -z#W`3X6*fOKo+t5NClepnxlF{fN~i*{4<}>;{?bCc9JI(Nk}GZhxRgjI71X9(BRiv+ -z>W-Rr_CPnyPLo-`TVnB^nww8zSvHvA8-vZ|m#o607Ei{E0ZZxKiJwRWGpz0ueEjzc&GaF9;#N8~MI-xDsDh -zYVJaQI7&oF#NBvdeD2PFl6i53gY#XeM4r@9z~|$t_J^MX?CCQtEDZFvVf=VI0?2xX -ze~A^mGAc5aC)|1>8y2t?3Qd9-bT>!Uspm^JK%&^?#|#km3$P -zIhpg{V%TYx-7st^K%IR(_qExQ8LwTUHXnbpx}n}I5^f9p2x--;9>^7)dRQ5@YHIC3 -zp=gJa)WQYR%quk%1kJls8T;pvA7rGF^JLi|$P!8xM6i!iJ?DSax@1k~MfT_sHuZyt -zeb!!le$TJ~1oP`k%n;`lM!xD{QQS^XvA7C!bXIE33vYHvk6a|Kmr^MkfC+LzejE9T -z+{1q$ISai@U;Zx98gh2491^kg_9v3w3PMhNq&TU}AT5ZXE*a4;N@7?~asjl~1fO2% -zi*0H~>9^SMP1(uSwcN}epsNp{x)L2oqU|Tpaf==g4-con+lAw1Pz!HOpo$He8hu0S -zq}&f-gb4J_?@M=6A#v_05jlL-#m^={%WbNsmC2%@a92@~{jB2eo)_pn5&>u@WW>WC -zKo#N7sQ{{Ahbw2h5Yu2vHO+yh!zQu!gzZ{p*EAWEhANauM=AJA} -z6qEc?yP75r7QSxuT(|B8fD&hozh>3K1Wpg1tfK3hn2uGD>NRo!M_Y7fzHl2xc#fP -zPw=uOd;2--k1>xYnl#QurKQY`L|6S)lu*u2a_yvU738l$tdI~fTn0fF*-nhUs-EI5 -zqD)D^4oY&3L7^^XRmCiQtKGn!Ll<7+nIgX*%rStIHGCL6@z9%=l96Gj -zT009H{>3@cj{H{*~fEGNqt=&<5X|EC!XoA5kh(wSz%zRu4e)#&2M -zSMcT|fCVr$!>q{tC$Ej(kLdxo8xzP4-NKJnDqO}OwPujR`xkhYdm3OXKR^;m9%Odi -zrvN1$cuO5nk)r$U%mpYTtvTIq9OcnIa7d&i -z4>IZFs-c||Cv17XaGyBHS(d}An-Q05>&c@HVxVE7UqpmrSEy_$BOgKPTdIb~CNBH4 -zr_nQ{vMreY!oREjc$gO<=lN#BDxf8+0N9(M^BWyR3(FI`{cY -zM_Xi@i~ABGj1_08A+4|c{XS#HYU>d42)7kqTpUbe!4=LlB5r2#Q1a}g%OZ6?liVCDi}eSL)gI -zgoy|{QXwLFQJiST`L(M9h61Pl -zCgoqw^{~Cj`q;R3+FbW$V*1GT3&89sMc?OmgxAkNXOh%%J><0BoWpfyxbG-I9l9gv -z^5nW(QQb3se7rwpB;+JZ+y-``R1+qvZ-kjwCDj-n4nJe-^JQa=2aod~5AsQ~4QUA2 -zCa3oA<7X8(%u}s^p(fZUg*v)D8^<_FeBR?gi5&G++*kl4a*y%-gdiv*PiW#)G_)FYS4b)}na%fCUXuk}r`xD4y*`LJZ1u5lP@K>N1;X1^S|&5j7NA -zpXQ4AwAI$JWGTtwOc6e#^@+Z&sjl9k{%BEEvw`z~ie+K*o|r1iGjWdp^kR_#f4?>P -z2dL!pO|np#xB{2mn?)66C@qTrX4G>uxU=mH1ae|qjelXDLp32O -zpNssK6clUp>k`Hti+s2D+S>GynuD=Hy^Pdj8Z?zvFy&+n7)~*@b^rJW%A&tKhjiPI -zB5c90F~EGbOmCMJJ64pa4F2rY8JaboN*q<#R!)2)1%U+8+?D}lhbU@@!dOclYzA=4 -z29@0Ub@puhyGIp14rb*XSW0RHi7G#>JJN06Fnm4>Rv~nF)@tdXrE^Ckf%ePoo+32n -z7^I*G>)fUT;6>6!$)vZV%@q8be9G(cqs)$FPyVx;?Mh43nF5G&5F{;+m&L8+_p<)9 -zJkO}+4qOFBs{6r1Yq6vmTqHV#7Y9TD5TF>41a|mXM4cd&I?y#CS(aCCcVc}f86x(s6e_#5o4LoTnZ%|2JB;R -zc&Fvc%s6eua_5d|q^tU^U(~_EMnrDtkmw2DSY>}HL{MV_=aGh=0Td_^5c>EqX8C}; -zn$h~>va%r5L3V6y$`!B9Kw?@*;m{wlb@he4SpNswYO~#pn0h+tL1($LNGqt>>L2)2 -zbG(m98+sS(zl*vHs4XtRZ_T(I-7W=VmbkuFuFp*#5ZOo=cS3mVUhcWlHRWM8*`D;U -z&gs&-hq7|tFSsKuLbe#AaA^3rvOQ5{cN`9LVu)ebUC~QmP`j9D)HmWXsM*Tm7HVF3|AP;&;S -zBtV@SW@+aOTeK+%yrrS`ogw+w^#?@{CpDf)AnO0*l$O -zA7x1KE#bm+V5o;#*h`uu$M=mqxKZ7Ximrtf$aq84TeQnb5^q|NJIe(WGZZ-TmkHWzYM^y@@qDM_RnU{Z*-Ix>&0%<{v%!^==fk -zfuDrvpENpZ^*uyP0Lr+>{J^Yy|8b~>m&AF2w=@P?qT9y$1GHcTO{)u6PwF~8ogb-_ -zC3ndeW#=*H!WGZp0i6c>;NIbCmc704u<2t|=EuREV-O)BJ`oDBoQOjZ!{=~cDUi^I -zYCYpbVd0u8TTki$s232)virSU_;o9nn6V6(@qdrYoDC?Y2>MRG9&!6iEbHE(@up<_7W8lN>ykHYxE8< -z*gal%T({FEHi_G8=5TllkP#F+)kJ?}+lBW4@)p%7nM6dAlht3|_r;JYKG(<@*uVNc -z&2ZFy$!hUijH{#db$GzKIkD5j4O0K-i_WP1mB_39KIULiu{S$?{P~7fsz<IraijE#Om9hwIu#7dAi8u8UtX&z3Hxi@vm(dU -zU7$?R=-P+|p;F|nBKs)V{zj^ctE+bkmYM6~%*0Q*J!9pANrRt~mj*P+vK^Y_rhKo -zXygB{1&AcIi|yKK*S5`PJ3xg<92kamv(RUdLxtLX&Me9>e5TgjHlO}08m<$Y@S7#S -zJ-NPo>J#37@}2DWv;!@*vU{`it5!_if1Y!szzQ&qJTCena0=%&2V21S>iy}DHHfVV -z)0WlYiI~-zUz_eq%JEpTp{`LKUYHrNfOkAdjp_omy^HD35C2ltk0ami$V2!GG_}k- -z6XruH`a{_#<#+Tbeq%x_G?Fl -zc4Fn=sjDqrjP+n_BD~2xf_+8!=rq(Z@~7P>Rvf;-BQV4MY$_^%uxIsG`I7B3wFnVc -z5i<`6g+c!zKh}3R<%b>RaCn)ML6SbxwSId3D>}r#WGFVeE$yyhT#|#h)S1YDbSRI? -z-KKN&C};pdk8*%TRMRHV_wgl&tAwNj6Rb504uzR1N{aEll~ZFpOc$=LV83}Ntoj`> -zjyn(Db>JkPUY-DVv8=GJh0PvC+@t${A@U_((HY6({{bul1Zqg_HPSKAKGlz%b#-&> -z3pr(9mDw%_?s21=7&Rqz)!XI=e)~GJ&x}fGxrpJBnc(n-lq0qM)3@{-ZzRK`+ZW^F -zJz7?&d~fR#uh`f{t-pSpNjbbbouXXN7JJScP}|tpsFF?M$n^oh(04$_vwZ_ny^N>S)$mZjtKZ8u -z{hwu4E1x8k54E!7*oZv}7X06-|5j^FWXZbffqt*-Xd~U2;F&juP#&8vN2|JQ&!-bX -z0?Bpty&TK6Kt9~giOKYf6|9qTD!+jl`prD4aVAoEm(2TdcMHT|IHSVxU*UvP2uTAZu^G!A$eU`thFA`4L+PeLEv43O&{y;s-KHKBgixD5C2%-Bw -z5s6as<-Q@tv24}Z=1;>aBd2nNy2OoU;FwQM(*)IsDBtw;E`2- -z*qZ!h+J*Mw`>o7Jj)`mtShH+wWOkSf$w -z_--vtiFL(iCC2CSy>LNuBW_5?T_RfMH|?jN!sa?#_bYx!)##0iwERZLAU~_BG1WdX -zg1)4VaMko0NOwi;s)|HE&VV-}QMD+uv<3kA%QO_NVrGS7#3wOXSvdUKe$615oy$E< -zRzz4Px1c}>lqVpWhcDzm+lx>_AdK3EERFB}`}1S0@JEF+mI+zdr>-I6#mGkg!o7v~6G3K45zP6vl+$o-jM7^;WuO -zN6RLJe)bKzS@Y!YpNOc={nMu0w){%W-*Q|?-TFh -z`eYM>nh8Xl;xLUB4{C5SU-KL-Ocl)_~-q*C-3sA-#N~ -zt){#(w1FU|WI1=So6$_b)>v_)JC0-AYM7vd3(98N`MP=g!=pI#|$4=F+5f`66dE(|PGo%!05OD)1ilH!^-SMQ-6j@<6H{z;Z -z5&P#n!lAz(A?1JOTE1JMETfV`0%-B;|6XmQg)#NQ-RKqPtmRw;iD_3i0ipDX%pgAu -zTraajLzn}EsW22T6TDoHkiUm}Q<_vkcaS8|FVV>Mntod{D`7FXLkGG;?h=fV^0rst -zpfLRa4e_$2I)4E&YS$#P@6P0pn8C(y%7y&hW~{}4By8feTzXuq3N&4yc5@_1nI711 -zK7yRDcav&T9}hf-TpA>`mqp1wf8^axCxz#5&rqUJFG{#v`ejVaQ#gMbvPnb2EMdN -zfoEQrx^@U1SbIw%tsI?nmD+#(`n5#9_i-Hs%QM-Sm@sd4>Ir?VM}@T>muwQe)qh~S -zQ?K2v{<#c6r?vZid~C&{{*B8Yx7}kzFnTvWE^;wvgK4zvEZChr@TJ-lc)h_H_3s-O -zbnKWhK^T6Ii?N}Q*18N&;%FF%G4+#~)TB0MxWx$r%Z(I>2E)9*7SnfhWZsr~$xOE5 -zxj#`DAHP2oA*YCaUaOjnMIMNPVmSEe!^2jM7*a?AktUt#;lunE&Z71_ul~so*Sf-* -zdb-Np%0*Dd(Y3oMm@-%z-^Jg4fOPjVD2{bEF>wNI6}!@_U5j*MeqB9qvBX392e38f -z@7-pNyhM90z>rm3#t|%1B4^D_EpLP(q|-%g-5ZId25rneoGQZ&=SR=l97*jY)$tEG -zB~H3RWGa?q>P5$+HMR*QI8WZto*E~`SI`!C2X4wPZ_u7ivS<7Uj$fDRMSKnR17cB? -zg4iiZW`abyyR~XT0cp;o+~zp}BY6aLhK80rV^w&R=2GpYn}3%A^;?Ig)tm4_=&t&A -zr14BIA?gG>D~&8)P^$qo!hCvpv6hppS3eHI7Uz2S)+Lh+(`8=}Cr7;Tn2{#K{jD(d -zg4^WYI7QF3kJwEvm}W5Ifp>FHIkJOcgAg -z`u2m53!3|7r9h%N(%Nc-XjZWUWAMTUw8M8V49V&S^7z=>U&W5gHq{|>E$xZ9p^o^) -zMO+eZn0&7O@725R<9x`k`4;xcI{W2`))@$7?QX7lS7CE8&7wP1{ORFb5Xs+O&1g7J -z*Ut@EYer=221Ef7nY=}W$;|KCoU5pJ{+_OMGe8exykR!>pFkx8V5O)NnV -zwne(}ZgSKvh5(Alo5$~87gOf41}|$Q37Xjcn8I3qG-;?}{$)TZnZV@O+0zK-9k5It -zLHAlu7zI^d4D%q6{|!R1nXMWLaaLAOR -z5^mr(E0DKUJ@$$kA&C+(!3>-GzN=#XqOvPe)871J_hazGUNFHgalkMRNP43AIKs)id?`{Uh_>cbm01SU*on8lEgwdq9mEMVQS -zzSh!Jldv@@X7;lU%vzyhz`|sy*{O5hFQkO%Lz&x+#6!Dlk(0s71-e>ZTOEx`Avc&K -z*D77U=~H`t;wdIEwuo@9kLna+U*0*AJG>dZ$3lZ`@Usg>%WXiyiS!dWHA@LyE11 -zGJQGn3!_R>;F}99^9oHY`s%kDc)dc~crCzi7J_@YUN7A&w3LzVxqjK?EFv^W}3k$jryH!W|xt5lj2r{VC7sX01mxAjS -zj^k1?ANN3x$*GHz(?t^sE^Ixy(@6X2p8FgqQ?gJURm^-qMQ#_`u5ogE4!(*X}`>6@z!LNC-(32=4VZFQkI2bA7 -zGppVNeFx`f^Z&wLy|z*2`T(XARQx4iku_dW3uyf`JNKWX$jk#iTEDuG1O6;$_L*KJ -zSqd8KSn1uv;p-pWImVvb`>y@)0@GBR2fjB<1c^vk!TI@O-@-VvWY|`=r-Oh`eV(6MzXCr?fDj<2 -zxMi4wi;Ihp=VV$tC*iU%ifQkaR#2*d8PBHh%oJY-b2IDW@|UTUnGnGcb$lc{MxO?> -zgh6Vi7ICGjMgYRSLOgR -zrNZ30F2qS`b5i-SMf6D3j(aq+@Bwal{c+XwwR+NzV}#2ump$4Z&S#SZD(=!tagw~dHIl6Wmn#Xwr9`F|aqcRbbKAII&z -zuD#>hWOGGjUi*?ADtl+|y~nl6C0n@mjzY-Z*<_1khm3DX62If;AAh;`^KkDu=Y8Jq -z*X#M(QASh0gv~aka~L<(%ei6E+5&LU-1(;|k%62q5wnO)fC1j`c3j}Zp^5$bBG-%w -z3y3~AQ-LaP^7eXC9*&prW-xG6MZ&fE@4p)&!7av{PzkGQIAT=gCHFm=e|pqt2;>verZ2H!ZB}7V&KHgpF~?% -zoiPlc9Oo0!vm;Iwyq+~uh8l4t1Ger0D*x|Cke8;I=I3^o%<_wPP7Ig>^fcN2BU#LP -z0qBbmv+O_ZiNOIW4~C82h-SYk8Hv7c7JNDo$<3N{^eoR25*o~Wg_avFq3X7;Zc_ai -zm(*oZ7`#pIyF?xnUx8bLP-d#{r;GdQ3?sH=sN>|?kv8U+y`;zRDF*JPkM<;f9#dD( -zCx=*rYHY{}l6^OIzxyD}P$8Ka1Q0!Nti`w@iEyZY6-C43tynE4*JhT}@a69p1RY7g -zTu+Ht3k0gyW|aB}xR|xsxshFAXsFU+CYvd*D=CMJWw_V#!1+GfB%2?`7~O4PxXBn}h_5f?$bFY4f#k -zfsg%yIGCuxECo;*FQ&fhGUJCwI?P{zOw#}zNg_T`++2*wR}MGbcMWFupYg0e&&lpg -zcHQms2~0^9{~Q=>*pz4~i@yE7ge{yC3y3GJtOOE7w#@lW%z;XYF~>>DPA?PR(%>&? -zoN3}KVz`vS{t}A$Qy2G04N--?wW$l?)EI_QdVW&n+D$EZ$j`s73)eJ^>n&IU1OK~Q -z*`=F<7DJA15*EoFuCXbyUQSuBv!PcAy^RN4a!eq2q2(e%+01q_K>)9MN}4X+wpESn -zy}D9AEzIQp`|=&E-!I-;Uq@gyB!<4meIWsfD`kw#&^fnxR(;3e5c_HQ;cnuX^3j*@ -zEtw-HcLJQp^eRJUKM8Ct6GuS9;b!zt$-#>!ps(^gS4w1CFPj{Xs|SAeNi3K5FfXy@ -zH!J3c)4N0&f8oZ%-T&(}d`K%?wBCAQX60rIn@^N~ajYt^U(X{BJuALP+8}qB$ -zg4X0~nf|qYG1o{LI*u9CCjnBUwuf=M+m?X|=NrKO+)3E?%2~nJ3$pmk!rtcxX2X{n -zo_`e-xZX=ivc}T6 -z6$=^SC!M+*aziN<$E);H-Ynxi$(iwC9_@6R6Zew*++tx=X9fH5oMs9G+7uw`HfWk> -zzGI&`(nkg+92^<^{}JnO>uGIJbBp_jbl8>r@fZWT@~U{OO@@E+bn-Z5R8xL)9L5ke -zHYsv+K& -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 -zVzq4ASV6K^qGVws02HEiE -ze{~RT{{UH9#g8qF8Lca3%uA`4bi*yXRPg_`Gw$(zuP>taPYy_4_CMWFPVCZ8`_-ov -z$lIOuRXVd`f!;m53`q^xg?x(!A{`i~gGuEeJOQ5P8k!}FX{E%<@k5E!@z;D!bJOpO -z#u*4?+GX>_w=J_5r=)9J+31fW{r&w}p7S0S{mW5!K%J-c*;!YGtygTLj0(aBsKi5$ -z2bq^)oCrh7-b@^xM+6EO{#l1`p_UqjVPs@Zz13tJ#Dtr(i9+%hO*3!iYD$`iq)+_b -z;A8pdoHCDn$6R$4%g|aa!anx&F&3N}FyK5ICyXzUK#ZHNDCZ#$ff(W)HQTQu&RV=> -zM6bsLm;bIZ9LPXrE3Mck#A@p4KyxqsuE6!E*`QK_x?^^l_ZglPYpA7l?TA -zK`$~0I`a^iduGSR#!?34p-^rU*qW+HgsABypm0#<=%6JN$Ny3j!CbFPle*eb;BEN$Rse0dLBgp8V{**Nl|-X#heY;W7NJx -zP%h&ZyI6?uPA3RiexX_C#kr0p*@>6g;>{w=5mNQD-Or5+^+9xb-G|NrpTtP9q77G0 -zay-&|@$D}7Sd|b2Z?IG8r^)VZ5b|r_6sfJ^>-JxA$mbRB2sg0$wjyyN#ozI-V#O{iz*{}?NR -zF6sGjLE#SY{EX4V9a&rS^RCbiH`Z4=niQ2v{0IM8>SyS_ -zj5?kU1ka{`k!RZ{s?6ZM5&bo#2;wY=ri-65p*g$ou8@S=sCD}5NB>s_uh_sT*VA-& -zPC*9Ry?)mYdg5u`N-%&619tU7=K>q%X2ZnFxIqbvNHd3b?h+3$$#zkgSzA}5=}b2) -z%!Jd}D9DALZ?d%~{}6UymlOXJW`jWXrm^8yo4YM-C-1H6Yz!Doy_RTEZ-y;Ikc9U3 -z_To@sUSJd)Z?=ca&pr8d2A}C4_}T!|qnJNmjSJ2K0(P_P -zp~s6)m@4QU3S`gH{G|Ex_hm6I_V%0FYKT?8eh`y;F75!jRnooiJU;S8A`=G{>7@4T -zN`nVTNnp?1W&T&!?N&h6OY2gFe8812A^}S8Jw~qtcSYm$FjCb2#?Rv}G^vyRLQuA6K;Ah%F=6DrscaXa -zSyVpQuSR5}x{4EHd@%9$;e#X@D0J-Yysoh$p>oxK#5MXU3=LcygX%0z?qrn)G1Crk -z9$1zs)qCsKJkVvc17O1!Pv9V>UMqf>y=DoNxOgR*{7L(u*lyk6BZa6BGw_r{#_8k2 -z8E^frSwmqj>OA)XltGLet#R^qu&RsV7`yxPy@Y0`4U?KQru593KRI+9`Kp -z2iZDb%^SKcjfCfA2RzAos8e0kxDZRjC_wXfC*(t0Iy^g<&+s$5x$)H>vd^zRWqkD4 -z=U{%_1S#9m3_dqSM*O)ZpIZ9Zp+|0(ekbssTtt1d2<(dmz%!S|26Y<$#3n&C7z`G^ -zW!jfG^-7DRO89+RP{D_X)%?HOT4K7N!iw*|QP)W-ty$$R_)S5T2$V7ilc-YUnU4~F -zbl!&1c&X5r^9REKBgW+PehDkGPU?5~s6Ej$fU3IOuYPxB3Qa`%VG!|lb!f&ZIWwnT -zU%q+#6|s~MCtE@(g~fm@zu)h6{2w#mT=EJ^Lm`?`BB_YmF^atwewwtOKV9x6)=F7F -zTdD6ykY{z~>>V?t>rtmPE86fp6>BhtD4O={w+H=pJpiYZXq8^d%HEXy0myV~IYMHu -zzJ3yqzaG|ku})}GY*M2NFNwf55FVH3`_8hMZc_O6{-5^kC4x9~?4LYBFE)2$r%+36 -z4y~?EV-Df@P2Dd)S3W))emLY@@PvJz^xxv0HuiC#LXS&+X|_FfM-g9`)%JmsD^nGN -zy>#U1ZtG@3y*-rj8q{5n^*sj=Kj*SOP?M)IB)&=gvQUpAvSCa04y2_g)QE(PsX6;IWjp%@XbHkqXIH+F|X4uHyL7mPz}Mu>~y^IPg!)W}BV>(`|=_{bs~r -zQ;Bt99rtJ0L8{E|%qPF&W^i8XW64=_d2)G2Jyk*IPrnNolNWxI14U_E;pEbX3k8NW -zX=wstS()thN#8tpl!u)yEm=PZgrVMYWu$9;3hp$^opTDDEypuxTY9N9>vpP?J5`OLvEfg!IteHMOys*(^gtaiao>BVV08I#tw3|AyF&EIejf_ -z%y;;v?+l7(jrn%NUhf=mLCsDwvWSW0qHbRy>FbrM-kXYxi~j*b>X9u;F`{_Yvu!OR -zBgm3RBC9x?;DKJvORASDo*e%!2;~!E+%*}psNW&8U;E~81B8b`g927+!rEBS*%<%l -z@vN{=K)~T1;U-NbAq}%2r@C`1&VjHE8Fcd?MEWa61p(oY-<)heznf^7=IRtK8=IIg -zQ10lg*klQ#LRF$HH3(+M$CpcKs;<<+50&JV0vtrn=3T-XO|@kq|p -zjsXp8ePyz848=+&xiJOyB}y)zx%Y%7#PV`+L4LP>3@dfsINhcv!|uMmuwws4@Qap_ -z&_K5v=5L*;_j~pAlofK=!ox%K3+Zg(@j~JGn9VyzvAYb_6(G7e1zL5HZL!k -zq9Ozd$KhxTr}yVehfyKmt=>QMc0vElwSEaFxwBh}ATuL_Xetfph`+dgTrt9Uw}{V< -z+xx=GIqoKNWJ?sJW`hgK{LIWuN}xxQ10@6%M}F_3r)>uEbcmCOuok=XfOEzyU7q^h -zL*GNLw&YVWsbQseBJG4Hn;sR0NSd(gOAlP(;C%txenc0ViexGYlzfF@WK#P21Mrr& -z7d3(%6@s0Act4ui44G71AH3@_rPh+2uoQtMW{O`$5USj++ -zETZ>aEpK#oRC5wo;6(Mwl#LAt78&Ye7QXWbEyKW$?c>5XXuxkoTZKVT$dY-9J`BW* -zwK?t_x*l*f!Wdwr8QhX=JYE8`kzcnrzq?jJn2<-RB%QZ<85DX;PMG-0Y1*Jp76bgK -MD{I5+6fGkE2SYF}a{vGU - -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index 86c2622..3cabbca 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -4,7 +4,7 @@ Description=Jimmac's spinner theme using the ACPI BGRT graphics as background - ModuleName=two-step - - [two-step] --ImageDir=@PLYMOUTH_THEME_PATH@/bgrt -+ImageDir=@PLYMOUTH_THEME_PATH@/spinner - HorizontalAlignment=.5 - VerticalAlignment=.75 - WatermarkHorizontalAlignment=.5 -diff --git a/themes/bgrt/box.png b/themes/bgrt/box.png -deleted file mode 100644 -index 54876e68097e45b215f6f4c4ab2f1c06c5bd1e4e..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 870 -zcmeAS@N?(olHy`uVBq!ia0y~yU{nIK{W#cwWXpePWgsP4;u=vBoS#-wo>-L1;Fyx1 -zl&avFo0y&&l$w}QS$HzlhJk^Z!_&nvq~g|_Tl@W`(W@UmTf#;@V6`wU#Lhm4Z}sF0SlKS+*^aA-R3`>*{yeueW-)S*X4G@YAFJoyCWu -z!{O)Wo_xLQ+`LKbFZ(4ABrTh`(q3?m&E9!O)NP+RvD74Xyi)P_S~F#t;;ilfL3MHE -z1W&=NWnIR?iwip@ariP_*|lfSpSt|~_sjj3f8KO8Ywhm&2b4~2+9S``ULO}9zu(%z -z;>Y5hQ&=)(7Mr-7-7@Rt_uuQw%gS~={Np^M{fA?Nt4VAm@8-(l;>)-1-mMj$9dwNE -zs;kh#k7^}_g&z-p`}S>h!9D(Bb*BT<^;|cq{#~Z~{Q2|yM=gBg{-4?NKQi;#zkmOx -zZ{4~z@lFfFw9H%si9HeV@&8Td*dJTj{p0k@#gWS|-{d(y@i(hYb7IDsusa>g;+xL4 -zYv^}9authLV$_Kgm7aXQU1M*+4*vt;2AAiV*!&CU_z{&>mCVfaPyDrDg8-uwi-HS~ -z;t*7DVQ^yMpuf;Xm%BcZ)8tvXD%2`NL!T}&&+K@Wvg%+$fplN)ckT+d)#c^o^`>h* -zZwD{A9bmkC`SSeNyZ$ZHoL~R;T$Q`K`}^lgA+5SAv%;3@@F(>|6^2dHd{hy_YQT^U|C$4w;ifVF9Iaeb7Owv@}e9~w#FT2z?jTJ8>EaGR@9qdy5ApbKm -dPUG{u`zzfzHqH8W$O>o>gQu&X%Q~loCIIScDqsKr - -diff --git a/themes/bgrt/entry.png b/themes/bgrt/entry.png -deleted file mode 100644 -index 65810dea3ff2a03f620f13cdb9f680aa116c033d..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1431 -zcmV;I1!($-P) -zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3vdk{c@wh2L4lT|!Gj5-f+`s_Y=kzX#0Nu`@F@ -z$pp&XSRe`X3Ft6>{+QuE6cXhS)stnj3nk{5xuB7*Te-dIiu<`s=hH{e@<8KsFhqj4 -z-2U2;Q-NF`3LcNVKFfo*V<#O$bT_<(=EW;(FpWiSJuwOhXr7qr -zj_Y|esldc|-cllNl)A%btkWRTsFE<<9I(dEoe -zgg7SfDVRA+mCRXiglV?yA*Y;kDR5d~xN -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 -z~-Wh$@phq!Q?`IDPU`GePO -zubHp{v}I>%ANgb!D((`4)jX9jw{2|!Gajmal@hX|%*!6P!QvJT -zAL@7{TSlB;s-G$H`yBI8@a}?h)9kPD{4@0kZ$dHsr*v?BpPNctx*6Ga_33BJwFp7Y -U$^7#${bvUX3EV|$3`ofO8=tzejsO4v - -diff --git a/themes/bgrt/throbber-0002.png b/themes/bgrt/throbber-0002.png -deleted file mode 100644 -index 8e9a85d8be80e430f136327c98db0185a36fe7c8..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1568 -zcmYL}e>~H99LK-*Ln368NvEA#)g)L -z000;hg8U-2YON~+eeKEq_SBaGn;RH}=WB{Zj(aGR( -zDxFSD0NJbrFp(na=aoS}Y>)k2qp5xU&j_yIN?jgL@Om3^Kr>u#!k5GRxWtbBxK(j_i|YIa0?X -zwF8n_|6l2daUn!$I9iPOnw^$FBeSjd66s8>0$3bAvto?{0Kg;!KcA?W<>lu?PSixN -z%oCL4?b|b;>?Qbm`hLx3e -z&CbH^uHjSqJ(uI4aSl(1llt2}r0&c;CvJNE95qbi9?z#yq_zX=kDG1FMNe)C&xDSt -zApSRFx=@kOSLXxMO^Jr#%V0%v2bI$#at`@i?+e6#d`RXh_bf#BhsQpsfixETu~q() -z=#uF#_sBUGwxz}y!uPQNp(r~=zJ1b~m8(LEOIP+N&ctounpMF*sxl@`Q^P-3K(E?R -z+eV5RDXU1i_)}|UEK)bjy_v8}d8&kU%;(1I-{j58^(iCWna -z`$oj$3&cYXj-dt>o&9nv^FLC+&tSaU$pIVIh8F%pgra%SP;$&ix;10Q0snGS^5NE7 -z8XFOO*D?kEF(P61VC=~-?B!(AKu7V$1;474tzLse`vm-+1HtplCdHa|&r@c!a+8>e -zvhl=V{+zw$B7;Ek*r=ui4W_v5k7M{w4A6jOSpy$fFyR!#2YRjb}7JbT+n@3&Fhqw(~m4`__ -zv%9ToKY?pqgn%>|aWT92!vPWSsl24g<5|91=JjO5H;e{SM99$QcM}QFeua0Wsm5CD -zIfvMbztD)j?xI<2=iE7y4*QL4a(CiVqkww4)d6GUA2YaCG-^9y&NuytO6}bAAia(= -zzC-q^rxQ`4?7j_I938p`ZBa($-RVtPkQhda%MZhgrkq8v&IXF01zQQLEi@=tFPR;m -zrpd+4tQ(iS!Rp~fe*4k>pEWKbQh|ckn+2a|nEd5E$`h1&;~GZV(6h#e^iI6~bkH(vw!UTS%uF=b^r3JUWEh|u -zMSFw_f@t|mF0s`|=L6&Ql#*TjZiUavtGNzW9xWab$eac*hj0w5fiOT}G3Ak3_Xv>& -zPkz7TE_$$vx#5tJB&{#nRobkM;Nwr2s84I=Y9`|M_hiqTh=AU~qG1Al>OJqve)jG~ -zzIZR+^4(ICGtaj+vtH9JQ^=(i-VdWy8A(2Gzqh<0*>utSg)|YuO~4nnKhf{d^Oyv; -zW<~V);%3X|JXfbD=F48bvDH23jr;PJ=Plhl@eVaoan5TA+EQ86&n~%oN&CeC1piP! -J;qLgHzXAS3zy$yR - -diff --git a/themes/bgrt/throbber-0003.png b/themes/bgrt/throbber-0003.png -deleted file mode 100644 -index 9fe95aa2734b499cd3df6e65de24b90aeadd2716..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1561 -zcmYL}dpOg39LIlVE^|$b7@^DIDD8rnDVny>#bqw-m||vaVm8}kF3q+sCpnQvTG52) -z9!j}YjD|YuQ7PMrX-bL6l%o6j>74VN@ALh9-_P@YeV+IC^L+pK=7t6bm>MCB001xz -z3M7y~b(}9leemREX3l^D;{^W30{~tvRG6a -zipQm)7>RroCpm+~PUACCd?uYm=b?C<#FP{|_di9(C(~0B;wAT?V3hTI6oJa818!&x -z7KOo}+}s^87~GmQI1lfBy)Y!$vtYg_B9TQ0&}iJh+Z}R0;4R1ue~!YX&O`SzN#}|{ -z&tl%&09srs@Q)zTXtzA2VJ8R|&BJgSJ%tYNnOt^!Je}+4j^4@PiAX)oAcxO$5;!28 -z`~Q_lw3lyq&vOtj{F$9WOQ!Q2!>KF|r~t+dD?Dbs3IL#2g9!KtGE64joFt1}bfAc1 -zNb-k8`nz=E4VDOQ<1LoB=onOD!xduetTW%yjG#EBi8&PR?C*?Q$RKU12=zDoMZrv> -z^hFN{p1+@XJKKYc%_p{KCR--1D_K+QQ~XqL4Qn)Uc#>JC)vb5qXSY8?IJZ8j{j3;D -z#&ws+EO}CW$uDJV+ZewEy0v%}{n^@qDnxNnvg<`S)8?ZqcHk4Ni4RXUJfx~Pcq=0) -z?GN?Z?Y^1NRPJ8FgQB`Lt-Sztj&hIG?He-)k;>CGkRajjy&l!}ZoT*7Tg+b5*;H7hP(S$<>ph#50sB&n{qJwP7j -z2V2*9hKlMmF-5o%uR$uCL@!cR8Co4{h+~1vXpQDo`$ -zcDgjTF|#?HuO^;i&$a_fxvktd(jzi%M%?Z|%vlJAZw8v98tCz=KJB9AN>7!gst!72kR$T*X*`l6`s%Kk_W1J^)X1SWK&o8#kWvhd -ziq&CDzR2r)Ee7%5t+I)tbpqp&GU(%|w8_ZyJ@#YaZ4w42v%<$$l+`el;2=fqQEN7E -zUv3IQP-apK)3!GY^?a`gg-*S!sPFa@kMnnh_D46qTXA?wRXhGUuq+EcH+l_sT#_Y! -z=(GQnd~b5UU)C~)Y1;`}Snbh0H{Cb?)%RAUZ?{dHyR~HM*>o)9>(c{@_ajjLYHqP9A2!old$rgS;iqM$AkB2IR=7+|#Shr%;W1>UO -zE;FX|owaMpx&_sXoTskJzBDu`&z!7F<+Uxa*aA1)mC0pT`HfIuV?E{-PW61C&5-&5%SeLCq8>{ -zAWmwieRb-1LYRXEJZr}L{7U$1OGStX@A{w~9^8f8-5#km)^7RmP`PX}I`*5VnAq%; -zp%@rxqL(drH#|ESF!sv4og&vnu|x0ftFfKi78j=Pnd>X=K3g!@W;rte@fk@PEy$iR -zbnSZRwx3P*`jqE*+CBFjD{j5=$?7}hPf4YKP;ch@MRTIBCAzgNTE;T8)^GRO=5XUqnAi#>(N(d -zJ=MN@l(Ky&c=T>qODxl-JNGoa+_DRNaXYN8YsVN_B%|z;8TStQ-}I7-*sUL}0+2R- -zosJGGkvo^hP!7^CV=L>zQPLKeU2~`E!?zOt;FcN1sS`jc!zi@Yw(^FJ;A72~4KMR> -zU!!*^og-)j`+oh3kjnAGmoTgux*;GvB>OtCf5%vC)fI0uODbd<{M&#aVlbh`KTh&D -DSwXl> - -diff --git a/themes/bgrt/throbber-0004.png b/themes/bgrt/throbber-0004.png -deleted file mode 100644 -index 687aa8bba7e7c470034487c5818c825a6a6e2407..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1570 -zcmYL}dpOg39LImdHp`3*5#{oDB4Try5IPRVT$Yff8ymmOVXSTBI&(Q)c$9}sGR@^U -zDB0?`6e=qz>Y$D__jV-9rAQ@0=S=6E=X{^<=ktD^_v`b#zn{Op=L3jds#~^i0RTXi -z;O!A8SHsOxhRHiKCFPS`5OnWQCIG0QHwyw>;pxcD{VdPJEPQk<2wt}% -zz%UsRn5bwLh8~+ti%(!tF)S)b1DO~mJvuH9Wc;UAlvpq>l9Khik~~UhGs=U^0s$MW -zwFAc58e?N?Xl?C;!#UYGzJwmMlFz7b&ICu(Kmdz%`uE!L>RYcPCr}4$;u)V<>zEZMg~3*w2-^vTjlm=$ -zCqist*ZZc5`BsJeAQ~!6G)3mQ_6?In$#m@og(Cj-q3pk)iJcN@5dCMvql<0_8{NBg -zV}JchM{0}aq`r&rmA#+#;xiQbk16DRFy(i-qovXlH;d$DOCh$@qYaCLp!DGe -zfW_+lPiPdc)LmQ_totCcc563kq)dvF6r4_N@P25pa6A%~E2t!d-dJp>Ak(&a8pN}6 -zm%s)q#q3#DYp+m)j%GvC6fgNtA{L#K5G%!(gQ<$-rw)Xw5;&=|+h#>)OsUnJot>&R -zAzPE~!G6&2IB^QehIPQ>IQyhWrRoN=7kZkAgU?tj$U1=hW;@XHF1Phh-`y5xUz_Qd -zK^KupTZi)T8@k1fvJKI|XX7MDlB{JMjvv;}P?~tO?Ap<6gA&g?#0^0uZOx-WgtB|M -z$2XmzM~a`oG!2&8RI{q}3PdqRp8RHKyE}q=CIR{SCSkWVl;5i#*^q_1Xc?9Gys2~` -z4h$`en%_wrU*CP)k5JmL+tYbpK_E33-VmO;&cs{YlCd%E?{~`vA2mMXWIP%ePI<)u -z(Tgs0ZF}ndIk&vjC^g?Ii5E)3j}#W%B2mP>UpSJRB=nw8(~nmz<{UH~QzR8#xmGP3 -z>aIVOu91ig-*5R60_tf^!&Ay+ElhkrtjNyGDB^rrAJ-E>0a$aLv&AmdQUA#N>B+dF_>!M!V9wSKL{gAZdYTmqy3abO6zw;E@S%IetqHV()dkx<^9+*w{xAaI> -zxy)f0MYOC1R6huqvkznyR0gN73Pc)r+AsjSW01#prQQykkKiDT3=h&wX}7r38c8EFUNa|5G><} -zbC9tbiN>ePO{P#Y2~w@5UUc=Buqr+8*}b_{vjeFYYcq>zQZT%D;_mT6-(9Z{(XtZO -zFYHRMjxSGC(??d8rE?t{PE_fIoTL{WhEBvgkx9r7uXg`ytAX6f_7eDxw|jTBKNk?X -zW_JuNdF8r<4TjLxpVVl+FvU)g1&C(!hSRN%15&f}`6fqmdfK`ov`wI!Qdhq!|KtFI -MC()zv$MCGb0Sel;hyVZp - -diff --git a/themes/bgrt/throbber-0005.png b/themes/bgrt/throbber-0005.png -deleted file mode 100644 -index 3a56beb7482ff40b652972de1a4b8abf25a3cf2f..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1585 -zcmYL}c~H`67{`B_975!oT4Gw7xJevdk#wgiTViR4Xyrk_RZ@_Eyz;=S%QQQzR8W^u -z+tH1*($osEvID!E${4SHi*|VoXeyRyi|y|0JMZ&+XTG0jzVGwbduk`$4})5Y0ssI* -z^Y;nTtHXRD;rh-`Ntw`#G1s5L2LQCid>H^GA{)KAQQ#XQ*v5(j0b)!%8zdfPvDuMK -zBA>@3MzaJ&Zd@`u{-_{^D2M^sAfL$RvN#-&_n#7?;y})!sI2Ek`Y4MdR*@Q)BkB)7bG$aX!noQJ_okOKmO7+!o-6v%UMC;i6d3xhhE_1t2f2k93C -zdH+92AbHVt&j|F`{AYGDGY;fC1V^&DdIiXCl=MqBt^i=9p!sax9bzoL^!)Gv(DL|& -ztuFPK9DetAse+$#Nr6cy(xu*}ITDrp)B^P;pSwU?=FZI;L(wXVOIG(T+$6%sQb!A0 -zUDZ&Z)A%STFtv<0)5kcbz4ZsW|If*5@w4g%?Ngop^uBoULR5)8P57j!6{oOcMasQ* -z4qK$XW?^%Ao)h>FbDYHPfUB>KJ@!Z~TNy36HM{9I>PLzSr$zX)c@;12d -z{)&^M3|h0=)*~>QKjUaawRlrG3?)aXvgInA9bV%`I(bUSa)H75o;Xt|u-n3Af{bOqeG+`BDNUtS21YcnQk2)Yb -zE=-x<*Hb)wy;6;U=8kB~;%iY4d~1#wU|~J-Yg6A8rD>hXYB80I>wet69a{X}TxBw1 -zC8;YZD9dR@?!Pe$g`NvYFiSO(8CVN_*CUr90y7sEZZWf6GR)!{#udL#9nVEBlbgex -z!{K{nuo3#~T8(j%NvcWpG<}SAL)*!C5(|NlYv|K$@C!qwdq1PrZj%$`CJ>IhOayBc -zzRS$@IL%Le&|na6sKpJgut!`|4u#<&+5-h+b`6V%A-eLLF;?t<+73@@>tWaq-X_m1 -zT8AF_&gAlRMI)&R<**ZuHuumv1#OKmFIu?o$eb5#Fvy#Qm^(9x7r#tj^xo_H*uBK( -z73jh7E3d8>r%)5k%d_*H{A96Fqfw;~zxy{pmcij@YWQ2z@yYLYlw9|+0g=(?P>Iu5 -zd^<<$p)0L?%aLTOalcwW+xJYG>#dD&6u$wO&CUhuI;w|Gu1^Xd?e08L+Us|tZ?Upv -zyGBtI3q9#PCY@@=O;rGoN55W{X5k?>3r$+Q_06mg(j|h7H|<_enV0W-u+`wFfxu|z -z3dQrIOJh0wqvJeLML#aGX)0*FYhGgxGGWG%f)M%0Lg^~4^Hq*0A?E%e -z)yE7JeiP4J(YhEVXsH>!yC3Pvi2u!`^w!~rDb -z_*aATNt}xXolBG%QHze$qq?X6N>>$q@cNP=eZ^Hld>*!f>lWZMc#KN>GruMd9w?x=Pl{A?CNp3EiI4Ry$)Ta0&1x%!*& -zw2vgKw9Bb5zuJ2`)553$rwRL!GjOk-u>)-ncU9ZG -z+%aIbFb#{y%*+u>g_sBn=fqWtHu$&|S=!a4@J#PGh~W;QcXioN6nnTfc!N8)?|2*7 -zXZuoCqI;bt47_2(_ScoMv7w3JQ=F$`;6*yDruzpUBW>Wc}V%q4fT7h8EI7+ -YfW*HhUqW(Np#Sp#nlIf)x+Nm(Z}Py(ga7~l - -diff --git a/themes/bgrt/throbber-0006.png b/themes/bgrt/throbber-0006.png -deleted file mode 100644 -index 949cb23012469efb42c33953b5c79d5352ff77fc..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1597 -zcmYL}dsNbQ7{-4F;-%6iW>z@SG`k_7XkkC^|3B%BaVLf@3-#FI@9Z=N8x$ZzXdIqi0j!Hh)(z{u0031H@rOdgO|BOmPl*27 -z@?6O=<2zm3s?H+KE+~T$1fGLE!SOqfq__Apq8+=<77h@ME|u;!_2Rwts~|!1f}tG| -z{t1S8_o}fn>Ydl=vU%mW+H>|}ixYMt=YGO$)2r@>uPEAkw~C94J>_j}nSMz&=TXad -zrRB+)31v&)v`@lMH-1FqPEAfwdeVFtKApZj#aV?tv1bFL!iYnZ=H%aQI*?8q2906H -zwK*Wqa>(SGt-??ab4Oz9=9gv5Z@w5**;SemQq>P6zQxG~M~ovp*Gc1e)ckeHFqBh&P}cZk?B$O+Mu -zqNXp_Hdgka-7sr*!RpV^_nVBII>a015r0TlGTt$Fanh_G4fye|Vt*Wjem3Rin0I*c -zOeO@DIM|m)y19l+gcXoimTr4es>>j2f(KKyGKwKJTcFV1*NuwmI}*kYA?H;-r}A?r -zHqXK4iWe;eBRixx|0zGa`Au=W&= -zqS|+R;Umr3nVPA9Ib6Pz-)pXv({?~--AWNV87%Icam;<@wn3tJh}^>RUHMi0k{uc7 -z9d-K{q@ZC6 -zr}2(&u0$~kow78p=LhzY`V?rd6gl{mSybEm^b%`4vA2ap=R}a@;#*azLOQDYi7NYd -z?VjT4m!y>6U6ZbcXnU}9(q*3H?bf1Dii -z##PrRs=A@^+t{h%B3vF-&0L>o-Z~9`7Zwd)!&~Qk&~2uYa$c+$43+6?_A4 -zDmfLXdm9Z+R+Lw^L(89-4^#?i&b1+m%nR@LZ96kwqjTjw@BHW2c@`ZJkkGm*0S!6@`Y;rCe#liMZXA^ -z@}}q#RQiS=+AjKE2J&B^tKSye*H|_bBzrdxvKZZ;)Gn?%Ue|5qbNjfCBG@|kpIffw -zIillf1?V>i!&taCwu4NIf$8ias*JRVP>U3dGbMi3fQ-7u%ek8!zSOU+?N? -z7Id;xy~$Jw#bSg)P_80hFV?g^%9N=uq_7vJdSY$(YWOtjbbCvE+CtD>)D&g*!4UV@ -qaGdN$13l(?h0pS&lw)0lSOpG74CvlT0}S;4A3*dc;p+~^!k&JeGvtj+xbK?e>XFk4uFX%EIN3E -z$zoAxAdgD}8B9LNNls^_2>6L0KatL&^FSVl$!62J|0#x=OlN;i6+h60qEPEm1PY%H -zxMFc$APxt*y4mA!cz1XFr`}3f1P1E)V7(`b$)W>TEdJl^39FJULrnkuC|t@q^sLrP -zE`U6fb#E7BaVfw*g27^4PYvpKL(ps;?xoS$bbz18O`%fhTzfa{VGi$j -ze8=S=Bl6C;q~U_nw!7genH7S8qc8nEnepl|`O@(0~XmXbfAb#s1x-ka!$jQf55 -z$qIAu#skxFWz%B5ys6p&>t)QUdE$!n<&NT-8*Jm&M*dVBK7)Gfc&)s(xOei{RXe?6 -zv7^dg3Tw=9SG$qzzT92TT6;I`Q(R?aKY`9IL)q%ot3D#@ibPUV8pk>w#!zfgxp+uB -zWi-cOvspunmdQe|t;Z)-W^Z)jbz&4D>WxoA{_36{E>n@Dr!$LMWR6Sw#e?5>%PdMbxz6XUcsu=Chk$YEbuL_jEb6z2m8IIb->4$3pk~BidQc|oTcPeB -zUqbGGxIn7+)%IylOqHDV@N&8qZ9H1s_GZ&Y_GHS-ijEAEhgze;1h}=r^I-Xjb8`U& -zIFM-|Q#RJSSS7i-g$4T&Mr~xr2ND!1k4HyLihpyE>Mot-S34_*4g2?(*9w&aMa}IT -z7scp^&BV99dVN1ghnT|CA6{S-j^c1rR{ZW(yf|`mBc%_?O2{KyOTvctTPWGx(!v?Xr%Dp^XT7QX||=q7FKB -z=zWi+os>nt0%+qo{H`fy%5V2#D9>Ig@Zp{p!dm;*J}GRe@(@raBntMoEeCqG**PRT -zv&qb!iG>;Jt{(0ChhViX$k!#U=S91?7N_Gk)Wwv2#CPnzHaj(V;MX{~_EF&sUP6o# -zZMG6IEWd9pJQIQTvn7$&EYjsCYJUl-OER$1yl^UN@tEHrx`VkayX-`RpCCFnPj)ny -zUal>P26tPSf7UbI!V~)~j5S@lk*C<`8W)c=jok7S&*H1_E44NYxBvZ*&4 -YV^$rUwEBC7p#Kpd5km=$I}eHf27_eUh5!Hn - -diff --git a/themes/bgrt/throbber-0008.png b/themes/bgrt/throbber-0008.png -deleted file mode 100644 -index beef391370a4183ec221e131e4d06e60e1792919..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1604 -zcmYL}e>~H99LK+y&7`YsLg*4Jq1!KvH2Q&T>4zW5c?v$LDi_C9@oly+wA%FN+-It{>J-2T0;WgBZ^wann#DlF;>bj5Zg -zTWCGlisz}dSXAI2L18esGyMjSwa|D421e5uG=LMwN{Wi2v8)_1u}pSWz|#&bN38Gw -z?SeGc|4*VYc+%k|juykeWv4|a(%4pkR60|u02b$Z^1PV?0DwkFUb_#Ip_%7*$JKbR -zJ++*>)xM3m)%o1C%~fL<%uZA~ap0~&gqK(_FRZyx -zpfHyGRghhPuhFL5ogO{0V=bj<{syj8>UhWTi`&B;qYN?@A`0{*G-s!h$~w^`j%X1)sMwVbzdh -z5A~FhV*Qhlc1p4fv|^27s_qg&aC`6o691B|T*rhq3Vb?qDA38&%zU-mf>FjH>hM`l -zNN%D}eGH$*VX~Xbe!ShgS+YUQ%bYI_ -zx7?W1z+|StKa73iRFGhBPQhv&Wo{h$i?oghNB-!^|dEK=} -z$K+ntES>Tw$SNCICf=|B{bGou&e(Bb#IVd7;@l52jUSvMADGTh0bulCkl2U-E)5Ae -zx(r!-M?p-&V`MdtJ@zeFPfv^j&*d{Vr~1kKP~CkAg$O-tk8PWPaRMy)>-42Q=e`KY -zj_PaOTZ*TSwIVE(?$a>WOQ$I)c%!Hx*e;LQojz_ssg`g%t~Hw$ -zWf`)*s|c$KN>^L*!KsbnmV{_dMw3Vt?1O*UZf~=_>&yEL*e5C1NNy-*Awnf}NlOuM -z^SidLB^9^yNONZIAQ%tus&vEUmm6^6L=10`u(OnRgrPyjC5XBY%6JAUheea$Qj%Iz -zv1&$78V58&#a-Mor^7;3=4`_=1^xb+`wKEpgZi?uHdR~4uIjaQ)t>CR`L(e|7cR+L -zEDvwoS$KTrLdC5d&8M&19thQkl%6LL8M=6>knFQYH^`%KJgAmy`CbNI?B8_R(d)_% -zd-wOya6NU=Ac}jle-uScl1zq8W5hI7aUj$DOG~}AeC-Xqh*vWFAw=(1{&mNhyY5nc -zR$<UC)oDkg*z(qCj|@GY9Ad6@tFT)I(&%$M_?Fdl~WYr>P{F|w*p -z>57|Nqp#pNmyYm~`bB->LIKxy&h2$y$;sRbTi=0s&%K^ct~-oxM^0t#QGr5fBeR{6 -zyU@kRnJy$OSuatC-(9^;YGcm6Tz#FYDzMC>S~o&f+9N`HMQWzgm&vq5r+m -zYjb7&E6l8Ez;M`&dUEP39l600eaT#GA#y75D=)bHF_)C5(2%|YPE{Apf~(W^BAlTP -z^3g|Q%tTK6?k0`}cUwwqhfpO-E{fbAV~34q?!QbUq~Qmj#O*>H7&+_O?$#5&$0Zvy -zNt}fHAGIa6UW$1jW{_(0XMa6v{o|OZ@^N3tDKg6M__GPQo1baNE|QBXqfvNkVvBL3znvVP3FHFMI%a#GD?1@Na>+oFr4FV+ZgI>*hD1yHM>hQpk - -diff --git a/themes/bgrt/throbber-0009.png b/themes/bgrt/throbber-0009.png -deleted file mode 100644 -index b366daa8f009ccc64fa2356234e45d09e544486f..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1605 -zcmYL}eKZq#7{|wEYcVeqdA%0v(B*9NT1KHJhFZ-_WW?5DZ0v4}k`1e?P+}E|=;fA_ -z<2{l)rWfZ*NZO1_BN54xvdVC`?!D*!&hL4?=X^iU`Tm~2emQ$~`@z5#a*Jc7p0ofSI>md7*qfTgZ=lqkDJtdQn58ZS7F7fq5IBupED}Y -zK<({NS*%#VKZ3$wobra&JXXPVY8XtRCQ$*Lcvdo*Ol2XQF^8D!Okz)~iW{mqQMDkI -z_5YJ7j2k{=iKD{spV>z#bSfJW9Lr#;6yWHzg;!)^4*-Bh@i?E5a45H^KCwJ>UDr8% -zoNw;=J$c#s#n#pu#kxs+sqcCN9I4F1Zd@iqjwAW}j4WMU6wx9VYed4~0t@Yk{B=;@ -zYegoBItP@?eW?{K3hvSXkTBOeRer3G-M3XfghH#1rIi(W(@deXK|VA}Xlv(|eOu%S -z3A5BecktKI0ij^QWdd_m?LquD*1OmX;&maz56=trMgU%=9lpc~km@GA?>q(QKB}&RCH(qfk -zkH;hlKl}lNwnHtj9-A-NVmxnji0vC{Ve+@f0!416FD6W@YX>?+E!lRdBpc|dUE}i1 -z{>-S^$8p>olGsvSVrQLoGV>{Hd{`a>Nyi<&J|W!+Cz{QFg-iow%T?hM_gAj1xrL~_ -zR2gdSy|{ZtPv+g+TPt~A77AHfkeunU_&yoz*nctIU^#9Ku=eqUfcbzs^bqNCB#;?N -zR)Ph$Qa%S_xZsx^_~Iwg&It3<+p;Py04tRcq)arNvtizPD`;zQGBiah8KlW4vfeN2 -zgx7yuHCF^;-=X~<}_Nh&>(jOtVBRuik -zm0}b7Zc5Kc1$r&T1mZ -zdDjzP%4GqfR%R%Y;$Yhfj=YY)33rO<8QxWPy>ax>qP9l0(xu>(WgU4e%CK#**=A0> -zDuCxLz}a8izRtAeK0jx-qtR4ftY}VH9ccK>>DRcs+?Rb~R*-{qZStz8Xqzf0#R}w2 -zH}s~aA>9%?LX5!kc-qGPWM4rHdRj5yXZg$?QWHRMSX!x8oUP@}cVCvKRbUs+3T{ue -qMdmaTM6}GRtxJzMVmD#&y;Wc$yR*qQSfc)S0eIitxSH)T{J#My<=QO( - -diff --git a/themes/bgrt/throbber-0010.png b/themes/bgrt/throbber-0010.png -deleted file mode 100644 -index 0312f62688976e840bdd3cbd28a0dbab0913913f..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1601 -zcmYL}dpOg39LIlincE?RNnzDAxox8f-B`rZ1-XT=%`ap(n~F@CTP|JK2}z;LoLWw# -zr4BM8_L$MBBT`zq)!A{2J@e(E{T`99yz=lwkI*XMbEKYxAm{Pub4YMW^T0H90s -z@eF_zxm=oXsIyO;n1w`(>2r_`06Hs|3kH;wnnLD|B(Kn9z{D|VAm&IsjYgti -z*enVrHa-c%q^8gqN0Z_(NpT(Fuvex#96{n_PR<{T-kg{pFd!cp3;`v2H&u4x8~FZ45EZ@2jv#5X50Oq;$kV -zp24!W6S7z&;DeTjAii>$2S5vg -ztpA^Mz&aBH6-f{_{GOdcp@MAW0TPV~DS&fyIaz3G3jk_wh@KvSp<3C6-35g~M(wdV -zIMmJ?a0By*VIzC(uv>kEVz1Sk>8J>`wMz9}f?)gg8RdHgCWcivoxf>@RFvBiHC7QK -zQ3TIDfjMUU57)MrDF!E<=2J%h(Bq5^rb-*<72C!J6%9^Xpi?Up;&1k!Z!1b1cr-J+ -zrS2V?J&-b9x=_$9PV8f#-FgjAMM_eJrjzwn4>0WI{Ke7mO63Jz#ku~DMGeuqP?gl? -zHOXodnFi}7){@iAHcmTur2JWW%^Mpb;oq;Gvv$!NRIhJV@lkn1R=t;A)(rZ5yESe# -z;^G|S-a+GDwNOR7=XNbvMc;`6FulS41Se;eD6VB$h=J#vtv)QqUQ9$Tc8a=|;JzZ> -zq(=Tl$zwjUf;nx((Rm6aFwc&>9Dc#qM#hP|)9aeAiq0BU>uqXtHQ_Nb0^3q6a*Nwp -zdYs)>y&v}^z(>xQf%M;gique~-{t^sJ6OIblyR_^@7ACz$!PL+GPCfm6g{I>f7%kZ -z=Zj>&>Si}JyE+2OuQaQP`<{#Q9Zy^X>y+u1GvcI5{p$trVL^Ling+ADzg>pyIQY9g -zcq}tq=J;60xi3aymVJb0v#^p053Q_4f{A_j>TtzTdEFN(fE}cGFWUb6e4hYk% -zHb~5Vh-qo8BH)M=_$GuVF)d6U6n%eo?L*^k{UXmkel03|O%*_FjJt9HQ9Z!Q7Co{$ -zUK;A{QJEiEE>AeJ*Z=$jKBopHYN&adhW>=m4nrP$P3c(2F^_L;Ey~9_Uz~UUfQ{^G -zod6F#$vR3YyBai=@X6@`LoPR^X9ySuvEd5sDe{W0Z6QN;mN)J`*FoR8?3YE!o6qp- -zc?Z+t#pgQF!(K;exbCj&p{rc7Cv=)KFP(TfDeG?YKQlH~)OEbxa!*y3d_788@@mCB -zrNshiCiye|63#`)}lPLQS*h^*lG&;}@!<;aXZ%>6m6a -z)PdX@by=A2=am6j(^A4)*OGl?RtXr}*4*^UC78P^pVNjq;P;Pf&YGZ*uQ8ubhP`n# -zJ+lSo4~BPl%s8gzS>Y(Q+6%#kos*3hUfuh9 -zBf+EaP?NWx4Nth><}vp-KcDyWykDQ^{r&v)J+R)-3uRzx0001rzLv&- -z)MC2edQcZ7B#c6W5UkxK0sy4(bm;(vMJA9*6?<$Hdq#3V0MF)gL3~ssmm3<67YW1h -zJ0rz-0Vkfzj}f!+Vm8PHMR<`QlE(vu|EXOV2juMtlReUfqD-cvXrW>duqO~Hcp?#R -zzrun@baHTTav)s0rG5a-7){RvL~=oZKydnfiNrDWyflcxf2|@6g&>i*L86_4yxG&9 -zJ7ft%f!|_BAlM&L!J8q7o`%eDkOu-{wvZnd1_~`!5F!L3DdRyM#Eqvp16mLi{{N&M -zfkY3O5JPy*uk8464k)rzOth)6!VE;^Wn-k0lR(}c;M -zLwjnu#{TIt)`I?W_+x|Jr_$kmW(TRRlRAb)lqVNt>EUgL2W6PKMJ${1Z1@s1Vok60 -z!aZ2|&X+%m2NM%M%E-|l#~M1iH4*X98PICu=nO-Te33GdIyU|_zPD>)%%v^gPh*pp -z=%r)~e!DtAKIv!uB%rSJj_uP+quy`P*ayY*QD6|KW>a8tX>uj(T4XP|kg_!ZJwZ4X -zQ>bhRA{bf?m|jszcQ)lJzNGb_1?lb~i%4;1Nq;n+Z?Q|_*(gu%MV-68pkUH*cut(b -z^=>qyqxh2gj=QTwmnX|out>rqH;OdrRvNOASIM^KFZOY>3)F7<8PUw0#;rW}6G4_i -z*3~KSZvBa8g`54WGOH_f4qGM6UxgyMTIC~y_!~~-ILC-F$DT^Zm5MG-n7_M!#nn$` -zA8^s%D!6wnKI5Of@?tZ`$_@ZNp;7^mY+Ze~DbT2bC$XOlHs^k&9&i9u?Qf8R+2l##HwEen5 -zYr65pMA4kw8RJ|jxe2Q%33tbh7vH>W6syuZNB>|cZ?&rT9iCOi93m&de-f;{sD -z@was*F)l;0SyEKifaSq?I9_mM4(wtqn3cafP`k1UMfu0S$F#BH=63nLGmG!sW8Ktu -z(ZBnxucooHu`=q+_H576*q13f=I!P^LBosMzpMB4wyp+^Vzf>T^6p^eqLGYCAMk(a -z{L!L^3xi>55umC*|Ds!k0`umI)xbwCc1uA;{_RQmen(!_-ukKW_Q7a@d1l{x&Ru$v -zVE}J1>w&@i^qbuJnhiZ#1ktm4$ldo`x-Z6!AXS -z=Zav|;ey6vM|;1jX?^+k?WNoI;&9v?4b4NQa2_>KNetgaz -z>{hn3c+IsA8Snc(g)e_Qs07t#Upn@p_L$9jcj1$FK{BSRzrmn%ZX?pUvBjahHt{XR -z|1OfADbJ9@-V8kYhA889j;foUcS%*VM@)sQNv~^AyR7byV)#|WsU*z?Yt_0v(I1U% -zUmj@*nW@LoDeZVSBx@d$u27gSQ;owj%Ijypal`QAIXynZM1hUy1uz7N3~3K>HbuJK -zKf@I=7g|c4ZwRAqH+JrnYm0tW>V^uW33n2sZjN|t`9nd65h?SlQoE0%;%r;>kmltX -zTD-Ol@AP;cw$a0J{}wjEhRu!@pE%2OJ}n{T?3=WoOf@Zey~?)&cRbpcWD}EAvewJg -z7#{15+)`;xuJneDIC_`2{_OHhsty_xw_|fyW&)UGGbxw6J}WTMTz=-j5Vyf@ms<16 -zb>?eCPHk;=#8#?LL7Z((4f+c%Lo}*s5n=nAaCT>t=( -zbWh5DNKvb$tqHySq@=fy=x{v)`2c`0S}hoGsn`TET?Nztfk!k81h7mF8^j)qX0yW? -zSU!(|jfxgvxhx@@6DMF|1x%0)^09nwbZjih`%f_uEHE}QLi7h5iZWS^qJ#@TfPll3 -zuy{O{V28rv$wVTVh^v^c~rbF!!>r|6JzN7SiZ -zHtu6oN~HLtv_=dXvnvltnFW_aG@o|0wjY|x_xrIMC3>~yG|oh(?G^NpK#9!XM4_Su -zCZ`gXl2y;&*i8s0Y}X{eIH6ihdDPrf5*PxV0l7T*{Fr+l7}kHRJVb74S^uPJkfMk* -zrJ=%*L%SdQn=Kp8MGFS^l=p36ZVj_eosYaVZi@DpFZSfBHItB!ME)6X^;j7vhBr}_ -zek(uBWSuJ`>-Rp&y;GTi7&fbcqsMzbHdX>bTCM4F`*+{PiOZ6&mqvx`%x_XNYKCDl -z`ZMSoX5q?o^I>L3Oy%T-ZE|3H8{6V`fmBJOVlqSE9CeyXx&n(zFDX%rZ&kDT -zYiv;JHPh!2KdY>e93Kv=(Mn*0F$ -z?Jv2WneiSzZkrnzsR$AeA=K4l^6)Tu+qJc$_TEW`;)i0@mQO?Shn7CXk~q?4oGi1$u^dztbPcoBMhOlW0^7vxdiu#Vr!i8@};cJF*(w!fr9}$mZ8y -zqd4g=+RbKw#L{VR>p{$(MqO{7LBNGsbUEmrmcC|I4zD>=?w_~!{%@rXFta8i$1 -zDwN0BH1KLgLzt?05U@(V&2q{f)3Ud}HQqw9jxN8_vWs>7}-o`tla6&r1J -zQ0LkLERgH^XcfLrqDPmlhMJNt-qUhwZd*&rp4{ph9P<9=tj-fA`selA=Kpjg3;lD* -zFQxfybruO5&Fb&eeqZ+YK8}($d((^4qGRiJ8|auAXVFK;T(WH~PPcsXDrIhOf&v&q -zkJe{-HaS!L#yf30gO}j7J-Kl*($u=mWN&(@tcIkeP_LucPxsx!n%8CB@K*|hzx$>` -z^gPSYxo{!JaiY8pj!?N*iX(w;ujT -zb)4%SX5gGs*Dq_@g`A8f1oU{sX9SvMUwkIio -zLidv?x^naYMYV&Zq4#q9f?@A$P{@>oEYJLK*Q`_#K>W5nQzjf@+k_YlsPzDO~WnZ8H%4UW=u*%X?ty! -z^+yth1BA9Z5eE4Qvd5O4U%~7`7u2r<8V~qkqaJHhxA_9k5VF1 -tk8O410sgeR09(-E(>kyfAxR8e(Re1SE_W!PK7>9&fKK(HRJk1y{R6MZ$w~kK - -diff --git a/themes/bgrt/throbber-0013.png b/themes/bgrt/throbber-0013.png -deleted file mode 100644 -index ace8764887795c1dacd9060bbe7d0e1ea932abc5..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1612 -zcmV-S2DABzP)>1eYOb#!Pi -zbZBL5WpgicaA|ICWpXcbaA|ICWpXZJY-Mg_VuH;C0000ObVXQnL}7Gg05UK!I4?0V -zFETSAF)=zdH99pgw!+xU0000GbVXQnRB3Hx05C8*FfckWFgh_a8`gHO00008bVXQn -zMsi_oWdJcVzi^q-0000HbVXQnLt$-Ya$x{NVQpn{VJR6m&&cbW>wx -zZe;*;XmW32Vr6n5GcaawbAVFIxc~qF6LdvbbW&w*WMy(xX>DZyFfckWFfK4RK2yu$ -z0000IbVXQnLwRFtWpf}?VQp}1Wpe;AGB|#g7%Kn(1m#IYK~z`?g_c2UomCKqlS>Gp -zgiF;Jq=a%&5G|r0-MFdRg$wCMP;eo*5s>zdxsFN8-!6)oq-9W7~5Q -z+s3sq@pm#^qc0_hV|8zQCVt)l32FJh{?161? -z9sCA1N2AfS&3}M>?-jHO95_c|3qA#ogXh39Sg1f1B2%>Z0elTE)4&b%J&ov7YMnlT -z6pyC3ot^|wfK~7xI0`)63G7zw-WE6noXSt&9Qclj?BzVxJ%QwG0(IOLez|5?><{oX -zxCM@YKfzq0;yn=rHB^S}-t0)GP!&Y_Ol7-3Pnl!R-E8|PHi -z`m|4jGc>lC&RG{(h$95>J`U_$a{mHfzOn->==gsGj{gQwEaFui2TsLDD=CSqoyt4l -zD)qjiR=EmmW8ZxPIPBmh@FZ}o-lGI0BYp*!fWTd;Zp07tsbzXdQeEJ_lZnF_Kf9ijAGJxOJ8C -z6?5VJu$}-%Y;o6W$M-YvckQ8tY>2y7TuX!)ujM0fUO!^@PQvrlZ`4PAkb@&)A%mR2 -z7O-o{Y=G};hh1@eJ?V8d8cFmMAQ_7)PC`5bCdP|09u341W&GZIMlXR|ZO2K*U&Ot3 -zUmNi{E&yvdg@}zF^W7L%{?r|dUI$LW&Q0#Fnnq=AbTuyd~X= -z=dO8OF3KCIuQ(4z5+(_KB@kT-s+Ew4J&Oc;UgeO0DSlsylq;xgEF|j|Cht^&rMnbr -zwf2xu%_--XO8q}~vMd2L*q@P)$KSqVa_=S>OE3l0ZE@GxBX%eg977T|x|N*vaaimK -zxCSKSqjVZ2W>%N%b!4+gk5Tv-^)E9a?fXhPQdj#~ -z5>9~O1UB)l=dkYIDIB?bNtC;#CUb@gSWu2d(ZTr6q_xChxa1^$LH~9vX%^cuDn}e3YVQ>_zffb-{6&wN!8Fg}_*?S$_2D9WZ -zoUefH+Rf`ml%I61b(erqg%JfP -z;up+&$`yFPj>VJ6x|7EDJI=1D8sIr+!KdWgM0ai4y@dqg<4}L1j@;`QYr7vLZjj@( -zeG8O3;2-cI7$h-$HMwq&$p#MyEA0zh?7d`Y5@Bf?KgDVO3PaBKf?}(&AD7sCIFM8JA{d{d+?0kyb -zyv{Z#(%Sm6j!s;3{L%48cT;E`ZEymzpS=h96K7sx^~KJ4(fB4wQa^7o2i|!L>KTqMs8X;j7+TN0D -z^lYa*KcmHq1%3$@k0**X7Oh5TKLtaXAR7dd6L?8+aUjoSC4MJ|FAQn>%gF7fc!=>p -zkoW(SSiA=%w5`{OQ9rX&nJkd+5*iC}j0zBlq^u&Rgoo<1iIq(oi)#Ly1Tol9ZGS%bveCT_1;5qzfeo5 -zC=fMfz*J|u;dNWCHnOaB(}^BzN@;=O16>VX$*{I2oAg!;mVmA -zWul4UE;NrQXdSE8@1SOD{p=~Z+u#_b%%{4R#umEU`~&Ozt%}Oj2(Y_@vde4eF0Hbq -zS%g;IekwRwVxfUYW29m=Lou6C~*?m -z<6c$Ns}-!MXlnnu#Qui%w$-|aFJ<2uG3Y}1&BJrUZIh$VF?_o2z0R!9%RHUtnc4B= -z@Hzf>ZT+6Yt_!Uh3C|ag&tt9r@iYVVrNj&7w%6ls>YPVB%g)=5x1_!G -zJF_~eMb6k)cn7H}M!~S^N&dZBt>Fz9*SH(q* -zH=Uge)8s6ysbaP2p=-x)Yq#Yrd+wML&D-deZbJ9z)IOB1L2TH9fx8XLLS0dB-_TOFv7~L=_Z_Oq(a$|6&!QON{az*lCdQ9lnH)NlFzPi#n}?nF~#j -zhS9QbvjPTeFL)xqD5zV@pY6%5G|k>C=h>=emb_h>0$Nsvq&V;cn|B8r&KGwtiWHYF -z<~n3ftGAGMpS(ZmtbNDXOjMgLfP>cg`(zuPsfMHg+jpKr&{%`op!Dq7gg-XP$$;g5 -z?f)E;hB{y&ZJGU`Na>3~B1rdcwM4_bh1pHSf6V(I$JD2c9yZ%WaILXJp6pa3TP5C^ -zTxjfwH!{oIa8JjopD`dF;19iTk6t3#^r-sgSk4x%^mWFyHEJPft#%qQto?{hWp}Tg -z0sg2Dd_n#@?8imHoXPpp`GH>Y(u#sT%f63GU&4|Ua%p-e7!eVy8rC#;8$OkxYi3{p -z=M(2r#w|atc+!BmxUFn1q0{V=1O44@|6MpkgD#WOC>T@cz?GUFyQ=m5jJWnIB^mx_ -zqFp%yk1GSkGhV)`OjmwD-8z}tYp1DX8k!x+jH)`_t-KG~iSia*5R<%i$D1#|Q=4~G{7 -zx&J@uf_JAx{>_K6`RD8mIs@d{MkFygumS|4XYP*}CjeN{NAdTIj5W?F3qJC7)Y@-L -zF+p1cXs52p!Va5#V^_C+ALkO^wUwjiy0qtzaBZY%+NGlFqQH`H -zyOSx7b*eCbxdrK0UB=P5toF(A;0+zrtem_zIjomj_#917*KQsVkJ-f}EDpVnpOLkF -zjH(%{2+=xv$Ls;OzV~`GTd~(3`B28Ill2W^qwBP5Eo;gswM(0t^#97A)@wq!cLkK+ -z3_{1Zd`GiETo0MMwP@1QwfWZyC4FNt#LmwWqC9neO$N27DeQc;-MOeC@!8$3mVs&8 -zn;^3(jHk)_At)xm5P;FOUF|yO@f{NzQC53A5DY_P+ -zRBQ@b#efb4SVTyk8mhnKRK=Atq~yT|2z>h>dgFyR)|w+bxf64G5=G4P)wjezI&0UW -zM7`1d84z)>HzM6XO%N*dCZ67YYHo7J;_v#`*fpbY`(QzWdR2hkRX(pZxoS6II -zh!+PNA!C)}d6RgZJ4IDhZZy`0sMZS=(V+o3_HJEc*AW@>5Rz$NhF1wLznk3q>g-@B -z6k5NK2m@{h7PNgJ@aqprj@qU$RT`6Q}BglSiPZF8#(a^NZ}- -zy=az<`A9}pBbc$1h~b`=MdT4dRkK-;O^F=&Hl{+JrPWecyQRY!4UvXjikq%#a}N4e -zxJS0h)p1;$fwisI&>zNcVp;nX#O_q8l`0J@7T&j^@-LSlTVx% -z(&7}j^mn-f@gr<@^SYq#_shOz`#fIofVu|r6-l3>8j(BNVnqV(s}5m(<%G)KqOPfX -ze*g57{n(YZZOLNI^)D>50Jp)1p9;I38(K;qUqNNCs=5otiGrK0KK(D#jgSR#t_ga< -zq0Z*b=j&sV&vo|>WfRk|nxT8wo_YPS(lpv{a)-NNJ1uP;HluTm$Hi>p*e6)b8<*ai -z*I`O~k=vzJ+sEZqP6ZEgHW8$uX>EreY)C9%LH2tuGed)P9IN8v@{1^{e%~$YjAP&M -zHA{>(wI-n;UGr=E`lF8T1y`YSkkIA!m7}OX -zeUnQmKE1@>8jmkQ=NrVwte@N~+w7yXF+|#|SU*R;9N0;P6v`LsoJ28Uc&BblY=cfJ -z0n0{Yxs@vWv&s8{^BW&$>UE%USFSG)hzYAkNN2Hm-$fRcqE;0sr^dw^rWPWKyjC%3mmm(i;$`6G( -zMym>YB)m?mJmts=cF6$l>S#j;DKXsgq`11`jIYjk#kx>jm?_e{++bqX=BKlb?W -z*?IAWqYq7|t$wa=-6kK~Hji0YnQho99O&Yy@fhp3i%_yswlqGVBiJ_FI -zQwp8r(xXUj;gCv5W8tJCa$S;~pL))7zR&mbc|Xtl^?5$u_g`Q6ZolowWv0sj06_YX -zhykElEfx$4cF~CwQ=q^Fq(4LefIu(S5+GA)44PZSUV&n7RtN*YGWlEvmd)aFsdTJJ -zNXH&yiLru^<6M52n28lL8C-@4D-y7HJcjT;b)cmzqP?t#*3?nR51f^!r=*6 -zJRa-hY=y_WxwyEw;7V({n!y>p#hE=UE(5^f+ -z6Oeai198o&IA8rwz9sG(ALyOGB>VmG!$|!@=TAqgpC`y<2-SmB$C13<*W&|x53XL% -zh5LVXP8hEr+N7xrZk?Y{5k4P%*K*l;vQ;^$k}RI1;o;%l?TNLDu!0`Ke0}M0R8ReV -z{J2r><4|Tl>hNFm+ -zISUrjp`NX~;^0l@E-gD|FcBS_Yww5J&7lb&4Wt3{qqBsE)^B6>xa-KJuvT2hthn_7 -zX$ZEYGO@>ce-zy812pi?jN4aC7xZxa2@}#6q}8S(qGwq&v1L}jI9gQk?v|z((2WU( -zS`>2{Zobh;)L4{jSN52b6z=)X^w?N1EU9Tc>jm8B<-J@H&j#5RyEAMZief$1M8kYt -z8PV0+re6jx?XfiD7DJRRooX%Ixr$#cWku8~*81VKqEE8>+GbZZc5^sI<7!%vVk5f0 -zFwORoSu;P%R+(9Grt{;O-lE{ZO*Z$e3FK!q$#B<0dT57kdr;`7eXqUaruDxsAL*?* -zoS)PQ$Jd3>C2WJ*JBYo)=EP4^{Lo -zEv-Z9y@s!K)5+@|BQZ7k@1*(*T7qR<`o)%Om*5eWahz^egih~X5;vbN^-8&7ezI|I -zZf)NZOs7PPEx$cPFY^HozN|v -z2zcW9V6}mJq#YwuG7k?7RiWd9U+iyucg3`Us$ThQ2ED%O61OFZTNxl)Cmcn5Uh%#e -zZDtwsJmP7G-H~esdoPkl7dTP`Jt)gSsof_#M@UH`Wy!?oTo)p=?y!gg_ - -diff --git a/themes/bgrt/throbber-0017.png b/themes/bgrt/throbber-0017.png -deleted file mode 100644 -index ce792def5cc6aac0b16a4ac9d029aca472c08595..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1572 -zcmYL}eK^x=7{`B_%EqXz!<4reDIMFCXoN+XQ>TRTmd5yDY+kl0v|L6B%S$>5qg7H# -zr$XC7VI&=u$ysT#v{s?aTi(LTnYzw(p6j{q?{(du@AZA|zn(15eeQ7BS{MKTa1WxJ -zmr6~RN@InpGm?|1R0547`ZEAP6S-7sKuIY|HFRd~@?-9%P(c6_8A}5(Q4|_2BoxD- -zhhicqOiUa#i58o{jKnY_K^n-wFybgNF(CavwI)-+m@sl$r@AT%wG`zR!UO>uEY2Q- -z!(nW;nBZ`DTU)#>R?sSWs`9K_^7v3_Ab`cHPhQ~2dy`I*qIC6=5sTKt3 -z|37Js-R9x5z*J$xkL;vSD#$SL4xz=V6u{Zorxc>B06@Lb!;RqM2R&cd8C`a8Rr|SB -zzg5cJi4{ak!p^t@{G;!#)jdC@sb~5fZY}+4oaqoh(%NW}d8zK0c^%@j?`l4g!f*2m -z$h>kew50#*Lg$VyE+e+T5I-*69w90%juElres4meB3h8KmlYqYQ;dhMD=dg=~lA90&00gHr+_yJpV&f -zusq=|^wvCDvV0ce;iyiXi@zjQ-yk&lYQ)mEetz~%8|Y+~UpnGqP$~ToEn9P!jtqR~ -zEn9)DXYk9gm8RQI_@)k%*g7rR^%eu(&&tmrg1c*jR_3uoU2H6#8&!Md4Lao~3?3cE -z=NFL&otE>SXT7zZl4sz{bBkN{D*PRCQA4q^lEJdR6i#(Cq9$r&v=&(~d*dPm)BVz{ -zvNWlKuC+e(rHRE|n3dq09#_D3X76#aX*E5>cAwrF#|uMOG?yJm5T7)Xio~qnjiqW@ -zl}Bb)5P#_p?~t@=3U4}g;l(pvXtG?d1t~PMhf2+$oO#59hfUEN6E{*zT0Wbfoe5~M -zm5nsPn%c)KB*V`3xop9&tbWK~>Phn`M~AD_H1UAVothW>i=GAuvPTXoPC`?Je`SJs -z_<~dk`WtS1W|)_z5U#Z!4sy|h_8m$)(4MWvaza#}I4VO}dVG0Se%v9?BHUB+h>VPEs-aE!cHjZq{5If`p83rCCe -zPiIc9C-5xMPePOt@LG2YE~!Ab{tdln=caR)$AU~>>QC(yMLGE|oBC6yKD_oz1eh3*_o++>4oC^yV_01KX%x}oCo0zPMq$8_njmL&fE&a8T_ZA;%@qE*n -z(H~2bnhWE5m>-;q6$!HIy;nBxtG;9s)T0CAT8YL=X#0nCXQF$nM8&=iHNnXS-rd3#Tsuka4)}w6 -z0`VS!nka3MP22xeUt8YW48N_dyVAl?3{ssZ*upBA-Z-Xi`K=cMd=od(AXcq8E!{_| -z?%QQ{@pZ3K#zUbj9d1Fj33Kpcp;=X% -z>y<*2$-+=&9*nDl66COgS<8oozOrNA373?xlu^&cn$E{VgZi(K8fME3l2iN{>2fLV -z#`SiV+|Q8oP0rgsJ=PC -NW7j^n+dG5P{sq3l&Vm2{ - -diff --git a/themes/bgrt/throbber-0018.png b/themes/bgrt/throbber-0018.png -deleted file mode 100644 -index 6423b95104fd1fb81420f5cc0cb5b1baebc90726..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1601 -zcmYL}dpOg39LIm#*j!?6hZW5wXDsX@oRLCDX@%SpQM)kLjoE%2VHr+QlpIDEN-pI* -zY9cA3wo-1V=_W;@nnXgB$&xemoacO>@8|P=p7-nXyuY8nzDIn#Jv7wTr~v?=LEi4} -zr%;oXQh_TvHznn>LR8t?gSh~puDenY;B+ZUVY+}@gTQUkOa_3Dif1wKG0`j*Eey}) -zgyAEjK|GszfEAwzM&ZFI28+SPbJ@{xaSYCXilZ|bapCmL2TF=4)Jl{)4P*ee1R@Df -zB;sv1m=K9h_V!Npgr+;sdlWNTD>DJnECxUzIQ_gtQl3(sg@UR4ScOAVKqASq!ga60 -z(_Zm@S6Cbx@KbOEf^BZU$~^_tTY>&zj5r1WMseclbOy&{10jOV<@@zCE4c0o_fss$ -z;Qaq2j^IEJkb?@W^CSB}7?Z&@@u#ua3I&L^q=UsMD*#X$AiKK-1gQ#&dvgW5Q5})E -z!knN^bIv1jc+Q`}IjU|r@O7YCrpj{mci58p-o_~Hr+2Q|>~(L9F+7=@7i#Heb{FNa -zida2f^A^0=JN9ypH{CqFN`Oooo^$R!aPZvREtzEHFyrHUx6ht`Z+1O4_Tv6Q2XAJ` -z&1aZJT=r4dF;rtlMbFVW5wCxtDGjWTAH|lrRh&Qu@1wY^IW}LvyyIFhbqIMj(`&{e -zS>+ibOI-718F_F_yHQiA)bx{4j~QWH%Q9s9sV$=vIu9O~wVRy_w~p~xH&JyuvW0K{ -zhcf0g;-Uymecbkob+sIJ32)_!6lq_9Ol8E5=Mt0*w@62~)|Ee(x>^O3mO3lf%vw>%+4}E;1qK0ZSg@wkMP=EoMQ`i -zhwu9OFP*ml^tle2zZko4e!fD_1lHBjIX9=1g0PNQ=b=n7s?DcQ?Rw-9(YI_s_3R>d -zo{4-v7A;zLWdYm@_(=p!jNdL*q;xK$M70K-GN=6<=8+=&M>~vjk=g?ex -zqKRJGzFwYInCv`|kSRZzqU1PX+Iq+cIHb2FNys!!Y9;GXo=n}hAh$?j_?z=f*Vzjz -zWp572NNR#^uxV$xTVUco4y($cKp7iZhw^keZZ>c^tR&6QI^1S613K=Ro3~MX)gagq -z3u!Pe -zHS&$sPciX@7f}7rFllLLcsG}{S|O7IX01;r(&4pK=dEQ`q-l&S@iH$#i2P{z&E$s4 -zS^jM?cV^GM_)7+&s!v0i*WK>EwL=z*pq4Il`}4+n^#-L%C1RLKHISPOzXi+wtls^r -zovLA3gJ6knnp#{U(wR}0*`%Zo_w%Q}LP;7D=x`#>ynp8V*)-_4)?GDa{DIE;@++n{ -zG$%3Ucr?s|mA$+zX_@%`)iQ36PK5c#qgj=k)NTEq8(<34HQx<}VyPY4)aPCh#PYCw -zX?}?3J3BA$SzNu4Go9CJ{*$MX^ -zR@eINUptfEjTl)wvekK2%eZ*(vj42#cRe+}o{%A|w=^MtCg1aSkJ~)JA=tE6LQCna!V)P6BwmjP~WQjhU|7f6Slks1M -sHyw}tVF8gt-stkA?cnZ`rS_ghWCxsXXObb9R{Vhgd8@a(a0@l_U;abPJOBUy - -diff --git a/themes/bgrt/throbber-0019.png b/themes/bgrt/throbber-0019.png -deleted file mode 100644 -index 45e935927623eb5ebd3bbd1f5f6aed9207a55c88..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1608 -zcmYL}dsNbA7{`Bj<6^8xBxmzB4OgaI3MER>1u5mFDHf)AK}k(+a%twJK(=M6c-f{| -zG;0;QwW(QI9z@B~)-bWQ2ptP6J1lKpn&vdM{cLAv?|Gl+d(QXsobUVm^&a0H9gak} -zA^-qDG9qZPpn5JB%mM7;{QPN9;KGOmF#tF^Ef)khrE&pHs)Wvx?8xSF09=-U$H5)U -z=JC?fabi(AE;Cz#6LJsp1X4*BPLjppal|;WFq_Zki2l<6HkZTCU>D!B1EXA)qiAUo -z4nV{c$T$K4N8IE|AW%po3JKrVZPJ4?tCnY&**p$_$5Z~jge`Au>o0>0_HGqX8VCtn -zQZ5SnKo7O-Z3it;8t|_K;PJ%LN3b3cqL*P@I)~2zBv~Q>o6Qk$}NLQnw$k$j}a#SZ}No-k-(Ocwm}8g0&n -zc=WL^y*BDw8zYi3SRW%$Q>AqD56(=xL=<=9w58<=ntS!~Rc92<4wcZtLiuyiRG3%9 -zirjL7L%FMOh~e&{R-8%H6buJh&0@o>b|R{#7Ch0>(KSBLcS{mxJFdqy^E`apwEG24 -ziY#L+^k7tmA1&A=;9x40yemzaz8qqp!B_32Ls7#9B>VNENhJMlW+cGz?8W -zy4lrjcIkSh!98puRJU&R=?tV9Vw8`S>WZODsjn!{T46WA7-I@YV -z(vkp7D&Z~AaBj)a)@lA5v#@LO*#d0vP8D13WLD^sTD5_hXE! -zTN_WC1-t9$gV*d$Kb}XnTTA?Pa8~8WXVbYUXTsUs8O#CHo6R#@+LiN#e(%#8er23A -z^&4eyWX7a_3;csCIdd*%TX%=*XECDL3ELQj_p73?CJI9A9WwzS?i{f0nMfF_`khr` -z9>E6RHWVK$lc>)K5f!pKvfN)8y&|?netq(HQuF46@k~!6Ce?=OYxu=S6T0X?*5z78 -z;4=R4#E>bq_qgnmj@DZhnbgy*_1HU2YGyXGFirBiBkdUuCWivDu_!{;2}@_eD2tDw -zRG{MK`15L~eAV&qE`3P+c3U8}MKnV?cw@ht%LmC{jw1HNfAwurYL04F)^pPQtc6hV -z8iF?_Ga(3GoUKzq?uw^>L~bKwU-5IV(~e%S2<-FAETfKPIZYaQPnkAo=;7XhVz=Ko -zn%!9Acgl0+HP5FZ_Z!xos@vHRG=*(+7>@4lE!)~pJ9YpwdU!~EP>Act4Dg;aw@v@MZrgI -z#g(=GRNlGk>%Ye0^n(^Ox_?|T3{Pb@4BJn;wCS)PxdxhhBrK(`5stcZC -zrwp<3tkFF-hr;HJD4&v_=isYe5=W&%H?C0gXT}%PwbMP16W+Wk#h4zK2aM;|-IW=rU5qjZ0{*I%U -z*Dq=1RZc<+yaTad2PN*M_;IR(#uNDugS<6sq_r5Ad}!ZPK%Sz%XehIS!gzy}G7H>0 -z9QY*rNX&zySu;g$ef0&-pR_MBP+D#nIoZyjFzCvA`;6~Dcs*wORtt+&7uq{whk>(&9A0>1Ai_m`)Tyz -ylZqQ_OI6YL)DWxfZQuDH{K$lL(m@=3_Ajb$XmVakmnIzi3IPT^n%4AjYVkkv|H85W - -diff --git a/themes/bgrt/throbber-0020.png b/themes/bgrt/throbber-0020.png -deleted file mode 100644 -index b84b04dd859b199729c63df17ebf7cbffe8f3185..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1583 -zcmYL}dpOg39LIl#2}dqtTPc>?ncFTRLwGEglq8f((S~8!W^E&ua#z^| -zacx4#I31QHky~=vsZ>TR$3fvZQ_p$M_xXN4@8@~HKF|C6`RjYb!`($mVXp!J07|Y$ -z9X%zA*r{D$NoTUzD-w~XAN6AbfFfk4q=27_;S$rH<>bq9CR0cNIy{m}LSG4D;(UYgEE^eO-k?lt43#l6TQP -ziKn{b9g$cJBJfR67>rr^*seb$P<;n_1(RqbfECV&3<@GK5C<`#bY_C5pjE;lJKR&U -zAc^t+lPHX(otNOX1gm|`jt!=ems(11=f>Q -zuqBknf`!l*C3a=ZfwiZFHn8us*QeiG4a80lSasU$ocm2p7P^Ml%LNbLca*TH8@Ps# -zAK678(%s)6^DZA5^IYAqecKgtDHNa@g>{NFiz>5dC+}C|b6OWjW4QjVm6wXpuJ-xC -z@QOuLi*$;*xf^KI2FVWgiCt5Dj4aiwe^tfP6$15d^f4eP(Lwa~p3tDhK`nh^B-NUH -zLCO^+7yY2FI|NF=N7d@LIw^J85{S_I;M$}Jty8ZXryZ<%_aB2rZDz(w;n;020%=1V -zh!Ff5ckB!sTny?h6z-G#&P1oeq!KFRCr%xkpd{!;|CTwfGs)C}3S}ml7hb-2kBo7> -z5?_^<+%tD(uzKi57;4WXZGYYJKYdNinrU40BG=96(hOcp4xM!1L;zwg^gO@x<}Y4* -zdAza2L}k#EgdrtDRqY8{&LpHQY5=4q+jDWIJS*|6u-dBM=ku!Z-6!L(*FatkKiM|t}fQV7E@ -zVKZN_L+=jzO1aV?g(3)F@MWUI`~$2uJ-XOq@G+EdV6DFC?r7BcYf^^Y-3zN;boqjD -zd~tQd?j+qu3hU2&2tcvrR@xpJS`eqdA<(kLonONq`#CVH<_QYeIt{(B&P{jR5U|RHlM@kVHIW;A*}WI{;F9(7FTY%th+3VBy0p+cf;_ZlwMPU)!zb=EA(T$8QERvz`W%+p>2NZv6X}F7a|Ew`Wc9IeJKNMtOS1;fH$90-1R6P2zRlVYP^wY8WWM^~sv=^_Kh>$_kw)jLp|c-9gC&n%x}{VW7Mn6cfgN}F -z6Mk4Olf!sNFRO?jF(zoJU)c5t@KnTn5(qU2vt^heG_o5}!wYnG5!GAF?YUi-{Hkg4 -z_`0;O+#AE5Q-N)3S4w5=InS4NMJ9CQu7VX#Z(kYjkX_kU-IPIbjDxTg8re0YBNzK{MGz{e#*6bxuWK&3Mf-O=2gesRjyk* -zsMd#45M$=txj5@RWIbbH@C-e?q*~#IXpbI#y<+!io|-nP>315r+b?X%;mi0O>}=Ez -c5cH<~U;AcCT{$u^$&UxPI=MU6;t5Ir0u~;_O#lD@ - -diff --git a/themes/bgrt/throbber-0021.png b/themes/bgrt/throbber-0021.png -deleted file mode 100644 -index a64932df50150f1ac1e29b1d181b80430f802459..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1602 -zcmYL}eKga19LIm#JZ!|pT*|WumDz)bgtRcTYHq1csCn8Qn{BqX)lAq>Nm8g=vh~QV -zZc28Ft5n!+6BDj(EfOP%+x@9?&pqe+`M%G2zdq;v`F#KR=4}fn8W~s_003Y_ -z3JZw<)nTdNdf?4ZOVfga;D$x<0l*NsR1lz4wj4A!3J8&cPzH+zpy?bo4V}zjv*W2~ -zK97n{VhGS&mWa*SFQB6ZbQ+t+NAtOiloT58KlMmp(Nca+$nMYqqn0m4g~SVJ01kuo -zMPspOoTmd8>*ww5=Z&dR^tFLKCQCg#8EhJW!T5bYIPBm|2p(kcZ>#X)L5Rbq?WouQ -zdZtTWFlh1Of$!ph!Qk?H;YtviFTovDS_%yi(0QDM1RBr56O+j0OCs9tfgHKSBfte| -zy#GgfV0=hBzX(8V_AOgPWzqN!JL1_~PysB?H}lN$wE&>gPYT(zGZIm7wu5Wci3LH4ELpv{^qg6-wjl-eokTLt0Qa@}4JopqG`<0{JH57E(^g}NxhHVobL -zLD+kuTXARs!-})8*twxg+H;UoY8-HGz2|giKvJhj-5*XSlgIy5sZ?cj;&9vj7wij} -z{C>X{_Owbim)|w&d$&KNck?iNSzWI9QmEe8s>*>@XK^~MjZxJfoYNRrDtqYtVZD}B -zozz_%3AHwf-U1t`>l-0<2gX6HK5gUUp303v1USap9DulBfp84r$#Mv1q=)D%5ca;}i4#s9EZ2b_{V{Tef -z`_(4%yfClN#kIyhZ@r&*IhRM$wZ>1b*<$)y(fH -zwMLt*JdC$MTtTJ8D|538d83M=-15&^`#WZg!-m}=LS=3R~^eck{j!*B%owKdnl+{IrTp4rpRt}kSAaANUi2^f> -zh16#!Nv6zGEmDawklRvDtnzl$@7+as#B5sN-SF4mRms#vQK)STf6h65#R9;ZFb^<$ -zeQ5A{^WL=egDWjeR;#>Lf8b6Hclq6)@i$sf_m&7->&oc$dSe}y;Ik7$f|^Q-t7qx| -zxQTk7peB)%1>7~sYP0%s{-Eb{tGx}uT^1@gx@*+4Rm>VGYMQN`Z(#UBn$ZYs>@}|k -zFyGDCnUTjwiniA=0&K=7m;d9e_IHqFPkOYEkx!9L4Y#hjfmW7{5-(Iw7`Ky%o$nD_AuAPnDUA4E}l!=h7S_WRGq{QN21!Ad%pGc4KXFALfl1( -z?6N+mu9{CuiXHSqy_$PARL9B|%-!({1vTOFdzlT>UGh_dP1Obe-CvSpppT3W3mk{8wA$WXMpW9SLmpji -zlzM57#=YSOlH27MVfHZTeWuh;7olw|NQYIek}u9jEmP+XtsSyt?sTt#R%SDYk}lZ* -z#D+SD=G>@I6hboy9lWJMW#RN>=Z`#&;aV)f4j}oD|2QUoDs0S{+*17&FV?q^2yY>5{bq3sgh_8zAh!^)9nYex}R?KS6**2oI?Yip%~Nwrj*Y - -diff --git a/themes/bgrt/throbber-0022.png b/themes/bgrt/throbber-0022.png -deleted file mode 100644 -index 4b57e234270c5b3810796a93de9e85e008f446ce..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1595 -zcmYL}e>~H99LK-PHRIB1$}-h-N-nmU!;Hd3BZ)>?UGihiuk43yE>ze?8g~+MlpmG4 -zx+L>+QuL)&Ty>~hcE@H%NAlx{Z5DE0caMAA=ka;JUysM@`F^}U@4r5xfCJ>!hGvEU -z0Ic@$_M||HSuTTBQ0FEm&q4xcdmrHffDv-J^nlAHD9CihN -zjBpx`%c0?-Vt6=qToQwoz>CK5qUj7e7sqACFqw4De~OKWqccxL2wv(#QK;o8&u|_c -zAmHtYI6FHW!5(90M{;l=Ip7=H<bSiGZ8&^!;q>;B13qQ%jjM74NWJ6KPLer8awaT$Eb4rqAFvCv1xP%ewIzTba8$*KcgnxgfC@8Kz&T(P~4q -z;A*kEhh&ecb>H|0-r_r?iUtYdg3>oI94=A6eQ|Fn>OYTOp^& -z#F{=I%qUh2i2PEV6-gc; -zskvU%FsXfeRL>(g_Mnvcvg)4sXxiRVcfp*boBK^Lax5^|=9e65$%swIq4-Vl#R*wc -zNtbV+zsFp8Z`st)c*VymJMw0UEiena$xF@XGM-`Y(VA{ -ziFH?ZF_m(SY0-WvR8J|F^}UziyO_f2KXjKGT2e -zs?P%~wMWhnT&C@tz+y(1bwxjQ&v&GHvRHziw|V#d!>4!ptW`g-;og=%MI1a1E}Bst -zcI(IqLN5FEGgE>2oo|N<2J1i;n1IoRsPx#drZsn`Z~PMAlJ60V&M!I!7bWNU_bJG+ -z4;5gm@$ZFDybk^yU>eb=NLLo~4Yjf=kC3Tu( -zA6)ed`EUWel{<2)h_SXaosyt6MiF6HK`Q8~GkrFo(&mIxyM%QrBI?s{`bkyxD|pB` -z!LOs~RlDG2`dtEhFz2mq_Vk1LdD!fX%0+yMUt!Qlt1-|nwr8Rh@h2vtDCcLypD*;k -z0T;oqKdlJnKh~h-7ZXWj1)0@S%@934B&wd2@tt~cJ?qA#sS>1H=@+{CosZ>XMG4X7 -pj+6Ucx<}|`XAc`QUQ3;qw$zWv#>e*6g3#{=_;?-gy!UmO;BO1~<);7u - -diff --git a/themes/bgrt/throbber-0023.png b/themes/bgrt/throbber-0023.png -deleted file mode 100644 -index b3dbeef0ed06455beaffa218655d8070cf2324d7..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1603 -zcmYL}doBm|NnwcRZPeW-J?vR*@C$Rb2?0KnL6w_rep#0oNfxIq!z;8Z#dz@#wKX_&Os -z^z;NOhQp>}l2f@D7M+*QyueMta8qdMG!BNtN@Xx;?EmyQg-&B6QUp&BP?XhfRA2&^ -z1~`LQ90rTUIJ?+lv3OTkyeoM3*O6XmX7BDySZX>A073k}*VzT!bf81b;Gb342@rI4 -zDT(PZg*?+;F95RG3BbQ{90Z-O4jU*TXubjEaRI636r`w%zV -z3WlSbpAvzebZ#%mMy{Z -z7Sb=UFwrh30BM&OA}C=^twxy@H$!5N1sEq+H -zT!NGsafT6Sb=rXf<$JbEL`uW$g#$yTaVVc5svG#x!H) -zCp0m3Duz>iTXpMazN^JExK8)lyOBJ^?>5H85jPT19$zs8%%U#r)xz(E_z)BB4b3!4 -zR_mCv&jVhVci5qL-%(;;U@YSBgCLZw>zQoHvLWn;;I%gRLNPbqcwC2HvSa&R$Df)+ -zhnyN&n7L$1N3Fr412*uF#Ld8!GD3H2nlMDE07k6|QP02W=CNQihnCAL=J7v0sYEV1 -z)I~L>32vv2;rF4I)K -zk!&*pDnpU{`FGTpUmtBeXKmiY>^2+-~(ajh9}F`veNqPA7|r1|c^W()JS1G^4 -zEz5q9TXVa~T+aLjR;Bk)=QQ7EJn_-_;fQIAlMd4(I|iz>J&QRm=q0SGvDB{1+g=zu -zdEic2N1z1$d@K>2>H40$zw47fje1DFY-Q^`MdUlKK1Bbpv#S9jamc#Ejr^F97B|tI -z=YHkpbvjQQtILWukz5`5vqr3QY8I}g)mI43mEXw -z?(H3CG+*U675_nPhRY~KNzQndXwo#-f1|uV>zEQq|_nw(S|l#M$1#*3TxEz -z36e+~RV5;~t<Ydlqt;ie?wH8Rqaa5!$ymVbd -w7Va}%9+gQkg;W)49{h64Q@D6+QnPa~JmKc`YyErcp~H99LK*gV~H-4qx^27b?k@6to%%DsmVwy9Hy~h8{7N{$()LWYGLG8bp1G4 -z#nB4+adIbVbr&fMQMwyrjOd(mU)|##_j!EY@7Lq;dcGg;&+D&G&LOh5&iXCu0RYe; -z5j`oOny-}>6zsf|lzC8Kam1rM0MLf7)jFWG%n&qP`TMARFJ>$qKruKhIx3pUVueSb -zc-#n76qApNi#@^OB=8w1K7-Dp^H97vCYw#?{-<`dSUUSSEwc{-t}aRin2s)b%@EKeVjYj91+oL1nco~%52Ox*9aS9la -z&i(&MJG28SV3`kMy)U~@M8wj0=KkTVI8Xr$7N1^ZxDx;%!z54l04gl67{jPItbaym -zSmUMBNVKv1aAPkFdCZu=_tU=?Lp19;>NfpC;tXCr6a${uhp)V~a -zI4`H|^M?Gr%}_!hHuU4&Vx_eI7n$T~%#o70pI_}KXRbD6pWX;h0uKDp3JH8T>}^K0 -zff<@@b9m=^0)n&II%@v{OYJ{<(<*!pr}Q=3nxq*!WHJBTU4e9##;cJ`6>17`9ra>1 -zUS~QnFB&oM;*vzCsh|J8YWghaDmwpt;q1%*By6sLOLp#3MN -z)4ibL;=0?Hev!y2t&>wl{f;lDC#}|EDYB%LN^iui2Di-As)UoTACE)G@`9J5r4WC` -zaLMi;KRXT_T@bcsZQ5=5z;aHH;c9)U8Ut9+|wnpfxw -zP1}^{nK}{Tc7G-IFucrX)D}9DG1F0e9z`hWYZL}I?_c;$r+@*cCfLO#flEKok4P>}FN(yvEXu -z5KfW8uRlA_bd!$hZRo*%JV(3ov^R3dc0OKduEY~ -z5$7Sp>x8*&AyCtG3f-!ppqJ;O=$%NG4AztfatP68N{hB_I1w7Iix#N5DoC@XF_avauVm!Ef22z)- -z{$8sk`&<&uI_8bll;Y3RIjn77+>+VT7iYTAn{PF*=)0o;=}?hRSAGgA(M^~LTRx5X -zT<|uu@Dx$(QGZfIVIqlR=a*Z`Q#C}gBu>=HBGaBqH@!T@ZZ$_iRVPM9+ -z^Hcc+N@FO+wS$v+L=eT{))r@YBpnFGTLoH{gj|rPb#CXAM_djW=iceS%^CjIRR-0quIY_p -zU?5S|lL%qe$0@jqdOnHV27xcaKjDy^<-$FSu;h#SIKj6?8#}ziGy~%Ohvcn?Zof3l -zoh{iB_>DzQnzoCH^+wpdU;lQoLoQt$Je6cBYqAfFG -z_4YNYs&Q((%c$YG&yJjgIHMMwXX-%}jK_*@F{K1A;C3-G6wQ#HhoA4lZjRE+3q#2^>ob -xnW{0GfYu~c=SS4;6s*o!KNBIY>@RcvTcZ%$p7KGe+64ZC0BIlDQ|u9z`433t&fow5 - -diff --git a/themes/bgrt/throbber-0025.png b/themes/bgrt/throbber-0025.png -deleted file mode 100644 -index 3905e00eeb09a3546eab2dec2158fa9bc5f280f4..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1604 -zcmYL}dsGs36vsiy0B0%Uqm1bmq`l;kHnoM1K%;zt6bZkrln|nmSLJL?-Hj|I$$3}BFOx}NLPmf`8BIs$)K)NW)~D)tx*E~gJH(?R$$3}7%hOn`vJ-OqTR4)B|7+(ci8SMsz0-Wu@mS -z9(E}B#v7oGQ|&_<@yEfg7Na%uiOSB-iwlumO{ClP_4T+Nc>L9ks&n%Cn!~x>oS0|% -z^0ib3ox44q;a`)gE|{-aEj%MU`A6e?Z^e~}Ja&V@Z+#j2YvRnK+S*+N+BFCGh?H>r -zHS1EhxxBsOO7-VO>e=g8cr@9=hnOEvva5FKEyWiz-{Gtkp5PD1069e|v>cri(#q5;ziiY58p?ksP -zu_V29EJ`-(anf+t+sSS{sG&t6V>-p -zGmBH4ce!bU!a5OPYtehVrrKx94c-)^bLCsLJb5)z@z+N+7if5>XMY<#uI#pc*SWG@ -z0`~~jhcyikE0|glM(K#Z2bbM3jxp!v-`Hk&kZ>#sVW&oos03a5H6to -zp`~-BM-`?bt%z&^YZaxH4BgK}wyum%C60$aSwBb^Qq5j^cr9`?^p$m5RBE%7n@*)v -znp5+Ni!SVf$&oxWd3lJ|*sRUcw!u9hx5(LnaM%B;L2slYXB{iASK=X`ucL1FRoSvcsM^y_=sOM?v#moSz?Av^`%uIs8f=J -zjsm^vhDPnYN?NT&Ef{%= -z@ps<PYq;ZF~D4IVE@+G>%VU|P~h%*?N? -zTaq|ppr$Qzkn;SuOz}0Km#f(htaP=)D^_3r$axYZ2a0BM`t{<+d&F~XQVR*Bk&Am^7d4XaWsbl~oT7)zZjixz?>dejRqAvxsS|r|qQq -ztvL=>_7)aooX>-^7G9L-I&j%Q5|j$SjF -wD~E2)ka~oIzC8+u<0Gd@SoVvtpxGs$Ch&UB0pY0y-8Tpz5q$~O9${(!0^C;FL;wH) - -diff --git a/themes/bgrt/throbber-0026.png b/themes/bgrt/throbber-0026.png -deleted file mode 100644 -index 4c02eb167941a3611d36f1b0cfab5086d77ad0ac..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1605 -zcmYL}eKga19LIl{Yh&g4DH6`&dT0-5hIAur6Qib7M%k>WZDt!|=3$~Jc0E-0dRlc{ -zNkTiggeB!6*F}mf<+ySdtHw*leqO*CtPYQuBamUyIprN~2N%ntP7kLb -z*enX-bQA}{q$SX!V>yusP9&91Wh2uywg=Uk{_Mr(5>D2h%6kVw}b*8#mRZ*WGzz~5J4g)5)~`nB_3 -zk;2p7^!6((RygoO;7Fvyr4ewa0_tr-B8AGJ0-Q)zG?`3gnL8p+G1;kydhaQ??j}E^ -zSdhy4|4BF!jSpJoD6r1=>;wvp$~Gs4)0qkdP!5>nt44MJ02;@8c?2DWB>mQYHuSJo -zR{{2xj%RiG`9Mzt%VT=Z=WWyAzAXoxV+UhzxOs49Mz3gSZ-BTA{ZMIIbEG~J!RZzb2ecD19+C%=b=4pH6}Fo6w_zp@pR -zg<&1-c5}k1lUqA;AAMNfB{o&Eo3xSk_`ZTB)!4}L_G^F>j+`65!Wl=uxd6ez3*!y! -z&!q@d-9>&@bw!#l&DCnmMWfVAB92UI@wcp)bh7Vi?QXe0r9aG&U)1X$O8>x28@s^~8W#GJLJZ(7xW9hML0){J)rD -zv@d8PplbIQ(+)?QMP*US*tdb4aY;PH)VP1gJJ0%LRx$O0RN#yTcpn>BA{ -z=ft;=RQC4O#>sl6P}7%clf49VFtfj9)FQ@OAgg6q5FS`IjHxwdj-kV%hCjiMBpS5d -zDa+j6n!g^eGg<&0hWNF+n^#UZfNMLeFoRzLZLZV!ya5%vTJqC2ry$mf=PNz|T)Z4t -z)W0)WsB~#`u3*%ytfCk4e8j`-j&xzRIJ-^HG$o`;(mmca^~p@B_+#Oc@2FR{VUC~b -z3(z=G-|jy2X2Xmr;rjh|!B{?W5iqF(E}^b{6_*%`aM>nfJr0>OYo)?CUS7^ET_}$) -zx;S1jsX`O#O@ZtqGEA$#l$$=ld@v)r%_pHD;$m^wN2s^fscs?3L1TGaNot0Z@q{dV -zb*i=$W^udfYt!}oi4q-O8mc;T50Sx=Tb#K)bSIuUd=lar)MFRpHki_!RQ)y=i_zBL -z<+H12M9hnixUu%p^3n7?1YPigNB-xdkOk>Ti2Jix9Zl9v_jIkf)*C9>Z=mP<#4)X! -z3F?nFEaSJ}WQim<+@ehKz#7i -z%Gb%y#@zNoE~`C|Y(G=CpTd7!A3`!~J~7yKp(1C8Bvin4%JdE_-Qa(PmTeCOx_*BQ -zpZCH25n7y1@WGurC^n&>Qc`!kAA4IUV1HBRM3!al-kJo0D_2Zoc4jfG1*)zV!5Ww4 -zR(G@PCeJ?Z)^wgtR<*Sdjt93Ss*#i{1bA3XLoO*JBVx$l`UYHXyrwMTEl&MB))-tC -z>-S{I)2i-qjky?9|^4S*FA2I)RZ_`h(WEkpwZiqXPtGcQguH21YkZ9q5 -zP1|+%wlRj$jkwq8XVGx?UZqf0=yUe)L!4=>pUZsF^pcygO!yq}ZfOI&;4(oWZPgp% -w_dN>G8A;-dz?^FSl8Pj#tYHI*=?RwN&~aO&a;Y)OHos;umu=0hFsa-Qr5+WzRJxpV -zO3{k-3gQ9)6uHzYK+y#wrRmIbr|>*jQ6PYch+%`6gDf_i#=vkn -z3=EUS!^B1_~RF`o_^vrup*}4owO1#M4-~rqa`0 -z@_tiV92)RT&{!-!r%SU@3H6ttKLd;g0bT?rhE4}LC|m4-SZcCCvU7C{pK05$jL?r~QfU3E7_hh#l)4at-srgS9j`%&nMZGj=zi!HKI8v?x% -z*5(n`c73y3MoPbOC(e4WN|-!vYs(yV;y#Nns;aE4^vTQ5x5`ek6t{e&3|5;`r!B=z -zFVD$}TjfTbk>%XA3yyQSIs0p$;*+B~Os<#G+dpm*iNMW414txw*q9N|wu<|td3Q}@ -zupH~!JRo8dic6XZkZX19flfohyDc}*xMVXoQ$m~bdMmznQoQ=8A)ceeYaQ<^oAeil -z8gv_))2*Au^@+TA0)p%l)$}J)`ZTP)2JRRKzc5;q(cq_Q*%RK{E4NixC!Cd!>(lR} -z#3rJ1HZg3b&y?L^YFG__S8eO%@QNoJ5|H0v7K`QgAi-9ZrL%<@ceV=QgnDD4I=@a` -zxU8CdkT$MAD5){bN;H-=WkSuCeY_HOc)Fw|J_UMtl?*6oy;9wg{OpgegO}R!%hy%x -z5HAFVrHlINOtZ8Hew!P9 -z&z@itHO3&*K>@`aq(sCwEMWHJn4$)m^|8-PPW8%i^|x9vGE+DR~pWP23BcEGPq|-c_u|Z@y@` -z0v-_e*i3LFXGTKsAX4^!iBC5uOe?7o>YVw~^4<_P>7vs_=vKd3NmuNZ@6kSR(Y1ZB -z!=U!f35ZXDP--3ybM6w)`3F5eYGlyR*hLkIy@A -zy~rN(*a6jhkahZA-Ur4uCxQC0lF#cc*XX)a88knue%XP}_Qpo4*j9aIWZcLUc#2^) -z?rXDt(?sZVerF_HO}L}#{Vr=db2X~_Jt$pneB|Zdd6HMRZcC(J;n$_@k1AO@yP5Mg -zaOVIIRs(D>4aQx5d$ -z(Fw>zpD)FJ)vQ)+t##GQ?q>)+joCg@-aGf@XHm3=Ncts&dDH8yDyt#!0;ynN&U?tD -zrf0XeSoeAFJN#gLDDeqXw)>t&|K++L`lgxXBMx76&V|xTRd%X!q0+dWW=^S&SWU}? -z`HW8TC)It6MsZdKg*A&O69myf+obla-gk}MZdGReBbOId?K5jmrb!o9RKsT0FnjuQ -z9RvuPr$G`VL=`QTIO0Tig=ys4>WQa2eTs)x>ZB!BL5KtAQ&rIZOnZ7{Q8)tDuYOlS -z@;K6_lCu%L`A)@H2KmR;6^u=2hrw#^D5TdX)7ZwoTxi*tOP%)_G$H}ek}4b%v=WBJ -z!IYNQ4#AccKKE7hMj{p_>mLtQABE;q%Gwqk4OC5D&PSZORzDr4LunacNpBED$7Td6 -zj^=O8>a64>s1*4L467ryg2yg;XRkBbjSazpYpB%a)C#xoy$N8E#oSWjkwf7!J2- -zu^-yA^O~uEM3&30)*`3Av!_?vLtmxcm>Ek|*>@L`y}fdU-QMuNcOEVyH_PLQA3|2i -zjJtY*-=ufj=claYce$4(D`46_u*_V@;JkD4K+93hd@()=D$m&+Y8&J@4~=&-?v6=lec?z2dlCF^(%e -zRssOvNG3%mfQno$dt312A3XRH6eyRJ!Uq5c#Bx~yCmPm(W_Ug^IsfBqHUmI2^EeE2 -zPBw=_rK9;gIyx&mAI)Wd$;sQF&qU`l85{;5&F5z4<}!HyX#kDQ$jzXMep>-XtyzwW -zrsgvM90rR=W3gylAQFoW4GIbk!fJGrd%+&qa!*n=hXG(Pq5p0izHQ^;BaqquGYXFi -zLL43!9xaOGP(Scgd05| -zM=bLMa6ks{|0e@5Az_I(CO{1TC;Lk}o54pWQaM~u0W1zLJicZV0IaZ(qa%`%p+(0v -zECUhNpXTjDs%$+9ixd;fNzNkoh$9nCZK)KE)LUDTdg0*gr?4l)xY?)iu!Ap?TH5`+ -zx4w*PVb;LPNty)O$c4l1;j*H)MRl)DBc*wng3JQ5s{8F&Z7aA2H5v_RpQqS=?lh~R -zfX+Ipy`%I%9O_={S!VK>{6hTxec>;6;7o2(J#{C|{U@ofLzSq)h(5LGAQvGP%22=FnvrO5$yR5)HqAPZ`lHm%bR&NT -zNZPj)@eQg2h1-Lm?+fX)4OXu|a8`Z;pGDY_j-0=5d%kRSoNhi*dy~Dd*o`-~StG+;E5!ZFqv1cbfv$$hU#+qE9K{yMQxCI=0}=r -z{o#imeXrF=6{U-Pi#v=&HvCVb<A8zxLV9JFa@{xEt2FcDZ4W|!7j%}-jr0ORh}*N9X2||i9^#lG8w+f< -z9rf^@X*;~Ue*C#Cn_x{@UDNnL6|s8?+oP8%nlC0>`v!JetQWlX3y*f6hv(hz=$d|% -zVy^e7P`;sbCJNYvX@5k%+FiVXX2-rlvx~e&FuujS*q-ucv(xQ!24f(d2#ZD*R4%&{A-9}(RuqvB-rJJpJ90~?>3J;y5dvfv@_ -zYBaEcEeyF(4^?P4CS5eeR0qmBr9Kmx4I$z|acyLbug}~F@mpj>(K=ls!yh57wZiP|w`Zr7a)$J)EEG(nL*lo-P^*R@YZIygM<{*v2gw -zCQxe`2+9{)@=YPs5c -zzJzk>UGT7h)t!1K%&(y*BEZ^BdcDH9LT~LBYd7BbsG!8M1bMUex%pb%2HH|JwGfX* -zR!#aP@I%-yLOa*7)OS=Yv?W;SIF&Fw?^jE2HQziShXh>*d=2gVezj?E+WEWiXG`Jj -z9ps5dt=!*~?b>_yl%V-m;GPW+F`C~`_ORfp_D{{R30 - -diff --git a/themes/bgrt/throbber-0029.png b/themes/bgrt/throbber-0029.png -deleted file mode 100644 -index d9931e1ecbf2708841134a846f9d36d9cdbd20f8..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 1588 -zcmYL}eKga19LIm!qOFifi;-usn{8y~p-HWVgCuIM(q{c)?8!Dgka_A9NuAQ8sPu5v -zwXhJ$*j(za5*4kaEUARrMC^K4_ovQ1_j|sd&-vP`U&tKoX@Gy!Y(gFzpfMHM| -zIRa9fxmutPbwO(CI3x&OV6*@L7MjkL9#B+_f=qwm2C8r)lLZ3U1TGuICNkM -zW8FP$@OU3jPajXbylrp?G_!baCX&ep0UXZf*LC;qbbHK)*n*#{@aYhA_ZH^b8$+JS -zoVOmb_;lcxxZ!Z_`N{=t5Hy>ETNoe*1cV8EZd@G5xADO3<_R(*9^Hkw=^T%M76keK -zKk0@e1Vv5@A-v>g_I?Hn6xeK`vw4sLcz2@c36 -zd~XgG-|T7q6#YuQcTZFC9(me}p5csJ(hl!2=m_rJyC*owU)fNc_ICQFvaZ9l?``E| -zUX##=QrhdAdM2*d=?Ap6RPs=h -zv#oPc-ubJ8$irvl&sDDVfxSKlY{mlfLTytdE|ZZYDV|R>%2zpR9JQ8#du2*hjcBys -zfEVXo^c~v(bc+iQ-U!nHjD~{#P~3KUU#_>q$ik^>RSmHdjj9LdsQ;J<)!AdTWEQvK -zy~p_VU=K8_b8mGnr~LUQgH4oo!bbSpdDTvo9pfIC;!PRd$^4PnOP07k$)1V=$BN_2 -zx8}UhS5a{J+h?OR`ou2h;M=?rri%CtNklfjC`DNIDZMxP&cYvGX%3GC$}m;w*Jyo< -zNauUA&ArsFM2843NjLluV&76~LP(g-TEjMTtjD6QLnT5Mcf!@CnzB?_K~O--s>4@mU -zm)(jZn8{OrbiGTGB${(ZLDj^}##db@byqSLAE%=-YD0vG?Vp{)a8q_{X?l%eeo@(1 -zYmu3jFhS__o~{>uRmiZiI~%UUC-|%(ySi1ZtNgf(haWifg^ScQdFCExV>+r3K?wTj -zd!s*j(4x;vIw5Lu+av&^bwwByCfkm*;9NpR4yzwZmB5jO-LM -zIEKrO7ex0`K6O1j-=teMKK8&M{V7P|063?CgISmW@_U9++_7-1|5SEO|Rmey;+UOCm~rawU07jqNUQUUNHqj_0AzquXC4W -z_I}RL(;pt2x9@@z>mvXr8fvL3gi0O!cZ&{n_tmg$rdvEe_4oHxMi=2d2gp7ce`D** -znW3Dj+M<@w%hf^2NWZuBlCUq*X-uL~rHs1YWc2xi?vo{L-)wnH6lA3wuR6Ul14c4% -zBAmyVm#_U{R-Gm8ed(FVqBHWb;EA7L6P3k^-(rjU}V}$Z3 -z;z_1J<-oH`G5=n{w&^psOtJrwJ)NnP=o12FH^dJORAM@bZpGDvlB~it^DpWd=YTYO -zb11M*1LHmGkaXEe%wd%zWY}ggyO?cmwd4{fVX4$oN$DJP -zA<127>xn3)q%_V?=Q+>$KHtyh{XFm2=XrlWe|@v};=MH0*Q)~npo#PL -z@CVgwwbWF=&N*`AGbk{YcQ6M4;5w_N1YEkZ4m4f3o~b|>4gWE1sc4>kt>DR`K|#@c>8DY^oqsef)bOCFi8b-c)+2q -z>zvfSGOr`0AM0rJnsJS0v8>>=wceFI`&03$t0wKWm871)i8hVDLxL+brSCgma3=e8 -zg)Wx;4uMBM?Y(TCpc%SxQIn-N068rjl&c5ba~~q#-Zc9qezw^#+r)1!cxK}w{6cHx(+!rX7tyCFc&K(}wK-X_um -zbkfH>)sY2%0q#k-rQBV$>Nc)kCLUCV8x}?tn4e-Qo?Lz7B+HR!|Dogdm(?vlWps?Xb22Zys5>eJ$UBR_x{Ee^9D`$*rsQ4L*DoUo^&N -zl8b~Yd?Qy#b=Qvk_S^ZNT4Z(ex_GabSAvz6+26&J1J0JPc&hmR2R&UfI$x$|rro+E -zH;?4$Kd^#*M$Yn1YGK#n5!_OhkWQzw=;AFHXBkKq33@DZ^oCFJ8i<#SdNlaPHU~tm9;4clFB7nQKE(bBfZS?5;d&MvpbwawC2K -zv1dQx>&G{>+a#i2?IaaCB2(>?hYM^U0b#25&8B@95>rE9hVaZ!C@KGlasl%t0{e7* -zgIker4R0G6sXE-(x2b{Zr+O6lRViI*Q{*}~O09b;$*28< -z<&M2R-Zc|W=NA>bJ`{hMTOszpKa@ -X`%H>)eQ8Yx_}u|GPrOH^dqny_<-gJq - --- -2.20.1 - -From a7ab82171f3a83cf709b91542d1299362c47474f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 9 Jan 2019 14:52:33 +0100 -Subject: [PATCH 42/82] themes: spinner: Add watermark alignment settings - -Add watermark alignment settings, so that distros can simply drop -a watermark.png into the theme dir from another package and then have it -show up in the right place. - -Signed-off-by: Hans de Goede ---- - themes/spinner/spinner.plymouth.in | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/themes/spinner/spinner.plymouth.in b/themes/spinner/spinner.plymouth.in -index bbd42dc..6ba3f42 100644 ---- a/themes/spinner/spinner.plymouth.in -+++ b/themes/spinner/spinner.plymouth.in -@@ -7,6 +7,8 @@ ModuleName=two-step - ImageDir=@PLYMOUTH_THEME_PATH@/spinner - HorizontalAlignment=.5 - VerticalAlignment=.75 -+WatermarkHorizontalAlignment=.5 -+WatermarkVerticalAlignment=.96 - Transition=none - TransitionDuration=0.0 - BackgroundStartColor=0x202020 --- -2.20.1 - -From 203fe586bb698a21a90adc271f8fd2ed17905cf9 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 19 Dec 2018 09:37:16 +0100 -Subject: [PATCH 43/82] themes: Update spinner and bgrt diskcrypt dialog - -Update the spinner and bgrt themses diskcrypt dialog to match the dialog -from the "Disk decrypt" mockup from: - -https://wiki.gnome.org/Design/OS/BootProgress - -Signed-off-by: Hans de Goede ---- - themes/spinner/Makefile.am | 1 - - themes/spinner/box.png | Bin 870 -> 0 bytes - themes/spinner/bullet.png | Bin 131 -> 1016 bytes - themes/spinner/entry.png | Bin 1431 -> 407 bytes - themes/spinner/lock.png | Bin 329 -> 619 bytes - 5 files changed, 1 deletion(-) - delete mode 100644 themes/spinner/box.png - -diff --git a/themes/spinner/Makefile.am b/themes/spinner/Makefile.am -index 2a008cb..6c3807f 100644 ---- a/themes/spinner/Makefile.am -+++ b/themes/spinner/Makefile.am -@@ -3,7 +3,6 @@ nodist_theme_DATA = spinner.plymouth - - dist_theme_DATA = \ - background-tile.png \ -- box.png \ - bullet.png \ - entry.png \ - lock.png \ -diff --git a/themes/spinner/box.png b/themes/spinner/box.png -deleted file mode 100644 -index 54876e68097e45b215f6f4c4ab2f1c06c5bd1e4e..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 870 -zcmeAS@N?(olHy`uVBq!ia0y~yU{nIK{W#cwWXpePWgsP4;u=vBoS#-wo>-L1;Fyx1 -zl&avFo0y&&l$w}QS$HzlhJk^Z!_&nvq~g|_Tl@W`(W@UmTf#;@V6`wU#Lhm4Z}sF0SlKS+*^aA-R3`>*{yeueW-)S*X4G@YAFJoyCWu -z!{O)Wo_xLQ+`LKbFZ(4ABrTh`(q3?m&E9!O)NP+RvD74Xyi)P_S~F#t;;ilfL3MHE -z1W&=NWnIR?iwip@ariP_*|lfSpSt|~_sjj3f8KO8Ywhm&2b4~2+9S``ULO}9zu(%z -z;>Y5hQ&=)(7Mr-7-7@Rt_uuQw%gS~={Np^M{fA?Nt4VAm@8-(l;>)-1-mMj$9dwNE -zs;kh#k7^}_g&z-p`}S>h!9D(Bb*BT<^;|cq{#~Z~{Q2|yM=gBg{-4?NKQi;#zkmOx -zZ{4~z@lFfFw9H%si9HeV@&8Td*dJTj{p0k@#gWS|-{d(y@i(hYb7IDsusa>g;+xL4 -zYv^}9authLV$_Kgm7aXQU1M*+4*vt;2AAiV*!&CU_z{&>mCVfaPyDrDg8-uwi-HS~ -z;t*7DVQ^yMpuf;Xm%BcZ)8tvXD%2`NL!T}&&+K@Wvg%+$fplN)ckT+d)#c^o^`>h* -zZwD{A9bmkC`SSeNyZ$ZHoL~R;T$Q`K`}^lgA+5SAv%;3@@F(>|6^2dHd{hy_YaB^>EX>4U6ba`-PAZ2)IW&i+q+TE9Ja^yG& -zhX3mna|8oIpyS9Ns@fau@%NRi*xj9;WIFC2TVqu$8Dqda2zSEv?>{yC!a+Hu5Y;?k -zG2w_gW-eIxv>*FSQ|#wkS-ZZIhvNoAB$#EtOxw^ekn8z?#eX56@8!XkVaJD|56{D( -zG|!C1(DPwPc$d?-4tYFR;!Wt|uP)qg>%8B3ypD!stO|R=fj1$UaQ5a!5P`T9oVlMf -zH_3$c)a4@nJa^$(J|yp0J>+gGLoWBJ2vZsg=^;l$PWn7|Jwvw<(dqf_Mz+Jn=iJrR -zYu)y@D={HcDSwQY`goPTf+Erxr9YN1no-5t`p6iLS6o1B1x`rk2di -zEn9K%=zr?T&E2z?%vsRFG^cDKd(OEOI4v+;@N|JjDKpP9$64nz+w60m%YyP*;-X7h -zZ1E*8W#v^?Z2vW_7FJ*LS~l8HN?Y7?OPg)J<*iiIT9q2B)>N%}&9xlV2Gx6N^g!-w -zYBZ=dVzKMlNeyDN4-?edi8f{+#*skW8UYkEH-Bc6Q;gimHD*(0Yzk#iBW-Y2YQ#V= -zZp2#YV0V)Hl3URD5;y)GxzNzPgIs9n2D#7No={s$|Ds3-)OKOZ=_D164GNnV_R_vd -zKc2%?1OGEabw08Z-Vn@lL)Bl2?92?!>7r -z1B3g2Gemdm4(CTfv8V@mPx#JxN4CR2b8(&M^*vAQS}AC*IFO3hpl< -zCLRK8)L8tIDJQeZGLsDl8ulot=omO(nSQ~FCGa2lSzajfp5LiP2(p^?!a4u|002ov -JPDHLkV1lW|C*J@7 - -diff --git a/themes/spinner/entry.png b/themes/spinner/entry.png -index 65810dea3ff2a03f620f13cdb9f680aa116c033d..e86c21594d0bd49dc0273f37200d7e3b9185d26a 100644 -GIT binary patch -delta 391 -zcmbQvJ)K#xGr-TCmrII^fq{Y7)59eQNM8eDc@8!pIh(~eX!0s%nR?#qKbCYGe8D3oWGWGJ|M`UZqI -z@`(c#{r7Zn45_&F_WDMz!vPX)5C6BMZMwAUs^Sgb!gY@pRFuc{FDQSg#47$aNoJ|< -z!dNZOl2^~Bl~m93uK)4islEE$yZ8UGUGTiTWn=1FF -z{*z7r-8^-j7nh%u2&MiMZGN<716xV$uhdAMcK3~U^OFBr?U$S~e`)A~#oKZhuUfUe -hbZgy;*T0_f|0uQj`b1v+J}@vCJYD@<);T3K0RU@qq@(}< - -delta 1422 -zcmV;91#$Y91D6YbiBL{Q4GJ0x0000DNk~Le0002e0000U2nGNE09ms@jQ{`xeR@<_ -zbW&k=AaHVTW@&6?Aar?fWgumEX=VTbc-pO&U6LCs429oW#a%*6LJ};8->U2&%fAQA -z*s(J+HOU0Z-B=(A^a5Y>}qvkN8Wn7N>Tk*-_0z3Gbkxl8BMN6+#= -z<8&}Yg16lM+L2R%TptP^kGww1gSTTR9Yb_Cyo)T)t9{0$V@UWWr}IDLqgUcD%Q-)8 -z$Lulw`ae2?(G~WD0}mm&@U-PcFat?a@FYB0;214MTaTRIk6pMoUxLT+{n%aQjF9J0 -zgv-tVdx_D1k(0j2dH)l_Cj@#-=G(^h6S=3tycMAh6LMdC# -zP#r%-+jq^V2}^7s)(=EW;(FpWiS -zJuwOhXr7qrj_Y|esldc|-cllNl)A%btkWRTsF -zE<<9I(dEoegg7SfDVRA+=w{=Dp7mu!P?w&k*Ns?mHWXV%XIhD*=aD-{L>>;O| -zb186IV7frNU_>dEtJGMvTJ@T0uB9P;T5Q^^c}p#~(z#2=_V3m`^we`Ng9cJ*#G%86 -zk2LZq6S+2J#;Mb$&ouKacWQ^~Gc|f4_c=9xI@A`ixX1Z}8pQ5zCTML}UCcm?BZ0Ut -z0!V0H%&tT+@*=mGT^WbgI{Yz9U2r-rVjvg?u}-?PdyxB-ThRDN-1sAMVWImMewE`Vx4^=DpJt43CGro;b5AA2#%S5 -zi?o(~)?r2aIw2c8r1~aI_i@=xsp7W#SocXad_(t1HGD(&Ni}>!_enK;L-$EFd_|Xv -zDg^jI@w~o!%%nGDnwZ8(S7TilWOZ(qdW8syB?UJ}s@AE(VcF);XT4-g+w})s;gh~U -z>I#3S_R@t-5^xtwS%T6{xWl5rN@9@=uUoliKY^ok@@KqbGcx&jS -zk)z@(0e9l;_^b>60|^X|qww2t`jH_Ve=Z{c04^f|c%?sf00007bV*G`2jUAC4mu9y -z$&hLQ00EmxL_t(|+U?xUO2a@D#qo0|6R8UYan<*K96|6A)Jjcltsv5me2j~vlh}=! -zbo>7;vkV;W+`};T^!O0w^SN&C?v-V^WCHM?AeH4&t5u=paw&U#c@F++Cg*dRe~}_! -zbe2L;U6rz?lRo9XjNI=3+QtmU|T+iga_j1n3>P8GCU_6uL%qh!rdFwuy -z89@S4!{kgRlh+_b>_|ZBRBAKhr9MPv#*PG}1j$S?^%Kc;K_W@O__pD6iu1B|JjIDb -zkbrSHGU+sX20Ic#0@C)Q!9=n)e@XFpN0NZ?Ts+!Iec8}ec>og1hQ9vRpXLrgLXcu> -zr}kLq2ojJOq*ylCS=m64fboUHu>K}Uzy&)}Z0$slfJ=fD$CHU2378b5L2DNmCvpU& -zl?|uX?)>5^fbn%hf3!16fgK5$D&DmV3SGJg5-=%9rvb%|1We=j1pq+;R0tA4kN`+( -zAByyK_b?}Ny0_y}JiBL{Q4GJ0x0000DNk~Le0000U0000V2nGNE0Pt*m2azEh9u3z3 -z01ejxLMWSf00007bV*G`2jUD92p1aW_9+dKTPJ@3(@8`@R7l6|mQ7C+K^Vt>&uoXq -zq=j~~(zSRa2v@mCgMA?yfdu7ZYWxI#5EH(FAz~zc1mRm?@S?*37ojBy+X%TmN)GJb75vHobi-)^;Ow^{^25D)ln -zVJUwQ5o$+Yh|>~N*(p99R#8gD3)WgQG($urUNC@CD*hV-h{!*7<3BOmwwXw!066n~ -zeBU1}Scy=nJf>JIqSQ}$4i4V4v-5^;{r+gci}^*$U^?!{cU+x@XN7G5&0$U;AL -zI-RCaSR$9Z0l@NdnUl`R`6iYHz~tlv8ygSV-+xD=(ToOMDiv5;UAY+N^LKvnNhMRP -zt*+pC9$Q;4qj_qrb$I=hM5po1>FE$&=e^wXvQY+?g!WNlMF+0e>!FX>Y&J)jPJe9q -zLy{*?E5XMPhYb3IO9DorLbgs51Q=tYNhf0rCc*-8WtHncI6iQ%*Fz_C{NUPA4KJ6C -z9W0h*$^8fSOfs3|^z`h~{EG|>Xkg%8cV9S8=9x%5vVRBjzI?CiB_rbi0000 -Date: Tue, 15 Jan 2019 09:48:30 +0100 -Subject: [PATCH 44/82] ply-array: Add ply_array_contains_uint32_element - function - -Add a new ply_array_contains_uint32_element which checks if the queried -ply-array contains an element with the passed in uint32_t value. - -Signed-off-by: Hans de Goede ---- - src/libply/ply-array.c | 18 ++++++++++++++++++ - src/libply/ply-array.h | 3 +++ - 2 files changed, 21 insertions(+) - -diff --git a/src/libply/ply-array.c b/src/libply/ply-array.c -index 7d23953..26532cf 100644 ---- a/src/libply/ply-array.c -+++ b/src/libply/ply-array.c -@@ -169,4 +169,22 @@ ply_array_steal_uint32_elements (ply_array_t *array) - return data; - } - -+bool -+ply_array_contains_uint32_element (ply_array_t *array, const uint32_t element) -+{ -+ uint32_t const *elements; -+ int i, size; -+ -+ assert (array->element_type == PLY_ARRAY_ELEMENT_TYPE_UINT32); -+ -+ elements = (uint32_t const *) ply_buffer_get_bytes (array->buffer); -+ size = (ply_buffer_get_size (array->buffer) / sizeof(const uint32_t)) - 1; -+ -+ for (i = 0; i < size; i++) -+ if (elements[i] == element) -+ return true; -+ -+ return false; -+} -+ - /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply/ply-array.h b/src/libply/ply-array.h -index 777485c..3d8e9c4 100644 ---- a/src/libply/ply-array.h -+++ b/src/libply/ply-array.h -@@ -23,6 +23,7 @@ - #define PLY_ARRAY_H - - #include -+#include - - typedef struct _ply_array ply_array_t; - typedef enum _ply_array_element_type ply_array_element_type_t; -@@ -46,6 +47,8 @@ uint32_t const *ply_array_get_uint32_elements (ply_array_t *array); - void **ply_array_steal_pointer_elements (ply_array_t *array); - - uint32_t *ply_array_steal_uint32_elements (ply_array_t *array); -+bool ply_array_contains_uint32_element (ply_array_t *array, -+ const uint32_t element); - #endif - - #endif /* PLY_ARRAY_H */ --- -2.20.1 - -From 88f1b1dc0e7c51d7065403783ab1057b0f3ec31d Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 16 Jan 2019 09:21:59 +0100 -Subject: [PATCH 45/82] ply-renderer: Add ply_renderer_handle_change_event - function - -This function can be called to notify the renderer of udev change-events. - -This is a preparation patch for adding support for hotplugging -monitors while plymouth is running. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-renderer-plugin.h | 1 + - src/libply-splash-core/ply-renderer.c | 9 +++++++++ - src/libply-splash-core/ply-renderer.h | 2 ++ - 3 files changed, 12 insertions(+) - -diff --git a/src/libply-splash-core/ply-renderer-plugin.h b/src/libply-splash-core/ply-renderer-plugin.h -index db18d19..6b6ff25 100644 ---- a/src/libply-splash-core/ply-renderer-plugin.h -+++ b/src/libply-splash-core/ply-renderer-plugin.h -@@ -43,6 +43,7 @@ typedef struct - bool (*open_device)(ply_renderer_backend_t *backend); - void (*close_device)(ply_renderer_backend_t *backend); - bool (*query_device)(ply_renderer_backend_t *backend); -+ bool (*handle_change_event)(ply_renderer_backend_t *backend); - bool (*map_to_device)(ply_renderer_backend_t *backend); - void (*unmap_from_device)(ply_renderer_backend_t *backend); - void (*activate)(ply_renderer_backend_t *backend); -diff --git a/src/libply-splash-core/ply-renderer.c b/src/libply-splash-core/ply-renderer.c -index 5e83627..e0a0784 100644 ---- a/src/libply-splash-core/ply-renderer.c -+++ b/src/libply-splash-core/ply-renderer.c -@@ -297,6 +297,15 @@ ply_renderer_close (ply_renderer_t *renderer) - renderer->is_active = false; - } - -+bool -+ply_renderer_handle_change_event (ply_renderer_t *renderer) -+{ -+ if (renderer->plugin_interface->handle_change_event) -+ return renderer->plugin_interface->handle_change_event (renderer->backend); -+ -+ return false; -+} -+ - void - ply_renderer_activate (ply_renderer_t *renderer) - { -diff --git a/src/libply-splash-core/ply-renderer.h b/src/libply-splash-core/ply-renderer.h -index c0e0ed5..820cdb6 100644 ---- a/src/libply-splash-core/ply-renderer.h -+++ b/src/libply-splash-core/ply-renderer.h -@@ -55,6 +55,8 @@ ply_renderer_t *ply_renderer_new (ply_renderer_type_t renderer_type, - void ply_renderer_free (ply_renderer_t *renderer); - bool ply_renderer_open (ply_renderer_t *renderer); - void ply_renderer_close (ply_renderer_t *renderer); -+/* Returns true when the heads have changed as a result of the change event */ -+bool ply_renderer_handle_change_event (ply_renderer_t *renderer); - void ply_renderer_activate (ply_renderer_t *renderer); - void ply_renderer_deactivate (ply_renderer_t *renderer); - bool ply_renderer_is_active (ply_renderer_t *renderer); --- -2.20.1 - -From 80acc33ab37b73feb6092d477f5198e4f57dd649 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 14 Jan 2019 17:36:22 +0100 -Subject: [PATCH 46/82] drm: Refactor ply_renderer_head_add_connector and - ply_renderer_head_new - -Both these function take a bunch of info coming from the ply_output_t -struct and with upcoming changes they are going to be using even more -ply_output_t fields. Instead of passing all these fields one by one, -simply directly pass a pointer to ply_output_t. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 56 ++++++++++++++---------------- - 1 file changed, 26 insertions(+), 30 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 20543ea..afc8d65 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -472,33 +472,29 @@ ply_renderer_connector_get_rotation_and_tiled (ply_renderer_backend_t *back - - static bool - ply_renderer_head_add_connector (ply_renderer_head_t *head, -- drmModeConnector *connector, -- drmModeModeInfo *mode) -+ ply_output_t *output) - { -- if (mode->hdisplay != head->area.width || mode->vdisplay != head->area.height) { -+ if (output->mode->hdisplay != head->area.width || output->mode->vdisplay != head->area.height) { - ply_trace ("Tried to add connector with resolution %dx%d to %dx%d head", -- (int) mode->hdisplay, (int) mode->vdisplay, -+ (int) output->mode->hdisplay, (int) output->mode->vdisplay, - (int) head->area.width, (int) head->area.height); - return false; - } else { - ply_trace ("Adding connector with id %d to %dx%d head", -- (int) connector->connector_id, -+ (int) output->connector->connector_id, - (int) head->area.width, (int) head->area.height); - } - -- ply_array_add_uint32_element (head->connector_ids, connector->connector_id); -+ ply_array_add_uint32_element (head->connector_ids, output->connector->connector_id); - - return true; - } - - static ply_renderer_head_t * - ply_renderer_head_new (ply_renderer_backend_t *backend, -- drmModeConnector *connector, -- drmModeModeInfo *mode, -- uint32_t controller_id, -+ ply_output_t *output, - uint32_t console_buffer_id, -- int gamma_size, -- ply_pixel_buffer_rotation_t rotation) -+ int gamma_size) - { - ply_renderer_head_t *head; - int i, step; -@@ -507,16 +503,16 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - - head->backend = backend; - head->connector_ids = ply_array_new (PLY_ARRAY_ELEMENT_TYPE_UINT32); -- head->controller_id = controller_id; -+ head->controller_id = output->controller_id; - head->console_buffer_id = console_buffer_id; - -- head->connector0 = connector; -- head->connector0_mode = mode; -+ head->connector0 = output->connector; -+ head->connector0_mode = output->mode; - - head->area.x = 0; - head->area.y = 0; -- head->area.width = mode->hdisplay; -- head->area.height = mode->vdisplay; -+ head->area.width = output->mode->hdisplay; -+ head->area.height = output->mode->vdisplay; - - if (gamma_size) { - head->gamma_size = gamma_size; -@@ -530,26 +526,26 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - } - } - -- ply_renderer_head_add_connector (head, connector, mode); -+ ply_renderer_head_add_connector (head, output); - assert (ply_array_get_size (head->connector_ids) > 0); - -- head->pixel_buffer = ply_pixel_buffer_new_with_device_rotation (head->area.width, head->area.height, rotation); -+ head->pixel_buffer = ply_pixel_buffer_new_with_device_rotation (head->area.width, head->area.height, output->rotation); - ply_pixel_buffer_set_device_scale (head->pixel_buffer, - ply_get_device_scale (head->area.width, - head->area.height, -- connector->mmWidth, -- connector->mmHeight)); -+ output->connector->mmWidth, -+ output->connector->mmHeight)); - - ply_trace ("Creating %ldx%ld renderer head", head->area.width, head->area.height); - ply_pixel_buffer_fill_with_color (head->pixel_buffer, NULL, - 0.0, 0.0, 0.0, 1.0); - -- if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS || -- connector->connector_type == DRM_MODE_CONNECTOR_eDP || -- connector->connector_type == DRM_MODE_CONNECTOR_DSI) { -- backend->panel_width = mode->hdisplay; -- backend->panel_height = mode->vdisplay; -- backend->panel_rotation = rotation; -+ if (output->connector->connector_type == DRM_MODE_CONNECTOR_LVDS || -+ output->connector->connector_type == DRM_MODE_CONNECTOR_eDP || -+ output->connector->connector_type == DRM_MODE_CONNECTOR_DSI) { -+ backend->panel_width = output->mode->hdisplay; -+ backend->panel_height = output->mode->vdisplay; -+ backend->panel_rotation = output->rotation; - backend->panel_scale = ply_pixel_buffer_get_device_scale (head->pixel_buffer); - } - -@@ -1323,9 +1319,9 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - (void *) (intptr_t) controller_id); - - if (head == NULL) { -- head = ply_renderer_head_new (backend, connector, outputs[i].mode, -- controller_id, console_buffer_id, -- gamma_size, outputs[i].rotation); -+ head = ply_renderer_head_new (backend, &outputs[i], -+ console_buffer_id, -+ gamma_size); - - ply_list_append_data (backend->heads, head); - -@@ -1333,7 +1329,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - (void *) (intptr_t) controller_id, - head); - } else { -- if (!ply_renderer_head_add_connector (head, connector, outputs[i].mode)) -+ if (!ply_renderer_head_add_connector (head, &outputs[i])) - ply_trace ("couldn't connect monitor to existing head"); - - drmModeFreeConnector (connector); --- -2.20.1 - -From 9b5d4df9f92909aa4c53d98f02c9343eb4ce97c7 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 15 Jan 2019 07:31:32 +0100 -Subject: [PATCH 47/82] drm: Stop keeing a drmModeConnector instance around - -Before this commit we were storing a pointer to the drmModeConnector -in struct _ply_renderer_head, solely so that we can free it when -destroying the head. This was necessary because we also stored a pointer -to the mode we picked, which comes from insided the drmModeConnector. - -The drmModeModeInfo struct has no pointers, so we can simply store a copy -of it instead of a pointer, which removes the need to keep the -drmModeConnector around after probing the connectors. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 41 ++++++++++++++---------------- - 1 file changed, 19 insertions(+), 22 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index afc8d65..348f880 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -77,8 +77,7 @@ struct _ply_renderer_head - unsigned long row_stride; - - ply_array_t *connector_ids; -- drmModeConnector *connector0; -- drmModeModeInfo *connector0_mode; -+ drmModeModeInfo connector0_mode; - - uint32_t controller_id; - uint32_t console_buffer_id; -@@ -118,7 +117,7 @@ typedef struct - typedef struct - { - drmModeConnector *connector; -- drmModeModeInfo *mode; -+ drmModeModeInfo mode; - uint32_t controller_id; - uint32_t possible_controllers; - ply_pixel_buffer_rotation_t rotation; -@@ -474,9 +473,9 @@ static bool - ply_renderer_head_add_connector (ply_renderer_head_t *head, - ply_output_t *output) - { -- if (output->mode->hdisplay != head->area.width || output->mode->vdisplay != head->area.height) { -+ if (output->mode.hdisplay != head->area.width || output->mode.vdisplay != head->area.height) { - ply_trace ("Tried to add connector with resolution %dx%d to %dx%d head", -- (int) output->mode->hdisplay, (int) output->mode->vdisplay, -+ (int) output->mode.hdisplay, (int) output->mode.vdisplay, - (int) head->area.width, (int) head->area.height); - return false; - } else { -@@ -505,14 +504,12 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - head->connector_ids = ply_array_new (PLY_ARRAY_ELEMENT_TYPE_UINT32); - head->controller_id = output->controller_id; - head->console_buffer_id = console_buffer_id; -- -- head->connector0 = output->connector; - head->connector0_mode = output->mode; - - head->area.x = 0; - head->area.y = 0; -- head->area.width = output->mode->hdisplay; -- head->area.height = output->mode->vdisplay; -+ head->area.width = output->mode.hdisplay; -+ head->area.height = output->mode.vdisplay; - - if (gamma_size) { - head->gamma_size = gamma_size; -@@ -543,8 +540,8 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - if (output->connector->connector_type == DRM_MODE_CONNECTOR_LVDS || - output->connector->connector_type == DRM_MODE_CONNECTOR_eDP || - output->connector->connector_type == DRM_MODE_CONNECTOR_DSI) { -- backend->panel_width = output->mode->hdisplay; -- backend->panel_height = output->mode->vdisplay; -+ backend->panel_width = output->mode.hdisplay; -+ backend->panel_height = output->mode.vdisplay; - backend->panel_rotation = output->rotation; - backend->panel_scale = ply_pixel_buffer_get_device_scale (head->pixel_buffer); - } -@@ -558,7 +555,6 @@ ply_renderer_head_free (ply_renderer_head_t *head) - ply_trace ("freeing %ldx%ld renderer head", head->area.width, head->area.height); - ply_pixel_buffer_free (head->pixel_buffer); - -- drmModeFreeConnector (head->connector0); - ply_array_free (head->connector_ids); - free (head->gamma); - free (head); -@@ -648,7 +644,7 @@ ply_renderer_head_set_scan_out_buffer (ply_renderer_backend_t *backend, - ply_renderer_head_t *head, - uint32_t buffer_id) - { -- drmModeModeInfo *mode = head->connector0_mode; -+ drmModeModeInfo *mode = &head->connector0_mode; - uint32_t *connector_ids; - int number_of_connectors; - -@@ -1211,6 +1207,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - */ - found = 0; - for (i = 0; i < backend->resources->count_connectors; i++) { -+ drmModeModeInfo *mode = NULL; - drmModeConnector *connector; - - connector = drmModeGetConnector (backend->device_fd, -@@ -1234,17 +1231,18 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - ply_renderer_connector_get_rotation_and_tiled (backend, &outputs[found]); - - if (!outputs[found].tiled && backend->use_preferred_mode) -- outputs[found].mode = get_preferred_mode (connector); -+ mode = get_preferred_mode (connector); - -- if (!outputs[found].mode && outputs[found].controller_id) -- outputs[found].mode = get_active_mode (backend, &outputs[found]); -+ if (!mode && outputs[found].controller_id) -+ mode = get_active_mode (backend, &outputs[found]); - - /* If we couldn't find the current active mode, fall back to the first available. - */ -- if (!outputs[found].mode) { -+ if (!mode) { - ply_trace ("falling back to first available mode"); -- outputs[found].mode = &connector->modes[0]; -+ mode = &connector->modes[0]; - } -+ outputs[found].mode = *mode; - - found++; - } -@@ -1262,8 +1260,8 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - continue; - - if (outputs[i].controller_id == outputs[j].controller_id && -- (outputs[i].mode->hdisplay != outputs[j].mode->hdisplay || -- outputs[i].mode->vdisplay != outputs[j].mode->vdisplay)) { -+ (outputs[i].mode.hdisplay != outputs[j].mode.hdisplay || -+ outputs[i].mode.vdisplay != outputs[j].mode.vdisplay)) { - ply_trace ("connector %u uses same controller as %u and modes differ, unlinking controller", - outputs[j].connector->connector_id, - outputs[i].connector->connector_id); -@@ -1331,9 +1329,8 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - } else { - if (!ply_renderer_head_add_connector (head, &outputs[i])) - ply_trace ("couldn't connect monitor to existing head"); -- -- drmModeFreeConnector (connector); - } -+ drmModeFreeConnector (connector); - } - - ply_hashtable_free (heads_by_controller_id); --- -2.20.1 - -From b3f1c7683d70b653ebde1d41342f6b549d5c2f1f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 15 Jan 2019 08:31:20 +0100 -Subject: [PATCH 48/82] drm: Stop storing a pointer to drmModeConnector in - ply_output_t - -This is a preparation patch for hotplug support, for hotplug support we -want to keep the ply_output_t for connectors around, this change decouples -the lifetime of the drmModeConnector from the ply_output_t lifetime. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 66 +++++++++++++++--------------- - 1 file changed, 32 insertions(+), 34 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 348f880..07de083 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -116,10 +116,12 @@ typedef struct - - typedef struct - { -- drmModeConnector *connector; - drmModeModeInfo mode; -+ uint32_t connector_id; -+ uint32_t connector_type; - uint32_t controller_id; - uint32_t possible_controllers; -+ int device_scale; - ply_pixel_buffer_rotation_t rotation; - bool tiled; - } ply_output_t; -@@ -444,6 +446,7 @@ connector_orientation_prop_to_rotation (drmModePropertyPtr prop, - - static void - ply_renderer_connector_get_rotation_and_tiled (ply_renderer_backend_t *backend, -+ drmModeConnector *connector, - ply_output_t *output) - { - drmModePropertyPtr prop; -@@ -452,14 +455,14 @@ ply_renderer_connector_get_rotation_and_tiled (ply_renderer_backend_t *back - output->rotation = PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; - output->tiled = false; - -- for (i = 0; i < output->connector->count_props; i++) { -- prop = drmModeGetProperty (backend->device_fd, output->connector->props[i]); -+ for (i = 0; i < connector->count_props; i++) { -+ prop = drmModeGetProperty (backend->device_fd, connector->props[i]); - if (!prop) - continue; - - if ((prop->flags & DRM_MODE_PROP_ENUM) && - strcmp (prop->name, "panel orientation") == 0) -- output->rotation = connector_orientation_prop_to_rotation (prop, output->connector->prop_values[i]); -+ output->rotation = connector_orientation_prop_to_rotation (prop, connector->prop_values[i]); - - if ((prop->flags & DRM_MODE_PROP_BLOB) && - strcmp (prop->name, "TILE") == 0) -@@ -480,11 +483,11 @@ ply_renderer_head_add_connector (ply_renderer_head_t *head, - return false; - } else { - ply_trace ("Adding connector with id %d to %dx%d head", -- (int) output->connector->connector_id, -+ (int) output->connector_id, - (int) head->area.width, (int) head->area.height); - } - -- ply_array_add_uint32_element (head->connector_ids, output->connector->connector_id); -+ ply_array_add_uint32_element (head->connector_ids, output->connector_id); - - return true; - } -@@ -527,23 +530,19 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - assert (ply_array_get_size (head->connector_ids) > 0); - - head->pixel_buffer = ply_pixel_buffer_new_with_device_rotation (head->area.width, head->area.height, output->rotation); -- ply_pixel_buffer_set_device_scale (head->pixel_buffer, -- ply_get_device_scale (head->area.width, -- head->area.height, -- output->connector->mmWidth, -- output->connector->mmHeight)); -+ ply_pixel_buffer_set_device_scale (head->pixel_buffer, output->device_scale); - - ply_trace ("Creating %ldx%ld renderer head", head->area.width, head->area.height); - ply_pixel_buffer_fill_with_color (head->pixel_buffer, NULL, - 0.0, 0.0, 0.0, 1.0); - -- if (output->connector->connector_type == DRM_MODE_CONNECTOR_LVDS || -- output->connector->connector_type == DRM_MODE_CONNECTOR_eDP || -- output->connector->connector_type == DRM_MODE_CONNECTOR_DSI) { -+ if (output->connector_type == DRM_MODE_CONNECTOR_LVDS || -+ output->connector_type == DRM_MODE_CONNECTOR_eDP || -+ output->connector_type == DRM_MODE_CONNECTOR_DSI) { - backend->panel_width = output->mode.hdisplay; - backend->panel_height = output->mode.vdisplay; - backend->panel_rotation = output->rotation; -- backend->panel_scale = ply_pixel_buffer_get_device_scale (head->pixel_buffer); -+ backend->panel_scale = output->device_scale; - } - - return head; -@@ -973,6 +972,7 @@ close_device (ply_renderer_backend_t *backend) - - static void - output_get_controller_info (ply_renderer_backend_t *backend, -+ drmModeConnector *connector, - ply_output_t *output) - { - int i; -@@ -982,16 +982,16 @@ output_get_controller_info (ply_renderer_backend_t *backend, - - output->possible_controllers = 0xffffffff; - -- for (i = 0; i < output->connector->count_encoders; i++) { -+ for (i = 0; i < connector->count_encoders; i++) { - encoder = drmModeGetEncoder (backend->device_fd, -- output->connector->encoders[i]); -+ connector->encoders[i]); - - if (encoder == NULL) - continue; - -- if (encoder->encoder_id == output->connector->encoder_id && encoder->crtc_id) { -+ if (encoder->encoder_id == connector->encoder_id && encoder->crtc_id) { - ply_trace ("Found already lit monitor on connector %u using controller %u", -- output->connector->connector_id, encoder->crtc_id); -+ connector->connector_id, encoder->crtc_id); - output->controller_id = encoder->crtc_id; - } - -@@ -1000,7 +1000,7 @@ output_get_controller_info (ply_renderer_backend_t *backend, - */ - output->possible_controllers &= encoder->possible_crtcs; - ply_trace ("connector %u encoder %u possible controllers 0x%08x/0x%08x", -- output->connector->connector_id, encoder->encoder_id, -+ connector->connector_id, encoder->encoder_id, - encoder->possible_crtcs, output->possible_controllers); - drmModeFreeEncoder (encoder); - } -@@ -1063,6 +1063,7 @@ get_preferred_mode (drmModeConnector *connector) - - static drmModeModeInfo * - get_active_mode (ply_renderer_backend_t *backend, -+ drmModeConnector *connector, - ply_output_t *output) - { - drmModeCrtc *controller; -@@ -1077,7 +1078,7 @@ get_active_mode (ply_renderer_backend_t *backend, - ply_trace ("Looking for connector mode index of active mode %dx%d", - controller->mode.hdisplay, controller->mode.vdisplay); - -- mode = find_matching_connector_mode (backend, output->connector, &controller->mode); -+ mode = find_matching_connector_mode (backend, connector, &controller->mode); - - drmModeFreeCrtc (controller); - -@@ -1225,16 +1226,14 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - continue; - } - -- outputs[found].connector = connector; -- -- output_get_controller_info (backend, &outputs[found]); -- ply_renderer_connector_get_rotation_and_tiled (backend, &outputs[found]); -+ output_get_controller_info (backend, connector, &outputs[found]); -+ ply_renderer_connector_get_rotation_and_tiled (backend, connector, &outputs[found]); - - if (!outputs[found].tiled && backend->use_preferred_mode) - mode = get_preferred_mode (connector); - - if (!mode && outputs[found].controller_id) -- mode = get_active_mode (backend, &outputs[found]); -+ mode = get_active_mode (backend, connector, &outputs[found]); - - /* If we couldn't find the current active mode, fall back to the first available. - */ -@@ -1243,6 +1242,10 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - mode = &connector->modes[0]; - } - outputs[found].mode = *mode; -+ outputs[found].device_scale = ply_get_device_scale (mode->hdisplay, mode->vdisplay, -+ connector->mmWidth, connector->mmHeight); -+ outputs[found].connector_type = connector->connector_type; -+ drmModeFreeConnector (connector); - - found++; - } -@@ -1263,8 +1266,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - (outputs[i].mode.hdisplay != outputs[j].mode.hdisplay || - outputs[i].mode.vdisplay != outputs[j].mode.vdisplay)) { - ply_trace ("connector %u uses same controller as %u and modes differ, unlinking controller", -- outputs[j].connector->connector_id, -- outputs[i].connector->connector_id); -+ outputs[j].connector_id, outputs[i].connector_id); - outputs[j].controller_id = 0; - } - } -@@ -1289,13 +1291,12 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - } - for (i = 0; i < outputs_len; i++) - ply_trace ("Using controller %u for connector %u", -- outputs[i].controller_id, outputs[i].connector->connector_id); -+ outputs[i].controller_id, outputs[i].connector_id); - - /* Step 4: - * Create heads for all valid outputs - */ - for (i = 0; i < outputs_len; i++) { -- drmModeConnector *connector = outputs[i].connector; - drmModeCrtc *controller; - ply_renderer_head_t *head; - uint32_t controller_id; -@@ -1303,10 +1304,8 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - int gamma_size; - - controller = drmModeGetCrtc (backend->device_fd, outputs[i].controller_id); -- if (!controller) { -- drmModeFreeConnector (connector); -+ if (!controller) - continue; -- } - - controller_id = controller->crtc_id; - console_buffer_id = controller->buffer_id; -@@ -1330,7 +1329,6 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - if (!ply_renderer_head_add_connector (head, &outputs[i])) - ply_trace ("couldn't connect monitor to existing head"); - } -- drmModeFreeConnector (connector); - } - - ply_hashtable_free (heads_by_controller_id); --- -2.20.1 - -From 4ba6d4f4a238b506dc65e4e6516384a504a414af Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 15 Jan 2019 08:34:58 +0100 -Subject: [PATCH 49/82] drm: Add get_output_info helper function - -Add a new get_output_info helper function, which fill a ply_output_t with -all info related to the connecter based on a connector-id. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 86 ++++++++++++++++-------------- - 1 file changed, 46 insertions(+), 40 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 07de083..da56fe4 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -124,6 +124,7 @@ typedef struct - int device_scale; - ply_pixel_buffer_rotation_t rotation; - bool tiled; -+ bool connected; - } ply_output_t; - - struct _ply_renderer_backend -@@ -1085,6 +1086,48 @@ get_active_mode (ply_renderer_backend_t *backend, - return mode; - } - -+static void -+get_output_info (ply_renderer_backend_t *backend, -+ uint32_t connector_id, -+ ply_output_t *output) -+{ -+ drmModeModeInfo *mode = NULL; -+ drmModeConnector *connector; -+ -+ memset (output, 0, sizeof(*output)); -+ output->connector_id = connector_id; -+ -+ connector = drmModeGetConnector (backend->device_fd, connector_id); -+ if (connector == NULL) -+ return; -+ -+ if (connector->connection != DRM_MODE_CONNECTED || -+ connector->count_modes <= 0) -+ goto out; -+ -+ output_get_controller_info (backend, connector, output); -+ ply_renderer_connector_get_rotation_and_tiled (backend, connector, output); -+ -+ if (!output->tiled && backend->use_preferred_mode) -+ mode = get_preferred_mode (connector); -+ -+ if (!mode && output->controller_id) -+ mode = get_active_mode (backend, connector, output); -+ -+ /* If we couldn't find the current active mode, fall back to the first available. */ -+ if (!mode) { -+ ply_trace ("falling back to first available mode"); -+ mode = &connector->modes[0]; -+ } -+ output->mode = *mode; -+ output->device_scale = ply_get_device_scale (mode->hdisplay, mode->vdisplay, -+ connector->mmWidth, connector->mmHeight); -+ output->connector_type = connector->connector_type; -+ output->connected = true; -+out: -+ drmModeFreeConnector (connector); -+} -+ - /* Some controllers can only drive some outputs, we want to find a combination - * where all (connected) outputs get a controller. To do this setup_outputs - * picks which output to assign a controller for first (trying all outputs), so -@@ -1208,46 +1251,9 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - */ - found = 0; - for (i = 0; i < backend->resources->count_connectors; i++) { -- drmModeModeInfo *mode = NULL; -- drmModeConnector *connector; -- -- connector = drmModeGetConnector (backend->device_fd, -- backend->resources->connectors[i]); -- if (connector == NULL) -- continue; -- -- if (connector->connection != DRM_MODE_CONNECTED) { -- drmModeFreeConnector (connector); -- continue; -- } -- -- if (connector->count_modes <= 0) { -- drmModeFreeConnector (connector); -- continue; -- } -- -- output_get_controller_info (backend, connector, &outputs[found]); -- ply_renderer_connector_get_rotation_and_tiled (backend, connector, &outputs[found]); -- -- if (!outputs[found].tiled && backend->use_preferred_mode) -- mode = get_preferred_mode (connector); -- -- if (!mode && outputs[found].controller_id) -- mode = get_active_mode (backend, connector, &outputs[found]); -- -- /* If we couldn't find the current active mode, fall back to the first available. -- */ -- if (!mode) { -- ply_trace ("falling back to first available mode"); -- mode = &connector->modes[0]; -- } -- outputs[found].mode = *mode; -- outputs[found].device_scale = ply_get_device_scale (mode->hdisplay, mode->vdisplay, -- connector->mmWidth, connector->mmHeight); -- outputs[found].connector_type = connector->connector_type; -- drmModeFreeConnector (connector); -- -- found++; -+ get_output_info (backend, backend->resources->connectors[i], &outputs[found]); -+ if (outputs[found].connected) -+ found++; - } - outputs_len = found; /* outputs now contains found valid entries */ - --- -2.20.1 - -From d68fd78ae17c2574976b78b5f31afd58b965abe5 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 15 Jan 2019 08:58:45 +0100 -Subject: [PATCH 50/82] drm: Store and keep all the outputs in the backend - -Put all outputs in the outputs array instead of just the connected ones -and store the outputs array and the controller_id-to-head hashtable in the -backend object instead of temporarily allocating them during enumeration. - -Also add new heads to the heads list and to the controller_id-to-head -hashtable in ply_renderer_head_new where this really belongs. This -allows nicely balancing these 2 with removing the head from the list -and hash_table in the ply_renderer_head_remove function which is added -in a follow-up commit. - -This is a preparation patch for adding support for hotplugging -monitors while plymouth is running. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 55 ++++++++++++++++-------------- - 1 file changed, 30 insertions(+), 25 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index da56fe4..a66cd67 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -138,10 +138,14 @@ struct _ply_renderer_backend - - ply_renderer_input_source_t input_source; - ply_list_t *heads; -- ply_hashtable_t *heads_by_connector_id; -+ ply_hashtable_t *heads_by_controller_id; - - ply_hashtable_t *output_buffers; - -+ ply_output_t *outputs; -+ int outputs_len; -+ int connected_count; -+ - int32_t dither_red; - int32_t dither_green; - int32_t dither_blue; -@@ -546,6 +550,10 @@ ply_renderer_head_new (ply_renderer_backend_t *backend, - backend->panel_scale = output->device_scale; - } - -+ ply_list_append_data (backend->heads, head); -+ ply_hashtable_insert (backend->heads_by_controller_id, -+ (void *) (intptr_t) output->controller_id, -+ head); - return head; - } - -@@ -808,6 +816,7 @@ create_backend (const char *device_name, - backend->requires_explicit_flushing = true; - backend->output_buffers = ply_hashtable_new (ply_hashtable_direct_hash, - ply_hashtable_direct_compare); -+ backend->heads_by_controller_id = ply_hashtable_new (NULL, NULL); - backend->use_preferred_mode = should_use_preferred_mode (); - - return backend; -@@ -827,9 +836,11 @@ destroy_backend (ply_renderer_backend_t *backend) - - free (backend->device_name); - ply_hashtable_free (backend->output_buffers); -+ ply_hashtable_free (backend->heads_by_controller_id); - - drmModeFreeResources (backend->resources); - -+ free (backend->outputs); - free (backend); - } - -@@ -1194,9 +1205,9 @@ setup_outputs (ply_renderer_backend_t *backend, - best_count = count_setup_controllers (outputs, outputs_len); - best_outputs = outputs; - -- for (i = 0; i < outputs_len && best_count < outputs_len; i++) { -- /* Already assigned? */ -- if (outputs[i].controller_id) -+ for (i = 0; i < outputs_len && best_count < backend->connected_count; i++) { -+ /* Not connected or already assigned? */ -+ if (!outputs[i].connected || outputs[i].controller_id) - continue; - - /* Assign controller for connector i */ -@@ -1238,24 +1249,21 @@ setup_outputs (ply_renderer_backend_t *backend, - static bool - create_heads_for_active_connectors (ply_renderer_backend_t *backend) - { -- ply_hashtable_t *heads_by_controller_id; -+ int i, j, number_of_setup_outputs, outputs_len; - ply_output_t *outputs; -- int i, j, found, number_of_setup_outputs, outputs_len; -- -- heads_by_controller_id = ply_hashtable_new (NULL, NULL); - - outputs = calloc (backend->resources->count_connectors, sizeof(*outputs)); -+ outputs_len = backend->resources->count_connectors; - - /* Step 1: - * Build a list of connected outputs and get pre-configured controllers. - */ -- found = 0; -- for (i = 0; i < backend->resources->count_connectors; i++) { -- get_output_info (backend, backend->resources->connectors[i], &outputs[found]); -- if (outputs[found].connected) -- found++; -+ backend->connected_count = 0; -+ for (i = 0; i < outputs_len; i++) { -+ get_output_info (backend, backend->resources->connectors[i], &outputs[i]); -+ if (outputs[i].connected) -+ backend->connected_count++; - } -- outputs_len = found; /* outputs now contains found valid entries */ - - /* Step 2: - * Drop controllers for clones for which we've picked different modes. -@@ -1282,13 +1290,13 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - * Assign controllers to outputs without a controller - */ - number_of_setup_outputs = count_setup_controllers (outputs, outputs_len); -- if (number_of_setup_outputs != outputs_len) { -+ if (number_of_setup_outputs != backend->connected_count) { - /* First try, try to assign controllers to outputs without one */ - ply_trace ("Some outputs don't have controllers, picking controllers"); - outputs = setup_outputs (backend, outputs, outputs_len); - number_of_setup_outputs = count_setup_controllers (outputs, outputs_len); - } -- if (number_of_setup_outputs != outputs_len) { -+ if (number_of_setup_outputs != backend->connected_count) { - /* Second try, re-assing controller for all outputs */ - ply_trace ("Some outputs still don't have controllers, re-assigning controllers for all outputs"); - for (i = 0; i < outputs_len; i++) -@@ -1309,6 +1317,9 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - uint32_t console_buffer_id; - int gamma_size; - -+ if (!outputs[i].controller_id) -+ continue; -+ - controller = drmModeGetCrtc (backend->device_fd, outputs[i].controller_id); - if (!controller) - continue; -@@ -1318,27 +1329,21 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - gamma_size = controller->gamma_size; - drmModeFreeCrtc (controller); - -- head = ply_hashtable_lookup (heads_by_controller_id, -+ head = ply_hashtable_lookup (backend->heads_by_controller_id, - (void *) (intptr_t) controller_id); - - if (head == NULL) { - head = ply_renderer_head_new (backend, &outputs[i], - console_buffer_id, - gamma_size); -- -- ply_list_append_data (backend->heads, head); -- -- ply_hashtable_insert (heads_by_controller_id, -- (void *) (intptr_t) controller_id, -- head); - } else { - if (!ply_renderer_head_add_connector (head, &outputs[i])) - ply_trace ("couldn't connect monitor to existing head"); - } - } - -- ply_hashtable_free (heads_by_controller_id); -- free (outputs); -+ backend->outputs_len = outputs_len; -+ backend->outputs = outputs; - - return ply_list_get_length (backend->heads) > 0; - } --- -2.20.1 - -From 7cb2eb14892a3468a2e249709e3f09b7b852d36e Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 15 Jan 2019 09:21:05 +0100 -Subject: [PATCH 51/82] drm: Limit backend->resources lifetime to within - query_device - -We do not need / use backend->resources anywhere outside of the query_device -function and with the upcoming hotplug support we need to get a fresh set -of resources on change events, so limit the resources lifetime to -query_device. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 17 +++++++++-------- - 1 file changed, 9 insertions(+), 8 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index a66cd67..4e3c41a 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -838,8 +838,6 @@ destroy_backend (ply_renderer_backend_t *backend) - ply_hashtable_free (backend->output_buffers); - ply_hashtable_free (backend->heads_by_controller_id); - -- drmModeFreeResources (backend->resources); -- - free (backend->outputs); - free (backend); - } -@@ -1385,6 +1383,8 @@ has_32bpp_support (ply_renderer_backend_t *backend) - static bool - query_device (ply_renderer_backend_t *backend) - { -+ bool ret = true; -+ - assert (backend != NULL); - assert (backend->device_fd >= 0); - -@@ -1397,15 +1397,16 @@ query_device (ply_renderer_backend_t *backend) - - if (!create_heads_for_active_connectors (backend)) { - ply_trace ("Could not initialize heads"); -- return false; -- } -- -- if (!has_32bpp_support (backend)) { -+ ret = false; -+ } else if (!has_32bpp_support (backend)) { - ply_trace ("Device doesn't support 32bpp framebuffer"); -- return false; -+ ret = false; - } - -- return true; -+ drmModeFreeResources (backend->resources); -+ backend->resources = NULL; -+ -+ return ret; - } - - static bool --- -2.20.1 - -From cd0479675e0c853896a860913917300818b8f69d Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 15 Jan 2019 09:54:09 +0100 -Subject: [PATCH 52/82] drm: Allow calling ply_renderer_head_add_connector with - existing connector_id - -Allow calling ply_renderer_head_add_connector with an existing -connector_id and ignore this call. - -This allows calling create_heads_for_active_connectors multiple times, -only creating/adding heads for new connectors. - -This is a preparation patch for adding support for hotplugging -monitors while plymouth is running. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 4e3c41a..9998459 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -486,12 +486,15 @@ ply_renderer_head_add_connector (ply_renderer_head_t *head, - (int) output->mode.hdisplay, (int) output->mode.vdisplay, - (int) head->area.width, (int) head->area.height); - return false; -- } else { -- ply_trace ("Adding connector with id %d to %dx%d head", -- (int) output->connector_id, -- (int) head->area.width, (int) head->area.height); - } - -+ if (ply_array_contains_uint32_element (head->connector_ids, output->connector_id)) { -+ ply_trace ("Head already contains connector with id %d", output->connector_id); -+ return false; -+ } -+ -+ ply_trace ("Adding connector with id %d to %dx%d head", -+ (int) output->connector_id, (int) head->area.width, (int) head->area.height); - ply_array_add_uint32_element (head->connector_ids, output->connector_id); - - return true; --- -2.20.1 - -From 7774bd5e5132ace8060f9edd91395eaa42535246 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 15 Jan 2019 10:43:45 +0100 -Subject: [PATCH 53/82] drm: Allow calling create_heads_for_active_connectors - multiple times - -To support hotplugging monitors while plymouth is running, we must -rebuild our outputs list and create and/or remove heads as necessary -on every change event. - -This commit adds support for removing single outputs (rather then -tearing down the whole backend) and adds a new first step to -create_heads_for_active_connectors which goes over our view of the -outputs before the change and removes any changed outputs from the -heads they belong to, destroying the head if the last output/connector -is removed. - -On the first call backend->output_len is 0, so this new first step -is a no-op. - -On subsequent calls we can simply build the list as we do on the first -call, changed outputs will already be removed by the new first step -and for unchanged outputs we end up in ply_renderer_head_add_connector -which will ignore the already added connector. - -Note this drops the "couldn't connect monitor to existing head" message, -this is confusing when create_heads_for_active_connectors is called more -then once and is unnecessary as ply_renderer_head_add_connector already -logs a message on both failure exit paths. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 111 ++++++++++++++++++++++++++--- - 1 file changed, 101 insertions(+), 10 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 9998459..bb6ab77 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -734,6 +734,47 @@ ply_renderer_head_unmap (ply_renderer_backend_t *backend, - head->scan_out_buffer_id = 0; - } - -+static void -+ply_renderer_head_remove (ply_renderer_backend_t *backend, -+ ply_renderer_head_t *head) -+{ -+ if (head->scan_out_buffer_id) -+ ply_renderer_head_unmap (backend, head); -+ -+ ply_hashtable_remove (backend->heads_by_controller_id, -+ (void *) (intptr_t) head->controller_id); -+ ply_list_remove_data (backend->heads, head); -+ ply_renderer_head_free (head); -+} -+ -+static void -+ply_renderer_head_remove_connector (ply_renderer_backend_t *backend, -+ ply_renderer_head_t *head, -+ uint32_t connector_id) -+{ -+ int i, size = ply_array_get_size (head->connector_ids); -+ uint32_t *connector_ids; -+ -+ if (!ply_array_contains_uint32_element (head->connector_ids, connector_id)) { -+ ply_trace ("Head does not contain connector %u, cannot remove", connector_id); -+ return; -+ } -+ -+ if (size == 1) { -+ ply_renderer_head_remove (backend, head); -+ return; -+ } -+ -+ /* Empty the array and re-add all connectors except the one being removed */ -+ connector_ids = ply_array_steal_uint32_elements (head->connector_ids); -+ for (i = 0; i < size; i++) { -+ if (connector_ids[i] != connector_id) -+ ply_array_add_uint32_element (head->connector_ids, -+ connector_ids[i]); -+ } -+ free (connector_ids); -+} -+ - static void - flush_area (const char *src, - unsigned long src_row_stride, -@@ -1247,18 +1288,65 @@ setup_outputs (ply_renderer_backend_t *backend, - return (ply_output_t *)best_outputs; - } - -+static void -+remove_output (ply_renderer_backend_t *backend, ply_output_t *output) -+{ -+ ply_renderer_head_t *head; -+ -+ head = ply_hashtable_lookup (backend->heads_by_controller_id, -+ (void *) (intptr_t) output->controller_id); -+ if (head == NULL) { -+ ply_trace ("Could not find head for connector %u, controller %u, cannot remove", -+ output->connector_id, output->controller_id); -+ return; -+ } -+ -+ ply_renderer_head_remove_connector (backend, head, output->connector_id); -+} -+ -+/* Update our outputs array to match the hardware state and -+ * create and/or remove heads as necessary. -+ * Returns true if any heads were modified. -+ */ - static bool - create_heads_for_active_connectors (ply_renderer_backend_t *backend) - { - int i, j, number_of_setup_outputs, outputs_len; -- ply_output_t *outputs; -+ ply_output_t output, *outputs; -+ bool changed = false; -+ -+ /* Step 1: -+ * Remove existing outputs from heads if they have changed. -+ */ -+ ply_trace ("Checking currently connected outputs for changes"); -+ for (i = 0; i < backend->outputs_len; i++) { -+ if (!backend->outputs[i].controller_id) -+ continue; -+ -+ get_output_info (backend, backend->outputs[i].connector_id, &output); -+ -+ if (memcmp(&backend->outputs[i], &output, sizeof(ply_output_t))) { -+ ply_trace ("Output for connector %u changed, removing", -+ backend->outputs[i].connector_id); -+ remove_output (backend, &backend->outputs[i]); -+ changed = true; -+ } -+ } -+ -+ /* Step 2: -+ * Now that we've removed changed connectors from the heads, we can -+ * simply rebuild the outputs array from scratch. For any unchanged -+ * outputs for which we already have a head, we will end up in -+ * ply_renderer_head_add_connector which will ignore the already -+ * added connector. -+ */ -+ ply_trace ("(Re)enumerating all outputs"); -+ free (backend->outputs); -+ backend->outputs = NULL; - - outputs = calloc (backend->resources->count_connectors, sizeof(*outputs)); - outputs_len = backend->resources->count_connectors; - -- /* Step 1: -- * Build a list of connected outputs and get pre-configured controllers. -- */ - backend->connected_count = 0; - for (i = 0; i < outputs_len; i++) { - get_output_info (backend, backend->resources->connectors[i], &outputs[i]); -@@ -1266,7 +1354,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - backend->connected_count++; - } - -- /* Step 2: -+ /* Step 3: - * Drop controllers for clones for which we've picked different modes. - */ - for (i = 0; i < outputs_len; i++) { -@@ -1287,7 +1375,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - } - } - -- /* Step 3: -+ /* Step 4: - * Assign controllers to outputs without a controller - */ - number_of_setup_outputs = count_setup_controllers (outputs, outputs_len); -@@ -1308,7 +1396,7 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - ply_trace ("Using controller %u for connector %u", - outputs[i].controller_id, outputs[i].connector_id); - -- /* Step 4: -+ /* Step 5: - * Create heads for all valid outputs - */ - for (i = 0; i < outputs_len; i++) { -@@ -1337,16 +1425,19 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - head = ply_renderer_head_new (backend, &outputs[i], - console_buffer_id, - gamma_size); -+ changed = true; - } else { -- if (!ply_renderer_head_add_connector (head, &outputs[i])) -- ply_trace ("couldn't connect monitor to existing head"); -+ if (ply_renderer_head_add_connector (head, &outputs[i])) -+ changed = true; - } - } - - backend->outputs_len = outputs_len; - backend->outputs = outputs; - -- return ply_list_get_length (backend->heads) > 0; -+ ply_trace ("outputs %schanged\n", changed ? "" : "un"); -+ -+ return changed; - } - - static bool --- -2.20.1 - -From 475a51d0576d0a488023f870c92f39eb8b0a21c1 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 16 Jan 2019 14:50:34 +0100 -Subject: [PATCH 54/82] drm: Ensure heads are mapped before flushing them - -The drm plugin's map_to_device function will return true if mapping of -any of the heads has succeeded, potentially leaving some heads unmapped. - -This causes the "assert (buffer != NULL)" in begin_flush to trigger when -flushing the heads as head->scan_out_buffer_id is 0. - -It seems that even though this is a pre-existing problem we sofar have -not hit this, likely because ply_renderer_head_map in pratice never fails. - -However with the new monitor hotplug support, a head may be added after -map_to_device is called, triggering the assert. - -This commit fixes both the theoretical pre-existing problem and the -actual problem triggered by hotplug support by ensuring that the head -is mapped before flushing it. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index bb6ab77..0963a84 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -715,11 +715,6 @@ ply_renderer_head_map (ply_renderer_backend_t *backend, - return false; - } - -- /* FIXME: Maybe we should blit the fbcon contents instead of the (blank) -- * shadow buffer? -- */ -- ply_renderer_head_redraw (backend, head); -- - return true; - } - -@@ -1518,8 +1513,13 @@ map_to_device (ply_renderer_backend_t *backend) - head = (ply_renderer_head_t *) ply_list_node_get_data (node); - next_node = ply_list_get_next_node (backend->heads, node); - -- if (ply_renderer_head_map (backend, head)) -+ if (ply_renderer_head_map (backend, head)) { -+ /* FIXME: Maybe we should blit the fbcon contents instead of the (blank) -+ * shadow buffer? -+ */ -+ ply_renderer_head_redraw (backend, head); - head_mapped = true; -+ } - - node = next_node; - } -@@ -1605,6 +1605,12 @@ flush_head (ply_renderer_backend_t *backend, - updated_region = ply_pixel_buffer_get_updated_areas (pixel_buffer); - areas_to_flush = ply_region_get_sorted_rectangle_list (updated_region); - -+ /* A hotplugged head may not be mapped yet, map it now. */ -+ if (!head->scan_out_buffer_id) { -+ if (!ply_renderer_head_map (backend, head)) -+ return; -+ } -+ - map_address = begin_flush (backend, head->scan_out_buffer_id); - - node = ply_list_get_first_node (areas_to_flush); --- -2.20.1 - -From 15ebdd6d5b0e98d7511815e2dfbe82d2ec86f493 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 16 Jan 2019 09:41:42 +0100 -Subject: [PATCH 55/82] drm: Implement handle_change_event - -Now that we can call create_heads_for_active_connectors multiple times -we can implement handle_change_event. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 32 ++++++++++++++++++++++++++---- - 1 file changed, 28 insertions(+), 4 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 0963a84..b190737 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -1304,7 +1304,7 @@ remove_output (ply_renderer_backend_t *backend, ply_output_t *output) - * Returns true if any heads were modified. - */ - static bool --create_heads_for_active_connectors (ply_renderer_backend_t *backend) -+create_heads_for_active_connectors (ply_renderer_backend_t *backend, bool change) - { - int i, j, number_of_setup_outputs, outputs_len; - ply_output_t output, *outputs; -@@ -1380,8 +1380,12 @@ create_heads_for_active_connectors (ply_renderer_backend_t *backend) - outputs = setup_outputs (backend, outputs, outputs_len); - number_of_setup_outputs = count_setup_controllers (outputs, outputs_len); - } -- if (number_of_setup_outputs != backend->connected_count) { -- /* Second try, re-assing controller for all outputs */ -+ /* Try again if necessary, re-assing controllers for all outputs. -+ * Note this is skipped when processing change events, as we don't -+ * want to mess with the controller assignment of already lit monitors -+ * in that case. -+ */ -+ if (!change && number_of_setup_outputs != backend->connected_count) { - ply_trace ("Some outputs still don't have controllers, re-assigning controllers for all outputs"); - for (i = 0; i < outputs_len; i++) - outputs[i].controller_id = 0; -@@ -1484,7 +1488,7 @@ query_device (ply_renderer_backend_t *backend) - return false; - } - -- if (!create_heads_for_active_connectors (backend)) { -+ if (!create_heads_for_active_connectors (backend, false)) { - ply_trace ("Could not initialize heads"); - ret = false; - } else if (!has_32bpp_support (backend)) { -@@ -1498,6 +1502,25 @@ query_device (ply_renderer_backend_t *backend) - return ret; - } - -+static bool -+handle_change_event (ply_renderer_backend_t *backend) -+{ -+ bool ret = true; -+ -+ backend->resources = drmModeGetResources (backend->device_fd); -+ if (backend->resources == NULL) { -+ ply_trace ("Could not get card resources for change event"); -+ return false; -+ } -+ -+ ret = create_heads_for_active_connectors (backend, true); -+ -+ drmModeFreeResources (backend->resources); -+ backend->resources = NULL; -+ -+ return ret; -+} -+ - static bool - map_to_device (ply_renderer_backend_t *backend) - { -@@ -1776,6 +1799,7 @@ ply_renderer_backend_get_interface (void) - .open_device = open_device, - .close_device = close_device, - .query_device = query_device, -+ .handle_change_event = handle_change_event, - .map_to_device = map_to_device, - .unmap_from_device = unmap_from_device, - .activate = activate, --- -2.20.1 - -From c54870fc6663b010b2a3eb4a44df5dd41dd7011c Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 17 Jan 2019 11:41:46 +0100 -Subject: [PATCH 56/82] drm: Reset mode on display-port connected outputs with - a bad link-status - -With Display-Port links, esp. with DP MST links we may need to reset the -mode if the kernel decides to retrain the link. - -If the kernel has retrained the link, the list of available modes may -have changed. If it changed and the mode we picked is no longer available -because of this, we treat this as an unplug + replug. - -Since we may want to set another mode, the kernel does not automatically -restore the previous mode. So in case the mode did not change we need to -do an explicit mode-set. - -This commits adds support for this, by: - -1) Adding a scan_out_buffer_needs_reset member to ply_renderer_head -2) Storing the link-status when going over the connector properties -3) Checking the link-status when adding a connector to a head and setting - the scan_out_buffer_needs_reset flag when the link-status is bad - -This commit also makes ply_renderer_head_map set -scan_out_buffer_needs_reset, avoiding an unnecessary round-trip to the -kernel in the first reset_scan_out_buffer_if_needed call. - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index b190737..cb228f6 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -82,6 +82,7 @@ struct _ply_renderer_head - uint32_t controller_id; - uint32_t console_buffer_id; - uint32_t scan_out_buffer_id; -+ bool scan_out_buffer_needs_reset; - - int gamma_size; - uint16_t *gamma; -@@ -122,6 +123,7 @@ typedef struct - uint32_t controller_id; - uint32_t possible_controllers; - int device_scale; -+ int link_status; - ply_pixel_buffer_rotation_t rotation; - bool tiled; - bool connected; -@@ -473,6 +475,12 @@ ply_renderer_connector_get_rotation_and_tiled (ply_renderer_backend_t *back - strcmp (prop->name, "TILE") == 0) - output->tiled = true; - -+ if ((prop->flags & DRM_MODE_PROP_ENUM) && -+ strcmp (prop->name, "link-status") == 0) { -+ output->link_status = connector->prop_values[i]; -+ ply_trace ("link-status %d", output->link_status); -+ } -+ - drmModeFreeProperty (prop); - } - } -@@ -481,6 +489,9 @@ static bool - ply_renderer_head_add_connector (ply_renderer_head_t *head, - ply_output_t *output) - { -+ if (output->link_status == DRM_MODE_LINK_STATUS_BAD) -+ head->scan_out_buffer_needs_reset = true; -+ - if (output->mode.hdisplay != head->area.width || output->mode.vdisplay != head->area.height) { - ply_trace ("Tried to add connector with resolution %dx%d to %dx%d head", - (int) output->mode.hdisplay, (int) output->mode.vdisplay, -@@ -715,6 +726,7 @@ ply_renderer_head_map (ply_renderer_backend_t *backend, - return false; - } - -+ head->scan_out_buffer_needs_reset = true; - return true; - } - -@@ -1589,6 +1601,13 @@ reset_scan_out_buffer_if_needed (ply_renderer_backend_t *backend, - if (!ply_terminal_is_active (backend->terminal)) - return false; - -+ if (head->scan_out_buffer_needs_reset) { -+ ply_renderer_head_set_scan_out_buffer (backend, head, -+ head->scan_out_buffer_id); -+ head->scan_out_buffer_needs_reset = false; -+ return true; -+ } -+ - controller = drmModeGetCrtc (backend->device_fd, head->controller_id); - - if (controller == NULL) --- -2.20.1 - -From ccdb1d1fe1f99523d570b4e37cc14401c3891b9a Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 21 Jan 2019 15:41:37 +0100 -Subject: [PATCH 57/82] drm: Stop limiting preferred-mode picking to UEFI - systems - -When the code to pick the preferred-mode for outputs was first added, it -was limited to UEFI systems, since it was necessary there. - -It was not enabled everywhere right away because there were some worries -it might cause regressions. - -We've been shipping this for a while now and no regressions have been -reported, moreover with the new hotplug support we really want to pick the -preferred-mode rather then falling back to the first mode in the list. - -Therefor this commits removes the check for UEFI systems from -should_use_preferred_mode(). - -Signed-off-by: Hans de Goede ---- - src/plugins/renderers/drm/plugin.c | 17 ++--------------- - 1 file changed, 2 insertions(+), 15 deletions(-) - -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index cb228f6..0151f47 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -172,19 +172,9 @@ static bool reset_scan_out_buffer_if_needed (ply_renderer_backend_t *backend, - static void flush_head (ply_renderer_backend_t *backend, - ply_renderer_head_t *head); - --static bool efi_enabled (void) --{ -- return ply_directory_exists ("/sys/firmware/efi/efivars"); --} -- - /* A small helper to determine if we should try to keep the current mode -- * or pick the best mode ourselves, we keep the current mode if: -- * 1. The user specified a specific mode using video= on the commandline -- * 2. The code to pick the best mode was added because with flicker-free boot -- * we can no longer rely on the kernel's fbcon code setting things up. -- * We should be able to do a better job then fbcon regardless, but for -- * now lets only use the new code on flicker-free systems until it is -- * more mature, this means only using it on UEFI systems. -+ * or pick the best mode ourselves, we keep the current mode only if the -+ * user specified a specific mode using video= on the commandline. - */ - static bool - should_use_preferred_mode (void) -@@ -194,9 +184,6 @@ should_use_preferred_mode (void) - if (ply_kernel_command_line_get_string_after_prefix ("video=")) - use_preferred_mode = false; - -- if (!efi_enabled ()) -- use_preferred_mode = false; -- - ply_trace ("should_use_preferred_mode: %d", use_preferred_mode); - - return use_preferred_mode; --- -2.20.1 - -From f9e376797a91ad5fbc1f8e8e4aea778f4f22397c Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 17 Jan 2019 14:52:41 +0100 -Subject: [PATCH 58/82] ply-device-manager: Consume all events in one go - -Drm devices generate a bunch of add and change events when the kms -driver loads, consume these all in one go. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-device-manager.c | 16 ++++++++++++---- - 1 file changed, 12 insertions(+), 4 deletions(-) - -diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c -index 8ceee10..028bf4a 100644 ---- a/src/libply-splash-core/ply-device-manager.c -+++ b/src/libply-splash-core/ply-device-manager.c -@@ -371,7 +371,7 @@ create_devices_for_subsystem (ply_device_manager_t *manager, - return found_device; - } - --static void -+static bool - on_udev_event (ply_device_manager_t *manager) - { - struct udev_device *device; -@@ -379,14 +379,14 @@ on_udev_event (ply_device_manager_t *manager) - - device = udev_monitor_receive_device (manager->udev_monitor); - if (device == NULL) -- return; -+ return false; - - action = udev_device_get_action (device); - - ply_trace ("got %s event for device %s", action, udev_device_get_sysname (device)); - - if (action == NULL) -- return; -+ return false; - - if (strcmp (action, "add") == 0) { - const char *subsystem; -@@ -406,6 +406,14 @@ on_udev_event (ply_device_manager_t *manager) - } - - udev_device_unref (device); -+ return true; -+} -+ -+static void -+on_udev_event_loop (ply_device_manager_t *manager) -+{ -+ /* Call on_udev_event until all events are consumed */ -+ while (on_udev_event (manager)) {} - } - - static void -@@ -435,7 +443,7 @@ watch_for_udev_events (ply_device_manager_t *manager) - fd, - PLY_EVENT_LOOP_FD_STATUS_HAS_DATA, - (ply_event_handler_t) -- on_udev_event, -+ on_udev_event_loop, - NULL, - manager); - } --- -2.20.1 - -From e54f6a47318d82b4e4df024855bd76d888b89675 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 14 Jan 2019 11:47:21 +0100 -Subject: [PATCH 59/82] ply-device-manager: Handle change events for monitor - hotplugging - -Not only handle add but also change events for drm-subsys devices, -change events are generated when the hardware detect a new monitor -has been plugged in. - -This is esp. important with modern DisplayPort MST docking stations where -discovery / enumeration can take so long that the connected displays -are not enumerated by the kernel yet when the drm plugin first calls -drmModeGetResources(). Causing the monitors on these docks to sometimes -not show plymouth during boot (based on various timing parameters). - -Note that if during the add event drm-renderer could not be bound, this -commit tries to re-bind the DRM renderer on change events in case a -monitor got plugged into a GPU which did not have anything connected before. -This often happens with the second GPU in a laptop with a hybrid GPU setup. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1652279 -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-device-manager.c | 40 +++++++++++++++++++-- - 1 file changed, 38 insertions(+), 2 deletions(-) - -diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c -index 028bf4a..e2a9eae 100644 ---- a/src/libply-splash-core/ply-device-manager.c -+++ b/src/libply-splash-core/ply-device-manager.c -@@ -51,6 +51,9 @@ static bool create_devices_for_terminal_and_renderer_type (ply_device_manager_t - const char *device_path, - ply_terminal_t *terminal, - ply_renderer_type_t renderer_type); -+static void create_pixel_displays_for_renderer (ply_device_manager_t *manager, -+ ply_renderer_t *renderer); -+ - struct _ply_device_manager - { - ply_device_manager_flags_t flags; -@@ -371,6 +374,39 @@ create_devices_for_subsystem (ply_device_manager_t *manager, - return found_device; - } - -+static void -+on_drm_udev_add_or_change (ply_device_manager_t *manager, -+ const char *action, -+ struct udev_device *device) -+{ -+ const char *device_path = udev_device_get_devnode (device); -+ ply_renderer_t *renderer; -+ bool changed; -+ -+ if (device_path == NULL) -+ return; -+ -+ renderer = ply_hashtable_lookup (manager->renderers, (void *) device_path); -+ if (renderer == NULL) { -+ /* We also try to create the renderer again on change events, -+ * renderer creation fails when no outputs are connected and -+ * this may have changed. -+ */ -+ create_devices_for_udev_device (manager, device); -+ return; -+ } -+ -+ /* Renderer exists, bail if this is not a change event */ -+ if (strcmp (action, "change")) -+ return; -+ -+ changed = ply_renderer_handle_change_event (renderer); -+ if (changed) { -+ free_displays_for_renderer (manager, renderer); -+ create_pixel_displays_for_renderer (manager, renderer); -+ } -+} -+ - static bool - on_udev_event (ply_device_manager_t *manager) - { -@@ -388,7 +424,7 @@ on_udev_event (ply_device_manager_t *manager) - if (action == NULL) - return false; - -- if (strcmp (action, "add") == 0) { -+ if (strcmp (action, "add") == 0 || strcmp (action, "change") == 0) { - const char *subsystem; - - subsystem = udev_device_get_subsystem (device); -@@ -397,7 +433,7 @@ on_udev_event (ply_device_manager_t *manager) - if (manager->local_console_managed && manager->local_console_is_text) - ply_trace ("ignoring since we're already using text splash for local console"); - else -- create_devices_for_udev_device (manager, device); -+ on_drm_udev_add_or_change (manager, action, device); - } else { - ply_trace ("ignoring since we only handle subsystem %s devices after timeout", subsystem); - } --- -2.20.1 - -From f7d82041981884bbf9d6ba0fdab2a920cdf04255 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Mon, 18 Feb 2019 10:22:21 -0500 -Subject: [PATCH 60/82] boot-server: fix type confusion when allocating - connection object - -Right now we allocate enough room for a whole ply_boot_server_t -object for every connection object. - -This commit mops up the over-allocation ---- - src/ply-boot-server.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/ply-boot-server.c b/src/ply-boot-server.c -index ff0e6fd..5519550 100644 ---- a/src/ply-boot-server.c -+++ b/src/ply-boot-server.c -@@ -161,7 +161,7 @@ ply_boot_connection_new (ply_boot_server_t *server, - { - ply_boot_connection_t *connection; - -- connection = calloc (1, sizeof(ply_boot_server_t)); -+ connection = calloc (1, sizeof(ply_boot_connection_t)); - connection->fd = fd; - connection->server = server; - connection->watch = NULL; --- -2.20.1 - -From dfa1dcc6218af13eb3cf328b6ac6ccb86f1a961c Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 6 Feb 2019 11:48:55 +0100 -Subject: [PATCH 61/82] ply-label: Make sure get_width_of_control / - get_height_of_control return correct values - -Users of ply_label may want to know the height / width of the text before -calling ply_label_show, so that they can e.g. vertically align it. - -This commit adds a size_needs_update bool to the label plugin and uses this -to check if executing size_control is necessary before returning the -width / height and also modifies the ply-label code to load the plugin -from its get_width / get_height methods. - -As an added advantage this will also skip unnecessary size_control calls -when calling ply_label_show on an already visible label. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-graphics/ply-label.c | 6 ++-- - src/plugins/controls/label/plugin.c | 47 +++++++++++++++----------- - 2 files changed, 32 insertions(+), 21 deletions(-) - -diff --git a/src/libply-splash-graphics/ply-label.c b/src/libply-splash-graphics/ply-label.c -index cfc8098..42d9dfb 100644 ---- a/src/libply-splash-graphics/ply-label.c -+++ b/src/libply-splash-graphics/ply-label.c -@@ -299,7 +299,8 @@ long - ply_label_get_width (ply_label_t *label) - { - if (label->plugin_interface == NULL) -- return 0; -+ if (!ply_label_load_plugin (label)) -+ return 0; - - return label->plugin_interface->get_width_of_control (label->control); - } -@@ -308,7 +309,8 @@ long - ply_label_get_height (ply_label_t *label) - { - if (label->plugin_interface == NULL) -- return 0; -+ if (!ply_label_load_plugin (label)) -+ return 0; - - return label->plugin_interface->get_height_of_control (label->control); - } -diff --git a/src/plugins/controls/label/plugin.c b/src/plugins/controls/label/plugin.c -index acba52b..b552981 100644 ---- a/src/plugins/controls/label/plugin.c -+++ b/src/plugins/controls/label/plugin.c -@@ -66,6 +66,7 @@ struct _ply_label_plugin_control - float alpha; - - uint32_t is_hidden : 1; -+ uint32_t needs_size_update : 1; - }; - - ply_label_plugin_interface_t *ply_label_plugin_get_interface (void); -@@ -93,18 +94,6 @@ destroy_control (ply_label_plugin_control_t *label) - free (label); - } - --static long --get_width_of_control (ply_label_plugin_control_t *label) --{ -- return label->area.width; --} -- --static long --get_height_of_control (ply_label_plugin_control_t *label) --{ -- return label->area.height; --} -- - static cairo_t * - get_cairo_context_for_pixel_buffer (ply_label_plugin_control_t *label, - ply_pixel_buffer_t *pixel_buffer) -@@ -175,15 +164,20 @@ init_pango_text_layout (cairo_t *cairo_context, - } - - static void --size_control (ply_label_plugin_control_t *label) -+size_control (ply_label_plugin_control_t *label, bool force) - { - cairo_t *cairo_context; - PangoLayout *pango_layout; - int text_width; - int text_height; - -- if (label->is_hidden) -+ if (force && !label->needs_size_update) -+ return; /* Size already is up to date */ -+ -+ if (!force && label->is_hidden) { -+ label->needs_size_update = true; - return; -+ } - - cairo_context = get_cairo_context_for_sizing (label); - -@@ -195,6 +189,7 @@ size_control (ply_label_plugin_control_t *label) - - g_object_unref (pango_layout); - cairo_destroy (cairo_context); -+ label->needs_size_update = false; - } - - static void -@@ -261,7 +256,7 @@ set_alignment_for_control (ply_label_plugin_control_t *label, - if (label->alignment != pango_alignment) { - dirty_area = label->area; - label->alignment = pango_alignment; -- size_control (label); -+ size_control (label, false); - if (!label->is_hidden && label->display != NULL) - ply_pixel_display_draw_area (label->display, - dirty_area.x, dirty_area.y, -@@ -278,7 +273,7 @@ set_width_for_control (ply_label_plugin_control_t *label, - if (label->width != width) { - dirty_area = label->area; - label->width = width; -- size_control (label); -+ size_control (label, false); - if (!label->is_hidden && label->display != NULL) - ply_pixel_display_draw_area (label->display, - dirty_area.x, dirty_area.y, -@@ -296,7 +291,7 @@ set_text_for_control (ply_label_plugin_control_t *label, - dirty_area = label->area; - free (label->text); - label->text = strdup (text); -- size_control (label); -+ size_control (label, false); - if (!label->is_hidden && label->display != NULL) - ply_pixel_display_draw_area (label->display, - dirty_area.x, dirty_area.y, -@@ -317,7 +312,7 @@ set_font_for_control (ply_label_plugin_control_t *label, - label->fontdesc = strdup (fontdesc); - else - label->fontdesc = NULL; -- size_control (label); -+ size_control (label, false); - if (!label->is_hidden && label->display != NULL) - ply_pixel_display_draw_area (label->display, - dirty_area.x, dirty_area.y, -@@ -358,7 +353,7 @@ show_control (ply_label_plugin_control_t *label, - - label->is_hidden = false; - -- size_control (label); -+ size_control (label, true); - - if (!label->is_hidden && label->display != NULL) - ply_pixel_display_draw_area (label->display, -@@ -389,6 +384,20 @@ is_control_hidden (ply_label_plugin_control_t *label) - return label->is_hidden; - } - -+static long -+get_width_of_control (ply_label_plugin_control_t *label) -+{ -+ size_control (label, true); -+ return label->area.width; -+} -+ -+static long -+get_height_of_control (ply_label_plugin_control_t *label) -+{ -+ size_control (label, true); -+ return label->area.height; -+} -+ - ply_label_plugin_interface_t * - ply_label_plugin_get_interface (void) - { --- -2.20.1 - -From ebf60f70197efa40c43f9cd537c5ec771e5b59b3 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 8 Feb 2019 18:04:01 +0100 -Subject: [PATCH 62/82] ply-progress-bar: Redraw on percentage update - -All the other plymouth widgets do a (re)draw when one of their -properties get updated. Make ply-progress-bar also do this, this allows -dropping the draw calls directly after the 2 current callers of -ply_progress_bar_set_percent_done. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-graphics/ply-progress-bar.c | 1 + - src/plugins/splash/throbgress/plugin.c | 2 -- - 2 files changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/libply-splash-graphics/ply-progress-bar.c b/src/libply-splash-graphics/ply-progress-bar.c -index c0b5f9a..2ba3bf4 100644 ---- a/src/libply-splash-graphics/ply-progress-bar.c -+++ b/src/libply-splash-graphics/ply-progress-bar.c -@@ -199,6 +199,7 @@ ply_progress_bar_set_percent_done (ply_progress_bar_t *progress_bar, - double percent_done) - { - progress_bar->percent_done = percent_done; -+ ply_progress_bar_draw (progress_bar); - } - - double -diff --git a/src/plugins/splash/throbgress/plugin.c b/src/plugins/splash/throbgress/plugin.c -index a1c8a90..4016d96 100644 ---- a/src/plugins/splash/throbgress/plugin.c -+++ b/src/plugins/splash/throbgress/plugin.c -@@ -736,7 +736,6 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin, - next_node = ply_list_get_next_node (plugin->views, node); - - ply_progress_bar_set_percent_done (view->progress_bar, percent_done); -- ply_progress_bar_draw (view->progress_bar); - - node = next_node; - } -@@ -940,7 +939,6 @@ system_update (ply_boot_splash_plugin_t *plugin, - view = ply_list_node_get_data (node); - next_node = ply_list_get_next_node (plugin->views, node); - ply_progress_bar_set_percent_done (view->progress_bar, (double) progress / 100.f); -- ply_progress_bar_draw (view->progress_bar); - node = next_node; - } - } --- -2.20.1 - -From 78bb39da5cc9b95d582665f42d2a1d6fb7bc0c15 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 8 Feb 2019 14:06:28 +0100 -Subject: [PATCH 63/82] ply-progress-bar: Allow choosing fore- and back-ground - color - -Allow choosing a fore- and back-ground color instead of hardcoding -the foreground to white and the background to transparent. - -This commit does not change behavior for existing users (tested with the -spinfinity theme). - -Signed-off-by: Hans de Goede ---- - src/libply-splash-graphics/ply-progress-bar.c | 68 +++++++++---------- - src/libply-splash-graphics/ply-progress-bar.h | 4 ++ - 2 files changed, 36 insertions(+), 36 deletions(-) - -diff --git a/src/libply-splash-graphics/ply-progress-bar.c b/src/libply-splash-graphics/ply-progress-bar.c -index 2ba3bf4..e5697b4 100644 ---- a/src/libply-splash-graphics/ply-progress-bar.c -+++ b/src/libply-splash-graphics/ply-progress-bar.c -@@ -1,6 +1,6 @@ - /* progress_bar.c - boot progress_bar - * -- * Copyright (C) 2008 Red Hat, Inc. -+ * Copyright (C) 2008, 2019 Red Hat, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -19,6 +19,7 @@ - * - * Written by: Ray Strode - * Will Woods -+ * Hans de Goede - */ - #include "config.h" - -@@ -50,10 +51,6 @@ - #include "ply-image.h" - #include "ply-utils.h" - --#ifndef FRAMES_PER_SECOND --#define FRAMES_PER_SECOND 30 --#endif -- - #ifndef BAR_HEIGHT - #define BAR_HEIGHT 16 - #endif -@@ -63,6 +60,8 @@ struct _ply_progress_bar - ply_pixel_display_t *display; - ply_rectangle_t area; - -+ uint32_t fg_color; -+ uint32_t bg_color; - double percent_done; - - uint32_t is_hidden : 1; -@@ -76,11 +75,9 @@ ply_progress_bar_new (void) - progress_bar = calloc (1, sizeof(ply_progress_bar_t)); - - progress_bar->is_hidden = true; -+ progress_bar->fg_color = 0xffffffff; /* Solid white */ -+ progress_bar->bg_color = 0x01000000; /* Transparent */ - progress_bar->percent_done = 0.0; -- progress_bar->area.x = 0; -- progress_bar->area.y = 0; -- progress_bar->area.width = 0; -- progress_bar->area.height = BAR_HEIGHT; - - return progress_bar; - } -@@ -93,21 +90,6 @@ ply_progress_bar_free (ply_progress_bar_t *progress_bar) - free (progress_bar); - } - --static void --ply_progress_bar_update_area (ply_progress_bar_t *progress_bar, -- long x, -- long y) --{ -- unsigned long display_width; -- -- progress_bar->area.x = x; -- progress_bar->area.y = y; -- progress_bar->area.height = BAR_HEIGHT; -- -- display_width = ply_pixel_display_get_width (progress_bar->display); -- progress_bar->area.width = (long) (display_width * progress_bar->percent_done); --} -- - void - ply_progress_bar_draw_area (ply_progress_bar_t *progress_bar, - ply_pixel_buffer_t *buffer, -@@ -116,20 +98,23 @@ ply_progress_bar_draw_area (ply_progress_bar_t *progress_bar, - unsigned long width, - unsigned long height) - { -- ply_rectangle_t paint_area; -+ ply_rectangle_t fill_area; - - if (progress_bar->is_hidden) - return; - -- paint_area.x = x; -- paint_area.y = y; -- paint_area.width = width; -- paint_area.height = height; -+ /* Note we ignore the passed in area / rectangle to update, -+ * since ply_pixel_display_draw_area() already pushes it to -+ * the buffer's clip_area list. -+ */ - -- ply_rectangle_intersect (&progress_bar->area, &paint_area, &paint_area); -- ply_pixel_buffer_fill_with_hex_color (buffer, -- &paint_area, -- 0xffffff); /* white */ -+ fill_area = progress_bar->area; -+ fill_area.width = progress_bar->area.width * progress_bar->percent_done; -+ ply_pixel_buffer_fill_with_hex_color (buffer, &fill_area, progress_bar->fg_color); -+ -+ fill_area.x = fill_area.x + fill_area.width; -+ fill_area.width = progress_bar->area.width - fill_area.width; -+ ply_pixel_buffer_fill_with_hex_color (buffer, &fill_area, progress_bar->bg_color); - } - - void -@@ -138,7 +123,6 @@ ply_progress_bar_draw (ply_progress_bar_t *progress_bar) - if (progress_bar->is_hidden) - return; - -- ply_progress_bar_update_area (progress_bar, progress_bar->area.x, progress_bar->area.y); - ply_pixel_display_draw_area (progress_bar->display, - progress_bar->area.x, - progress_bar->area.y, -@@ -155,8 +139,10 @@ ply_progress_bar_show (ply_progress_bar_t *progress_bar, - assert (progress_bar != NULL); - - progress_bar->display = display; -- -- ply_progress_bar_update_area (progress_bar, x, y); -+ progress_bar->area.x = x; -+ progress_bar->area.y = y; -+ progress_bar->area.height = BAR_HEIGHT; -+ progress_bar->area.width = ply_pixel_display_get_width (display); - - progress_bar->is_hidden = false; - ply_progress_bar_draw (progress_bar); -@@ -208,4 +194,14 @@ ply_progress_bar_get_percent_done (ply_progress_bar_t *progress_bar) - return progress_bar->percent_done; - } - -+void -+ply_progress_bar_set_colors (ply_progress_bar_t *progress_bar, -+ uint32_t fg_color, -+ uint32_t bg_color) -+{ -+ progress_bar->fg_color = fg_color; -+ progress_bar->bg_color = bg_color; -+ ply_progress_bar_draw (progress_bar); -+} -+ - /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/libply-splash-graphics/ply-progress-bar.h b/src/libply-splash-graphics/ply-progress-bar.h -index 2fd80e0..1eab64c 100644 ---- a/src/libply-splash-graphics/ply-progress-bar.h -+++ b/src/libply-splash-graphics/ply-progress-bar.h -@@ -57,6 +57,10 @@ long ply_progress_bar_get_height (ply_progress_bar_t *bar); - void ply_progress_bar_set_percent_done (ply_progress_bar_t *bar, - double percent_done); - double ply_progress_bar_get_percent_done (ply_progress_bar_t *bar); -+ -+void ply_progress_bar_set_colors (ply_progress_bar_t *bar, -+ uint32_t fg_color, -+ uint32_t bg_color); - #endif - - #endif /* PLY_PROGRESS_BAR_H */ --- -2.20.1 - -From e33c1f3a06f47e78bb479a50b27f5b2ab39476eb Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 8 Feb 2019 14:38:44 +0100 -Subject: [PATCH 64/82] ply-progress-bar: Allow caller to specify the widgets - width and height - -Before this commit ply_progress_bar_show would take coordinates for where -to show the progress-bar but the width and height were hardcodec. This -commit adds width and height parametes, so that the caller can specify -the width and height too. - -This commit does not change behavior for existing users (tested with the -spinfinity theme). - -Signed-off-by: Hans de Goede ---- - src/libply-splash-graphics/ply-progress-bar.c | 12 +++++------- - src/libply-splash-graphics/ply-progress-bar.h | 4 +++- - src/plugins/splash/throbgress/plugin.c | 5 ++++- - 3 files changed, 12 insertions(+), 9 deletions(-) - -diff --git a/src/libply-splash-graphics/ply-progress-bar.c b/src/libply-splash-graphics/ply-progress-bar.c -index e5697b4..369255a 100644 ---- a/src/libply-splash-graphics/ply-progress-bar.c -+++ b/src/libply-splash-graphics/ply-progress-bar.c -@@ -51,10 +51,6 @@ - #include "ply-image.h" - #include "ply-utils.h" - --#ifndef BAR_HEIGHT --#define BAR_HEIGHT 16 --#endif -- - struct _ply_progress_bar - { - ply_pixel_display_t *display; -@@ -134,15 +130,17 @@ void - ply_progress_bar_show (ply_progress_bar_t *progress_bar, - ply_pixel_display_t *display, - long x, -- long y) -+ long y, -+ unsigned long width, -+ unsigned long height) - { - assert (progress_bar != NULL); - - progress_bar->display = display; - progress_bar->area.x = x; - progress_bar->area.y = y; -- progress_bar->area.height = BAR_HEIGHT; -- progress_bar->area.width = ply_pixel_display_get_width (display); -+ progress_bar->area.height = height; -+ progress_bar->area.width = width; - - progress_bar->is_hidden = false; - ply_progress_bar_draw (progress_bar); -diff --git a/src/libply-splash-graphics/ply-progress-bar.h b/src/libply-splash-graphics/ply-progress-bar.h -index 1eab64c..55f5a48 100644 ---- a/src/libply-splash-graphics/ply-progress-bar.h -+++ b/src/libply-splash-graphics/ply-progress-bar.h -@@ -40,7 +40,9 @@ void ply_progress_bar_free (ply_progress_bar_t *bar); - void ply_progress_bar_show (ply_progress_bar_t *bar, - ply_pixel_display_t *display, - long x, -- long y); -+ long y, -+ unsigned long width, -+ unsigned long height); - void ply_progress_bar_hide (ply_progress_bar_t *bar); - void ply_progress_bar_draw (ply_progress_bar_t *bar); - void ply_progress_bar_draw_area (ply_progress_bar_t *bar, -diff --git a/src/plugins/splash/throbgress/plugin.c b/src/plugins/splash/throbgress/plugin.c -index 4016d96..bbcf1b7 100644 ---- a/src/plugins/splash/throbgress/plugin.c -+++ b/src/plugins/splash/throbgress/plugin.c -@@ -316,7 +316,10 @@ view_start_animation (view_t *view) - view->logo_area.y + view->logo_area.height + height / 2); - ply_progress_bar_show (view->progress_bar, - view->display, -- 0, screen_height - ply_progress_bar_get_height (view->progress_bar)); -+ 0, -+ screen_height - BAR_HEIGHT, -+ screen_width, -+ BAR_HEIGHT); - view_redraw (view); - } - --- -2.20.1 - -From 3854d0052ffdd308025a9822387f24c9c37fc1ef Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 6 Feb 2019 10:08:12 +0100 -Subject: [PATCH 65/82] two-step: Drop background_is_bgrt view_t member - -This is always set to true if plugin->background_bgrt_image is set, so -we can simply check for plugin->background_bgrt_image instead. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 53f19ee..d117d03 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -94,7 +94,6 @@ typedef struct - ply_rectangle_t box_area, lock_area, watermark_area, dialog_area; - ply_trigger_t *end_trigger; - ply_pixel_buffer_t *background_buffer; -- bool background_is_bgrt; - } view_t; - - struct _ply_boot_splash_plugin -@@ -380,7 +379,6 @@ view_set_bgrt_background (view_t *view) - ply_pixel_buffer_fill_with_buffer (view->background_buffer, bgrt_buffer, x_offset, y_offset); - ply_pixel_buffer_free (bgrt_buffer); - } -- view->background_is_bgrt = true; - } - - static bool -@@ -1085,7 +1083,7 @@ draw_background (view_t *view, - */ - if ((plugin->state == PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY || - plugin->state == PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY) && -- view->background_is_bgrt && plugin->dialog_clears_firmware_background) -+ plugin->background_bgrt_image && plugin->dialog_clears_firmware_background) - ply_pixel_buffer_fill_with_hex_color (pixel_buffer, &area, 0); - else if (view->background_buffer != NULL) - ply_pixel_buffer_fill_with_buffer (pixel_buffer, view->background_buffer, 0, 0); --- -2.20.1 - -From 9bfffa925776a74701f509df74ac955f2910c963 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 6 Feb 2019 10:34:56 +0100 -Subject: [PATCH 66/82] two-step: Add per mode settings - -We want theme files to be able to specify different settings for -different modes ("boot-up" / "shutdown" / "updates"). Specifically we -want themes to be able to specify a text for (offline) updates mode to -tell the user what is going on, see the mockups at: -https://wiki.gnome.org/Design/OS/BootProgress - -This commit adds support for per mode settings to the two-step plugins -and for starters moves the UseFirmwareBackground setting there, since we -don't want to show the firmware-background when showing the help-text. - -Follow-up commits will add support for specifying the (optional) per mode -text to show, note eventually we will need to make these texts translatable. - -Signed-off-by: Hans de Goede ---- - .../ply-boot-splash-plugin.h | 3 +- - src/plugins/splash/two-step/plugin.c | 45 ++++++++++++++++++- - themes/bgrt/bgrt.plymouth.in | 10 ++++- - 3 files changed, 55 insertions(+), 3 deletions(-) - -diff --git a/src/libply-splash-core/ply-boot-splash-plugin.h b/src/libply-splash-core/ply-boot-splash-plugin.h -index 710047e..de21319 100644 ---- a/src/libply-splash-core/ply-boot-splash-plugin.h -+++ b/src/libply-splash-core/ply-boot-splash-plugin.h -@@ -39,7 +39,8 @@ typedef enum - PLY_BOOT_SPLASH_MODE_BOOT_UP, - PLY_BOOT_SPLASH_MODE_SHUTDOWN, - PLY_BOOT_SPLASH_MODE_UPDATES, -- PLY_BOOT_SPLASH_MODE_INVALID -+ PLY_BOOT_SPLASH_MODE_INVALID, -+ PLY_BOOT_SPLASH_MODE_COUNT = PLY_BOOT_SPLASH_MODE_UPDATES + 1, - } ply_boot_splash_mode_t; - - typedef struct _ply_boot_splash_plugin ply_boot_splash_plugin_t; -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index d117d03..1a531cb 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -96,10 +96,16 @@ typedef struct - ply_pixel_buffer_t *background_buffer; - } view_t; - -+typedef struct -+{ -+ bool use_firmware_background; -+} mode_settings_t; -+ - struct _ply_boot_splash_plugin - { - ply_event_loop_t *loop; - ply_boot_splash_mode_t mode; -+ mode_settings_t mode_settings[PLY_BOOT_SPLASH_MODE_COUNT]; - ply_image_t *lock_image; - ply_image_t *box_image; - ply_image_t *corner_image; -@@ -137,6 +143,7 @@ struct _ply_boot_splash_plugin - uint32_t is_visible : 1; - uint32_t is_animating : 1; - uint32_t is_idle : 1; -+ uint32_t use_firmware_background : 1; - uint32_t dialog_clears_firmware_background : 1; - }; - -@@ -719,6 +726,22 @@ view_hide_prompt (view_t *view) - ply_label_hide (view->label); - } - -+static void -+load_mode_settings (ply_boot_splash_plugin_t *plugin, -+ ply_key_file_t *key_file, -+ const char *group_name, -+ ply_boot_splash_mode_t mode) -+{ -+ mode_settings_t *settings = &plugin->mode_settings[mode]; -+ -+ settings->use_firmware_background = -+ ply_key_file_get_bool (key_file, group_name, "UseFirmwareBackground"); -+ -+ /* If any mode uses the firmware background, then we need to load it */ -+ if (settings->use_firmware_background) -+ plugin->use_firmware_background = true; -+} -+ - static ply_boot_splash_plugin_t * - create_plugin (ply_key_file_t *key_file) - { -@@ -842,7 +865,11 @@ create_plugin (ply_key_file_t *key_file) - - free (color); - -- if (ply_key_file_get_bool (key_file, "two-step", "UseFirmwareBackground")) -+ load_mode_settings (plugin, key_file, "boot-up", PLY_BOOT_SPLASH_MODE_BOOT_UP); -+ load_mode_settings (plugin, key_file, "shutdown", PLY_BOOT_SPLASH_MODE_SHUTDOWN); -+ load_mode_settings (plugin, key_file, "updates", PLY_BOOT_SPLASH_MODE_UPDATES); -+ -+ if (plugin->use_firmware_background) - plugin->background_bgrt_image = ply_image_new ("/sys/firmware/acpi/bgrt/image"); - - plugin->dialog_clears_firmware_background = -@@ -1070,6 +1097,7 @@ draw_background (view_t *view, - { - ply_boot_splash_plugin_t *plugin; - ply_rectangle_t area; -+ bool use_black_background = false; - - plugin = view->plugin; - -@@ -1078,12 +1106,22 @@ draw_background (view_t *view, - area.width = width; - area.height = height; - -+ /* When using the firmware logo as background and we should not use -+ * it for this mode, use solid black as background. -+ */ -+ if (plugin->background_bgrt_image && -+ !plugin->mode_settings[plugin->mode].use_firmware_background) -+ use_black_background = true; -+ - /* When using the firmware logo as background, use solid black as - * background for dialogs. - */ - if ((plugin->state == PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY || - plugin->state == PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY) && - plugin->background_bgrt_image && plugin->dialog_clears_firmware_background) -+ use_black_background = true; -+ -+ if (use_black_background) - ply_pixel_buffer_fill_with_hex_color (pixel_buffer, &area, 0); - else if (view->background_buffer != NULL) - ply_pixel_buffer_fill_with_buffer (pixel_buffer, view->background_buffer, 0, 0); -@@ -1250,6 +1288,8 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, - ply_buffer_t *boot_buffer, - ply_boot_splash_mode_t mode) - { -+ int i; -+ - assert (plugin != NULL); - - plugin->loop = loop; -@@ -1301,6 +1341,9 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, - } else { - ply_image_free (plugin->background_bgrt_image); - plugin->background_bgrt_image = NULL; -+ for (i = 0; i < PLY_BOOT_SPLASH_MODE_COUNT; i++) -+ plugin->mode_settings[i].use_firmware_background = false; -+ plugin->use_firmware_background = false; - } - } - -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index 3cabbca..e93f91c 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -13,5 +13,13 @@ Transition=none - TransitionDuration=0.0 - BackgroundStartColor=0x202020 - BackgroundEndColor=0x202020 --UseFirmwareBackground=true - DialogClearsFirmwareBackground=true -+ -+[boot-up] -+UseFirmwareBackground=true -+ -+[shutdown] -+UseFirmwareBackground=true -+ -+[updates] -+UseFirmwareBackground=true --- -2.20.1 - -From 2b7bad86b314b63c228208c32c0c720cca1a76d7 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 6 Feb 2019 16:58:58 +0100 -Subject: [PATCH 67/82] two-step: Add support for specifying a title and - sub-title in the theme file - -The idea behind this is to allow a splash-screen containing something like this: - - Installing updates... - - Do not turn off your computer - - /-----------------------\ - |Animation / progres-bar| - \-----------------------/ - -As can be seen in the mockups here: -https://wiki.gnome.org/Design/OS/BootProgress - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 92 ++++++++++++++++++++++++++++ - 1 file changed, 92 insertions(+) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 1a531cb..2051240 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -91,6 +91,8 @@ typedef struct - ply_throbber_t *throbber; - ply_label_t *label; - ply_label_t *message_label; -+ ply_label_t *title_label; -+ ply_label_t *subtitle_label; - ply_rectangle_t box_area, lock_area, watermark_area, dialog_area; - ply_trigger_t *end_trigger; - ply_pixel_buffer_t *background_buffer; -@@ -99,6 +101,8 @@ typedef struct - typedef struct - { - bool use_firmware_background; -+ char *title; -+ char *subtitle; - } mode_settings_t; - - struct _ply_boot_splash_plugin -@@ -106,6 +110,7 @@ struct _ply_boot_splash_plugin - ply_event_loop_t *loop; - ply_boot_splash_mode_t mode; - mode_settings_t mode_settings[PLY_BOOT_SPLASH_MODE_COUNT]; -+ char *font; - ply_image_t *lock_image; - ply_image_t *box_image; - ply_image_t *corner_image; -@@ -120,6 +125,10 @@ struct _ply_boot_splash_plugin - double dialog_horizontal_alignment; - double dialog_vertical_alignment; - -+ double title_horizontal_alignment; -+ double title_vertical_alignment; -+ char *title_font; -+ - double watermark_horizontal_alignment; - double watermark_vertical_alignment; - -@@ -179,7 +188,16 @@ view_new (ply_boot_splash_plugin_t *plugin, - plugin->transition_duration); - - view->label = ply_label_new (); -+ ply_label_set_font (view->label, plugin->font); -+ - view->message_label = ply_label_new (); -+ ply_label_set_font (view->message_label, plugin->font); -+ -+ view->title_label = ply_label_new (); -+ ply_label_set_font (view->title_label, plugin->title_font); -+ -+ view->subtitle_label = ply_label_new (); -+ ply_label_set_font (view->subtitle_label, plugin->font); - - return view; - } -@@ -193,6 +211,8 @@ view_free (view_t *view) - ply_throbber_free (view->throbber); - ply_label_free (view->label); - ply_label_free (view->message_label); -+ ply_label_free (view->title_label); -+ ply_label_free (view->subtitle_label); - - if (view->background_buffer != NULL) - ply_pixel_buffer_free (view->background_buffer); -@@ -391,6 +411,7 @@ view_set_bgrt_background (view_t *view) - static bool - view_load (view_t *view) - { -+ unsigned long x, y, width, title_height = 0, subtitle_height = 0; - unsigned long screen_width, screen_height, screen_scale; - ply_boot_splash_plugin_t *plugin; - ply_pixel_buffer_t *buffer; -@@ -466,6 +487,42 @@ view_load (view_t *view) - ply_trace ("this theme has no throbber\n"); - } - -+ if (plugin->mode_settings[plugin->mode].title) { -+ ply_label_set_text (view->title_label, -+ plugin->mode_settings[plugin->mode].title); -+ title_height = ply_label_get_height (view->title_label); -+ } else { -+ ply_label_hide (view->title_label); -+ } -+ -+ if (plugin->mode_settings[plugin->mode].subtitle) { -+ ply_label_set_text (view->subtitle_label, -+ plugin->mode_settings[plugin->mode].subtitle); -+ subtitle_height = ply_label_get_height (view->subtitle_label); -+ } else { -+ ply_label_hide (view->subtitle_label); -+ } -+ -+ y = (screen_height - title_height - 2 * subtitle_height) * plugin->title_vertical_alignment; -+ -+ if (plugin->mode_settings[plugin->mode].title) { -+ width = ply_label_get_width (view->title_label); -+ x = (screen_width - width) * plugin->title_horizontal_alignment; -+ ply_trace ("using %ldx%ld title centered at %ldx%ld for %ldx%ld screen", -+ width, title_height, x, y, screen_width, screen_height); -+ ply_label_show (view->title_label, view->display, x, y); -+ /* Use subtitle_height pixels seperation between title and subtitle */ -+ y += title_height + subtitle_height; -+ } -+ -+ if (plugin->mode_settings[plugin->mode].subtitle) { -+ width = ply_label_get_width (view->subtitle_label); -+ x = (screen_width - width) * plugin->title_horizontal_alignment; -+ ply_trace ("using %ldx%ld subtitle centered at %ldx%ld for %ldx%ld screen", -+ width, subtitle_height, x, y, screen_width, screen_height); -+ ply_label_show (view->subtitle_label, view->display, x, y); -+ } -+ - return true; - } - -@@ -740,6 +797,9 @@ load_mode_settings (ply_boot_splash_plugin_t *plugin, - /* If any mode uses the firmware background, then we need to load it */ - if (settings->use_firmware_background) - plugin->use_firmware_background = true; -+ -+ settings->title = ply_key_file_get_value (key_file, group_name, "Title"); -+ settings->subtitle = ply_key_file_get_value (key_file, group_name, "SubTitle"); - } - - static ply_boot_splash_plugin_t * -@@ -786,6 +846,9 @@ create_plugin (ply_key_file_t *key_file) - - plugin->animation_dir = image_dir; - -+ plugin->font = ply_key_file_get_value (key_file, "two-step", "Font"); -+ plugin->title_font = ply_key_file_get_value (key_file, "two-step", "TitleFont"); -+ - alignment = ply_key_file_get_value (key_file, "two-step", "HorizontalAlignment"); - if (alignment != NULL) - plugin->animation_horizontal_alignment = ply_strtod (alignment); -@@ -828,6 +891,20 @@ create_plugin (ply_key_file_t *key_file) - plugin->dialog_vertical_alignment = .5; - free (alignment); - -+ alignment = ply_key_file_get_value (key_file, "two-step", "TitleHorizontalAlignment"); -+ if (alignment != NULL) -+ plugin->title_horizontal_alignment = ply_strtod (alignment); -+ else -+ plugin->title_horizontal_alignment = .5; -+ free (alignment); -+ -+ alignment = ply_key_file_get_value (key_file, "two-step", "TitleVerticalAlignment"); -+ if (alignment != NULL) -+ plugin->title_vertical_alignment = ply_strtod (alignment); -+ else -+ plugin->title_vertical_alignment = .5; -+ free (alignment); -+ - plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_NONE; - transition = ply_key_file_get_value (key_file, "two-step", "Transition"); - if (transition != NULL) { -@@ -926,6 +1003,8 @@ free_views (ply_boot_splash_plugin_t *plugin) - static void - destroy_plugin (ply_boot_splash_plugin_t *plugin) - { -+ int i; -+ - if (plugin == NULL) - return; - -@@ -960,6 +1039,13 @@ destroy_plugin (ply_boot_splash_plugin_t *plugin) - if (plugin->watermark_image != NULL) - ply_image_free (plugin->watermark_image); - -+ for (i = 0; i < PLY_BOOT_SPLASH_MODE_COUNT; i++) { -+ free (plugin->mode_settings[i].title); -+ free (plugin->mode_settings[i].subtitle); -+ } -+ -+ free (plugin->font); -+ free (plugin->title_font); - free (plugin->animation_dir); - free_views (plugin); - free (plugin); -@@ -1225,6 +1311,12 @@ on_draw (view_t *view, - - ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, &image_area, ply_image_get_data (plugin->header_image)); - } -+ ply_label_draw_area (view->title_label, -+ pixel_buffer, -+ x, y, width, height); -+ ply_label_draw_area (view->subtitle_label, -+ pixel_buffer, -+ x, y, width, height); - } - ply_label_draw_area (view->message_label, - pixel_buffer, --- -2.20.1 - -From c5d7b61dc52064f9653b5d95ce4399e1508b3149 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 7 Feb 2019 17:44:32 +0100 -Subject: [PATCH 68/82] two-step: Add MessageBelowAnimation option - -So far we've always printed messages coming from "plymouth display-message" -in the top left corner. In some cases the theme may want to instead display -the messages below the animation (where they are more prominently visible). - -My first attempt to support this added MessageHorizontal/VerticalAlignment -options. That did not work since we want a more or less fixed distance -between the animation bottom and the message and with screen-heights varying -from 480 to 1200 that is not possible using alignment options to place both -the animation and the message. - -Note the default is unchanged and still is the top left corner. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 46 ++++++++++++++++++++-------- - 1 file changed, 33 insertions(+), 13 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 2051240..c6f99ed 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -96,6 +96,7 @@ typedef struct - ply_rectangle_t box_area, lock_area, watermark_area, dialog_area; - ply_trigger_t *end_trigger; - ply_pixel_buffer_t *background_buffer; -+ int animation_bottom; - } view_t; - - typedef struct -@@ -154,6 +155,7 @@ struct _ply_boot_splash_plugin - uint32_t is_idle : 1; - uint32_t use_firmware_background : 1; - uint32_t dialog_clears_firmware_background : 1; -+ uint32_t message_below_animation : 1; - }; - - ply_boot_splash_plugin_interface_t *ply_boot_splash_plugin_get_interface (void); -@@ -647,6 +649,7 @@ view_start_end_animation (view_t *view, - ply_animation_start (view->end_animation, - view->display, - trigger, x, y); -+ view->animation_bottom = y + height; - } - - static void -@@ -689,6 +692,7 @@ view_start_progress_animation (view_t *view) - plugin->loop, - view->display, x, y); - ply_pixel_display_draw_area (view->display, x, y, width, height); -+ view->animation_bottom = y + height; - } - - /* We don't really know how long shutdown will so -@@ -706,6 +710,7 @@ view_start_progress_animation (view_t *view) - view->display, x, y); - - ply_pixel_display_draw_area (view->display, x, y, width, height); -+ view->animation_bottom = y + height; - } - } - -@@ -952,6 +957,9 @@ create_plugin (ply_key_file_t *key_file) - plugin->dialog_clears_firmware_background = - ply_key_file_get_bool (key_file, "two-step", "DialogClearsFirmwareBackground"); - -+ plugin->message_below_animation = -+ ply_key_file_get_bool (key_file, "two-step", "MessageBelowAnimation"); -+ - progress_function = ply_key_file_get_value (key_file, "two-step", "ProgressFunction"); - - if (progress_function != NULL) { -@@ -1668,6 +1676,29 @@ hide_prompt (ply_boot_splash_plugin_t *plugin) - } - - -+static void -+view_show_message (view_t *view, -+ const char *message) -+{ -+ ply_boot_splash_plugin_t *plugin = view->plugin; -+ int x, y, width, height; -+ -+ ply_label_set_text (view->message_label, message); -+ width = ply_label_get_width (view->message_label); -+ height = ply_label_get_height (view->message_label); -+ -+ if (plugin->message_below_animation) { -+ x = (ply_pixel_display_get_width (view->display) - width) * 0.5; -+ y = view->animation_bottom + 10; -+ } else { -+ x = 10; -+ y = 10; -+ } -+ -+ ply_label_show (view->message_label, view->display, x, y); -+ ply_pixel_display_draw_area (view->display, x, y, width, height); -+} -+ - static void - show_message (ply_boot_splash_plugin_t *plugin, - const char *message) -@@ -1676,19 +1707,8 @@ show_message (ply_boot_splash_plugin_t *plugin, - ply_list_node_t *node; - node = ply_list_get_first_node (plugin->views); - while (node != NULL) { -- ply_list_node_t *next_node; -- view_t *view; -- -- view = ply_list_node_get_data (node); -- next_node = ply_list_get_next_node (plugin->views, node); -- -- ply_label_set_text (view->message_label, message); -- ply_label_show (view->message_label, view->display, 10, 10); -- -- ply_pixel_display_draw_area (view->display, 10, 10, -- ply_label_get_width (view->message_label), -- ply_label_get_height (view->message_label)); -- node = next_node; -+ view_show_message (ply_list_node_get_data (node), message); -+ node = ply_list_get_next_node (plugin->views, node); - } - } - --- -2.20.1 - -From 746a924cbdcaae2068b3e0572478849cda34f7cf Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 8 Feb 2019 22:41:15 +0100 -Subject: [PATCH 69/82] two-step: Add progress-bar support - -Some themes may want to use a progress-bar instead of the throbber for -some modes. This commit adds a new per mode UseProgressBar setting allowing -this. - -One case where this will be used is the offline updates splash-screen -mockup from: https://wiki.gnome.org/Design/OS/BootProgress - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 66 +++++++++++++++++++++++++++- - 1 file changed, 64 insertions(+), 2 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index c6f99ed..32e4294 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -57,6 +57,7 @@ - #include "ply-animation.h" - #include "ply-progress-animation.h" - #include "ply-throbber.h" -+#include "ply-progress-bar.h" - - #include - -@@ -68,6 +69,9 @@ - #define SHOW_ANIMATION_PERCENT 0.9 - #endif - -+#define PROGRESS_BAR_WIDTH 400 -+#define PROGRESS_BAR_HEIGHT 5 -+ - typedef enum - { - PLY_BOOT_SPLASH_DISPLAY_NORMAL, -@@ -88,6 +92,7 @@ typedef struct - ply_entry_t *entry; - ply_animation_t *end_animation; - ply_progress_animation_t *progress_animation; -+ ply_progress_bar_t *progress_bar; - ply_throbber_t *throbber; - ply_label_t *label; - ply_label_t *message_label; -@@ -101,6 +106,7 @@ typedef struct - - typedef struct - { -+ bool use_progress_bar; - bool use_firmware_background; - char *title; - char *subtitle; -@@ -144,6 +150,9 @@ struct _ply_boot_splash_plugin - uint32_t background_end_color; - int background_bgrt_raw_width; - -+ uint32_t progress_bar_bg_color; -+ uint32_t progress_bar_fg_color; -+ - progress_function_t progress_function; - - ply_trigger_t *idle_trigger; -@@ -156,6 +165,7 @@ struct _ply_boot_splash_plugin - uint32_t use_firmware_background : 1; - uint32_t dialog_clears_firmware_background : 1; - uint32_t message_below_animation : 1; -+ uint32_t progress_bar_show_percent_complete : 1; - }; - - ply_boot_splash_plugin_interface_t *ply_boot_splash_plugin_get_interface (void); -@@ -182,6 +192,10 @@ view_new (ply_boot_splash_plugin_t *plugin, - view->entry = ply_entry_new (plugin->animation_dir); - view->progress_animation = ply_progress_animation_new (plugin->animation_dir, - "progress-"); -+ view->progress_bar = ply_progress_bar_new (); -+ ply_progress_bar_set_colors (view->progress_bar, -+ plugin->progress_bar_fg_color, -+ plugin->progress_bar_bg_color); - - view->throbber = ply_throbber_new (plugin->animation_dir, - "throbber-"); -@@ -210,6 +224,7 @@ view_free (view_t *view) - ply_entry_free (view->entry); - ply_animation_free (view->end_animation); - ply_progress_animation_free (view->progress_animation); -+ ply_progress_bar_free (view->progress_bar); - ply_throbber_free (view->throbber); - ply_label_free (view->label); - ply_label_free (view->message_label); -@@ -683,7 +698,16 @@ view_start_progress_animation (view_t *view) - ply_pixel_display_draw_area (view->display, 0, 0, - screen_width, screen_height); - -- if (view->throbber != NULL) { -+ if (plugin->mode_settings[plugin->mode].use_progress_bar) { -+ width = PROGRESS_BAR_WIDTH; -+ height = PROGRESS_BAR_HEIGHT; -+ x = plugin->animation_horizontal_alignment * screen_width - width / 2.0; -+ y = plugin->animation_vertical_alignment * screen_height - height / 2.0; -+ ply_progress_bar_show (view->progress_bar, view->display, -+ x, y, width, height); -+ ply_pixel_display_draw_area (view->display, x, y, width, height); -+ view->animation_bottom = y + height; -+ } else if (view->throbber != NULL) { - width = ply_throbber_get_width (view->throbber); - height = ply_throbber_get_height (view->throbber); - x = plugin->animation_horizontal_alignment * screen_width - width / 2.0; -@@ -796,6 +820,8 @@ load_mode_settings (ply_boot_splash_plugin_t *plugin, - { - mode_settings_t *settings = &plugin->mode_settings[mode]; - -+ settings->use_progress_bar = -+ ply_key_file_get_bool (key_file, group_name, "UseProgressBar"); - settings->use_firmware_background = - ply_key_file_get_bool (key_file, group_name, "UseFirmwareBackground"); - -@@ -947,6 +973,26 @@ create_plugin (ply_key_file_t *key_file) - - free (color); - -+ color = ply_key_file_get_value (key_file, "two-step", "ProgressBarBackgroundColor"); -+ -+ if (color != NULL) -+ plugin->progress_bar_bg_color = strtol (color, NULL, 0); -+ else -+ plugin->progress_bar_bg_color = 0xffffff; /* white */ -+ -+ free (color); -+ -+ color = ply_key_file_get_value (key_file, "two-step", "ProgressBarForegroundColor"); -+ -+ if (color != NULL) -+ plugin->progress_bar_fg_color = strtol (color, NULL, 0); -+ else -+ plugin->progress_bar_fg_color = 0x000000; /* black */ -+ -+ free (color); -+ -+ plugin->progress_bar_show_percent_complete = ply_key_file_get_bool (key_file, "two-step", "ProgressBarShowPercentComplete"); -+ - load_mode_settings (plugin, key_file, "boot-up", PLY_BOOT_SPLASH_MODE_BOOT_UP); - load_mode_settings (plugin, key_file, "shutdown", PLY_BOOT_SPLASH_MODE_SHUTDOWN); - load_mode_settings (plugin, key_file, "updates", PLY_BOOT_SPLASH_MODE_UPDATES); -@@ -1063,6 +1109,12 @@ static void - start_end_animation (ply_boot_splash_plugin_t *plugin, - ply_trigger_t *trigger) - { -+ if (plugin->mode_settings[plugin->mode].use_progress_bar) { -+ /* Leave the progress-bar at 100% rather then showing the end animation */ -+ ply_trigger_pull (trigger, NULL); -+ return; -+ } -+ - ply_trace ("starting end animation"); - - ply_list_node_t *node; -@@ -1276,7 +1328,10 @@ on_draw (view_t *view, - &view->lock_area, - lock_data); - } else { -- if (view->throbber != NULL && -+ if (plugin->mode_settings[plugin->mode].use_progress_bar) -+ ply_progress_bar_draw_area (view->progress_bar, pixel_buffer, -+ x, y, width, height); -+ else if (view->throbber != NULL && - !ply_throbber_is_stopped (view->throbber)) - ply_throbber_draw_area (view->throbber, pixel_buffer, - x, y, width, height); -@@ -1717,6 +1772,7 @@ system_update (ply_boot_splash_plugin_t *plugin, - int progress) - { - ply_list_node_t *node; -+ char buf[64]; - - if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES) - return; -@@ -1730,6 +1786,12 @@ system_update (ply_boot_splash_plugin_t *plugin, - next_node = ply_list_get_next_node (plugin->views, node); - if (view->progress_animation != NULL) - ply_progress_animation_set_percent_done (view->progress_animation, (double) progress / 100.f); -+ ply_progress_bar_set_percent_done (view->progress_bar, (double) progress / 100.f); -+ if (!ply_progress_bar_is_hidden (view->progress_bar) && -+ plugin->progress_bar_show_percent_complete) { -+ snprintf (buf, sizeof(buf), "%d%% complete", progress); -+ view_show_message (view, buf); -+ } - node = next_node; - } - } --- -2.20.1 - -From 73a44fb1f71d0a246fda64b46ed60cdaac0d1bb7 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 12 Feb 2019 15:15:26 +0100 -Subject: [PATCH 70/82] two-step: Add a per mode setting to suppress messages - -The messages passed to plymouth display-message can be quite verbose, esp. -in the offline-updates case. Combined with some themes now showing their -own prominent title message explaining what is going on this leads to -undesirable repetitive text being shown. - -This commit adds support for a per mode SuppressMessages setting which -allows themes to suppress messages passed to plymouth display-message -on a per mode basis. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 32e4294..9b6abba 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -106,6 +106,7 @@ typedef struct - - typedef struct - { -+ bool suppress_messages; - bool use_progress_bar; - bool use_firmware_background; - char *title; -@@ -820,6 +821,8 @@ load_mode_settings (ply_boot_splash_plugin_t *plugin, - { - mode_settings_t *settings = &plugin->mode_settings[mode]; - -+ settings->suppress_messages = -+ ply_key_file_get_bool (key_file, group_name, "SuppressMessages"); - settings->use_progress_bar = - ply_key_file_get_bool (key_file, group_name, "UseProgressBar"); - settings->use_firmware_background = -@@ -1758,6 +1761,10 @@ static void - show_message (ply_boot_splash_plugin_t *plugin, - const char *message) - { -+ if (plugin->mode_settings[plugin->mode].suppress_messages) { -+ ply_trace ("Suppressing message '%s'", message); -+ return; -+ } - ply_trace ("Showing message '%s'", message); - ply_list_node_t *node; - node = ply_list_get_first_node (plugin->views); --- -2.20.1 - -From 38771c16e441d2109e099e1954ff502d87652f62 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 6 Feb 2019 17:04:04 +0100 -Subject: [PATCH 71/82] themes: Update spinner and bgrt theme offline updates - mode - -Make the spinner and bgrt offline updates mode match the GNOME design -mockups from: https://wiki.gnome.org/Design/OS/BootProgress - -Signed-off-by: Hans de Goede ---- - themes/bgrt/bgrt.plymouth.in | 17 +++++++++++++++-- - themes/spinner/spinner.plymouth.in | 18 +++++++++++++++++- - 2 files changed, 32 insertions(+), 3 deletions(-) - -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index e93f91c..b0899d7 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -4,16 +4,26 @@ Description=Jimmac's spinner theme using the ACPI BGRT graphics as background - ModuleName=two-step - - [two-step] -+Font=Cantarell 12 -+TitleFont=Cantarell Light 30 - ImageDir=@PLYMOUTH_THEME_PATH@/spinner -+DialogHorizontalAlignment=.5 -+DialogVerticalAlignment=.382 -+TitleHorizontalAlignment=.5 -+TitleVerticalAlignment=.382 - HorizontalAlignment=.5 --VerticalAlignment=.75 -+VerticalAlignment=.7 - WatermarkHorizontalAlignment=.5 - WatermarkVerticalAlignment=.96 - Transition=none - TransitionDuration=0.0 - BackgroundStartColor=0x202020 - BackgroundEndColor=0x202020 -+ProgressBarBackgroundColor=0x606060 -+ProgressBarForegroundColor=0xffffff -+ProgressBarShowPercentComplete=true - DialogClearsFirmwareBackground=true -+MessageBelowAnimation=true - - [boot-up] - UseFirmwareBackground=true -@@ -22,4 +32,7 @@ UseFirmwareBackground=true - UseFirmwareBackground=true - - [updates] --UseFirmwareBackground=true -+SuppressMessages=true -+UseProgressBar=true -+Title=Installing Updates... -+SubTitle=Do not turn off your computer -diff --git a/themes/spinner/spinner.plymouth.in b/themes/spinner/spinner.plymouth.in -index 6ba3f42..02e7eb7 100644 ---- a/themes/spinner/spinner.plymouth.in -+++ b/themes/spinner/spinner.plymouth.in -@@ -4,12 +4,28 @@ Description=A theme designed by jimmac that features a simple spinner. - ModuleName=two-step - - [two-step] -+Font=Cantarell 12 -+TitleFont=Cantarell Light 30 - ImageDir=@PLYMOUTH_THEME_PATH@/spinner -+DialogHorizontalAlignment=.5 -+DialogVerticalAlignment=.382 -+TitleHorizontalAlignment=.5 -+TitleVerticalAlignment=.382 - HorizontalAlignment=.5 --VerticalAlignment=.75 -+VerticalAlignment=.7 - WatermarkHorizontalAlignment=.5 - WatermarkVerticalAlignment=.96 - Transition=none - TransitionDuration=0.0 - BackgroundStartColor=0x202020 - BackgroundEndColor=0x202020 -+ProgressBarBackgroundColor=0x606060 -+ProgressBarForegroundColor=0xffffff -+ProgressBarShowPercentComplete=true -+MessageBelowAnimation=true -+ -+[updates] -+SuppressMessages=true -+UseProgressBar=true -+Title=Installing Updates... -+SubTitle=Do not turn off your computer --- -2.20.1 - -From 238e22b64508afa97cde56c2addd3833a18c1d58 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 13 Feb 2019 14:39:42 +0100 -Subject: [PATCH 72/82] logging: Improve logging format - -This commit adds 2 improvemens to the ply_trace logging format: - -1) It prefixes the log messages with timestamps (since system boot) - -2) Previously function-names where right aligned / left padded to 45 -characters. But they were prefixed with a [file:line] prefix which does -not have a fixed width, making the column aligment for the actual messages -fail resulting in hard to read logs. - -This commit fixes 2. by printing " file:line:func" to a -prefix-buffer and then left-aligning / right padding this prefix buffer -to 75 chars. - -The resulting logged lines now look like this: - -00:00:01.741 main.c:1928:check_logging : checking if console messages should be redirected and logged -00:00:01.741 main.c:1937:check_logging : logging will be enabled! - -Signed-off-by: Hans de Goede ---- - src/libply/ply-logger.h | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/src/libply/ply-logger.h b/src/libply/ply-logger.h -index 53d1ad9..0015c0c 100644 ---- a/src/libply/ply-logger.h -+++ b/src/libply/ply-logger.h -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - - typedef struct _ply_logger ply_logger_t; -@@ -88,11 +89,21 @@ bool ply_logger_is_tracing_enabled (ply_logger_t *logger); - _old_errno = errno; \ - if (ply_logger_is_tracing_enabled (logger)) \ - { \ -+ struct timespec timespec = { 0, 0 }; \ -+ char buf[128]; \ -+ clock_gettime (CLOCK_MONOTONIC, ×pec); \ - ply_logger_flush (logger); \ -+ snprintf (buf, sizeof(buf), \ -+ "%02d:%02d:%02d.%03d %s:%d:%s", \ -+ (int)(timespec.tv_sec / 3600), \ -+ (int)((timespec.tv_sec / 60) % 60), \ -+ (int)(timespec.tv_sec % 60), \ -+ (int)(timespec.tv_nsec / 1000000), \ -+ __FILE__, __LINE__, __func__); \ - errno = _old_errno; \ - ply_logger_inject (logger, \ -- "[%s:%d] %45.45s:" format "\n", \ -- __FILE__, __LINE__, __func__, ## args); \ -+ "%-75.75s: " format "\n", \ -+ buf, ## args); \ - ply_logger_flush (logger); \ - errno = _old_errno; \ - } \ --- -2.20.1 - -From d0e26e24d97e5f7f5715b5eb16730d907e21476c Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 16 Jan 2019 12:27:01 +0100 -Subject: [PATCH 73/82] logging: Minor log-message fixes - -This fixes 2 minor issues with our log-messages: -1. ply_trace adds a "\n" itself, so there is no need to pass one extra. -2. Correct spelling of quitting - -Signed-off-by: Hans de Goede ---- - src/libply-splash-graphics/ply-animation.c | 4 ++-- - src/libply/ply-utils.c | 2 +- - src/main.c | 2 +- - src/plugins/renderers/drm/plugin.c | 2 +- - 4 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/src/libply-splash-graphics/ply-animation.c b/src/libply-splash-graphics/ply-animation.c -index 323d9ed..9b6d8ce 100644 ---- a/src/libply-splash-graphics/ply-animation.c -+++ b/src/libply-splash-graphics/ply-animation.c -@@ -261,11 +261,11 @@ ply_animation_add_frames (ply_animation_t *animation) - - number_of_frames = ply_array_get_size (animation->frames); - if (number_of_frames == 0) { -- ply_trace ("%s directory had no files starting with %s\n", -+ ply_trace ("%s directory had no files starting with %s", - animation->image_dir, animation->frames_prefix); - goto out; - } else { -- ply_trace ("animation has %d frames\n", number_of_frames); -+ ply_trace ("animation has %d frames", number_of_frames); - } - - load_finished = true; -diff --git a/src/libply/ply-utils.c b/src/libply/ply-utils.c -index 4ff7b1b..0cadae9 100644 ---- a/src/libply/ply-utils.c -+++ b/src/libply/ply-utils.c -@@ -656,7 +656,7 @@ ply_open_module (const char *module_path) - RTLD_NODELETE | RTLD_NOW | RTLD_LOCAL); - - if (handle == NULL) { -- ply_trace ("Could not load module \"%s\": %s\n", module_path, dlerror ()); -+ ply_trace ("Could not load module \"%s\": %s", module_path, dlerror ()); - if (errno == 0) - errno = ELIBACC; - } -diff --git a/src/main.c b/src/main.c -index ddc1883..9adff3a 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -1123,7 +1123,7 @@ load_devices (state_t *state, - static void - quit_splash (state_t *state) - { -- ply_trace ("quiting splash"); -+ ply_trace ("quitting splash"); - if (state->boot_splash != NULL) { - ply_trace ("freeing splash"); - ply_boot_splash_free (state->boot_splash); -diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c -index 0151f47..88c9d97 100644 ---- a/src/plugins/renderers/drm/plugin.c -+++ b/src/plugins/renderers/drm/plugin.c -@@ -1100,7 +1100,7 @@ get_preferred_mode (drmModeConnector *connector) - - for (i = 0; i < connector->count_modes; i++) - if (connector->modes[i].type & DRM_MODE_TYPE_PREFERRED) { -- ply_trace ("Found preferred mode %dx%d at index %d\n", -+ ply_trace ("Found preferred mode %dx%d at index %d", - connector->modes[i].hdisplay, - connector->modes[i].vdisplay, i); - return &connector->modes[i]; --- -2.20.1 - -From a1920e8af9530b3504811ef04c0400cf7b53da3c Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 16 Jan 2019 12:51:05 +0100 -Subject: [PATCH 74/82] ply-boot-splash: Do not add - ply_boot_splash_update_progress timeout multiple times - -Before this commit when freeing the splash, the following would be logged: - -multiple matching timeouts found for removal -multiple matching timeouts found for removal - -This is caused by us adding the ply_boot_splash_update_progress timeout -handler to the event loop 3 times: 1 on first show, 2 on second show with -a different mode, 3 on becoming idle. - -This commit fixes the 2nd add by stopping the timer when changing modes -and the 3th add by not calling ply_boot_splash_update_progress to update -the progress, as that will re-add itself. Instead this commit directly calls -plugin_interface->on_boot_progress from ply_boot_splash_become_idle. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-boot-splash.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/src/libply-splash-core/ply-boot-splash.c b/src/libply-splash-core/ply-boot-splash.c -index 54c7696..9549ecc 100644 ---- a/src/libply-splash-core/ply-boot-splash.c -+++ b/src/libply-splash-core/ply-boot-splash.c -@@ -476,6 +476,11 @@ ply_boot_splash_show (ply_boot_splash_t *splash, - } else if (splash->mode != PLY_BOOT_SPLASH_MODE_INVALID) { - splash->plugin_interface->hide_splash_screen (splash->plugin, - splash->loop); -+ if (splash->plugin_interface->on_boot_progress != NULL) { -+ ply_event_loop_stop_watching_for_timeout (splash->loop, -+ (ply_event_loop_timeout_handler_t) -+ ply_boot_splash_update_progress, splash); -+ } - } - - ply_trace ("showing splash screen"); -@@ -671,9 +676,12 @@ ply_boot_splash_become_idle (ply_boot_splash_t *splash, - { - assert (splash->idle_trigger == NULL); - -- if (splash->progress != NULL) { -+ if (splash->plugin_interface->on_boot_progress != NULL && -+ splash->progress != NULL) { - ply_progress_set_percentage (splash->progress, 1.0); -- ply_boot_splash_update_progress (splash); -+ splash->plugin_interface->on_boot_progress (splash->plugin, -+ ply_progress_get_time (splash->progress), -+ 1.0); - } - - ply_trace ("telling splash to become idle"); --- -2.20.1 - -From 1de2794731a2b72f20f17670cc5a3ce1df5efcc4 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 13 Feb 2019 15:10:23 +0100 -Subject: [PATCH 75/82] plymouthd.defaults: Change default ShowDelay to 0 - -ShowDelay was added with as goal to reduce the number of jarring / -flickering visual transitions. - -The idea being that if a system boots within 5 seconds, we would avoid -the transition from a black screen to plymouth, instead directly going -to e.g. gdm. - -In practive most modern systems (with SSD) take about 4-7 seconds to -boot, this causes plymouth to only show briefly (aprox. 1 second). - -IOW on some modern systems it quicky flashes by, this "flash" is the end -result of the ShowDelay=5 default which is intended to *reduce* the number -of jarring / flickering visual transitions. - -On older systems the boot will likely take significantly longer then the -5 seconds, so we will show the splash anyways and we might as well show -it right away, so that the user can see something is happening right away. - -Note this has been discussed in more detail in issue #64, which also -contains an alternative much more involved fix for the issues surrounding -SplashDelay, but simply defaulting it to 0 seems to be best. - -Closes #64 - -Signed-off-by: Hans de Goede ---- - src/plymouthd.defaults | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/plymouthd.defaults b/src/plymouthd.defaults -index 4d3b6d4..9e3a342 100644 ---- a/src/plymouthd.defaults -+++ b/src/plymouthd.defaults -@@ -2,5 +2,5 @@ - # upgrades. - [Daemon] - Theme=spinner --ShowDelay=5 -+ShowDelay=0 - DeviceTimeout=5 --- -2.20.1 - -From 1c7ce43983e3e45d65b14b630415989ff349287f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 25 Feb 2019 16:56:16 +0100 -Subject: [PATCH 76/82] two-step: Make ProgressBarShowPercentComplete a per - mode setting - -Make ProgressBarShowPercentComplete a per mode setting, this gives the -theme more flexibility wrt which messages to show in different modes. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 7 ++++--- - themes/bgrt/bgrt.plymouth.in | 2 +- - themes/spinner/spinner.plymouth.in | 2 +- - 3 files changed, 6 insertions(+), 5 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 9b6abba..94b2708 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -107,6 +107,7 @@ typedef struct - typedef struct - { - bool suppress_messages; -+ bool progress_bar_show_percent_complete; - bool use_progress_bar; - bool use_firmware_background; - char *title; -@@ -166,7 +167,6 @@ struct _ply_boot_splash_plugin - uint32_t use_firmware_background : 1; - uint32_t dialog_clears_firmware_background : 1; - uint32_t message_below_animation : 1; -- uint32_t progress_bar_show_percent_complete : 1; - }; - - ply_boot_splash_plugin_interface_t *ply_boot_splash_plugin_get_interface (void); -@@ -823,6 +823,8 @@ load_mode_settings (ply_boot_splash_plugin_t *plugin, - - settings->suppress_messages = - ply_key_file_get_bool (key_file, group_name, "SuppressMessages"); -+ settings->progress_bar_show_percent_complete = -+ ply_key_file_get_bool (key_file, group_name, "ProgressBarShowPercentComplete"); - settings->use_progress_bar = - ply_key_file_get_bool (key_file, group_name, "UseProgressBar"); - settings->use_firmware_background = -@@ -994,7 +996,6 @@ create_plugin (ply_key_file_t *key_file) - - free (color); - -- plugin->progress_bar_show_percent_complete = ply_key_file_get_bool (key_file, "two-step", "ProgressBarShowPercentComplete"); - - load_mode_settings (plugin, key_file, "boot-up", PLY_BOOT_SPLASH_MODE_BOOT_UP); - load_mode_settings (plugin, key_file, "shutdown", PLY_BOOT_SPLASH_MODE_SHUTDOWN); -@@ -1795,7 +1796,7 @@ system_update (ply_boot_splash_plugin_t *plugin, - ply_progress_animation_set_percent_done (view->progress_animation, (double) progress / 100.f); - ply_progress_bar_set_percent_done (view->progress_bar, (double) progress / 100.f); - if (!ply_progress_bar_is_hidden (view->progress_bar) && -- plugin->progress_bar_show_percent_complete) { -+ plugin->mode_settings[plugin->mode].progress_bar_show_percent_complete) { - snprintf (buf, sizeof(buf), "%d%% complete", progress); - view_show_message (view, buf); - } -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index b0899d7..15bd9ba 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -21,7 +21,6 @@ BackgroundStartColor=0x202020 - BackgroundEndColor=0x202020 - ProgressBarBackgroundColor=0x606060 - ProgressBarForegroundColor=0xffffff --ProgressBarShowPercentComplete=true - DialogClearsFirmwareBackground=true - MessageBelowAnimation=true - -@@ -33,6 +32,7 @@ UseFirmwareBackground=true - - [updates] - SuppressMessages=true -+ProgressBarShowPercentComplete=true - UseProgressBar=true - Title=Installing Updates... - SubTitle=Do not turn off your computer -diff --git a/themes/spinner/spinner.plymouth.in b/themes/spinner/spinner.plymouth.in -index 02e7eb7..40613ba 100644 ---- a/themes/spinner/spinner.plymouth.in -+++ b/themes/spinner/spinner.plymouth.in -@@ -21,11 +21,11 @@ BackgroundStartColor=0x202020 - BackgroundEndColor=0x202020 - ProgressBarBackgroundColor=0x606060 - ProgressBarForegroundColor=0xffffff --ProgressBarShowPercentComplete=true - MessageBelowAnimation=true - - [updates] - SuppressMessages=true -+ProgressBarShowPercentComplete=true - UseProgressBar=true - Title=Installing Updates... - SubTitle=Do not turn off your computer --- -2.20.1 - -From 2eceea2ce790007f77af8bf4f5c9af73f89c94c8 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 25 Feb 2019 15:45:26 +0100 -Subject: [PATCH 77/82] main: Remove private ply_mode_t - -Remove the private ply_mode_t from main.c, this is a 1:1 mirror of -ply_boot_splash_mode_t, so use ply_boot_splash_mode_t directly, leading -to a nice cleanup. - -Signed-off-by: Hans de Goede ---- - src/main.c | 95 +++++++++++++++++------------------------------------- - 1 file changed, 30 insertions(+), 65 deletions(-) - -diff --git a/src/main.c b/src/main.c -index 9adff3a..e406382 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -58,13 +58,6 @@ - #define BOOT_DURATION_FILE PLYMOUTH_TIME_DIRECTORY "/boot-duration" - #define SHUTDOWN_DURATION_FILE PLYMOUTH_TIME_DIRECTORY "/shutdown-duration" - --typedef enum --{ -- PLY_MODE_BOOT, -- PLY_MODE_SHUTDOWN, -- PLY_MODE_UPDATES --} ply_mode_t; -- - typedef struct - { - const char *keys; -@@ -93,7 +86,7 @@ typedef struct - ply_buffer_t *entry_buffer; - ply_list_t *messages; - ply_command_parser_t *command_parser; -- ply_mode_t mode; -+ ply_boot_splash_mode_t mode; - ply_terminal_t *local_console_terminal; - ply_device_manager_t *device_manager; - -@@ -149,7 +142,7 @@ static void toggle_between_splash_and_details (state_t *state); - static void tell_systemd_to_print_details (state_t *state); - static void tell_systemd_to_stop_printing_details (state_t *state); - #endif --static const char *get_cache_file_for_mode (ply_mode_t mode); -+static const char *get_cache_file_for_mode (ply_boot_splash_mode_t mode); - static void on_escape_pressed (state_t *state); - static void on_enter (state_t *state, - const char *line); -@@ -163,30 +156,6 @@ static void on_quit (state_t *state, - static bool sh_is_init (state_t *state); - static void cancel_pending_delayed_show (state_t *state); - --static ply_boot_splash_mode_t --get_splash_mode_from_mode (ply_mode_t mode) --{ -- ply_boot_splash_mode_t splash_mode; -- switch (mode) { -- case PLY_MODE_BOOT: -- splash_mode = PLY_BOOT_SPLASH_MODE_BOOT_UP; -- break; -- case PLY_MODE_SHUTDOWN: -- splash_mode = PLY_BOOT_SPLASH_MODE_SHUTDOWN; -- break; -- case PLY_MODE_UPDATES: -- splash_mode = PLY_BOOT_SPLASH_MODE_UPDATES; -- break; -- default: -- splash_mode = PLY_BOOT_SPLASH_MODE_INVALID; -- break; -- } -- -- assert (splash_mode != PLY_BOOT_SPLASH_MODE_INVALID); -- -- return splash_mode; --} -- - static void - on_session_output (state_t *state, - const char *output, -@@ -220,8 +189,6 @@ static void - on_change_mode (state_t *state, - const char *mode) - { -- ply_boot_splash_mode_t splash_mode; -- - if (state->boot_splash == NULL) { - ply_trace ("no splash set"); - return; -@@ -229,17 +196,15 @@ on_change_mode (state_t *state, - - ply_trace ("updating mode to '%s'", mode); - if (strcmp (mode, "boot-up") == 0) -- state->mode = PLY_MODE_BOOT; -+ state->mode = PLY_BOOT_SPLASH_MODE_BOOT_UP; - else if (strcmp (mode, "shutdown") == 0) -- state->mode = PLY_MODE_SHUTDOWN; -+ state->mode = PLY_BOOT_SPLASH_MODE_SHUTDOWN; - else if (strcmp (mode, "updates") == 0) -- state->mode = PLY_MODE_UPDATES; -+ state->mode = PLY_BOOT_SPLASH_MODE_UPDATES; - else - return; - -- splash_mode = get_splash_mode_from_mode (state->mode); -- -- if (!ply_boot_splash_show (state->boot_splash, splash_mode)) { -+ if (!ply_boot_splash_show (state->boot_splash, state->mode)) { - ply_trace ("failed to update splash"); - return; - } -@@ -689,20 +654,21 @@ on_newroot (state_t *state, - } - - static const char * --get_cache_file_for_mode (ply_mode_t mode) -+get_cache_file_for_mode (ply_boot_splash_mode_t mode) - { - const char *filename; - -- switch ((int) mode) { -- case PLY_MODE_BOOT: -+ switch (mode) { -+ case PLY_BOOT_SPLASH_MODE_BOOT_UP: - filename = BOOT_DURATION_FILE; - break; -- case PLY_MODE_SHUTDOWN: -+ case PLY_BOOT_SPLASH_MODE_SHUTDOWN: - filename = SHUTDOWN_DURATION_FILE; - break; -- case PLY_MODE_UPDATES: -+ case PLY_BOOT_SPLASH_MODE_UPDATES: - filename = NULL; - break; -+ case PLY_BOOT_SPLASH_MODE_INVALID: - default: - ply_error ("Unhandled case in %s line %d\n", __FILE__, __LINE__); - abort (); -@@ -718,17 +684,18 @@ get_log_file_for_state (state_t *state) - { - const char *filename; - -- switch ((int) state->mode) { -- case PLY_MODE_BOOT: -+ switch (state->mode) { -+ case PLY_BOOT_SPLASH_MODE_BOOT_UP: - if (state->no_boot_log) - filename = NULL; - else - filename = PLYMOUTH_LOG_DIRECTORY "/boot.log"; - break; -- case PLY_MODE_SHUTDOWN: -- case PLY_MODE_UPDATES: -+ case PLY_BOOT_SPLASH_MODE_SHUTDOWN: -+ case PLY_BOOT_SPLASH_MODE_UPDATES: - filename = _PATH_DEVNULL; - break; -+ case PLY_BOOT_SPLASH_MODE_INVALID: - default: - ply_error ("Unhandled case in %s line %d\n", __FILE__, __LINE__); - abort (); -@@ -740,18 +707,19 @@ get_log_file_for_state (state_t *state) - } - - static const char * --get_log_spool_file_for_mode (ply_mode_t mode) -+get_log_spool_file_for_mode (ply_boot_splash_mode_t mode) - { - const char *filename; - -- switch ((int) mode) { -- case PLY_MODE_BOOT: -+ switch (mode) { -+ case PLY_BOOT_SPLASH_MODE_BOOT_UP: - filename = PLYMOUTH_SPOOL_DIRECTORY "/boot.log"; - break; -- case PLY_MODE_SHUTDOWN: -- case PLY_MODE_UPDATES: -+ case PLY_BOOT_SPLASH_MODE_SHUTDOWN: -+ case PLY_BOOT_SPLASH_MODE_UPDATES: - filename = NULL; - break; -+ case PLY_BOOT_SPLASH_MODE_INVALID: - default: - ply_error ("Unhandled case in %s line %d\n", __FILE__, __LINE__); - abort (); -@@ -841,7 +809,7 @@ static bool - plymouth_should_ignore_show_splash_calls (state_t *state) - { - ply_trace ("checking if plymouth should be running"); -- if (state->mode != PLY_MODE_BOOT || ply_kernel_command_line_has_argument ("plymouth.force-splash")) -+ if (state->mode != PLY_BOOT_SPLASH_MODE_BOOT_UP || ply_kernel_command_line_has_argument ("plymouth.force-splash")) - return false; - - if (ply_kernel_command_line_has_argument ("plymouth.ignore-show-splash")) -@@ -1213,7 +1181,7 @@ quit_program (state_t *state) - - #ifdef PLY_ENABLE_DEPRECATED_GDM_TRANSITION - if (state->should_retain_splash && -- state->mode == PLY_MODE_BOOT) -+ state->mode == PLY_BOOT_SPLASH_MODE_BOOT_UP) - tell_gdm_to_transition (); - - #endif -@@ -1737,7 +1705,6 @@ static ply_boot_splash_t * - show_theme (state_t *state, - const char *theme_path) - { -- ply_boot_splash_mode_t splash_mode; - ply_boot_splash_t *splash; - - if (theme_path != NULL) -@@ -1752,9 +1719,7 @@ show_theme (state_t *state, - if (ply_boot_splash_uses_pixel_displays (splash)) - ply_device_manager_activate_renderers (state->device_manager); - -- splash_mode = get_splash_mode_from_mode (state->mode); -- -- if (!ply_boot_splash_show (splash, splash_mode)) { -+ if (!ply_boot_splash_show (splash, state->mode)) { - ply_save_errno (); - ply_boot_splash_free (splash); - ply_restore_errno (); -@@ -1985,7 +1950,7 @@ initialize_environment (state_t *state) - if (getenv ("DISPLAY") != NULL && access (PLYMOUTH_PLUGIN_PATH "renderers/x11.so", F_OK) == 0) - state->default_tty = "/dev/tty"; - if (!state->default_tty) { -- if (state->mode == PLY_MODE_SHUTDOWN) -+ if (state->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) - state->default_tty = SHUTDOWN_TTY; - else - state->default_tty = BOOT_TTY; -@@ -2181,11 +2146,11 @@ main (int argc, - - if (mode_string != NULL) { - if (strcmp (mode_string, "shutdown") == 0) -- state.mode = PLY_MODE_SHUTDOWN; -+ state.mode = PLY_BOOT_SPLASH_MODE_SHUTDOWN; - else if (strcmp (mode_string, "updates") == 0) -- state.mode = PLY_MODE_UPDATES; -+ state.mode = PLY_BOOT_SPLASH_MODE_UPDATES; - else -- state.mode = PLY_MODE_BOOT; -+ state.mode = PLY_BOOT_SPLASH_MODE_BOOT_UP; - - free (mode_string); - } --- -2.20.1 - -From a42915c972ae2d8495333305d4729c25754a42a1 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 25 Feb 2019 16:47:13 +0100 -Subject: [PATCH 78/82] Add new reboot and system-upgrade modes - -Some themes show certain text strings to the user depending on the mode, -see e.g. the shutdown vs reboot mockups of: -https://wiki.gnome.org/Design/OS/BootProgress - -Besides during shutdown vs reboot, we also want different theming for -installing offline (security) updates versus doing an offline OS upgrade. - -To make this possible this commit adds new reboot and system-upgrade -modes which can be specified either when starting plymouthd, or through -plymouth change-mode --. - -Signed-off-by: Hans de Goede ---- - src/client/plymouth.c | 48 +++++++++++-------- - .../ply-boot-splash-plugin.h | 4 +- - src/main.c | 17 ++++++- - src/plugins/splash/fade-throbber/plugin.c | 6 ++- - .../splash/script/script-lib-plymouth.c | 6 +++ - src/plugins/splash/text/plugin.c | 3 +- - src/plugins/splash/throbgress/plugin.c | 12 +++-- - src/plugins/splash/tribar/plugin.c | 3 +- - src/plugins/splash/two-step/plugin.c | 16 +++++-- - systemd-units/plymouth-reboot.service.in | 2 +- - themes/bgrt/bgrt.plymouth.in | 10 ++++ - themes/spinner/spinner.plymouth.in | 7 +++ - 12 files changed, 99 insertions(+), 35 deletions(-) - -diff --git a/src/client/plymouth.c b/src/client/plymouth.c -index 8e613de..a11753a 100644 ---- a/src/client/plymouth.c -+++ b/src/client/plymouth.c -@@ -782,38 +782,42 @@ static void - on_change_mode_request (state_t *state, - const char *command) - { -- bool boot_up; -- bool shutdown; -- bool updates; -+ bool boot_up = false; -+ bool shutdown = false; -+ bool reboot = false; -+ bool updates = false; -+ bool system_upgrade = false; -+ const char *mode = NULL; - -- boot_up = false; -- shutdown = false; -- updates = false; - ply_command_parser_get_command_options (state->command_parser, - command, - "boot-up", &boot_up, - "shutdown", &shutdown, -+ "reboot", &reboot, - "updates", &updates, -+ "system-upgrade", &system_upgrade, - NULL); - -- if (boot_up) { -- ply_boot_client_change_mode (state->client, "boot-up", -- (ply_boot_client_response_handler_t) -- on_success, -- (ply_boot_client_response_handler_t) -- on_failure, state); -- } else if (shutdown) { -- ply_boot_client_change_mode (state->client, "shutdown", -- (ply_boot_client_response_handler_t) -- on_success, -- (ply_boot_client_response_handler_t) -- on_failure, state); -- } else if (updates) { -- ply_boot_client_change_mode (state->client, "updates", -+ if (boot_up) -+ mode = "boot-up"; -+ else if (shutdown) -+ mode = "shutdown"; -+ else if (reboot) -+ mode = "reboot"; -+ else if (updates) -+ mode = "updates"; -+ else if (system_upgrade) -+ mode = "system-upgrade"; -+ -+ if (mode) { -+ ply_boot_client_change_mode (state->client, mode, - (ply_boot_client_response_handler_t) - on_success, - (ply_boot_client_response_handler_t) - on_failure, state); -+ } else { -+ ply_error ("Error no mode specified for 'change-mode' command"); -+ ply_event_loop_exit (state->loop, 1); - } - } - -@@ -891,8 +895,12 @@ main (int argc, - PLY_COMMAND_OPTION_TYPE_FLAG, - "shutdown", "Shutting the system down", - PLY_COMMAND_OPTION_TYPE_FLAG, -+ "reboot", "Rebooting the system", -+ PLY_COMMAND_OPTION_TYPE_FLAG, - "updates", "Applying updates", - PLY_COMMAND_OPTION_TYPE_FLAG, -+ "system-upgrade", "Upgrading the OS to a new version", -+ PLY_COMMAND_OPTION_TYPE_FLAG, - NULL); - - ply_command_parser_add_command (state.command_parser, -diff --git a/src/libply-splash-core/ply-boot-splash-plugin.h b/src/libply-splash-core/ply-boot-splash-plugin.h -index de21319..3fa56ce 100644 ---- a/src/libply-splash-core/ply-boot-splash-plugin.h -+++ b/src/libply-splash-core/ply-boot-splash-plugin.h -@@ -38,9 +38,11 @@ typedef enum - { - PLY_BOOT_SPLASH_MODE_BOOT_UP, - PLY_BOOT_SPLASH_MODE_SHUTDOWN, -+ PLY_BOOT_SPLASH_MODE_REBOOT, - PLY_BOOT_SPLASH_MODE_UPDATES, -+ PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE, - PLY_BOOT_SPLASH_MODE_INVALID, -- PLY_BOOT_SPLASH_MODE_COUNT = PLY_BOOT_SPLASH_MODE_UPDATES + 1, -+ PLY_BOOT_SPLASH_MODE_COUNT = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE + 1, - } ply_boot_splash_mode_t; - - typedef struct _ply_boot_splash_plugin ply_boot_splash_plugin_t; -diff --git a/src/main.c b/src/main.c -index e406382..90e8a5e 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -199,8 +199,12 @@ on_change_mode (state_t *state, - state->mode = PLY_BOOT_SPLASH_MODE_BOOT_UP; - else if (strcmp (mode, "shutdown") == 0) - state->mode = PLY_BOOT_SPLASH_MODE_SHUTDOWN; -+ else if (strcmp (mode, "reboot") == 0) -+ state->mode = PLY_BOOT_SPLASH_MODE_REBOOT; - else if (strcmp (mode, "updates") == 0) - state->mode = PLY_BOOT_SPLASH_MODE_UPDATES; -+ else if (strcmp (mode, "system-upgrade") == 0) -+ state->mode = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE; - else - return; - -@@ -663,9 +667,11 @@ get_cache_file_for_mode (ply_boot_splash_mode_t mode) - filename = BOOT_DURATION_FILE; - break; - case PLY_BOOT_SPLASH_MODE_SHUTDOWN: -+ case PLY_BOOT_SPLASH_MODE_REBOOT: - filename = SHUTDOWN_DURATION_FILE; - break; - case PLY_BOOT_SPLASH_MODE_UPDATES: -+ case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: - filename = NULL; - break; - case PLY_BOOT_SPLASH_MODE_INVALID: -@@ -692,7 +698,9 @@ get_log_file_for_state (state_t *state) - filename = PLYMOUTH_LOG_DIRECTORY "/boot.log"; - break; - case PLY_BOOT_SPLASH_MODE_SHUTDOWN: -+ case PLY_BOOT_SPLASH_MODE_REBOOT: - case PLY_BOOT_SPLASH_MODE_UPDATES: -+ case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: - filename = _PATH_DEVNULL; - break; - case PLY_BOOT_SPLASH_MODE_INVALID: -@@ -716,7 +724,9 @@ get_log_spool_file_for_mode (ply_boot_splash_mode_t mode) - filename = PLYMOUTH_SPOOL_DIRECTORY "/boot.log"; - break; - case PLY_BOOT_SPLASH_MODE_SHUTDOWN: -+ case PLY_BOOT_SPLASH_MODE_REBOOT: - case PLY_BOOT_SPLASH_MODE_UPDATES: -+ case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: - filename = NULL; - break; - case PLY_BOOT_SPLASH_MODE_INVALID: -@@ -1950,7 +1960,8 @@ initialize_environment (state_t *state) - if (getenv ("DISPLAY") != NULL && access (PLYMOUTH_PLUGIN_PATH "renderers/x11.so", F_OK) == 0) - state->default_tty = "/dev/tty"; - if (!state->default_tty) { -- if (state->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) -+ if (state->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || -+ state->mode == PLY_BOOT_SPLASH_MODE_REBOOT) - state->default_tty = SHUTDOWN_TTY; - else - state->default_tty = BOOT_TTY; -@@ -2147,8 +2158,12 @@ main (int argc, - if (mode_string != NULL) { - if (strcmp (mode_string, "shutdown") == 0) - state.mode = PLY_BOOT_SPLASH_MODE_SHUTDOWN; -+ else if (strcmp (mode_string, "reboot") == 0) -+ state.mode = PLY_BOOT_SPLASH_MODE_REBOOT; - else if (strcmp (mode_string, "updates") == 0) - state.mode = PLY_BOOT_SPLASH_MODE_UPDATES; -+ else if (strcmp (mode_string, "system-upgrade") == 0) -+ state.mode = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE; - else - state.mode = PLY_BOOT_SPLASH_MODE_BOOT_UP; - -diff --git a/src/plugins/splash/fade-throbber/plugin.c b/src/plugins/splash/fade-throbber/plugin.c -index a7ab4ef..294dc6f 100644 ---- a/src/plugins/splash/fade-throbber/plugin.c -+++ b/src/plugins/splash/fade-throbber/plugin.c -@@ -468,7 +468,8 @@ view_animate_at_time (view_t *view, - logo_opacity = .5 * sin ((time / 5) * (2 * M_PI)) + .8; - logo_opacity = CLAMP (logo_opacity, 0, 1.0); - -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) - logo_opacity = 1.0; - - if (fabs (logo_opacity - view->logo_opacity) <= DBL_MIN) -@@ -579,7 +580,8 @@ start_animation (ply_boot_splash_plugin_t *plugin) - plugin->start_time = ply_get_timestamp (); - animate_at_time (plugin, plugin->start_time); - -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) - return; - - ply_event_loop_watch_for_timeout (plugin->loop, -diff --git a/src/plugins/splash/script/script-lib-plymouth.c b/src/plugins/splash/script/script-lib-plymouth.c -index 857792b..ca7ad77 100644 ---- a/src/plugins/splash/script/script-lib-plymouth.c -+++ b/src/plugins/splash/script/script-lib-plymouth.c -@@ -70,9 +70,15 @@ static script_return_t plymouth_get_mode (script_state_t *state, - case PLY_BOOT_SPLASH_MODE_SHUTDOWN: - obj = script_obj_new_string ("shutdown"); - break; -+ case PLY_BOOT_SPLASH_MODE_REBOOT: -+ obj = script_obj_new_string ("reboot"); -+ break; - case PLY_BOOT_SPLASH_MODE_UPDATES: - obj = script_obj_new_string ("updates"); - break; -+ case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: -+ obj = script_obj_new_string ("system-upgrade"); -+ break; - case PLY_BOOT_SPLASH_MODE_INVALID: - default: - obj = script_obj_new_string ("unknown"); -diff --git a/src/plugins/splash/text/plugin.c b/src/plugins/splash/text/plugin.c -index 8260daa..7298f5a 100644 ---- a/src/plugins/splash/text/plugin.c -+++ b/src/plugins/splash/text/plugin.c -@@ -184,7 +184,8 @@ view_start_animation (view_t *view) - ply_text_display_clear_screen (view->display); - ply_text_display_hide_cursor (view->display); - -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) { -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) { - ply_text_step_bar_hide (view->step_bar); - return; - } -diff --git a/src/plugins/splash/throbgress/plugin.c b/src/plugins/splash/throbgress/plugin.c -index bbcf1b7..3982821 100644 ---- a/src/plugins/splash/throbgress/plugin.c -+++ b/src/plugins/splash/throbgress/plugin.c -@@ -302,7 +302,8 @@ view_start_animation (view_t *view) - ply_pixel_display_draw_area (view->display, 0, 0, - screen_width, screen_height); - -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) - return; - - plugin->is_idle = false; -@@ -528,7 +529,8 @@ start_animation (ply_boot_splash_plugin_t *plugin) - - plugin->is_animating = true; - -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) - plugin->is_idle = true; - } - -@@ -720,7 +722,8 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin, - ply_list_node_t *node; - double total_duration; - -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES) -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE) - return; - - total_duration = duration / percent_done; -@@ -931,7 +934,8 @@ system_update (ply_boot_splash_plugin_t *plugin, - { - ply_list_node_t *node; - -- if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES) -+ if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES && -+ plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE) - return; - - node = ply_list_get_first_node (plugin->views); -diff --git a/src/plugins/splash/tribar/plugin.c b/src/plugins/splash/tribar/plugin.c -index ecc17ea..bbf5d47 100644 ---- a/src/plugins/splash/tribar/plugin.c -+++ b/src/plugins/splash/tribar/plugin.c -@@ -190,7 +190,8 @@ view_start_animation (view_t *view) - ply_text_display_clear_screen (view->display); - ply_text_display_hide_cursor (view->display); - -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) { -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) { - ply_text_progress_bar_hide (view->progress_bar); - return; - } -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 94b2708..4c57091 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -251,9 +251,11 @@ view_load_end_animation (view_t *view) - switch (plugin->mode) { - case PLY_BOOT_SPLASH_MODE_BOOT_UP: - case PLY_BOOT_SPLASH_MODE_UPDATES: -+ case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: - animation_prefix = "startup-animation-"; - break; - case PLY_BOOT_SPLASH_MODE_SHUTDOWN: -+ case PLY_BOOT_SPLASH_MODE_REBOOT: - animation_prefix = "shutdown-animation-"; - break; - case PLY_BOOT_SPLASH_MODE_INVALID: -@@ -723,7 +725,8 @@ view_start_progress_animation (view_t *view) - /* We don't really know how long shutdown will so - * don't show the progress animation - */ -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) - return; - - if (view->progress_animation != NULL) { -@@ -999,7 +1002,9 @@ create_plugin (ply_key_file_t *key_file) - - load_mode_settings (plugin, key_file, "boot-up", PLY_BOOT_SPLASH_MODE_BOOT_UP); - load_mode_settings (plugin, key_file, "shutdown", PLY_BOOT_SPLASH_MODE_SHUTDOWN); -+ load_mode_settings (plugin, key_file, "reboot", PLY_BOOT_SPLASH_MODE_REBOOT); - load_mode_settings (plugin, key_file, "updates", PLY_BOOT_SPLASH_MODE_UPDATES); -+ load_mode_settings (plugin, key_file, "system-upgrade", PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE); - - if (plugin->use_firmware_background) - plugin->background_bgrt_image = ply_image_new ("/sys/firmware/acpi/bgrt/image"); -@@ -1185,7 +1190,8 @@ start_progress_animation (ply_boot_splash_plugin_t *plugin) - * but it's normally really fast, so just jump to - * the end animation - */ -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) - become_idle (plugin, NULL); - } - -@@ -1575,7 +1581,8 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin, - double duration, - double percent_done) - { -- if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES) -+ if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES || -+ plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE) - return; - - if (plugin->state != PLY_BOOT_SPLASH_DISPLAY_NORMAL) -@@ -1782,7 +1789,8 @@ system_update (ply_boot_splash_plugin_t *plugin, - ply_list_node_t *node; - char buf[64]; - -- if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES) -+ if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES && -+ plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE) - return; - - node = ply_list_get_first_node (plugin->views); -diff --git a/systemd-units/plymouth-reboot.service.in b/systemd-units/plymouth-reboot.service.in -index 1d57789..147f824 100644 ---- a/systemd-units/plymouth-reboot.service.in -+++ b/systemd-units/plymouth-reboot.service.in -@@ -7,6 +7,6 @@ ConditionKernelCommandLine=!plymouth.enable=0 - ConditionVirtualization=!container - - [Service] --ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=shutdown --attach-to-session -+ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=reboot --attach-to-session - ExecStartPost=-@PLYMOUTH_CLIENT_DIR@/plymouth show-splash - Type=forking -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index 15bd9ba..b7c14d2 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -30,9 +30,19 @@ UseFirmwareBackground=true - [shutdown] - UseFirmwareBackground=true - -+[reboot] -+UseFirmwareBackground=true -+ - [updates] - SuppressMessages=true - ProgressBarShowPercentComplete=true - UseProgressBar=true - Title=Installing Updates... - SubTitle=Do not turn off your computer -+ -+[system-upgrade] -+SuppressMessages=true -+ProgressBarShowPercentComplete=true -+UseProgressBar=true -+Title=Upgrading System... -+SubTitle=Do not turn off your computer -diff --git a/themes/spinner/spinner.plymouth.in b/themes/spinner/spinner.plymouth.in -index 40613ba..5e8c1c1 100644 ---- a/themes/spinner/spinner.plymouth.in -+++ b/themes/spinner/spinner.plymouth.in -@@ -29,3 +29,10 @@ ProgressBarShowPercentComplete=true - UseProgressBar=true - Title=Installing Updates... - SubTitle=Do not turn off your computer -+ -+[system-upgrade] -+SuppressMessages=true -+ProgressBarShowPercentComplete=true -+UseProgressBar=true -+Title=Upgrading System... -+SubTitle=Do not turn off your computer --- -2.20.1 - -From 921328b1ef1c1ec60350a57c73b76297ea3e8455 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 26 Feb 2019 10:23:06 +0100 -Subject: [PATCH 79/82] Prefix Title and Subtitle theme config keywords with an - underscore - -Prefix Title and Subtitle theme config keywords with an underscore ('_') -so that "intltool-extract --type=gettext/ini" can be used to make the -title and subtitle translatable. - -Signed-off-by: Hans de Goede ---- - src/plugins/splash/two-step/plugin.c | 4 ++-- - themes/bgrt/bgrt.plymouth.in | 8 ++++---- - themes/spinner/spinner.plymouth.in | 8 ++++---- - 3 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 4c57091..098f262 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -837,8 +837,8 @@ load_mode_settings (ply_boot_splash_plugin_t *plugin, - if (settings->use_firmware_background) - plugin->use_firmware_background = true; - -- settings->title = ply_key_file_get_value (key_file, group_name, "Title"); -- settings->subtitle = ply_key_file_get_value (key_file, group_name, "SubTitle"); -+ settings->title = ply_key_file_get_value (key_file, group_name, "_Title"); -+ settings->subtitle = ply_key_file_get_value (key_file, group_name, "_SubTitle"); - } - - static ply_boot_splash_plugin_t * -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index b7c14d2..d6ad9e1 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -37,12 +37,12 @@ UseFirmwareBackground=true - SuppressMessages=true - ProgressBarShowPercentComplete=true - UseProgressBar=true --Title=Installing Updates... --SubTitle=Do not turn off your computer -+_Title=Installing Updates... -+_SubTitle=Do not turn off your computer - - [system-upgrade] - SuppressMessages=true - ProgressBarShowPercentComplete=true - UseProgressBar=true --Title=Upgrading System... --SubTitle=Do not turn off your computer -+_Title=Upgrading System... -+_SubTitle=Do not turn off your computer -diff --git a/themes/spinner/spinner.plymouth.in b/themes/spinner/spinner.plymouth.in -index 5e8c1c1..187b635 100644 ---- a/themes/spinner/spinner.plymouth.in -+++ b/themes/spinner/spinner.plymouth.in -@@ -27,12 +27,12 @@ MessageBelowAnimation=true - SuppressMessages=true - ProgressBarShowPercentComplete=true - UseProgressBar=true --Title=Installing Updates... --SubTitle=Do not turn off your computer -+_Title=Installing Updates... -+_SubTitle=Do not turn off your computer - - [system-upgrade] - SuppressMessages=true - ProgressBarShowPercentComplete=true - UseProgressBar=true --Title=Upgrading System... --SubTitle=Do not turn off your computer -+_Title=Upgrading System... -+_SubTitle=Do not turn off your computer --- -2.20.1 - -From b0ea667525dcbe9bce9d57aa1ae9b59c9a75441f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 26 Feb 2019 11:03:36 +0100 -Subject: [PATCH 80/82] Add support for translating the user visible strings in - some themes - -This commit adds initial translation support, for now translation support -is limited to the user visible strings in some splash plugins and themes, -the daemon and commandline utils output are left untranslated for now. - -Signed-off-by: Hans de Goede ---- - Makefile.am | 6 ++- - configure.ac | 9 +++- - po/LINGUAS | 1 + - po/Makevars | 78 ++++++++++++++++++++++++++++ - po/POTFILES.in | 9 ++++ - po/Rules-themes | 5 ++ - po/nl.po | 37 +++++++++++++ - src/libply/Makefile.am | 1 + - src/libply/ply-i18n.h | 28 ++++++++++ - src/main.c | 3 ++ - src/plugins/splash/two-step/plugin.c | 7 +-- - 11 files changed, 178 insertions(+), 6 deletions(-) - create mode 100644 po/LINGUAS - create mode 100644 po/Makevars - create mode 100644 po/POTFILES.in - create mode 100644 po/Rules-themes - create mode 100644 po/nl.po - create mode 100644 src/libply/ply-i18n.h - -diff --git a/Makefile.am b/Makefile.am -index cb6eedb..2d38de1 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,4 +1,4 @@ --SUBDIRS = src themes images scripts systemd-units -+SUBDIRS = po src themes images scripts systemd-units - - if BUILD_DOCUMENTATION - SUBDIRS += docs -@@ -6,7 +6,7 @@ endif - - DISTCHECK_CONFIGURE_FLAGS = --disable-tests --disable-systemd-integration - --EXTRA_DIST = ChangeLog \ -+EXTRA_DIST = build-tools/config.rpath ChangeLog \ - README - - MAINTAINERCLEANFILES = aclocal.m4 \ -@@ -15,3 +15,5 @@ MAINTAINERCLEANFILES = aclocal.m4 \ - config.sub \ - configure \ - Makefile.in -+ -+ACLOCAL_AMFLAGS = -I m4 -diff --git a/configure.ac b/configure.ac -index 78550d0..9771027 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -15,6 +15,13 @@ AM_INIT_AUTOMAKE([dist-xz no-dist-gzip]) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - AM_MAINTAINER_MODE([enable]) - -+AM_GNU_GETTEXT_VERSION([0.19.8]) -+AM_GNU_GETTEXT([external]) -+AC_PATH_PROG([INTLTOOL_EXTRACT], [intltool-extract]) -+if test x$INTLTOOL_EXTRACT = x; then -+ AC_MSG_ERROR([intltool-extract is required to build plymouth]) -+fi -+ - PKG_PROG_PKG_CONFIG - LT_INIT([dlopen disable-static pic-only]) - -@@ -286,7 +293,7 @@ AS_AC_EXPAND(PLYMOUTH_LIBDIR, $libdir) - AS_AC_EXPAND(PLYMOUTH_LIBEXECDIR, $libexecdir) - AS_AC_EXPAND(PLYMOUTH_DATADIR, $datadir) - --AC_CONFIG_FILES([Makefile -+AC_CONFIG_FILES([Makefile po/Makefile.in - src/libply/Makefile - src/libply-splash-core/Makefile - src/libply-splash-graphics/Makefile -diff --git a/po/LINGUAS b/po/LINGUAS -new file mode 100644 -index 0000000..bec81d2 ---- /dev/null -+++ b/po/LINGUAS -@@ -0,0 +1 @@ -+nl -diff --git a/po/Makevars b/po/Makevars -new file mode 100644 -index 0000000..40e01c8 ---- /dev/null -+++ b/po/Makevars -@@ -0,0 +1,78 @@ -+# Makefile variables for PO directory in any package using GNU gettext. -+ -+# Usually the message domain is the same as the package name. -+DOMAIN = $(PACKAGE) -+ -+# These two variables depend on the location of this directory. -+subdir = po -+top_builddir = .. -+ -+# These options get passed to xgettext. -+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ -+ -+# This is the copyright holder that gets inserted into the header of the -+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -+# package. (Note that the msgstr strings, extracted from the package's -+# sources, belong to the copyright holder of the package.) Translators are -+# expected to transfer the copyright for their translations to this person -+# or entity, or to disclaim their copyright. The empty string stands for -+# the public domain; in this case the translators are expected to disclaim -+# their copyright. -+COPYRIGHT_HOLDER = Plymouth contributors -+ -+# This tells whether or not to prepend "GNU " prefix to the package -+# name that gets inserted into the header of the $(DOMAIN).pot file. -+# Possible values are "yes", "no", or empty. If it is empty, try to -+# detect it automatically by scanning the files in $(top_srcdir) for -+# "GNU packagename" string. -+PACKAGE_GNU = no -+ -+# This is the email address or URL to which the translators shall report -+# bugs in the untranslated strings: -+# - Strings which are not entire sentences, see the maintainer guidelines -+# in the GNU gettext documentation, section 'Preparing Strings'. -+# - Strings which use unclear terms or require additional context to be -+# understood. -+# - Strings which make invalid assumptions about notation of date, time or -+# money. -+# - Pluralisation problems. -+# - Incorrect English spelling. -+# - Incorrect formatting. -+# It can be your email address, or a mailing list address where translators -+# can write to without being subscribed, or the URL of a web page through -+# which the translators can contact you. -+MSGID_BUGS_ADDRESS = -+ -+# This is the list of locale categories, beyond LC_MESSAGES, for which the -+# message catalogs shall be used. It is usually empty. -+EXTRA_LOCALE_CATEGORIES = -+ -+# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' -+# context. Possible values are "yes" and "no". Set this to yes if the -+# package uses functions taking also a message context, like pgettext(), or -+# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. -+USE_MSGCTXT = no -+ -+# These options get passed to msgmerge. -+# Useful options are in particular: -+# --previous to keep previous msgids of translated messages, -+# --quiet to reduce the verbosity. -+MSGMERGE_OPTIONS = -+ -+# These options get passed to msginit. -+# If you want to disable line wrapping when writing PO files, add -+# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and -+# MSGINIT_OPTIONS. -+MSGINIT_OPTIONS = -+ -+# This tells whether or not to regenerate a PO file when $(DOMAIN).pot -+# has changed. Possible values are "yes" and "no". Set this to no if -+# the POT file is checked in the repository and the version control -+# program ignores timestamps. -+PO_DEPENDS_ON_POT = yes -+ -+# This tells whether or not to forcibly update $(DOMAIN).pot and -+# regenerate PO files on "make dist". Possible values are "yes" and -+# "no". Set this to no if the POT file and PO files are maintained -+# externally. -+DIST_DEPENDS_ON_UPDATE_PO = yes -diff --git a/po/POTFILES.in b/po/POTFILES.in -new file mode 100644 -index 0000000..bbce0ef ---- /dev/null -+++ b/po/POTFILES.in -@@ -0,0 +1,9 @@ -+# List of source files which contain translatable strings. -+ -+# For now we only translate the user visible strings in some splash plugins -+# (the daemon and commandline utils output is untranslated for now) -+src/plugins/splash/two-step/plugin.c -+ -+# Generated from the theme.in files by "intltool-extract --type=gettext/ini" -+themes/bgrt/bgrt.plymouth.in.h -+themes/spinner/spinner.plymouth.in.h -diff --git a/po/Rules-themes b/po/Rules-themes -new file mode 100644 -index 0000000..8c7cbc9 ---- /dev/null -+++ b/po/Rules-themes -@@ -0,0 +1,5 @@ -+../themes/bgrt/bgrt.plymouth.in.h: ../themes/bgrt/bgrt.plymouth.in -+ intltool-extract --type=gettext/ini $< -+ -+../themes/spinner/spinner.plymouth.in.h: ../themes/spinner/spinner.plymouth.in -+ intltool-extract --type=gettext/ini $< -diff --git a/po/nl.po b/po/nl.po -new file mode 100644 -index 0000000..f730bce ---- /dev/null -+++ b/po/nl.po -@@ -0,0 +1,37 @@ -+# Dutch translations for plymouth package -+# Nederlandse vertalingen voor het pakket plymouth. -+# Copyright (C) 2019 Plymouth contributors -+# This file is distributed under the same license as the plymouth package. -+# Hans de Goede , 2019. -+# -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?" -+"product=plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"PO-Revision-Date: 2019-02-26 11:19+0100\n" -+"Last-Translator: Hans de Goede \n" -+"Language-Team: Dutch\n" -+"Language: nl\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "%d%% voltooid" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Updates worden uitgevoerd..." -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "Schakel de computer niet uit" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Besturingssysteem upgrade wordt uitgevoerd..." -diff --git a/src/libply/Makefile.am b/src/libply/Makefile.am -index de15808..8f0abd9 100644 ---- a/src/libply/Makefile.am -+++ b/src/libply/Makefile.am -@@ -19,6 +19,7 @@ libply_HEADERS = \ - ply-list.h \ - ply-hashtable.h \ - ply-logger.h \ -+ ply-i18n.h \ - ply-key-file.h \ - ply-progress.h \ - ply-rectangle.h \ -diff --git a/src/libply/ply-i18n.h b/src/libply/ply-i18n.h -new file mode 100644 -index 0000000..94a4035 ---- /dev/null -+++ b/src/libply/ply-i18n.h -@@ -0,0 +1,28 @@ -+/* ply-utils.h - i18n handling -+ * -+ * Copyright (C) 2019 Red Hat, Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Written By: Hans de Goede -+ */ -+#ifndef PLY_I18N_H -+#define PLY_I18N_H -+ -+#ifdef ENABLE_NLS -+#include -+#define _(String) dgettext(PACKAGE, String) -+#else -+#define _(String) (String) -+#endif -+ -+#endif /* PLY_I18N_H */ -+/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ -diff --git a/src/main.c b/src/main.c -index 90e8a5e..b06d29c 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -652,6 +653,8 @@ on_newroot (state_t *state, - chdir (root_dir); - chroot ("."); - chdir ("/"); -+ /* Update local now that we have /usr/share/locale available */ -+ setlocale(LC_ALL, ""); - ply_progress_load_cache (state->progress, get_cache_file_for_mode (state->mode)); - if (state->boot_splash != NULL) - ply_boot_splash_root_mounted (state->boot_splash); -diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c -index 098f262..e8b91ec 100644 ---- a/src/plugins/splash/two-step/plugin.c -+++ b/src/plugins/splash/two-step/plugin.c -@@ -53,6 +53,7 @@ - #include "ply-pixel-buffer.h" - #include "ply-pixel-display.h" - #include "ply-utils.h" -+#include "ply-i18n.h" - - #include "ply-animation.h" - #include "ply-progress-animation.h" -@@ -509,7 +510,7 @@ view_load (view_t *view) - - if (plugin->mode_settings[plugin->mode].title) { - ply_label_set_text (view->title_label, -- plugin->mode_settings[plugin->mode].title); -+ _(plugin->mode_settings[plugin->mode].title)); - title_height = ply_label_get_height (view->title_label); - } else { - ply_label_hide (view->title_label); -@@ -517,7 +518,7 @@ view_load (view_t *view) - - if (plugin->mode_settings[plugin->mode].subtitle) { - ply_label_set_text (view->subtitle_label, -- plugin->mode_settings[plugin->mode].subtitle); -+ _(plugin->mode_settings[plugin->mode].subtitle)); - subtitle_height = ply_label_get_height (view->subtitle_label); - } else { - ply_label_hide (view->subtitle_label); -@@ -1805,7 +1806,7 @@ system_update (ply_boot_splash_plugin_t *plugin, - ply_progress_bar_set_percent_done (view->progress_bar, (double) progress / 100.f); - if (!ply_progress_bar_is_hidden (view->progress_bar) && - plugin->mode_settings[plugin->mode].progress_bar_show_percent_complete) { -- snprintf (buf, sizeof(buf), "%d%% complete", progress); -+ snprintf (buf, sizeof(buf), _("%d%% complete"), progress); - view_show_message (view, buf); - } - node = next_node; --- -2.20.1 - -From 39bd6bd70477b36b8693774372408be21194f2ce Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 4 Mar 2019 10:42:29 +0100 -Subject: [PATCH 81/82] Sync translations with zanata - -Sync the translations with the translations from zanata: -https://fedora.zanata.org/iteration/view/plymouth/master - -Signed-off-by: Hans de Goede ---- - po/LINGUAS | 9 +++++++++ - po/be.po | 35 +++++++++++++++++++++++++++++++++++ - po/cs.po | 35 +++++++++++++++++++++++++++++++++++ - po/de.po | 34 ++++++++++++++++++++++++++++++++++ - po/es.po | 34 ++++++++++++++++++++++++++++++++++ - po/fr.po | 34 ++++++++++++++++++++++++++++++++++ - po/hu.po | 34 ++++++++++++++++++++++++++++++++++ - po/pl.po | 35 +++++++++++++++++++++++++++++++++++ - po/plymouth.pot | 36 ++++++++++++++++++++++++++++++++++++ - po/uk.po | 35 +++++++++++++++++++++++++++++++++++ - po/zh_CN.po | 34 ++++++++++++++++++++++++++++++++++ - 11 files changed, 355 insertions(+) - create mode 100644 po/be.po - create mode 100644 po/cs.po - create mode 100644 po/de.po - create mode 100644 po/es.po - create mode 100644 po/fr.po - create mode 100644 po/hu.po - create mode 100644 po/pl.po - create mode 100644 po/plymouth.pot - create mode 100644 po/uk.po - create mode 100644 po/zh_CN.po - -diff --git a/po/LINGUAS b/po/LINGUAS -index bec81d2..c7af8be 100644 ---- a/po/LINGUAS -+++ b/po/LINGUAS -@@ -1 +1,10 @@ -+be -+cs -+de -+es -+fr -+hu - nl -+pl -+uk -+zh_CN -diff --git a/po/be.po b/po/be.po -new file mode 100644 -index 0000000..4cb3ecd ---- /dev/null -+++ b/po/be.po -@@ -0,0 +1,35 @@ -+# Viktar Siarheichyk , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-03-01 08:51+0000\n" -+"Last-Translator: Viktar Siarheichyk \n" -+"Language-Team: Belarusian\n" -+"Language: be\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "Зроблена %d%% " -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Інсталяцыя абнаўленняў..." -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "Не выключайце кампутар" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Сістэма абнаўляецца..." -+ -diff --git a/po/cs.po b/po/cs.po -new file mode 100644 -index 0000000..d9b2781 ---- /dev/null -+++ b/po/cs.po -@@ -0,0 +1,35 @@ -+# Daniel Rusek , 2019. #zanata -+# Michal Konečný , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-02-26 06:08+0000\n" -+"Last-Translator: Daniel Rusek \n" -+"Language-Team: Czech\n" -+"Language: cs\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "%d%% dokončeno" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Instalace aktualizací..." -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "Nevypínejte počítač" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Aktualizace systému..." -+ -diff --git a/po/de.po b/po/de.po -new file mode 100644 -index 0000000..ab653e2 ---- /dev/null -+++ b/po/de.po -@@ -0,0 +1,34 @@ -+# Thomas Eichhorn , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-03-02 08:34+0000\n" -+"Last-Translator: Thomas Eichhorn \n" -+"Language-Team: German\n" -+"Language: de\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "%d%% abgeschlossen" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Updates werden installiert..." -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "Schalten Sie den Computer nicht aus" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Systemupgrade wird durchgeführt..." -+ -diff --git a/po/es.po b/po/es.po -new file mode 100644 -index 0000000..7beb40e ---- /dev/null -+++ b/po/es.po -@@ -0,0 +1,34 @@ -+# Máximo Castañeda Riloba , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-02-26 08:21+0000\n" -+"Last-Translator: Máximo Castañeda Riloba \n" -+"Language-Team: Spanish\n" -+"Language: es\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "%d%% completado" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Instalando actualizaciones..." -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "No apague su equipo" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Actualizando el sistema..." -+ -diff --git a/po/fr.po b/po/fr.po -new file mode 100644 -index 0000000..2b7f964 ---- /dev/null -+++ b/po/fr.po -@@ -0,0 +1,34 @@ -+# Jean-Baptiste Holcroft , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-02-27 09:41+0000\n" -+"Last-Translator: Jean-Baptiste Holcroft \n" -+"Language-Team: French\n" -+"Language: fr\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=2; plural=(n > 1)\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "%d%%" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Installation des mises à jour…" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "N’éteignez pas votre ordinateur" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Mise à jour du système…" -+ -diff --git a/po/hu.po b/po/hu.po -new file mode 100644 -index 0000000..76e2e94 ---- /dev/null -+++ b/po/hu.po -@@ -0,0 +1,34 @@ -+# Meskó Balázs , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-02-28 03:07+0000\n" -+"Last-Translator: Meskó Balázs \n" -+"Language-Team: Hungarian\n" -+"Language: hu\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "%d%% kész" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Frissítések telepítése…" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "Ne kapcsolja ki a számítógépet" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Rendszer frissítése…" -+ -diff --git a/po/pl.po b/po/pl.po -new file mode 100644 -index 0000000..a3e471c ---- /dev/null -+++ b/po/pl.po -@@ -0,0 +1,35 @@ -+# Piotr Drąg , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-02-26 04:45+0000\n" -+"Last-Translator: Piotr Drąg \n" -+"Language-Team: Polish\n" -+"Language: pl\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -+"|| n%100>=20) ? 1 : 2)\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "Ukończono %d%%" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Instalowanie aktualizacji…" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "Nie należy wyłączać komputera" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Aktualizowanie systemu…" -+ -diff --git a/po/plymouth.pot b/po/plymouth.pot -new file mode 100644 -index 0000000..e4c6139 ---- /dev/null -+++ b/po/plymouth.pot -@@ -0,0 +1,36 @@ -+# SOME DESCRIPTIVE TITLE. -+# Copyright (C) YEAR Plymouth contributors -+# This file is distributed under the same license as the plymouth package. -+# FIRST AUTHOR , YEAR. -+# -+#, fuzzy -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?" -+"product=plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -+"Last-Translator: FULL NAME \n" -+"Language-Team: LANGUAGE \n" -+"Language: \n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=CHARSET\n" -+"Content-Transfer-Encoding: 8bit\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "" -diff --git a/po/uk.po b/po/uk.po -new file mode 100644 -index 0000000..71cc7de ---- /dev/null -+++ b/po/uk.po -@@ -0,0 +1,35 @@ -+# Yuri Chornoivan , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-02-26 04:44+0000\n" -+"Last-Translator: Yuri Chornoivan \n" -+"Language-Team: Ukrainian\n" -+"Language: uk\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "Виконано на %d%%" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Встановлюємо оновлення…" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "Не вимикайте комп'ютер" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Оновлюємо систему…" -+ -diff --git a/po/zh_CN.po b/po/zh_CN.po -new file mode 100644 -index 0000000..9ea6090 ---- /dev/null -+++ b/po/zh_CN.po -@@ -0,0 +1,34 @@ -+# Pany , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-02-27 08:56+0000\n" -+"Last-Translator: Pany \n" -+"Language-Team: Chinese (China)\n" -+"Language: zh_CN\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=1; plural=0\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "当前进度 %d%%" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "正在安装更新……" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "请不要关机" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "正在升级系统……" -+ --- -2.20.1 - -From 4e1c00b89a710c38ba04206875c4d7c7c1d49c75 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 1 Mar 2019 17:22:30 +0100 -Subject: [PATCH 82/82] ply-pixel-buffer: Fix right and bottom edge rendering - of scaled buffers - -When scaling a buffer 2x and calling ply_pixels_interpolate to interpolate -the last row / column, the extra pixels used for pixels would go out of -bounds and be replaced with a black pixel. This causes a 50% dimming of the -last row / column. - -This 50% dimming leads to an ugly darkline when a theme draws 2 images -which are supposed to be joined together. - -This commit fixes this by clipping the coordinates to the source image -limits instead of using black pixels when interpolating right and bottom -edge pixels. - -Signed-off-by: Hans de Goede ---- - src/libply-splash-core/ply-pixel-buffer.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/libply-splash-core/ply-pixel-buffer.c b/src/libply-splash-core/ply-pixel-buffer.c -index 3ce6f78..51f9c4d 100644 ---- a/src/libply-splash-core/ply-pixel-buffer.c -+++ b/src/libply-splash-core/ply-pixel-buffer.c -@@ -667,7 +667,13 @@ ply_pixels_interpolate (uint32_t *bytes, - ix = x + offset_x; - iy = y + offset_y; - -- if (ix < 0 || ix >= width || iy < 0 || iy >= height) -+ if (ix >= width) -+ ix = width - 1; -+ -+ if (iy >= height) -+ ix = height - 1; -+ -+ if (ix < 0 || iy < 0) - pixels[offset_y][offset_x] = 0x00000000; - else - pixels[offset_y][offset_x] = bytes[ix + iy * width]; --- -2.20.1 - -From 8db9e868983fdc3e74fc7beea55b16e06a83890f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 25 Mar 2019 08:13:26 +0100 -Subject: [PATCH 83/84] themes: Update spinner and bgrt background settings - -Update the spinner and bgrt themes background to solid black so that we get -the same background, independent of whether the firmware-splash (ACPI -BGRT extension) is available and to closer match the mock-ups from: - -https://wiki.gnome.org/Design/OS/BootProgress - -Signed-off-by: Hans de Goede ---- - themes/bgrt/bgrt.plymouth.in | 4 ++-- - themes/spinner/Makefile.am | 1 - - themes/spinner/background-tile.png | Bin 79464 -> 0 bytes - themes/spinner/spinner.plymouth.in | 4 ++-- - 4 files changed, 4 insertions(+), 5 deletions(-) - delete mode 100644 themes/spinner/background-tile.png - -diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in -index d6ad9e1..39bfdc5 100644 ---- a/themes/bgrt/bgrt.plymouth.in -+++ b/themes/bgrt/bgrt.plymouth.in -@@ -17,8 +17,8 @@ WatermarkHorizontalAlignment=.5 - WatermarkVerticalAlignment=.96 - Transition=none - TransitionDuration=0.0 --BackgroundStartColor=0x202020 --BackgroundEndColor=0x202020 -+BackgroundStartColor=0x000000 -+BackgroundEndColor=0x000000 - ProgressBarBackgroundColor=0x606060 - ProgressBarForegroundColor=0xffffff - DialogClearsFirmwareBackground=true -diff --git a/themes/spinner/Makefile.am b/themes/spinner/Makefile.am -index 6c3807f..e6e1bb6 100644 ---- a/themes/spinner/Makefile.am -+++ b/themes/spinner/Makefile.am -@@ -2,7 +2,6 @@ themedir = $(datadir)/plymouth/themes/spinner - nodist_theme_DATA = spinner.plymouth - - dist_theme_DATA = \ -- background-tile.png \ - bullet.png \ - entry.png \ - lock.png \ -diff --git a/themes/spinner/background-tile.png b/themes/spinner/background-tile.png -deleted file mode 100644 -index 6b70a2d40790fcbec68b2db067f4f6b0d47ec740..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 79464 -zcmXt<1yGdj*TxCykOf{k7b&HrJC_h71eWdw>F$n2S{g~|1r(&aL%Kn_8|eo59{w|* -zj)U$v%IRPT+ -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 -zZQI$~@9<}KU@;kXN@H7w@<Cy6DdV -zBiCzmE^Ki-)VR3ZpQ`w6hMy_q@k0@G%cZ8syQ~NcLH)8Hb^AuTXBp<0!1K;C62vc$ihrwk`I;5DvE02$lYcCzr -z|9-zXogkZrBDj`aod)6}R`8@CA0fPa7d?zkIPP`ue_6!{qk%wwGX!BBTD=0Yp5<=YU3=AE%~aTUZT8 -zkd>XiUI4p3fGu0ZhnG0P)6|qsTVKE8Eac477d?CEAFtn0ReyN?L5B -zI?r7fahoF^$g_CLx)fgD-cJ2eKws1VDfzEC`_o+tY}7&l3PXsXd$wQy_-dV5Xd3F# -zK6VlabS8SgmmlrCp51C}?=V7=W?>;HBLqr*?OWRFZrh;l3iQbTNW6-BP>-w;$DG$Xg6JPw$$Wht -z&-&5kpC_ycRiR8^_NClvO_d%M%@)z;$BQn3<|-IrhqF=It*tUcV)SG~kibL%{4KTR -z2WWn6ZLJq5GT<_wdZd}&f8{p*;G7k+bzwB9;`OD_NsF3K5pZXQKWQV8PgnYO=YT$i -zj)^_{Mo5sr9isHh$z;P8|0r=Hx+NjL?-}!>0p@g=*}v%N_#d%Of9pV>zxfv}TqtxHrP-@Bne*?>7dz -zy6;MV(WKySX$X|y5OnB2`0p6#xbUK6_rAqrck?u44NYcl~?#>a6S_39f=gl -z?Dndv1pW>hIBtTJ3~2DirG6)d{axWKS~NJFs69eNVQZ;E9HLq#848qC;|tLDu6Y(V -zHmZWLJt3bY(W_}S8k3--Bz}t3a% -zUKUtR2c2J9(lg3;u$H46`i1<8|BG4|mikQnn5s|&aCT_C2g~1368LY>otxliCW|U~ -zU&Fq`+PXiS0nOe8Sr-`^gVT-)Trblo_`=rw$;M4jC~vqYjo@$|%#(=CtJUBqEx7H8 -zuP9^!k~K%`;)z~;=7MEjG^iwpRsLr0lV}uv(#^u>pKeS6sjaQ8zQ7Pbh8qzEM`cvX -z+|yPRQh}cIL=s#O?u090euWKux07kjMg7sscGh3@7umG>j>u%zU|D>000DeT@;EXw -zk~ySl)*#RL_DdEIwmye*-;MCOys>r)aDTQOF*G!^U*C3B5n|!%%*li{03%W|XZcD>ql&ndDdjxW?#yS~#jubUdlWy6 -zS?vPa_YllV@rs58wn%x>ynT<$nD`-DAw=ao=lL$@ggQoM-HfwTBEu(MLKw3wjqO{M -zob4J`8}WA~EG!$CA8^9BBu!1BS7I*(cHHQ-Rc-gj%!p2|oqP%b=Yn%=3!<;_l`oEj53&<%>>CN=uAY*k8Kf$ -zo_&lh_!&?#RIcENSg#E{)Gc5F#CkNbs1!!pwwA$vW3PQrowcBgkcKstdM}$xmjIR)r48cf@1RkvnB5O9xoFn -z5~g;z*L_&V$n@bAnbL1YS_psj>Cd_?qNW{n9qae;va{24!O@llKtbEgII|#P^W4je -z2-otB7}yvwVz09edXOQDbOa&%GBPcF+=+x`iu&D0nb9EcUUfI6c$1?akjShz2d2~R -zo8;Q8!rmI8Sb*^tWUk=wb5`|=*R_-kFwrtT+4jeK8@UraQmEGlUggK>`|4!1A#*4I<2@5Lfqei -zx6L>uv{p>Z_HyrePAyZ1b0qSkbNsIVWZR{%gH5)X12{;M>SX*1Soewp>od2%!{L}e -zfzg_Sn%wLS7^En2xcdC>234BDt+$6QS@t6b&AH;+AQT8L=F!F-#o3?ro?dpy8!p}j -z!apc^ZcylZ#C#rc3t}Qy+c9f|!Rza5uu2RiGO1uGv3OYu95uJ6$?X{!vz;cg{lvG; -zlD?xPgFf$NFsd}GL&xx(Zon7>StZQ!hC%3zBaZAxXsXYzJgb~ -zaspmvetTnMBwSr7nWz$-T*EmI0x|I3FN{S@yK>Q<>C6|U03}$Ae+JHPgP?%Q*1 -zQ(owE^(>72v;J(IRJ$1z<;eIoj|V~^;agdRLl*BZMR*sBnUM=5VmC`JSaBlP^YM+K -z1~e#iTQ-hL|GN*~NJo+hmLVcF7eb5a6-J}CRiyY!gd&A3>T){W!px?Y*UcX9O944yFpSQ+XwQv6&Y9tLS= -z`*0iAyYp>9S70XRp^}Kjsm2T`fy+{=iOS2HYhNED^uCJiq$z}x1-td-M39Lr45OeC -z3@xPV!Vk1xZA?ZdE-&j-L<8>BT-$Z6IYlg~9>V)y@$BHzZ9luHulIySeCc);r4z!1 -zqK%X(nYhu#@Y1ldf6osA&kmjIu~EqbDJ2l~`ZvH_cZhuBaqPl2F3pPG5QF}%Q8W8* -z_#A8F)ZigmXb(DzfWXcv5$cz2q2TBj| -zs3L?ww&G1sv0EPMuWaC76SYN}gI+Tfah18%EL3U}6} -zrYSz1smE=f$G9;CS!)g8tYNf1TD4h~!6UkD^ZdNxzEVaj&VfTRc&*#HT%Di4wzLh) -zeegvvKyV*Ecb^EAB%)4$a3h=I4b21(rLzA7?A)fN1+yPW6~*k}^W>kt=A-^AoKA6* -zxE_nRw);u^rfAYPk*AY{36C#BvyUE_TK{`2AXw#$=#BJ_#Q$0$H6$oyq3IUV%20l5 -zxVq~7v$FCRe*$ZJeF=g8(ute-EG*GWYId3_g}*nA(R#VQIg`VdOP0r-%s=B-{UjPV$l28SAiU -zaLF-@H@+KvHC{QDSj^#hTQtxLQ0e4x{qGU@w%Rn_S#AjzFA39m!PyX%K;(oQtgm{a -zFI0pyp(k_g|J))vg%AG@kuHk@vWNKN`=M6vI!BzL`sHhV0p~5bkiDKIJwl<|Fl8Pu -zTfOKu3?FLIH;AbM6TF{arC%xs+$Vna6@(vv#*_1?0^)>4xT5o1h5ZwCl3RVadtTZ5 -z+yG|y9~3Kv?e4Wm#%wLx4402Sf+#Rma~f1FrP&sDj)S$sF8fXll -z|2Mxgh5z{E&JD6DSdp&@+P+9v6S3O(NMmj+Nm@vCD-wF&85i)liL&T``mi)musJ>z -zrc?F#2NrV1?a#uTpey4yDRp%=IPa7A#-V6fpK+KI;Hd6*BA`e(+$Qlo!h3odZ4)~? -zR+&R)HN%kwA29yd$Ow+1*LE`Rhkz@IiLE~Lhf@K~w_CC9#^Tu`wa99+e{q*$Ka-0FtLy2YD@6m^LGJ -zG!7bC@|!~C;(EdJgLS17arzU9cq1lB8CCBwrQg(ibu&u))X>=Yr}zRhIBm|RRuFf! -z9a3YKLu;WIkxidbrRjXW^*b7&PZH`v_l_P{bW?j(JZtt5=!#ZR0|@&>82zWj{H#$# -zpE?t2A_F*kX=(@i)uD)}A0WO_76*jJfRWvMpw*+ATv|j!bB-N9QxIe=flVP#5|!!V -zjoeQ2HGTvE^!X6oHBrkJw9Pf_Ib`9vJ{^#vgJKup0EV|2UakAocb?e*EAqtq>@*nsK>h -z&K8&l#=ueqxJ+ACVw0IXWq4cK-VbCLm@`(r_V1cHG!8uUz(VQbR9bq^eDJR@szJx| -z4{Ao1`Jb=)gU%YU()3@O(vjaJ!{Iw)Ibve2`&od_3EN8MBa2y^Xr_^BfRLN2c`3El -z{7v~~K~>brVAlBZ_WzxBzb4=MaM*2u$+8yyV3A&YFs_1+#LyKk4b2yO+E*UY-lBom -zOha-ncE?^f{)v1|I~hs+xP~@<5cQks#`-m;AdAtegz~7aws!i%{am|$Ag&7Ps3#Pv -z-`v9g(XFt9&BDH~wY{}9E4@yi1}yUVt-N%>=Lyg?jSK%JvQW=Ob*RQZ5|!gzS9YzG -ztz27qqtgdHwm{i}f_pa>RUGLzA$c|24aPI&s!)OUh}@4XV3Rj|>H(^sTVq%-(V5Sk -zhI+Se+Mk~UK*m9-p0n9%>Vx#F^e$;GxFYQeH!O}!?X5n6tyO_z%8C>qn-QAnG@hs> -zJ|KG~_6D+5Z5iw0xkFZbTC;;FrljG@1HgXoSdX8h&5@?MV$hY-Z@Jxw!jbB-oD_Jz -z33#sGR7oKKVbId`*>r=y3IiS(11K9IwMi4 -zxK4gOXa9aW^?IUT9PCL^a_2yV#^#(|27k%S5=+Ybp-@FG!Z5WT?=Dyk?0ILKCQ)Q2uk10dDP;&} -z(f~HKmD(4Olbcj|@_$TCtg0VolYI#E%(rm0HHik~41CXeWuQEL-ROlqP(}D*4z7hq~&&87t^joVI*8L9-Uw~(5K)1OL6Xwz<35`j4NH}yir=t%E -zog!}$!QiL@ueJA{HVIJHTzML{cj!{m{bC+}^?*wGwAu{DPw#Zu9~}2%f)vouRPfFh -zIdwFJJg!cwXK{hf;#1-$Nc0*U^FFv>NWQz9F}DU;ca4kOu7#XFf{c}G+rSG06A5p@ -zCZPCT{;>IprH|!r{nkSC -z?olZW=GNQT$S~K7tS1k>iZ0obLHO0!Ncsd+8@8?MOoVzx;<1p)Pp=j@ux!5eUO^yK -z{X9XwK+1oM -zb^VC^#alQZ#|O;G9bb>pZ7+fp1Vg{1+KRRR&QFy-6@j~oa=Ajl!{=HiFclN*(f5(uOC>SIxbM8~=nzP0J63cWJ)Ij+^2#YD3grm9y7>8Jg5qY#KxW@ClU -z7vaYmVa}o|1Uk@ur+^kOoQmqMt!L3Tg -zE-HVyhpL>M(6%m_-ljX_)$P=>G_6Z|lrrBj_2xGA;j-iPwRJ1IC#ba;2ZZ0sl)y#B -zdHg*~z6~zRw|cVIxb=a*`tAy?3Wx_2gA(M7Dokaqdx;Ymu6S?3VAN6R%`^VoQqBqN -z4K*m|r0 -zk&|)LyXfyz_pDs#0!+kxKmKLvUy5$01qoGr_=wygufErgUV;gll;~MqvE*^n7(CO1 -zP@TL_|2R&iZ;DUSLJQ7%IBBOQ_>#t%b&le~)QzLNnM7BeYUtm%OQOyTPJoK^#JqJX -z%?1pL(SrjUq%0{xVp6D@a7J;*m{8OXg&?zs_@~J6cC{`%RkV;pfrQ^#vmZd#c>F|o -zpisWN_aW%2f@mn~KW~7}$Nq1FxP9-U5^JsutjQ_bw9Ap_E05w_{6;On50LwcDj{BZ -ztY78Sc{VHYQ-eUhL(7u7Av*dRkggE4*Zzok@7VaZ>waUubu)x^ul~EP7lA64;BeKu -z9vVzf1v?)^3oNPE*@&GF(7ik2K?{+v9@9KQ#@S87lx+uQDHZ~DusU@0d{MBS`=fN| -zD^uw=B2F8SxR%B5aE79{_|$;K|pf|R(+KoM%{ -zXbnV3ukBKhZWJp`oWWDbUTXsfTzy7vfE{f_Q1FCKlT&y>w>yj&5(R-Y@xJc(uPIuE -ztV(f50yi6OkupY<_`3k|Pj&^I)tPo)PQ(nxpMUc`l+^x>^!EFE1)a~JnOQDDbk>6u -zB%CX}{OxKjM+((OKZHyFeNSO3yrNG-{IorM-9e80yfm!Rd}}BEH_frIN;5%hd82hJ -zxqDnN93b9x;SCy@#r{(dpTGZGd#ohazgfx8E2%S=Xw~``fKJuws$9a -z7eAcrM{_X3fL_uw{0QsRI1dPiM8o*n+r-g7tJ -z)+=GW($|-i#jJ3LAO#-d|FjPh>s@xfXbF@w*VRG2vJ(J}NC8P!# -z#UcD?&sT=eGg(3TGlw^`x(>-4;VHrAw(^j+fhX;hoX&Z13Z-h8T#(9Lew^qaz$6S# -z6)UrgK3z^xLc@kRK7XBw@CSYv1t(54y6oaE1ck~g$Xx!BgSG-jOr6KyrN-;m0k_>K -zjUrb(sA?aet^L#iEg|Pv!WreEH69$$y;u6}^0wDRfE9{!E^Jr=w~6iE1Yj3nsB3O+YRc$XNVK3O -z@zJ-e({qi3b)_y6cs;!qz0IWuvvPN=i71kbeLrne>Mvhpula)BLO=UCHoNr?fPKh_ -ze_6J{bh+#Ov}8>9&GDO=Mh^_um4HV8#ra{-x=<*SwTC8l+ldE$hk6bEh2FP$20#i+ -zHX@Y+rAjDSs;+N5YVa*S1nrq|sYi_@*so6#gQeAXm%kosYi&<5PHI{pVzKZTo=W;Jb@3+7W7QDfSLCrSR*LpP^ -zSR)jAbr`=(UI8anVM-(Z#Fa%6rvBfQBLo@(ctu4#cqr3WAPOP(@?36{m2x^%Z|>Y+ -zQ#Yp^1vb<-yq0p}J}e4_@Vn?qJ=?*y1T~>{Q)>t1dK>^#NF)Bhs-7upj*^%Z^W{L^ -z_G12Tht1)8w%-6yHO23=(et>oW08{dzW@eCaSo?C=QK_}yPflZjnpxGHA#CwmLcW+JxL7Gm=hcS7tPdu7 -zK90FW_YbeyBCX;}&BG5a>#wS~=-Y7n3^XVdah+Ut4S~b^=*G8Q=qg -zx?G2zMTqYh(~HtFa=_;*ekFrn=(^!9Cy4Ou=MQ{gPEnzAG+yH?u&=~lxA8`K#@^Ii= -zETI~iOfu`PHpy-p;!m5oFWz~j*W&4fJK8~5i?!q1RWe#*vtLy|Ihdu=UGnnc!BPhPGZQSXTeZQYwz0|?TFEjBD2FC@JzN!MpcDc -zS{q%JnYHfMVzvX6jh-pVQkvxBM|eHt6z+$YN7@b{bHL4pf2qEHk?IM=`k@Jvm-~&^=d1CMafZbtCY`pl#x&>1W06N1-6&GSr{YT%> -zaO{|^XgUsGcb;4td -zEOAfXhg|>%P=h}IvCQeMDSQQCR{dp;z*g8<7!;C;#)Z!RgH}3`M4?`B!uDABK6FDi -zsVL~~H@46$2r>o%gDEXteOT&!{wYMMXQAIYzQ4am3dylm&$`3+4LG>O$rV)bi&m6;npc}y8Z@IMV~h#O63}ox -z@L?(w0kW{x&HgxQqmdgQTj#CO0x7z9FNJIV(o&2t@ftf0^o}xA-Y@K@FCP@}A)}~i -zOIwY0({GIh{BwDq{}1QWC@%vgh>q>MFaEPAaGg$XT@k-8FE8^}NK3BM!jY^*%uga< -zsAJVeHX}k-+LWUy2kj*3f^U{?$wgT=1mlEaKQuqh2l%^yLGXg#F#i=C6xbZH} -z)Au^+_ai_9(kau?2jVFdZ9zs=wk+n~6{HhZk1xGiBRqPWD$6ElNu&8#3;+@gYg8)F -z#GWt2>}0w?DC4~z^gVR0sRAMRRr8(o?N7&T32%$GzQ3@6WH@tnG#OyY-02CxN!oHx -z)hvatM=NnY&uALzhjw}&*UqUhl%ZLU54;m?5iMui4P1Tt>+u>Nj5|4`@2qmV0M_~KmZ&L+atS#joFGD}og1?)@$KJWtx?mld_kJ~LO -z(5Kg8kCnzPA$yN^7gF(sd&9Y8(6Ip9TAi$`E4LqlMm4?w$n-Pd>GRNax}~w_n<`3@ -z#*!awpmoL~Rm-C_%lU5t>dq7kf~R3U(MB=(pg>|kLWy8xibh=iOMqRng0UmHdu?Rb -z0eyo&g=v7zGp!2QdZ9)0XKZHPib0`a4An{JGA3=A(gZ5?c26cR82a9rH8Y=qDC6AKC|eeGp$Z$21Yj`j1!C={NH28s_4f-+7|2#n&uyQ& -zXt#+-vq5@IuFQ6|I(AbRWxDyLOS{eDSJCIC!$t@U;#bx+p0=MPezmsZTr&tFd$D-# -z70@Uigp{aZ;#1i*BCsVE#GfEXyUW80;VBFZ-JA2sJ6OKJbS=VPDE(4m0lVrXU5z4A -z&iin-Vr#lo4d=qWmanMuD>^l@Bn_$db;nqy9~wW2>%YhC(Etbw|B=$GBZ2@eU~`K_>3 -zcfDY@>*qJLY1*heO^<-izbQHU$tHhd4}|tz$pMIEeUIj=x~?lyW=wF=_3Icu?}Apr -z^);;EHrbY!p?AQR%Lx<2jN?eo->!;p(PwVV0X7G2J`e+-7n}0GD@FWSUbTlmBd&g+ -z^R9v9Gnez=^+ojN%)^Hf)@&Fd1OFeiM9f#gz^n_HV3igd#!19JI6t!Te_)3bnj+8Y -z5zd$2FP-V3Akytg^wYksYyeu(zR>F3C}Ju}cf=Rxjo@sdO$C|MQfBb`KxyLQ4r!@n -zGIX{nbpcN2*YTvO;T5d9kCPxKb0RYiDVar=j$CGCi4M{Z?Mi_tZ4pE+8TD13zvXcF -z^!1`5Eg}-{OMK$GzT8I|IuPWCG$X8ZG@J*7Q#mDPX3{g2_J%++h<&BZ7 -z!MlZ4+%zq)plN}PZ`{&00w=NS5RQ5JWFnyyrCW-G@jI;MW&5e<;mr4+{h(I>0p<}O -z9k7gSyp+(TQ;OWL9jQV`IvSD{a!Zw%l>l65g3ic@g>Qo -zgbmpap3o;*uLmWd`?W|9r$PVkHBGVC$d6USui}j_gp?ffXpq|;&cH}y#K(c&m -zs)2WDh+Kc3J{tT$$mAC%zyYHL68^x?UB_6f_UeS)U_r?_$7zd;cxTJ0=6I;$kc9|D -zp|9nm{>k@ScN)9uU(=3;SM6sg!N+;>SDZT?eEla&x7N8{pyEcrPZmh1UBsl02Pwjc -zr~m-QJE2H7VmQXp+n{L5dI~4x(Zz%kT3J(~C>18#FtrD;S`h+aj*_iwfR>w-m^4xN -zUCk)zvZRPnY)s78?zAb>^(k1tM%&ka^!?mgWLxonI5q(YWfnw-KB@FHk4wt6-#jMS#w1lRm=gBk&j*^jI-r`bx -z`j4p9f+b_{LC%E`p+%+#M_f%w3ZgU1qCR<95G(Y}gy_o0%S(VhIZqIi18E9T_@}hS -z6s|lpA0R9HsL10)z9!8fAVur{h -zY=cxpz4+Iggl4|ICudDZEP}a=(=k5AM)$0%YV@|ft}}sj5q!j!XZr8-w{8Tk(QJ5e -zT3$AxCbV|IjBJ$eeR-{=fL&_0%Gv9e0@N5XEc>*!PMVqb3-oi&Ymy&iZqI?;YiOXTnH{Nx@)tVPM`) -znnS#j4UH$!zsdIb+bH0(>)w=nAJTOz;lEGP_NpGe)Htp^ -zZq6#5UWW(&AsCz$6N97CTzVk_|0auIn#mapgFUZDQ1iY_^f%PcXVg+vjo5O04f5+n -zuau@gMMQM3SLW`S%Vmo>Gmn1k%b57sW4FSbT;mH~H481A4j+TdHICTXs*=8U_e3O( -z%;u)_b^ta54#O$GOdl{E6pKAszoysZatwo+@eaRgAzY=1QpW6zrZd|~FD6NHO;Cl# -z_`d+VTy+xL8X%C@L22>MZ@GT3bH`hhc+Q_r;mTr9+z&f^?Tuit39;5d;Gkyv{Y)4f -z?)w(MAhY@-_w~F1_ZURbY8&UWSTV@NoDv`sx8N^t=Ga~uz;H+kERQ4K6sj%(o*u9l@XM)+ppHoEGw -zHi8}G*f=uEUK$o(AdnX=Ztq|j&gvp^(r-AVnJW8* -zCs{Aif{Ju&{4M%=G+V2u -z3=b`L$bSM=v8*Wzq?q1m|HFirxyT1>H8uCirjnGkkgbH0}U2&Z&!@i1@4sxt~_|ypP<$6*#Zy2_ACN -z_J_Sr{QZeB*0Vy&rq=U;U+(>049T@3OK)_2&d?w%T({a3(_lbQdKj{73pgy))9Yme7QACKSnCztt{I_zWcwdj*3WL$&fh`ewep3(C -zM8$Z_{nTl<$i#d -zX3TWVaSJCCIqg7x7n_QjP)ZAK3{y~0zu$8lwIYt|<=0pDfD6Thhcp#dbW~jq++dB{ -zj0lNqfgKA6a2R1m1K9vI*d5w+6A3;5lClkeMzAik5tou|INDdL`44~%uCIXAS40Lao>hD9&1eH4Y|0gwfwBgpcOjf#dP$U= -zv<{_as>{k(f2rh;XR{|QW9B&d^Zs+#IK`JAEZm53#P~tI9?lDF`YYa##5JfDzW6lq -zvkfc*$ -z$`$q#`Fn%Gnm-Lh#8Hc>RCQA5$!r8u-qOR#viO}$sIrS^Y?dwg6%*O1kbT7fm>^Gh -zkshJs@p4MJ8V+yb{o%W!&Bu$2Q7EJKAKtq%W0eof>`1e@Q<>Yr)>cA0t`-T1h7TU? -zaQJxg3MUX -zrBr;e{E6{%zKb!j_O1ySPmA%|pt>n(Ol}l*gf?M@MQCay+>G>27c+kvs -zCYhbkKcZhPBZ6vc8p8G?*U_t{-r$p$3=DTqBmU*D$!vB%UdWutDt09RR)#VxmbDk& -z0ZTpXVnEiI9iy|`GQ|bw@|ntpy}`o5@;gGl+yL=p3VU&W`^Z3wy$5u^!XfHNw-Dh$>n6V`2KgS^+%3wHL?1UtlnAq7co -zur)4uU{x~Cgdm}79+nrfDE=_v1NidafOjsP)3_6cKvQpA+bP14d*=gMWx8@#gX^sI -zyU6N%D|X#YwZwhaLMR8?r?gUttl~0?4lZxv6&2yMu?F28K%igHoT!NQVY1sA(?M|* -z-wqQbWD;?3u}?1pi%y7jj#r%rhraIR$Gw3$Lv5avr`Dm_f-BcUDJYZifHS;T66PgUL56fW;1!~T*k!fn2 -z4J=c~%~yWHK+p0AMkw#2Z_-$KSHU&RV9Xfeaf|4XH@C>}YaVkMf+$9CBhJj0@wlDGvHBbw3YL1=KR~w`MbEZG+Y`vn5EvG*RG5vTyy^E;A^R^UE?wz -zEi!?2sCw$8BRa4`+&Lh%KforAs9^+5%4Y?XQLiK;h6#ty@wxiC`w6Lh;ACzF_2~c4 -z0th-UvUW$IDmCOdx!_+%f3NAn3m}n%C|}JBb{p6-JdrUU_*KQ`@#O?b;bTzk7O4Vk*c(lvI(}=coQEg2V?x8E%Z=t9tH( -zfX}jIqEsNh!}-YaifhZ$>)T%EZ&3a=GO<$|gsP2h&Ff_R2@jsWTdL5lM->th5=cIY -z&kn8mG!z~_7u`qN;<@S^@OmX%266|__$L0F0-OVE!tpZfe`gPr`+%3sq|PJcexzk= -z>^X%2qRUP@zw^!aW#hge1r@viS>VXslX`#)4J)irZZ -znU%AKvCc`30GZSx-G3%tc5z;hhBn-Wp#-2H>6G8KY{ywUs{9m -z2G+5aQ-|!_@<@LDA5CW&6?ON1eY(3lhED135@{(3QM$WB5Tu5b?rxAyN$Kts1f)y4 -zB-Hyk^Ly6+4KIYXoLTdo6W8ARvvt-*ZBV;vlXvIE{H!gT7t^Yqmbs0DRq;<~z?RIs -z=1+ZKG2ztV_Ju*H9^$SN&@%le_Hf{|kNb{#ub0F0NG+XL(8U0EuURU(*O$(up49H6 -zw#^2M~PRRn-*f+jHpW2OQU!C~fTY24y%S7rsn2>;R@XB~kxd+eo~}$_d-u -zc3)@u_v|h{KBQR$y%l7>F(%zXd?dW7Tn?P@Pk+lO;bIw(#h2$8_f`|&`Xs;DH>(v% -zF{KtKXbU^fs`~i&=meJ=uy|TX!93yIh6t!R(rV5USGFk8*~Ya}f<*z~;`SdbudlVl -z96sC)_HrX*xmTOMZgE5{z -zZ?ShGP_4JzafUcucBTAVA2PYV{?ZH39Ya$*;ciST<{=b=GmQ9eqnNnGj;RUCP1XGD -zF+i^E%9duakcKGI3ExPabQL(UB3B`4mURp)xRk5(>8H_k4=C)K{6=^ywXf -zF)b?XSij!=O)@GAr&>WEpUENrf<%OxvO~l;IaaWmBidn5Hj=+F#Jl?QXXM+A41tdI -z4zDjHE8U*Q+CKzn#5^}8vu@I%$}{Zl^yCYoSy@C$+O3pkdvC|XxkK(o_7oOuG-l3D -zh*Rwj{`-%HK#jYn9wzgozp-^BTcaNUVo6>DuM_(fuj#LWu0m#?s9HlYM{ -z+&Q|bFj0?pepov)3bS-^sk^wORM4{^B+YE$#@cMZ-gZWoQ(*kx$Q0v_4Yhj7+ZIlF -zlhSAeEYRsPqsy>^=vo#C|HuqNo9$gW(ySH)loK7^7Tdu4*bL|8|i052M{qs -zuxhGe&sUMp8{pmxce(boJS1p;9|HBXL*uAu%|s+yssmODBl9QJ*m1%iFGPWx38W!9 -zopS~2WB1oHy-!v*ku@@PxZn3kG~W$bp)g4x`;GML;x;iJ%ar$G!v3AnoMcp&H#OR% -zy^Z9fK1WNmXmBV$YfoM&MhuV+T#Vc63RbS+2f4VotgJZ;wU9G;mQk<_sqSGZ9M#B -zP)$p!(EkO2>4PFhkFu@9RKBqK4MiVJKBz=5Dlp<{^Gy3)A*<9}i5|!4Tv=r^>NHSe -zWu!qdn)_(2lNeR?6w#{WZrm -zhbRqQ{X|nxc;(z%2M33S7RN|_c3R#2pM_+%v+nTd>T04pg8NDgc70hn3CfUOVuj^<<{| -zK<-~V&|)}|edR>U7yn6N5Vmi~4#=EWK{FGb#YB+#ZAtgz9lIiXsQH_DZ;`jY_689r -zA=im6f)9DFzhBOIFQH%dMihxasoqIGOzaXQ9Rl&$Y8qH!U>qnfS(Ne!2_1-7H-u+Y -zH;Xg5%B=mx4_6rDgu^~M0_Syqp+>C8*yC?e-7n>u@EAOU@LOloen>v?vW@rFW3L7y -zMA`6xY&;CbF!mRtiXtOVDp=olq~nL1hsRCAdZK59ewXThUN3@rTU;S(OZ?~6o<|7P -zOxtXUqfTS)#bzsB`yk>PB|74D4^{H?I+ipc&PvFd774%Ima?cZ -zmP>Md)o2wbm$|UNCkX>zzt>(@OUn|Y-BmE0Ev?VIFXpE1;>h1Sq^hNB4HA1-7X5)y -zlonnXal&v<2&cpkxxNc;%^J`B>&tHK-erQs*jqFPdrvzGwAEH@Y}V?L&_}TOx2L9m -z7#5ob7FtHFFu`r@9b{kr{sUK(8vb4F)PY46tkU<5IkmD%9LNMj -z8?77!j)uh7*P?p*Z(GY;P#a7&<%j7(P&DTKpB=tZyGmX(kLXVryVbv)#x-+UcKhD~ -zjS3b_k${;)RGN$+2%>f0yL^>$@HO=a`Kx&03o@w5@fL75rR%E3Swa~gJMc^_Y8H7Z -z?gQkNa?W2vRJ*Qi;MdEfx5&54;N@LN-Azvhde&(^t>NQ~g0=6jlInY0I1J6ZozMQpu0w@k|yQ=DJiZC^GZ?ZQMp|fAA#>>&` -z@l9CY)(-=8L2z7f)f0)(2&65t$X(?0;7?lH2-;PR#pj7YKX9mgeS=w4-dpLUdBviP -zZ^&61%pp36LqwB5Xlo(TctnXbJQgIx;{L{nTea@(dR5_Y@Z*@7j^DDcRk#s3BrK5x4k -z;321tDe_XnY4b+!-5=dP(EM@w>HdzS0t-!DsVAREk@w}~xZ(cy%y#<71CoYP&oTLH -zPB86XMN|uC~<(~EAZrJ!Cxy~_8%nLe^&(6u%C3|Ec -zHYVtu1%dci*y~QSR`A?&8AIK@Xna}pqQv++Kw@8gtjL}@@6THyIg@?!93h7Y=EWO*UCj)R>VU;V{w49{VLPBd^je?L0a)sw`$ -zp}*G_$2=M8WxB=wapeS!dC`U}ZV}c9Qrv@9{lH5fi-5zh;t%wB`b~V;>xDNEBWBh> -zhfrdYMnN-%O`+$C^IwRrD@v6&YICENlfT|O3)4d?V?)dX{#HUs4hganbP*K4y^O8= -z_B+9agZiD?*<*TIn*M%#7X>Bij7nJ>Y9ASH!8^uaocJ)evnBKtOjfn2Q@LB}nJ~Yr -zDCi_*^eN%!elnf4%!1Br&lsTv-Arzbax$D8FCG`9)ntzf&a-J_DNn^z*+_3G=P%{r -zL0G~$1y9&R<&t6FQPm*?4{xlLS5q%=*7Vh1=*o9ss`AbLf`F5(o%3hY11iQNRQ>wR -zq?W?4RkhbMOy|ZyK|ES{7D(FKFvU(EyjzfQ` -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 -zw3Eunzbv3krp!mq&rfL`M}~_ -zQOjGiLNrRRi|5eRLc*<$;N8gBrL>yQaqUq85b&=gsLoPa&@t`ikEi+h%+!Y`34^H* -z-&SDs<9Bg?8na9~vD0-GU=cl(X9*tvXyunz2NxANo$FCc_IV`LgWDJAL(-}*+AQgD -z?O!7;X7%mF*fJb2FSS^VspHqt?P*p}=!_D5N3a_)tEH3aE@KJQVYw$TPfhJ2+w?ok -z6&0NwLM83P;jwxdPi448l1l#}%>1oMN*IAQZT{G+p3l{_;xs1u0+P&Go8*+%yMvaaVR -z>H%yYjI(G3q@);geDu`eOmEXQ3N;M-ntr*wJFyRNuMv&aFi_l0r%#x!v>*xS>MIO$ -zuzX}E(JNB5?tGamU6y-xM2PyFdm(MP6Lvm)uqnXx#b*TpPw3urEi8@97l<}#_2on>G` -zB!-iViw|OhAjo}&mR!aTS}zCVlx7jhhUU>~!g&k+K+o~W4APH*Z-Bu$Hbl-S^zt$U -zX#nKR3?p0YPf6DH^-==K_^;1(?m} -zfU{FKz}`1MKYvoGQ%+JCZ5}NC;$ta`tuiB+5xxK4w&&^Ze!D-(Sa8kcHm&FChkO~f -zsQN>a?z*|T3|kLHV%~opwG;$Ny>IugbAoZ-rOZ7DyoYZ@{mSqu&UuiM0?)(xv -zB#=@EYg-3FlGQ3AWL^Sz1RDhm-@QApt*O!b_}k~Bu>4A5wDKhwt~^4aqcBdg#nURi -zm=@gQ;&-d@fNS9J%ir(S_=VegK4By^q${K*%5R}##6#dHfqlE#v<)a#-T7f9+)I#> -zWBUYea4GQ^^L^Z`7avcMw06{w -za^$~EL6)Md;WDKj1}(WtnQ|^;bclpzol!n%IjSOVShh}~jC<;adh%xzIMI0;MZlDh -z&nG*h`}Il;)}4t?d%99y*my*E6~y$HbgJ7rs<~l1S+@rEB;FD3)1v7TSA&Exw|>M& -z4KVY1R&m -zgbSCc#!P&g%Jm;@{(rC-!#^ou9wv$+J0_XJTJpW^pDuiqaXPF_?yhyjH=EnAtGKSV -zif=yKa0Xf2m92ov;o+g`23i!9lT9kv6YETBm_<(Xl1-U4H#{&43Vqw{?-ib~839EC -zv_&UM9j({N^R3?epPseed-zKwdemw=T1FQ%H8#$h4d@VRk*`J))Jc00OH9W0gr1(B -zPKFFYzbP6X^d><4i>ihNqa}zpgWuJ?K41j!+)=1Ghy54Sv#8Ju$ -zrSGg>F-SySydoI9#%#{rW&7-D^zy_dj~sPbo(W!89gJX`L9n&qb;(dT{!i2VPdV^n -zjshBr*eX9p3c}6FoTz`@X1|Nn@#P1E6*fbpnzRfWRvisOp##t95Dr=g&4049vUajl -zX1g3)BuV;32_xygbElY? -zJLSA%B#Q?5XIX1$?ur*O>F`Hj*sR?r_EVOQk%qeXlQD>fR@7(mjZ01?sf?4=BsIeD -z>C_CP7@B<VG1Isr%yNHJYUhtJqPmP7%eZ>}Hv -zf!Ur5+zDMXiSTecXV1}XJEBDUA{wPdQtblpkFC`X;_140@WK_1qm)bRJe7XuxVruY -z&*sKL_`)1vgBEAFY)Pyz$A>H1=)`ai0(rXrPE4@f$Sjl3i=*Z&OY_TGRWGr20C>E9C?e -zt7bd)&X*N6!!3R>muYHcLoU3fXmaVu`v{|7h!q=@9o3CDn_(A}oXgzG>lw5&M)v}d -z4}d!7`t-8eQT -z_>G~#8UEPK(SVaT#-O5AwP3%;tyNKOIs@0_4y0Tf3&s*e+os4$#ADcWau?)61I5M& -zRBwjYsNLnrhOX+s^(j$fc}R7HLSC75ub -z)b?sIWAq;p`Mb2}7|TUw>=GrsK~YjFaEl^=HjvXqUGIdH1K^a0zVg8q-Nm*{xD2kHik*?+Nq@i2NA`8&ay -zdAwi^DFnehDL%44l*ZukmjQu7STBgXEKtYJo6J^7|6QkdO=YGlqJ~D?A*N;``WH;b(^VU?}Mq3Rniea9y|ND60Bu -z*rk|;9QyT~=D=Lz$)xXmx5Eg^`m>Ul@e8G6lcXvaT2mn-Y7WPd9MJUi?90&a -zI5ml@i4Jk@Z-{)-fnSh<9~tqta&S}u -zxT+DO1&e8h6`eNAo$r7cC033xzXaHjp!Lc6r~o}-suxFN$zQbCnV-(-s{pIIF;xZ; -zR=A(akFRKt{xpAZ-RtiyIfUqz{z?wOQyg2dLg=640fe2u6X00xGiN?n<5!fHX;fDe -ztbcVYe%W-djQFEj<~0RYjt9J5k77wI!L5Hclex^$R}$A9`U6|ea*8zy*~21*fVq;y -zaA>nGX5IvC3epgm8o&aDSWtwR^k`_Fy%PVI5WG;~@U_H%1RY^nK+G;TXQA;wuu{hm -zM-GY`+3jnZk@_J_rxO-}ukxm^!G-W4MeNXh!&3gFDr}KMBiCcDR5d*d=zo$HFVe_% -z@JXEdQEHWcdNoYY{`W94ObR0JhHELrhJ`b>Jfn78ZpJOD@`f>RKCd3rmp&W3W&!@q -zgu7r~qK@;yOE?JRY%7q{og@TH&#>e;k~Rpfx}^FT;VLVe!s;8ayc1Feffop2aXOzv -zRZ}p3*9-fJtOQE_FlroBm}GTrBNHrn5yNzZ9lu*p<0k@5qm2WCxZLtG -zum?bOSAYD7(VLJKsC+*|x7(ocff!@!4)8Xsz^X;xh(pGS*UP||#138zqGVsUECZKr -zo|41t+aRkh9GiA3(4u6*$LeJNG}y#Q$)!{?((!Bw`Z&^ErxpDhhX%KH({$5A^g1-o -z-$ZuF!uS}QKtX)Qc-P;>uyc-PZ)_#|l!UH-RAQCEUbImI&t_BUG(n9dl>7>Gf^`8V -z`$+fB?-q&CT#rO+%hywj7RhF$f(PVl-0KgE}G+M7fcZcoca=X(hzJt>uRoy~34K{OR{De@G5;_*RXQMwShX -zl{Lm0hWF0F{b&o8v|I}}4I?LC$M`i$yY3__q%ZFuWp@w|9qV~8nMvQUhBH#nCa6eHDunt@0fRa&}o`W)}XQh9yOA!a_U+7;Y&63XvEPCVX6z+6)ulOf-r? -zG!4@BshaT=OE9%G&vr3}YA^F-QaI2E?X-l>It2hJXdeG}?2lhvLVgFkAZ3nBD{-rF -z10$B-1HhF-V-&`yZ$}%&X|Q_i(%@GS78I9c6^Hi9p{DL`6X4AP?_8^o>g@-_4-b(v -z{rQfqZ;}#`UD-b5u -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 -zSOq>}e?g(b%t>d@0olMYo=ACmuQ= -ze(*nS7%|EcJMa!xCJuEhzyUX#G}P3pqgr-X=3A<;b*KgYt3p!-)cXq&yX16aQ~;v~MmJ -zT*LCK6`s2odU5oL)zSD27U>as7S1L4vH~!s3KrDrd?3YkQ>&7r%@rJ2f>+ -z)PqdyP-TBj*vg1kgh%S`&r*?)iR;ttF*5&~{s%eP(zlh8{`q$Ofl)}N1VyZEIUZvz -z4l7x@Ldu;R=Z!V#=(EJH8^if_WF~gV2foX9E;php8ZYUY9F)D6#Fj&M@#doc6R>hB -z`YrI;yQu3wIfZ#(CinF6Y6)-0wN-TI8KURURMXA~VHF}q{AxGaL-Jt~3lgZMb>P&5 -zBJPox>bU?XrrBX1-ce2jtV>J0M!24K<6%P72UFr|QGviC-!Us`^TlFA?HHVKu3>f` -z|M|4(_E=`ZOp7Tyzn`3^mz&)IqDqSUGCsBCEQa9WfZU0rO+v8Ms5gWK%}^L~8{iu! -z&)HeYS7s9elmba8y(92UxkLX{hvel1d3YS?3ZIsK`+>w)W0|h}>y0IK;hL%8flc-+ -zL)#|$P_1G@qynN2jOh25Tl$j<#5f25qq0{U1h2ticGTpA+*V~N4#*EYc?bs&IudJ9hEup>i<@Qp{ -z`ich6SwTMecu0(^A>rS^7Z0Fwi0dDi@CK6H)s{&pXRdDbwaO?cLej|vLT2)yNLpRI -z5!lEHACU0WojT1G7+t&J_P#5k_2OP4XOsaQr{fU>vF<@SKKm2V%%BbA`CNKW5AM}5 -zQTG9eK34wmRt^y-PSmc8>_(4Bd1Ylw?}iSlGhZL+TBylR{Fl>8=*JKd#?&mLL;p$l -zC`Z*xyGbs4$us{?gjUT!~?_glHFWslX4+ -zP{A6$w;cC?LtT9+Ne($92jdG&+Ign~+a4 -zIy_{**9rncB>(7gxPrR}3P>ltEMcQQKAkBog6!$RMrpIJY7)t66Hsz4^ap{%Efbba!XvZXWh@bD%bcn{ -z7C08mpVZ}hn6>=W3KWHsN3E~wAZmm7BK$VWFCxFYjPo@spwjOk^Mn&iZufU2`|@Qf -zyq(V2bf|_mOY~oXU-@8aH+TG2>=41}qm?ytHy=xo?f;|cEWD!n-Y!lK-8~4>-7vra -zA~7J{AR$Og2qK|?(lvB~}}w -zZK2H=@1F!#e2eVji(x9a&tRL^e85E^JWUr7DwNpOHXq7Wft_gOo+}%3ywbT;HAS5v -zm03wZ;q;C~axkTmqg`5t`Nb7OkGIS?7!0HW?%r4az;-1H7jbc1=gV6rb%veu`koJEM`4jq0{ -zLicwfRTY*XBl`p(3AdworLF#kv91m0@ZUw{m`^+OC2Ky1TqTHkTH!k&C| -z4r5z*vEAQ=kC(F9z8s}izs}Xswe#|E>xU0d$)1}L#{1)kV!~)0TUsYDjA8%9yhZrl -zYU(qJeY=H;EAnmR5TsHL#PoA7xtklW1Bnytx+%7=z5?#?s}Ar0{rej5@2k@8vy$$k -z!o}y9?7n|{?U2AC5dyUVn!|H*6WLbRnXBZzD{rxa0 -zg!CP2_fIH`6nDjdy|%6WIFsmIpnR@qT5b7vw8@BrpIFfga2hVfN-HghbhQw>kQ_c= -zLqoqB@>REf=tfR-YR*~@Woj+{cVe?C*G~x?c9cZ_@u(*Xl^bN~e@YmV6)Tjmdk}e1 -zvwAEceAC^!bL9&thtyP_rrijJJ8C4IJu~|c*FVU={z|y-YMEYCx4u9RE~&ydDb#)Q -z8xLVuDvZ^K1x@rLLI2{eqYMfJ2u&0`K{?u&sp2Ou#v+ZKxD!r?o+xv9g|ehbCnB-f -zOidQuvFUowKz*O9HShO*?wL{1sn@4+wyP?0&%Ol8c04&`DTPt&-Duk_{w~+-w&9Lo -z$P3PT*)rLlOIL|`_Y7N=g3J+M%l;8me}{_MiigSXUAvqvhq}YnxP0Kd3d17VwwiH~ -z!w2-MS6_w!EyW+4)GvYXI1Z;F;GT(kkikCuLiRkZhJ*kF=RQ|4@C(FxtUt9^ZVh3!d!D(9tRr=Vh4d0WR)w){YQZQWF?DN^>| -ziQ-2*ZFKpPe4+B?kUYm#VI;kd*+{_t{@@CB*xg&X(26eP1@K#T?f|VPd{6ni`~${F -zqk2iUFXqPjMJMa85%cPm&dfzpOC-`ifoT{dSt4s0#Lq{C43y0C)AonA)_%=@N6LFi -zmZBYM`~Tz<%3tOAJu10N&aaPQfA6?sy7ykqKvb|nuHyFAAezL_QKw4o8>dJ%4WsZ! -z{eOe3@q9XEHo~EPo(9En60Jgseijl?trhI))o7y|XDejgeOB}0y#ceuZJ^wwQYAs`J?f7B -zXZ_fwr>vhbBun!(u*W^{N_gOagYuR?3b^~%{rz3>OFS`AT<7Tyj@4p;1Y0Ys9a|&22ugP -zw0UV0&<1BcWkCJr0`&Z!YCot)`vUX@sFON&0*QVycRHPKLbGuR#zZ{M>xy?t(Sw+m -z$E;0Lo)Q~O!w=s7bQOB+KkPKpj71+#gI2oFXobjp^8i`}c`%K8%0d=mz55K#7{AF0 -z1ZUhw&H-)*U4xz#xIYpy<}4k2@S|9%Y>$#ACvH?#td*>9-&j@fI8C`q>*(}M|A9F- -z1R{Gl^wxW#t+RjX=(;0*CiKY8p0bbw6_@iHHSq870%T8)6&884kzFN$o*ciET!Oc& -zt7`?mH1gs#kvHxn-!+g^Z%r^a3{vvgp?nE=DZ3N-f-O%UzkOIEE{rJ=3m_fhXmk6$ -z7fn>2dX!O%jZy^E4iRXj-Ef>I#;?cOxB8=R5QkLUoca-eUwvs$IJJN-7tLB?PLpoR -zyL^+!wHgR>-f)GGc#yTuY{&~(@_xy%k^4~+<+Pbn_CsOOVJ-;Qnj24)qQL@4N>A_v -zD}Rp8Vg<{lbHZpz8UrUSwU&i5lS=#A3tXYyUNXCsUpS)vVHOX+c=3Xs>ov@qQfwt} -zjj`p~@F-09!}=s4e$6?v4NWx(jjri~T;Nsv@0kZv>b~^xC;iGKH|sGGM^SMQK|Gdm -zxc+hq;&#FWO~8g)(!Qk`mo?r-Y95@Mn~PtWlK4wa?t8)U_H}oHYm^8nfkOA`q_shf}EoV6ob#Tr=A9E61XXH}VLFvBi2 -zi}apLX-pT(Gi3`C#lAx0>)wrV^z -zeL1ccN?)S(Q4T)|S@XZ#Z`Lv$jr_Y7LSky~%?Bt^DDMnAPGLqc`P{~=Up723#ZLf< -zPa>KaBWkkytSHmMx(!pdbe@JRwZokG_aB?%UlJM9yyR@OO+6%1hcW11nJWx7jBExYn6rdhlKfZ2_E`9`p -zTow7QbxLd~T3uJ(g9dc8Y!34=r>pad=kS&|o$I}!hva{`B(^o4=r5R<{zK>Lz*-YY -zB#?=?0Is%uASIjucl86^_Z32z@T(a1-Dg*T&%4B}^v0pFT#7g`5LeSW*k6%2$JIX9 -zgL&jd^c8n+Z7{O(8bje&5HOAYf+X9swCx;?>^X&xGv^e8$$~|@1HV5U{rox5EP(z% -zVzR}t#q?3jF9DaIu`h^|;*ozXwvTOo0ab -z`rh-5#|QcWEG-C*mbKTTDG`rV?nx58iMOD?Y^L|)89jJdMu3_~=Tn+)K>wlHmWwar -zY*LYAtcvOl*T!xq*p@s{Of*Jd6=kv9gmYcLRomeKoRGJUcU^NhI*6=go(|vNPMGxH -zb4dNLR7H}3>|WUQPbq{R>@A!hjrl{z+bEk3(dvJ#bY`Q@HL0sa+FvqSy*}6&tSK_a -z?-6|KfrKwPJjd-0-p(gr&gYi7U)fMI_h^Jbc2XoB?KNE7XENz$6=s*^^=EL?x--ob -zcs$NNWLzA0d%QAsQ4&+3-W)nj8l>D5jQEQ$9Qid^8-0|;b3FCun~rnTW&&(^H^7!O -zbO+A&C3VpU^W1fkkqF#W0TA^uuku;Uw@OciyzVf`&r?&0oAX6Zk{s0J%Aw-ggXOITkeA7jM0 -zwy+-_3(U;Jy$*fRzlE6?2qQ548%r+{Ra#oAfW8-srY-)jS*|*vLZcu8LQGoCf2@Q{ -z|L#BbA$Ib`cA`YTRN7gR`ugdhAUCj_P_o7&9SXd5+R7pD+L3Y}PsO4f<2|E|tU8w5 -z6;b+oyc;R;O~hFY+T`_;%jJhH;?7|@TmW&&UrJQ<`~W7dc~}>OLnNMKq3wE8H!MMV -z+o3+*W+2L0cA`aA;((BBWGNVC-Sa>T!w}f(IC`lVs8>{Oq#zZ|zcBA~r1LpImskTd -z8+SijjTmn`B6xn)OGXvbPib4S?_KhneP`z8V%cNH=_P!(H~#S*t&5%dD4ia|$ntII -zio9Arju6=)za75xOeCsgNy|$I!8YA+%q1c)#hzdJ*_V>dj2y -zDY12dd^Alj`$rD;Bzbd3BLt!xSCK3dB&W%*lyLP!gNQ6LrJ6iS<;mf=xbH9bwIuqpvagfms-5MtKld}P;fOL5 -z3DV6R0+?JFRul{tc%!GX-8kJYkOaw8BFp^tN3=gfX0DU*Jv03e3=N~i%QJq5(zJHG(~t9!_2;<0OT1^nLa0#U@HN~NvVZ2CH -zeYkD}MQQ9M+0Bq+0R%z{8mX(3QqmJd$h4`$J&6kO{ni4z3-q-S-K`JKio&RaAssqB -zZM2qrr3))6WVS-ZE -z|8^fg7ISC@yJe8-dg}<~UtV5*&>a(J!BvS;QTMsRmLaIr -zpDKR4uWG8KYiX$pN``nCa(^XkzV_J*O;DV9o2OV9#4RM>Zct|b^2OSE&|rDF2`l=k -zSP|F^8)#Z}$2l*T-;akluPk_1ZNvP6LpmNp#~^5qWL(=aujJ=!J#b}ZqOEorbcjKY -z|5Sc$H4-uvdPSJX{gr~OXQHr#klWi>~^XMH`v%`u6}M`L+DSN?^7%H3G_=&p8BMn-lMg!LV`e@j-W2BEbZmbuU&krl;S -zVZ@M8IDdV_cps|slJR1xK?sbG9yI}0EYM8P&r0$_q+Yk*l==uh*KtB?8I3%?)IAo9S5}oE=VECM_>Z8kgDT^Ly8ac%u%mqs)484j>3-56vt)vfnKI4E^;@BHik_P?rkLYi?l_y)(U^aBm{4eBA3X{GEMBMFsv`|7uKdC -zX!99WNfLMtq;dGJwe6es@u!3qNl~v2enU5|nJD5)KD=7hqP=CG99nvmXsTAVMT(da -z53=W;hSs>8oM5U~Ob!sVWXMIbFn_CRgU4njGf3^SFzi{*AY&w?zdwa6_ZO{c637PF -z8oXs~dd(s=g`a%+ngN=`CO)VabWJQ$@hzy?C^lGIWjWZM=$+8kN}bfgR^uxg@p>=L -ze24ZR;}2az@J~;ZWlRPp?f-);3VDm%C>W -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 -z+FT*BQcmuF8=Ld~SKeSorD -zdCl}tHk%oKlRK`2^V3O_=Mg*sG5z4b<` -ztg1r)%gQ#(j06$rO190mx!Bna(HBa#-oOXI(MWf||HNQ%3z(=zKx%YKpRk~q%N>Va -zU0eRxO}zq+D|vpAN78T%D$sX9GXU*u111cO<~nBmJC;n*4N$Zv0EWmm+_+vPUATH+ -z!Uvc&25h4$?`})x5BaBmV~5VZ-IjaS-0<<^$NuV`n>D5&k6N9VtZ&8#O7tE8C*5fz -zFIbOYZYVR6wh;MKBUNxkrcstC;M8q{Cb~%InI!9SvTpvVramV+m?Lx)q-K+j7;Q8l -zR&hr;v>X3|@5*p=o5Qg6SC1w@-}baBWS@}*quLV|97ewifW?)U%o0zQ?zYiM$JR$P#U*GaYUkk2H6{W`CacnfV&VJU{&83OPRjb`XHQrRW!ufv~fSA2b-Q%f0 -z(f52@NHdy`5nrs@v>=S4)MHse6_wM-yzSYHmqY|J$<-gtT}=JkxLJQrc<#6VH8GM| -zs>?KrI-H5wu0SH=^1o(PhO&s9vV;E<;@nJG&XdnCOrANmAm!7Kz^&j1~jE%K=JW%wp|`t -zTN&0O@o5EoTF`-PW7ZqxP&$xKpBv^h}U3 -z{q>JTK|RfW!S$4#$fI9SG8LL^`5ZY!=z*lnhb>U%Y|;Bp*Y11H&AO9I_%V2PxxS5c -zIrOviq-yKNnj=Z7F`6Xk#Z1*<$oj=#0HfaoKMDHx)URU{I@M``nDwq(9(p -zH{gwqyRpw{7Wwe?Q^?w+P0TqOw-=vV)Ee@m1#9@$J!z$A^j2sWeT@)dG3= -z6*L0R94dFSQv=AQYR*2a`qS&Hw_$`3?LL#|5idjr;?YE__=4ifOR(H43XW-z*Py8R -zK%<24w7PMuLuFC5ck^WBer@7liD8HISmt4vl)3B5WQH?#?qUYMEa85S$**O983b4E -zPR79o+%B_&HH!HQvrKvc-}W!ISv_7hCFU_m3;Tk33i=2A9wN%cQ@|oCPZ_GSn`XF$ -z9TLBi{0A?zrLDE!Sk|ea#iM&rW}@ZrPln-q6S_$V!cGc9C(M4{N@EPqF3FpQy-AZS -zMJyGN&g~v56Lc!^FQ^RZMapmaP0lO!e2`iNhQqQut%Ch#LkicGa*}-fzgOS(Ae3K_ -z_A2t2`ia7tz2UZD7P@JJKX6|i466G-hN5`mgO=n*MJMXOz -zF4CQnfjEL>xHRmLL6FQ}BfMp7S_nt8t_|&1Wh>X;1g38Yb -zcBV|kmzFKrsvx8M6v?d;MDH{v324qV?jr)Oa9TYN?)S9=oJ4-4YF!P&)A7V#WXy9AMm%NKk>8BeH1oj3A_=WrHjbXIuEW`ZQxb{ -zYsY_JYtLxK!I~FhO-81htH={ipCg=+6oLtXbbZ2$BN;Rn17t6)(*G1g0JiP3@w=HH -zz)9G+n?ukABAgTFwzNv)2`mii+Ay8}9Hnxhm()9F`ugFaU*dS#7`n@joXITTFtfRd -zz>LN;oOezqCj&W)6iS6}{TPn|KQQ1xYUigeBS&T6(@Vt9Y5w~&7}Twlj9Dl$h_UUE -zVt-;=fJn;7w56w~f3)!7Dx8h>)t5YE$w5?#gE(1~N;SbJ)Q>M080q~8sj}eI;=9bv -zLRF?9{qQw#!ISOZZP0vn=(aQ%i9trB%Bd*qv^6ztCOVlv*A)E}LQW}4ujo%rn04R< -z;pzCY(_D~nGiy9=r)6n6?!J|kYgNEwH;&%SThEBf`R$+r6~IBM>H&bJ2NK32$V&ch -z#GmJ?c4|e3mE?&D*s75$jI?nhDYI}AtOXN_da_J6Qu1|n(nO8&>5u7gN~BIHn87g@ -zyw~8{x$HG=_wfCR{0LX6wd*6@f!bQQFSOwjsJ2R80<+nCC(X320@F0@Cq-c9UZ_O(vIO -z650V#ozRqG=mIz?FwN)X=DNsrrgOK4vw1p9R)m{?Ha@qze?EgvVYW<|Vp3k?0|r?w -zhkM^hf6RvER(d0MUpYK2v#i%6zBus~X|i^@l;}E*g*zE4kHZO-!_)+d@b9>k(%>2HrdY}4t -zu7_LMfhgL4tQ$XW#vprvPxt<0Z(9RrD=e<`WOAa9|SWdA@Svg3PU#wzdco<*-hTndm7q -zC2WaQHS2GrfrNu|#i2{DB;nCiW!g)+%%9W@9PrZ49+0RR)-QP=WIg>{1&xv?FPLmg -zM|4E|BQvmYxL`fhd+y&2r|G&}bZ+uBZ-T9H&pjt`nF5~@rGf5tHIZl~Hqh|o#7&B8 -z+UoG3Fs09CsL(@zX*niDrk+et>SO&>T`&nR-AQ>MiUmR3>S2B47zedwtO -zu?I7+#1#jN&d~koc4?DgDJ9Q;cL?l+Zdf*w@F5s$u|aSYazwB<0I4xLl!w!1U(_~a -zyynx+n6P(R)P*hn1wHGvM+z}oV!;%UA -zPmtl9L1RQ9*Mp2q^%J}_Pk@219eg(2zd;;#pMf5Uurv<=+u(R4U!+RNmtOMEN$>)X^Lt34$-8Qe*%Jx?I -zNB_k?caB(gV~&Y5^#?oh6BJfgENp)`h>BuD>?sSm9Fvt8v{XunBEiz(B_vS_(yXGp -zR0Jz>yp8!;=RPdO7~co*q9ko`j{zPwf;Li^HsX4kH$<{H+^NdMUW1;QX}D%`Ek<%T -znCAKWh9&S}%E*4Yjw^E!<8upG=#RBBpLDn6NMV9SzRs_9c8|gNuFIA?(13XjNO@m> -zsldechY98I`11v#69VPBrv!v%i6ERbh;fgXLOu=#l{z%VvtBKB>CxbM0x? -z)q3?8I84)=C%wh(KHi&QU`w8}IpyM7qnF@%UQe@5%>6S+LwnC){=vj#xi4)iwO|U46zgS;+0s1K#fP%IDCewt?Fji*Pfat${+lorHiuP@E3n^p0 -zwQY*A`C-^V**yF|mpX2dh&=a~)>-??hxZSU#JbACt@-gw^1z)Rp$0`+neqJiD!Fz3 -zzyBkd799oDfCwoX?D==L(98^Sr*T3@cC}xbb%ksnMnkQ}qtvTkygDI!_(06%r)Z5? -z8RuUFaT)qj_)&7SN@HVVFa6>RrTf!|_frxDWJ&*i+sP_^VW|=N@2nrb`^JXBybHGz9z(Kh$TDx=<<^;yd{$pBxk@XEyaQ5e!it~!g_e(E^3Y& -zxxkj!6N*!{`3aq^*>SE@Q=>;kd*>M<3qYEO;~qY~3q-1bID?{~#Y2OC_qgwtXgUr> -z1O8nvujbu&?2Kw~h(f;?jfyck}a@h;7 -z!>#;jnb**N=76FL&^5W{%L*L1LiLd%QD-Nb#_DDRaz -z7kIfC&hlq!K1&^2vT=U2M`{=MSJ71oNsWBzdqLD#MFTtam2Qj9`D22-vyDoG81xH7 -zYP~U`N1t{nU9N9*Erj>ki}axsM9Sj?-yH+4)+4%-P{Dbe#a21axCXtFkKJ;JVN@yW -z53uID1iNg={qMA>lJ|CDFR(qd3j6J3Z9%0|Q|N0RKl?elwVN;^U9-HYtAFPc^WbDT -z1vUcFZrcd-PoOL7Y;UUg8z_dUGGg$T@&p_l!YuS=Ndq#7ln;{6)HTNBNPE*0quCjZ -zZ%0iN!ERJP+(-CvT4Dsi&UFUB@@*5;c*U{0n}rOHMEZ(OBG|>w$TdN5_>p0GAwzR;6UYUiD;Ux&Vjoan> -zUpv;ezMldMfkj`{7esL@bZyW7-j%%kxP7?ra;Iq%d_^dXl<0`$ouzW$TnzLt&W9sp -zVE{PQSAUH)8+z+)7?viDI$;YplA}JdZ9N-b91Z9Toe8IpS_#RpgohhoMmo@9X -zPAI_;X)#0ic^~Wly#QvQWf+aYh-$#Mhe)D4 -z<8Azc1HF;X{!cHaPqeYW3iRZSTq|1}^RL-H{CHyqnz1|m=FQ*6RwI>bKNxAdP0C(= -zxA`vxmS~ccsY*efNn%Y^1b^3SST}Dr&>^(8xh$nyFVj=X>7*I)`!%rAs+H?A)JVOL -zB3*$$S(vbI`uNR>XmC15P%TcY$@ACkLy@IG<#ru%MBxt7NUaS~M0lToG+J^ZJxaMK -zP|TX>E6-1L@8fuePA|7$Dx_A*2y+YM|kZdY+R_c*H0SNd%z+f*pBi1?Qgu8cAJ=C0XEX)<)DbvrO&*`Fx -zx{rH#lB5)=Dh)E^u&%&&@k>J#3_~sI6_HM(_mO9tAfaL@>pt*^QB7)@)Ym=y;+;ZK -zH{_#>fO)&Yf#&M!!omS*OFzJo#uIypL4ehTuJEv*b8&8}7Trj*>pV3Uqk>9&HBn&>{G -zcm0!KTBH+e6gc2{x_t4&sJT@^VWb$urWEk@S0nt(tJbX#(9o0y@l3UIRSYG(sdW{r -zpI-d{4o)<<4W7AFLk;fQv(U?F1AbY=4)|nH#UdUJR@CS?eN9oTc~MrNQ9c7DR#_81 -z|H%6OSKF=-B(h?eV1MW695R_*TKwVB>J^TI4IizhJm1aK?A0WE@~x8i-)7uJA7V!T(Fo7*OCi)FC%`~0r_g@;n5U& -zlwmpvufy-m>GYTXQ6N+qx#q)sF8o@y4(*DXp=?DpGM3=|1DeA0)HC(>L@4VYt9D~RP~`*l-k>|v7XL=LYw$NIZ^TOn6eqi&W;W<@OqPK$pr+h -zQLX@cMF=CXbk?NxPQOVwd>FhiKCmqn4{&<~Y5elrYMzmT2UmtpT-sGQN{MHI5yis`uN5dDJ -zKlC|b))R#I6(X=i6S>=L7#B|YtDrX;kEo=v8by>Tp%yA;CdIG-oR8u`JcOhMN){E+ -z^vPfpUXtHs_3qwZPa88N=8Gp247{+(OByeO6uQC^B~-p)p8p8}UXypR -zwCap1{i|)D+pwc7f6O6;AeLUsk|mpktiw}8k|CndyHUf{5fISqt; -zQSh+gWLQTN8~*u|*ip=7v8t*{n3D_iT)Bo^=9{}K=o|UI;b0%R9vV3~aC!yW+Vp!8 -z@0$+hSAjATUsc3qgi9N($xY;^IN5E!79xuZ*((jp9&^PweTAp%&H3T!#yfVr_vX0= -ztUf33&u4g&OIO*GYiw5^U_r|7*4l!S$wvHoe(^aL%?!xLhZqYs8V{OhkqFaP@^CWI -zB&rCG#i{ivp2vusReX$Nia3&E^~Y2d$dg7xs&a-uj!lLuKX$=V=q;gdX9$KU;)}bU -zbk<$AGvUViy#FqDqm&QH=9qdj5aG7bFF{a~r@`@d@Y9B%=lHg%6a+B&l{oI!x&AC2 -z_BF_NU2Q}!ru^_=As_8Aq@_|23ZDLE@QD5H71xYGm#Gc0Y^KHmuqcBY0>#PW82({R -z7pS)2e>yXLI4$uD({a1vZI}hBwISonq%Txg4ZiK(n -zLG4#V%k^-LeC3MMB!MLYy7FepWn{d~QViN~P9CrES|^sCLo(;_f`SU}Kxs?munU37 -zoTJ(1=1wLZ?!Esr!r8cMFVJgBA8@m@`YZ8RZgI`0I}ge{6|@jLMBWed*%IhO#@`bR -zU(gvV(&7{|wI#mdBGq0JOpBJ^3ihOpw -zFYzQM(a*f|^UwW~{r~};Ze<5KE*%{+iM5oF=WCnwA6NAYasFNEFk?$<>;-ZIhET8v -z@n0Md9F8w8mt`~9gJm_?nbr6S@2NtWJ{MxSdVo9*$%XP5l^kYJS@f|MyHmktW!x9t -z-(IIwSu)wAr_NS3HmrsppvQ0JY(x?}yT2#qD(HA2`}c?AHpDFWIP|j?;ptV$dL8H| -zAQb`h^t=82BTg1s_-mj1X7a9ow;ixCMn^}p3ap#e%oQ*f -zicye(WU>E@_?z#0_m6m7kz)%@G8EWK0$cPQ;6Y@TXjpLv!wx -z(4~!n-`{#s#?BRR(JdPNnicPm+?XTnHZJczcGFNmFSGpp`<@N{lw0C8{sr)A@ZUkndexUgCP@vlZ(^A%$v}j?Q -z;$SpW)Me~R#B%axg*WrxGu#KOyI7;x^DuYAdE?aHbc2yM2pPT!I@QZO6y$is9 -zntF<58Ta)Qk_rxzbyQ*^DySS)=>h3ezhwU;TFz5NCeouN7)`# -zIqk*I7?dtqZ+#+6_`$A=3I!GHl_2%E6x0k4tweTXCg^T+G~wqs2!$p9E5SGjzmSu` -zNSTC-=<(&L!osy%_t&Y=9ySd9A5B*o7FE}-X^`&DA*4%MnxR8lB&0hfq!FZsl3d@(2ETgtv -z=ivTE$Tz|pR&s6q&N(bUpKy>rp6l_fj_uYhSe83;)P_yhV~XB!PR<5y{J~rG*@{b) -z+1-jzNh!DKG{6*jmMKM*QCC)>JcQIK_s5>H4XO9|YXbfwEgxSp*nH^r6iFPXE^Z~P -z--+caxOUvKXxlA?ahI2^srfcCK~nWm5@hbwOK?R>kB{bb5MFBb)Qv9zUg}HWyI5bb -zVVQ%NSd8|u?0!{UNk!pxzk4mv2LuYh>`GI|2386Ertm7L(Vrx>wPW;_NLXBOtbGb2 -zaRzu1(`OV0w(;BeAk7;X}>(0{Ogf==t*iPhD&l7+Oc+nOCVFPW%Qt|qS>EmQ3zD=mSIjK -zFEG1ftyhKX3z~wX1$k#_{LWJp(+!c -z{{03X2*5!b^378N=_|r---XZ>-!orEGSLY!u&Wv9zC@eG_dpG6POEQrG2J^o4EUM5L=__h0exwvPvc;N`7jO2)F9eaOiSuS -zM@vBS-7cXr@~))^jVR5XKXc}08ArHTv*Ne09S%1>lGM9`y=bCF`JD|<`YR|?mPYxi -zy2=@HP`}4W2Z*_{$;3@Q66a}Z(s*+rf8QViP{tUi8^eJ=SUDb=0XXtjGSx6#vmo*8 -zQFpF2)z%%K2Sy0t(rsH>feiB354e@(e+jwd%yt_s-CLghzEL0Uwf<+)!-9lgR7GAV -z_}(Ib${Tb(Z4V@pa3$XZpb$DIt%Jt~U+NI4r3ECEhxI=s|22qwI1qogm#9d4Fx~&{ -zi!ul6AUsJwdUNcBi~3F31bJ=P&-^g?M%GpnXvy4?;LJ?vNF#a_V&6n^eTaReA#@nW -z{=njT{^#N%r4P2-=vmR1|4v#ROSUN<|8?oSk`M%y=yB>ut`+IZGAMMr^X0k(amV2b -zl7Uh7s^L}0R}gGy$rI?TNe7Z(f-Nah22b}to|gFgTSAVp -zRw4iwP@HxMG(QuelESH6L8tYI@z<(C1W}hfjEip?)%KQ~44&%9Ed>KB^RPOt2@b9o -zjQOXGO1U635^C-{7q1Nyx0#4#25i8Go3Sv2GU-$cxZpjx^6>EZpGxfPKQ~Op#*X0> -z_Voy*qW`xp!GuCP1b%e_n5>V|aO?)}COb$V)TGDn(SKf0d3es5ihPQPK8prrYHS^= -z)sbWUcd9=MWrGyv-K~}*a>aI>!*Hn)+NeuH-WjT(<9IxT<1(G1Bg85QZ`B_^r$c^S -z*;Jy@XxcP&1QqsDo2D+&!+VnTAA8Q#7rU31fTO}GG@A#F2! -zI-}Nnm*376b5ObMYzh<*mKm*;`irGxsl(_e#Xu6(WQ^8@LA@_gzD;Tx4w(Wj9>ez43`dv7%QPfV|uK|yGrI4 -z=;mom+HBUVOvNjm(DQR2u5;uheScxA(vLh7NMpaz`p;hm-2Bm82%bRW%@z6f^bKaU -zzIUYCB}Va1g`ea8Bk-!${51=!MJGrEi9r(gfOhsU!78+nxOp?9kBX}mHEFZG{HV1w -zwUZdw<5?*18y_pS{=kz`<{UzgCw{XYS_~hC9^o@7iv{LT?%&GtJW71AH!vk=NCH7! -ze%f(2qYO?ACDOFw?fMu{j4%&W^_&*yGx+ZpM&iPhPXBE5$f1@R7TI7#SWx@`3DPvs -z7az8$*2p=0i%X;lf+{!Q96`sbw)m9ApcC``>ZKF$AQ!YoIDpR6JnK3Fx)KXKnTpok -z9w}x-B%}}F*|_zaCm!Px&AgyD6*%h%3G_x#rr9x@k3ah1Z&#h|Q{W3aIWX(KIw2!p -z&bOAbanv|J0}L~_BS-qfxzyA7{3fx$$%P*B4hl6q`kA*gJZ#+KaHet&exVgq2-{Ei -zBJh1(FiZ8l#V$HP>nkL&V@`OJm;xIB@Y+sjtI&6(_>E{MBOM2xrA3#<#IrL5uBpTv|`Dq0ujCrK4>avU0g2 -zoCL%cHnI_-A -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 -zlq~$GGMG -zbnE|L3-B3RfmQ-_L0g^QaPrMNR)4l8!4;^u#v$NM$Q9CclhUKb<&1TKJg>NVYry^QIu8&~(h_@HhnV#p@;SP4r)|MdN`~LX4##kBXg*x28 -z=8-1peT0bk#>b{h3~cnZG)ltuaeeHZHa~D -zWi>mNPpDD1&U9$x($Sf&8l^P(wbWQbLK4)ZYPf+7hDxR2tUL}MU`1hr@=zVZt4;4Q -zYo^H9Nz1cOQ<0+23Ct_MU?u}Sw>3Bc&&tSK?WLo*n)WUvF5%#&vb3gd1Vo#IuZ;d5 -zf-RyAgs`U>H_$%Rc>a#6ccfp(^FzEq>3A7JgZkvjk**W)3n1H(R_;G5sgUR1W9a73 -zLPe;iC|v?bo8uQFndVc-%46lgTRTjeHfN7cG)U5sw_KB_w6L}E`@?5+)Zz+lAi%JS -z-Xgn8b@sDo)G*m7kZuG*qsXJOIQf!p5qpr68;0%Q)IrK&)|Cz#m#tnY -zlRwi#Y%z9CU*VfEe-$9(#81E#=GRakGP4;f2%_V^5UV3d5R6b7@QA}Fl2wm(;TtJWh{j&xh{}LVzBms;c$4D1i|`X -zZV>1G3lFif#*_aq&WT{fqOq0)1zY}HjTjINXia?@9``r@={6tPS@_{2_=9U~41dk; -zqZ?S{W{xiL7MK)bIn&FBtRXp=V)9;l(l7xg9ZYC1gX@Z1?5M>gJYdqJ& -zJQ6jI-OTldB966EaRcQUlZADATZ?0A2onV%DW1JP?UU)*!@U0i?m)KPl-VDbBPjlJ -zj35iji&^!?g0@{FN`)6^V0!indK*IbYL^r>UBr(cg30bU!BNX#fq+hVxs>hUK6^HL -z(;bf0cYD4^riM4iFLokL_x?CXF2$p&m&H`b(wr|?AbWHXI%IFO3)!5OFS!BD*#QZD -z*P>MK(#oQhs{ -z@T$}*uA|xBiU{+(EQw1w8s1&Xn>C%ycI{Z0jLVNvqKbbpL`!X_U_4^B0BSAE5Dcng -z{*#LleQu#{?I*5e@nU(Cy~+T=GLa?{&VUwGBc&_Fq6Lom4XV)ruTD`}a^9*c){7Z; -zis$bXqI<(6{xxaC2AzLt7g=f`%po)8joRd3>#i0&IrB>qcqHhu7zps*##&gmfXiA% -z9}2#<;&RF6fckX2M0^s_*{c4SpBPqerwFs(mCXjo5!%lo2fjS -zgh$TNefo)|(uG4zh9S?iUBPR?@(tsc0|#?1+xLVEB%^_f-$?K57P;I -zwd3W1pco-q-1R*ESB~T{c34da1T^0y4Ihc%O|fUu^6RnaiRa>36GjzG1oH5KgoG1wh4+~=|4piq -zAM=1<>FQlZYCj~2^;hQ3e}XP1G$3kbN)oPo_|irm6W6DL!imLlE+>J&TiedwaAQYb -zuSxpHkF6Y4J=sIy)wO>sYcvVBx^x7I8^1x*)y-6TM`Ib4npsR=VYbuMU?kDAx8&qG -z=aitAv&NpIfet{#5Mnjz;pUkW9 -z?}iZd7R~8fRlp45LoPeD$ZJu>{~}7MJKyga -zS2&|KWA%Xfxm3utrfQ>|t%QEN$`#OOq~K>^iQhbM=X5I($AVAF$$t(_XOYWZ -z%XaLh5|&yAed3HYIE?DCr^d?&D0l^0ikpd{N2I?vvP{YFxl({(6!Xih -z&{r*}pCPw9hp-|(lA&6)>0H9BK{D1mGZr}l7E*+!jPFI{TF-FN0@I{LFK^)>1LJh8 -zA;TZEheh3CG0wkk-ri($rpN7($PhaSHpOx|zX93}eI-nHpnLmDc!C2GDxDVEX`LD)(zVXWfN+fch66I|+eB0fkAD%ra -zp2ar*QyIDh=lK29hC-2b`0}CE}d21;$sQ-jH||ztmprR(mj|J -z40t4miBe#r4PT7hA0r9mYP?Jyw36?$64?*5jyk~q_b-DxG}P{uU0JRPh?g8^;%(Ff -z4iBnIA<25e6HsEhkB|eq%r&pFz>(Z4Q;yxZd!Z_%?b1(;i;`e;wUUaQrPc&3`46ZY -zD*^-ZDKghPI$wlBh60lK*tMNqxxCT1>|=-uE)o8qODLHca{XD8fEjU-CQ@%FOZ_`| -z1s?t&e;Kaoe`=J0C&1!hK%Ty@?d8X_R2sv6}-{=bOOukYCN+Wge%G2L$ -zrY{T7b;)~$f$3G)?DdtzX5fM+@J|$R4m0a%@ws+VilDV-%H~pRdEd&1W(wVISZ+k9 -zeA3WEP9VzbW>YCtFbijrHl)TzV}-$VQXGG8Qt -z)ZPpD03CqyU@9_$&(I0_9Ml=i#Aqn}q!GU8v*=ZVUZe_9(oJL39BgJ2(KmoB%6AY!LtQb575ji?;3WY~&ic7Z9Kx}hLY6Z^#{O6C__ -z#UXsK#)iR1M(AM$xKV0~|EgFf)k}nJ!SXzb%2$@SUwOHX4NinqaodH*lmAJJZ2^Y& -zU=XsO?;mqwAhckP#)8>PajNoLW*vhX-6cr?9vg)yvY1$gv9BfPowgzH>_uk1=NJH{6xXeyk9QE7M?wk9WUS -zC~`&y@sy4d%^u{P2?jW6vOcFjylf1AHdrPeT1uI1k))SH#@`OwH^Hm$rXUdH%)k9Seh)H+wD)78{#9zhfIl5ieQcF`q6f(k)k(yaGzZIq2HSQYBHMG|8*}5ykVo^ -zIfo3{Sy3_$hEA~|M-eJ!rV>@p^M5PXW+3DA!z%U$MAtM}al8?)yQA&Bdld -ze^hBHp8ZJ-Ti*-q4uR_wgBdpk<)-Jv1kd8BMeFN3I#vNI7fqk;Y0zs{8-miiYL7Fk -zR8m~J4HvoW%HvtD*$eAiNw$DY;6jNduQSW1yRT2J(w>$Nv?WZDLnyKGSK!HDUv$qM -zmUDdU+9nSE=nQ$q;DpRrSYnQ7n$8{eOtpOa;9%FFwgqBq=xhV(!wr3yw)tWS@0_94z3i_8*d~fc+;KIka_Ec8VM(@{3Bcm@I43 -zV*p!=`30o-Z@JVz`@XImb!oPVJ>a+U_KKik{mjd-L%AH4PX3a?Sw;!nSTtAT9w*od -z#W`3X6*fOKo+t5NClepnxlF{fN~i*{4<}>;{?bCc9JI(Nk}GZhxRgjI71X9(BRiv+ -z>W-Rr_CPnyPLo-`TVnB^nww8zSvHvA8-vZ|m#o607Ei{E0ZZxKiJwRWGpz0ueEjzc&GaF9;#N8~MI-xDsDh -zYVJaQI7&oF#NBvdeD2PFl6i53gY#XeM4r@9z~|$t_J^MX?CCQtEDZFvVf=VI0?2xX -ze~A^mGAc5aC)|1>8y2t?3Qd9-bT>!Uspm^JK%&^?#|#km3$P -zIhpg{V%TYx-7st^K%IR(_qExQ8LwTUHXnbpx}n}I5^f9p2x--;9>^7)dRQ5@YHIC3 -zp=gJa)WQYR%quk%1kJls8T;pvA7rGF^JLi|$P!8xM6i!iJ?DSax@1k~MfT_sHuZyt -zeb!!le$TJ~1oP`k%n;`lM!xD{QQS^XvA7C!bXIE33vYHvk6a|Kmr^MkfC+LzejE9T -z+{1q$ISai@U;Zx98gh2491^kg_9v3w3PMhNq&TU}AT5ZXE*a4;N@7?~asjl~1fO2% -zi*0H~>9^SMP1(uSwcN}epsNp{x)L2oqU|Tpaf==g4-con+lAw1Pz!HOpo$He8hu0S -zq}&f-gb4J_?@M=6A#v_05jlL-#m^={%WbNsmC2%@a92@~{jB2eo)_pn5&>u@WW>WC -zKo#N7sQ{{Ahbw2h5Yu2vHO+yh!zQu!gzZ{p*EAWEhANauM=AJA} -z6qEc?yP75r7QSxuT(|B8fD&hozh>3K1Wpg1tfK3hn2uGD>NRo!M_Y7fzHl2xc#fP -zPw=uOd;2--k1>xYnl#QurKQY`L|6S)lu*u2a_yvU738l$tdI~fTn0fF*-nhUs-EI5 -zqD)D^4oY&3L7^^XRmCiQtKGn!Ll<7+nIgX*%rStIHGCL6@z9%=l96Gj -zT009H{>3@cj{H{*~fEGNqt=&<5X|EC!XoA5kh(wSz%zRu4e)#&2M -zSMcT|fCVr$!>q{tC$Ej(kLdxo8xzP4-NKJnDqO}OwPujR`xkhYdm3OXKR^;m9%Odi -zrvN1$cuO5nk)r$U%mpYTtvTIq9OcnIa7d&i -z4>IZFs-c||Cv17XaGyBHS(d}An-Q05>&c@HVxVE7UqpmrSEy_$BOgKPTdIb~CNBH4 -zr_nQ{vMreY!oREjc$gO<=lN#BDxf8+0N9(M^BWyR3(FI`{cY -zM_Xi@i~ABGj1_08A+4|c{XS#HYU>d42)7kqTpUbe!4=LlB5r2#Q1a}g%OZ6?liVCDi}eSL)gI -zgoy|{QXwLFQJiST`L(M9h61Pl -zCgoqw^{~Cj`q;R3+FbW$V*1GT3&89sMc?OmgxAkNXOh%%J><0BoWpfyxbG-I9l9gv -z^5nW(QQb3se7rwpB;+JZ+y-``R1+qvZ-kjwCDj-n4nJe-^JQa=2aod~5AsQ~4QUA2 -zCa3oA<7X8(%u}s^p(fZUg*v)D8^<_FeBR?gi5&G++*kl4a*y%-gdiv*PiW#)G_)FYS4b)}na%fCUXuk}r`xD4y*`LJZ1u5lP@K>N1;X1^S|&5j7NA -zpXQ4AwAI$JWGTtwOc6e#^@+Z&sjl9k{%BEEvw`z~ie+K*o|r1iGjWdp^kR_#f4?>P -z2dL!pO|np#xB{2mn?)66C@qTrX4G>uxU=mH1ae|qjelXDLp32O -zpNssK6clUp>k`Hti+s2D+S>GynuD=Hy^Pdj8Z?zvFy&+n7)~*@b^rJW%A&tKhjiPI -zB5c90F~EGbOmCMJJ64pa4F2rY8JaboN*q<#R!)2)1%U+8+?D}lhbU@@!dOclYzA=4 -z29@0Ub@puhyGIp14rb*XSW0RHi7G#>JJN06Fnm4>Rv~nF)@tdXrE^Ckf%ePoo+32n -z7^I*G>)fUT;6>6!$)vZV%@q8be9G(cqs)$FPyVx;?Mh43nF5G&5F{;+m&L8+_p<)9 -zJkO}+4qOFBs{6r1Yq6vmTqHV#7Y9TD5TF>41a|mXM4cd&I?y#CS(aCCcVc}f86x(s6e_#5o4LoTnZ%|2JB;R -zc&Fvc%s6eua_5d|q^tU^U(~_EMnrDtkmw2DSY>}HL{MV_=aGh=0Td_^5c>EqX8C}; -zn$h~>va%r5L3V6y$`!B9Kw?@*;m{wlb@he4SpNswYO~#pn0h+tL1($LNGqt>>L2)2 -zbG(m98+sS(zl*vHs4XtRZ_T(I-7W=VmbkuFuFp*#5ZOo=cS3mVUhcWlHRWM8*`D;U -z&gs&-hq7|tFSsKuLbe#AaA^3rvOQ5{cN`9LVu)ebUC~QmP`j9D)HmWXsM*Tm7HVF3|AP;&;S -zBtV@SW@+aOTeK+%yrrS`ogw+w^#?@{CpDf)AnO0*l$O -zA7x1KE#bm+V5o;#*h`uu$M=mqxKZ7Ximrtf$aq84TeQnb5^q|NJIe(WGZZ-TmkHWzYM^y@@qDM_RnU{Z*-Ix>&0%<{v%!^==fk -zfuDrvpENpZ^*uyP0Lr+>{J^Yy|8b~>m&AF2w=@P?qT9y$1GHcTO{)u6PwF~8ogb-_ -zC3ndeW#=*H!WGZp0i6c>;NIbCmc704u<2t|=EuREV-O)BJ`oDBoQOjZ!{=~cDUi^I -zYCYpbVd0u8TTki$s232)virSU_;o9nn6V6(@qdrYoDC?Y2>MRG9&!6iEbHE(@up<_7W8lN>ykHYxE8< -z*gal%T({FEHi_G8=5TllkP#F+)kJ?}+lBW4@)p%7nM6dAlht3|_r;JYKG(<@*uVNc -z&2ZFy$!hUijH{#db$GzKIkD5j4O0K-i_WP1mB_39KIULiu{S$?{P~7fsz<IraijE#Om9hwIu#7dAi8u8UtX&z3Hxi@vm(dU -zU7$?R=-P+|p;F|nBKs)V{zj^ctE+bkmYM6~%*0Q*J!9pANrRt~mj*P+vK^Y_rhKo -zXygB{1&AcIi|yKK*S5`PJ3xg<92kamv(RUdLxtLX&Me9>e5TgjHlO}08m<$Y@S7#S -zJ-NPo>J#37@}2DWv;!@*vU{`it5!_if1Y!szzQ&qJTCena0=%&2V21S>iy}DHHfVV -z)0WlYiI~-zUz_eq%JEpTp{`LKUYHrNfOkAdjp_omy^HD35C2ltk0ami$V2!GG_}k- -z6XruH`a{_#<#+Tbeq%x_G?Fl -zc4Fn=sjDqrjP+n_BD~2xf_+8!=rq(Z@~7P>Rvf;-BQV4MY$_^%uxIsG`I7B3wFnVc -z5i<`6g+c!zKh}3R<%b>RaCn)ML6SbxwSId3D>}r#WGFVeE$yyhT#|#h)S1YDbSRI? -z-KKN&C};pdk8*%TRMRHV_wgl&tAwNj6Rb504uzR1N{aEll~ZFpOc$=LV83}Ntoj`> -zjyn(Db>JkPUY-DVv8=GJh0PvC+@t${A@U_((HY6({{bul1Zqg_HPSKAKGlz%b#-&> -z3pr(9mDw%_?s21=7&Rqz)!XI=e)~GJ&x}fGxrpJBnc(n-lq0qM)3@{-ZzRK`+ZW^F -zJz7?&d~fR#uh`f{t-pSpNjbbbouXXN7JJScP}|tpsFF?M$n^oh(04$_vwZ_ny^N>S)$mZjtKZ8u -z{hwu4E1x8k54E!7*oZv}7X06-|5j^FWXZbffqt*-Xd~U2;F&juP#&8vN2|JQ&!-bX -z0?Bpty&TK6Kt9~giOKYf6|9qTD!+jl`prD4aVAoEm(2TdcMHT|IHSVxU*UvP2uTAZu^G!A$eU`thFA`4L+PeLEv43O&{y;s-KHKBgixD5C2%-Bw -z5s6as<-Q@tv24}Z=1;>aBd2nNy2OoU;FwQM(*)IsDBtw;E`2- -z*qZ!h+J*Mw`>o7Jj)`mtShH+wWOkSf$w -z_--vtiFL(iCC2CSy>LNuBW_5?T_RfMH|?jN!sa?#_bYx!)##0iwERZLAU~_BG1WdX -zg1)4VaMko0NOwi;s)|HE&VV-}QMD+uv<3kA%QO_NVrGS7#3wOXSvdUKe$615oy$E< -zRzz4Px1c}>lqVpWhcDzm+lx>_AdK3EERFB}`}1S0@JEF+mI+zdr>-I6#mGkg!o7v~6G3K45zP6vl+$o-jM7^;WuO -zN6RLJe)bKzS@Y!YpNOc={nMu0w){%W-*Q|?-TFh -z`eYM>nh8Xl;xLUB4{C5SU-KL-Ocl)_~-q*C-3sA-#N~ -zt){#(w1FU|WI1=So6$_b)>v_)JC0-AYM7vd3(98N`MP=g!=pI#|$4=F+5f`66dE(|PGo%!05OD)1ilH!^-SMQ-6j@<6H{z;Z -z5&P#n!lAz(A?1JOTE1JMETfV`0%-B;|6XmQg)#NQ-RKqPtmRw;iD_3i0ipDX%pgAu -zTraajLzn}EsW22T6TDoHkiUm}Q<_vkcaS8|FVV>Mntod{D`7FXLkGG;?h=fV^0rst -zpfLRa4e_$2I)4E&YS$#P@6P0pn8C(y%7y&hW~{}4By8feTzXuq3N&4yc5@_1nI711 -zK7yRDcav&T9}hf-TpA>`mqp1wf8^axCxz#5&rqUJFG{#v`ejVaQ#gMbvPnb2EMdN -zfoEQrx^@U1SbIw%tsI?nmD+#(`n5#9_i-Hs%QM-Sm@sd4>Ir?VM}@T>muwQe)qh~S -zQ?K2v{<#c6r?vZid~C&{{*B8Yx7}kzFnTvWE^;wvgK4zvEZChr@TJ-lc)h_H_3s-O -zbnKWhK^T6Ii?N}Q*18N&;%FF%G4+#~)TB0MxWx$r%Z(I>2E)9*7SnfhWZsr~$xOE5 -zxj#`DAHP2oA*YCaUaOjnMIMNPVmSEe!^2jM7*a?AktUt#;lunE&Z71_ul~so*Sf-* -zdb-Np%0*Dd(Y3oMm@-%z-^Jg4fOPjVD2{bEF>wNI6}!@_U5j*MeqB9qvBX392e38f -z@7-pNyhM90z>rm3#t|%1B4^D_EpLP(q|-%g-5ZId25rneoGQZ&=SR=l97*jY)$tEG -zB~H3RWGa?q>P5$+HMR*QI8WZto*E~`SI`!C2X4wPZ_u7ivS<7Uj$fDRMSKnR17cB? -zg4iiZW`abyyR~XT0cp;o+~zp}BY6aLhK80rV^w&R=2GpYn}3%A^;?Ig)tm4_=&t&A -zr14BIA?gG>D~&8)P^$qo!hCvpv6hppS3eHI7Uz2S)+Lh+(`8=}Cr7;Tn2{#K{jD(d -zg4^WYI7QF3kJwEvm}W5Ifp>FHIkJOcgAg -z`u2m53!3|7r9h%N(%Nc-XjZWUWAMTUw8M8V49V&S^7z=>U&W5gHq{|>E$xZ9p^o^) -zMO+eZn0&7O@725R<9x`k`4;xcI{W2`))@$7?QX7lS7CE8&7wP1{ORFb5Xs+O&1g7J -z*Ut@EYer=221Ef7nY=}W$;|KCoU5pJ{+_OMGe8exykR!>pFkx8V5O)NnV -zwne(}ZgSKvh5(Alo5$~87gOf41}|$Q37Xjcn8I3qG-;?}{$)TZnZV@O+0zK-9k5It -zLHAlu7zI^d4D%q6{|!R1nXMWLaaLAOR -z5^mr(E0DKUJ@$$kA&C+(!3>-GzN=#XqOvPe)871J_hazGUNFHgalkMRNP43AIKs)id?`{Uh_>cbm01SU*on8lEgwdq9mEMVQS -zzSh!Jldv@@X7;lU%vzyhz`|sy*{O5hFQkO%Lz&x+#6!Dlk(0s71-e>ZTOEx`Avc&K -z*D77U=~H`t;wdIEwuo@9kLna+U*0*AJG>dZ$3lZ`@Usg>%WXiyiS!dWHA@LyE11 -zGJQGn3!_R>;F}99^9oHY`s%kDc)dc~crCzi7J_@YUN7A&w3LzVxqjK?EFv^W}3k$jryH!W|xt5lj2r{VC7sX01mxAjS -zj^k1?ANN3x$*GHz(?t^sE^Ixy(@6X2p8FgqQ?gJURm^-qMQ#_`u5ogE4!(*X}`>6@z!LNC-(32=4VZFQkI2bA7 -zGppVNeFx`f^Z&wLy|z*2`T(XARQx4iku_dW3uyf`JNKWX$jk#iTEDuG1O6;$_L*KJ -zSqd8KSn1uv;p-pWImVvb`>y@)0@GBR2fjB<1c^vk!TI@O-@-VvWY|`=r-Oh`eV(6MzXCr?fDj<2 -zxMi4wi;Ihp=VV$tC*iU%ifQkaR#2*d8PBHh%oJY-b2IDW@|UTUnGnGcb$lc{MxO?> -zgh6Vi7ICGjMgYRSLOgR -zrNZ30F2qS`b5i-SMf6D3j(aq+@Bwal{c+XwwR+NzV}#2ump$4Z&S#SZD(=!tagw~dHIl6Wmn#Xwr9`F|aqcRbbKAII&z -zuD#>hWOGGjUi*?ADtl+|y~nl6C0n@mjzY-Z*<_1khm3DX62If;AAh;`^KkDu=Y8Jq -z*X#M(QASh0gv~aka~L<(%ei6E+5&LU-1(;|k%62q5wnO)fC1j`c3j}Zp^5$bBG-%w -z3y3~AQ-LaP^7eXC9*&prW-xG6MZ&fE@4p)&!7av{PzkGQIAT=gCHFm=e|pqt2;>verZ2H!ZB}7V&KHgpF~?% -zoiPlc9Oo0!vm;Iwyq+~uh8l4t1Ger0D*x|Cke8;I=I3^o%<_wPP7Ig>^fcN2BU#LP -z0qBbmv+O_ZiNOIW4~C82h-SYk8Hv7c7JNDo$<3N{^eoR25*o~Wg_avFq3X7;Zc_ai -zm(*oZ7`#pIyF?xnUx8bLP-d#{r;GdQ3?sH=sN>|?kv8U+y`;zRDF*JPkM<;f9#dD( -zCx=*rYHY{}l6^OIzxyD}P$8Ka1Q0!Nti`w@iEyZY6-C43tynE4*JhT}@a69p1RY7g -zTu+Ht3k0gyW|aB}xR|xsxshFAXsFU+CYvd*D=CMJWw_V#!1+GfB%2?`7~O4PxXBn}h_5f?$bFY4f#k -zfsg%yIGCuxECo;*FQ&fhGUJCwI?P{zOw#}zNg_T`++2*wR}MGbcMWFupYg0e&&lpg -zcHQms2~0^9{~Q=>*pz4~i@yE7ge{yC3y3GJtOOE7w#@lW%z;XYF~>>DPA?PR(%>&? -zoN3}KVz`vS{t}A$Qy2G04N--?wW$l?)EI_QdVW&n+D$EZ$j`s73)eJ^>n&IU1OK~Q -z*`=F<7DJA15*EoFuCXbyUQSuBv!PcAy^RN4a!eq2q2(e%+01q_K>)9MN}4X+wpESn -zy}D9AEzIQp`|=&E-!I-;Uq@gyB!<4meIWsfD`kw#&^fnxR(;3e5c_HQ;cnuX^3j*@ -zEtw-HcLJQp^eRJUKM8Ct6GuS9;b!zt$-#>!ps(^gS4w1CFPj{Xs|SAeNi3K5FfXy@ -zH!J3c)4N0&f8oZ%-T&(}d`K%?wBCAQX60rIn@^N~ajYt^U(X{BJuALP+8}qB$ -zg4X0~nf|qYG1o{LI*u9CCjnBUwuf=M+m?X|=NrKO+)3E?%2~nJ3$pmk!rtcxX2X{n -zo_`e-xZX=ivc}T6 -z6$=^SC!M+*aziN<$E);H-Ynxi$(iwC9_@6R6Zew*++tx=X9fH5oMs9G+7uw`HfWk> -zzGI&`(nkg+92^<^{}JnO>uGIJbBp_jbl8>r@fZWT@~U{OO@@E+bn-Z5R8xL)9L5ke -zHYsv+K& -zXZZm;*%{KzSwH>X_M!?Vfe&~FZNvfNSd4r?Q)$xpSyQ+}0$v)~bqj*08fCn85KQ<| -zO@7&|WhXP6Bhj{Fm50)Mmo=)jjaZNU1x))0Eh&`TjYNJH5fPwsno2#e@mud)@e&!M -z4tmk&D^i^I>;y~^JTd^%G|=c$!!@UB99+f-xIcUH84w+h)mIy#E~4K$KypFb7B>c^TVm7sw1#A_vf -z72c8h7VNc+$BD$SE(1Njdm(4KrC%baC@m;Z(UX_|7djIQa@Pj1FFeyH2b3+9giDr0 -zjnq>Wh)kN>Azd;KZ3*W+T-#;j<$6!lJTONYnzaB?1rBBHb_u<}k@0OZqILJr=4-jN -z7)eP{7JL#U%;oxSbRY-%x&((O22KV#hK9-LSJbi4_-}O6H4mW{ -z0^A*#6v2T0fz{b9X*M9tJRA2tYH+{VOZ~NCU|-?x+-QPKP>cJCt^ymO=-;BUW;I6U@N?LCX1rG&ysThmjY`uS -z`hFG*(zfWb`1{-x!kM5|Vv%PRyeeWvdY4R*D<3c)R-H^pc~Nln_=I=%>2{NAD0f2i -zgfzYXh9=LUOm(>|mXcK;dp9Z5LD@wq>Q#c(&*_tHNTadiWYi3m73an7E;Yj<=jJ!{ -z#+vFqHuX2OOmhDXbNmAXfX%LF_%Cicwz>xA7q}v%va6WVKsMs{WV;t(Z@qe6_^nEc -zb@jb^9V}4hJCp4tBp%7Xw7je#?=fH>dt?R3k`j$FsH=5ilL*xeSxp7Tcp=KYZ!16- -zX?6>mEJypdta>rn`5{{0imSg_S_IJA9Wo}U6*Zg6ioYhcyo}XvWW_jQ_86DWl>Zx1 -zIQIXZvtv8Jb36h-EKLtG>9Ct?tjdi=xdsW07kp3@-X8ZAb4RK>@Nj}L)l?*M>#jHV -zsd(A}MRtNh7Saegbl@%jqPv)y#<92HZixxhMYSkxE1fmW+Th?eCFaSCBxQ<=*#+020Vbfzq+A6X=ysNv9AnY^m<$ytxFn=*E-AThaxAcu!vv1|FHCHNO~Vmj2@JW8{M```KWhh<)>MK;Xa -zh6J%JI)I6O5sKX&X_XBLlOfO)4_nn>S%o%(1CA#<|$wn{~kB5BF~V6 -z63tAG$1{JhTl9Z}a9C(fT+*DgL9hj{ODhEmmbG- -z6E5zIOe~DC%1vH@n5(4G%zZ&T$D?dQ`tl=<=}M3v!x9Ve8fv-Ww(sRyBK3if(hiD3P3 -zCv?=h&nsf0o4C%k%~%Hk1x!nQy-4gq>P>buy;n=evLfNYBB%Qp+KCO%C(mZOl%Z=* -z29o&3hPw@t%`%!zQ~w}wTp5M6mpg7Jc`c05b{g9A{b4qOw#js_VvTKKY$LxTt~7h3Mjv@|*z#1b?p12-3#L~`StF)b?3z>T+$U5(hM -zf3P)N@qrdRm!v0)Avdy0!TG7cKu&&TIaQ)s?QwouSsiiVH0iRqezq|jt1}>dX+%GK -zcI=mK&Tqn+=8wS$yH-RjQF;!ERX%C*kA34uZduN_PUpw!?l&_(&ja6bsJ=QQ5$#VC -zI(x(K!`)WHrtLcXkV8TqJN`MvdI#AuGzfTwbG9UR0Nd@kdpPdg(0mshC0840+U)0@fHC6!yI2=>CZ=Hr+!hMVcp!=x1HOZ_j-M-}xB+{JZ+Q -zV{*y9;F)%yr=#`1jdv92(&!9R!H5LLt8+zs5X#x3IQ7O@3G&vqq!|Z40*XV-qQ;ZW -zOO`OBpupm-Ls7C`uj9^k9%kI7ux7u#Le^}|FdI0@Y`;P&{^sguS?}KyMZ>8 -z#?dK!E2Yi{Xce((S$j&GPeE9T_5B15Ob)crw5$HP&zNH*X1TH3x$=L`#5Kwj(*E0A -zzOQcXmZDfU0~v{hJj=w361|5d1x@D56r&+jxII>tpP+F>Y=N*UQPpHeX2vWf%F}(V -z$7f30zg|xtyNC})c)*f(p^yUQMGDdi%YV_^YXTL1#_$;s9RLpyZ)M=yIXfmi^*sFb -z=e6J|pg~A$g_)OS6Yv=}e#(>yEYj`8exxQQmZZ$7Gx=#^V`HQHa+dg3N6=bv$4UTI -z3^UcuJ!xii4wPX0bv-ZWA{h@ot!yaA}=`x{BUsA5OGtF5Gva>%+?r{JOSc$5d -z&4Pc^6E26$M#82o)+ksU2ni$Pxt&VPm?3y-Gt{3(gKif>BhN6}6t1e6V_=Vddxyw8 -z7u_qc4bS*7Lm#JHEX1kb`xmBPj(wMxkZ1ivH&$PHfjzLEO?LDWQdV}QC`psc+%xkW -zE6uKN-ni)Q_1}|Mav@dMbq=eTvvy}GAOWWvF@|`}dtP|ZNw4`p3=A3zb-04TL-nUg -zQa!#;Jfep6ep-qf0+}EUiBU~mo!y(_qfz>j54`T;cFwg}8kdCQHDV>vY2ia$6Rk+j -zQb}z&!nj8-QG=1Nc9df#%T&C=)l_R}@Sp#-9Urn5uWKh>jS`I54N22=oDMQY0ci>4 -zk+6V(02gbK(fw?fWVml$l1Y$!xZSv2&^;QPY1fYr%>ic$bHauVO>pxmub`lSZTZ6x -zPKD>mD{;W~1H;sQOiI9Gv3ejWDd_?mpcW#98BISct6mOj#$@uDbdS8}dSnXzXpS#$_KregPuU$od!O7+6&h+ya%B -zeX&h+!IqZn^GrccZtEKwBHSZ&+=RZZJO@xbacSwLa;CSHjgNh#YEhI)9x57@+%Gs5 -zEnb%4SVJFLQN7PJH8vjR^Ak4gZ)g9s=8hYosrWVAfQM=LF;cnY^|f@7ybZ@>Vf -zYXY*WwC+#rt#t(D6*3(RHq~@wi4d;HY_;FKU$A=2O(7+6doPG{{i5dq1J_@~7THXR -z##p~Vc>zkdDgD&4So&3IPW)kXjRPTgs{CuS+AJ(*F_F1|W#8qIfr^<8 -zbDsE(EIjQ(;ceDxE>rzM9`PM@%*Z4I+c}|#x2y^JGJd!vvJZmf#L>3=8Ip3?^m2hr -zWW6-tH_c-@Je>ee+6s5xIrUV4r@6$iClmP{S=^MFnMp+^vikMw*jbTUI@Z^DpW$@c -zM=+;-g?tRsfy}@$IG4K6J=W>IIPw)Bu0o1dbcEgB(066F`C_BD>{{mxss3IvhjZN9-9POAPQJ_CUh6AXA*ZxED#=FcnUgEwWC;PD=}eOgW1$=)+MNrF}*5#XE8V#|dKl%{IN;Y0vl&7Pkqr8UJ -z*RxuX?63nws^j27M)LsYNALQ2f;=3HMV+?WZBHZk1LTy(N)lGU*?vWpwa{#sl=g7flNWJ*e3H60H#fI`wEC$Q -zj7VTGK{Duh`F+gU>8+}lEgYzsPgJ<7Om93Ko;{T##LfWIAWT;(R}2fv^yeZ)F&nfc -zSbH}>qY4Kzn-H|Tug_2UY7Q!e=T!Mwp-pdCa!aD^KP#H}8GG|$Taq@ve~)!g?`~yf -zMZ)0T94&?vf6WMSG)z!?YU1acrw3A4e29n?=wMW&TkI!!)Z7dZjMl2EK+{mwmH>;v -zh^Cnl0t|ck*gQ!&KV~x`z4_~%u&W>CgFrm@ti%$D$VznZy@zeyFp)Pj#!bZQI(}R1 -zq$PUxveoCnDA#o%INA)ePP5_W?IG$oSubBUBnL=`jFPmbdPa|wz!gH;|75+SE~J^9 -zma0mYi#r9y(Mo@u^4J3Dn!P>@-{i@e$hUzXlTewE&JK_cx1nOF?9Q&ZiOnnBb%L-Q&Uq@ -z7p$61ucu2(Ttn0xVfkU>jJEASa(?S~zCU;UTJENvHB!=Kt5Uz5t&ZR?UyB;OO`t_-h*W>oNUa=Y`nPtdfP -zKvREd54%>_s*01Zfae|ny4u*XXtX%v_Ng8MmP_e=>(D5rU@P%EE8QPxR)pzAVRa5ZJGsl`b4;b^N{)uF4+B3obcp5J{wK#} -zD3GzkH1i<&_R#XJ28R6oACpZgE+q8E>s{Xo3ya<$^MYS?yv_MwQDTt)ILLS83>|?) -zVzq4ASV6K^qGVws02HEiE -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 -MD{I5+6fGkE2SYF}a{vGU - -diff --git a/themes/spinner/spinner.plymouth.in b/themes/spinner/spinner.plymouth.in -index 187b635..5c0b297 100644 ---- a/themes/spinner/spinner.plymouth.in -+++ b/themes/spinner/spinner.plymouth.in -@@ -17,8 +17,8 @@ WatermarkHorizontalAlignment=.5 - WatermarkVerticalAlignment=.96 - Transition=none - TransitionDuration=0.0 --BackgroundStartColor=0x202020 --BackgroundEndColor=0x202020 -+BackgroundStartColor=0x000000 -+BackgroundEndColor=0x000000 - ProgressBarBackgroundColor=0x606060 - ProgressBarForegroundColor=0xffffff - MessageBelowAnimation=true --- -2.21.0 - -From 1246c79a0973b4b6fab7e52a861a4388ffd8835e Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 25 Mar 2019 08:23:00 +0100 -Subject: [PATCH 84/84] Translations: Sync translations with zanata - -Add new fur and sr translations from fedora.zanata.org : -https://fedora.zanata.org/iteration/view/plymouth/master - -Signed-off-by: Hans de Goede ---- - po/LINGUAS | 2 ++ - po/fur.po | 34 ++++++++++++++++++++++++++++++++++ - po/sr.po | 35 +++++++++++++++++++++++++++++++++++ - 3 files changed, 71 insertions(+) - create mode 100644 po/fur.po - create mode 100644 po/sr.po - -diff --git a/po/LINGUAS b/po/LINGUAS -index c7af8be..ddf13c6 100644 ---- a/po/LINGUAS -+++ b/po/LINGUAS -@@ -3,8 +3,10 @@ cs - de - es - fr -+fur - hu - nl - pl - uk -+sr - zh_CN -diff --git a/po/fur.po b/po/fur.po -new file mode 100644 -index 0000000..10da670 ---- /dev/null -+++ b/po/fur.po -@@ -0,0 +1,34 @@ -+# Fabio Tomat , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-03-19 08:14+0000\n" -+"Last-Translator: Fabio Tomat \n" -+"Language-Team: Friulian\n" -+"Language: fur\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "%d%% completât" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Daûr a instalâ i inzornaments..." -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "No sta distudâ il computer" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Inzornament dal sisteme..." -+ -diff --git a/po/sr.po b/po/sr.po -new file mode 100644 -index 0000000..b8decc3 ---- /dev/null -+++ b/po/sr.po -@@ -0,0 +1,35 @@ -+# Marko Kostic , 2019. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: plymouth 0.9.5\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=" -+"plymouth\n" -+"POT-Creation-Date: 2019-02-26 12:09+0100\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"PO-Revision-Date: 2019-03-11 09:03+0000\n" -+"Last-Translator: Marko Kostic \n" -+"Language-Team: Serbian\n" -+"Language: sr\n" -+"X-Generator: Zanata 4.6.2\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -+ -+#: src/plugins/splash/two-step/plugin.c:1809 -+#, c-format -+msgid "%d%% complete" -+msgstr "%d%% завршено" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:1 themes/spinner/spinner.plymouth.in.h:1 -+msgid "Installing Updates..." -+msgstr "Инсталирам ажурирања..." -+ -+#: themes/bgrt/bgrt.plymouth.in.h:2 themes/spinner/spinner.plymouth.in.h:2 -+msgid "Do not turn off your computer" -+msgstr "Не искључујте ваш рачунар" -+ -+#: themes/bgrt/bgrt.plymouth.in.h:3 themes/spinner/spinner.plymouth.in.h:3 -+msgid "Upgrading System..." -+msgstr "Надограђујем систем..." -+ --- -2.21.0 - diff --git a/plymouth.rpmlintrc b/plymouth.rpmlintrc new file mode 100644 index 0000000..e44bfd9 --- /dev/null +++ b/plymouth.rpmlintrc @@ -0,0 +1,9 @@ +addFilter("incorrect-fsf-address") +addFilter("no-manual-page-for-binary") +addFilter("no-documentation") +# Spinfinity has a symlink to /usr/share/pixmaps/system-logo-white.png +addFilter("dangling-symlink") +# Suppress the error from the ghosted /var/lib/plymouth/boot-duration file +addFilter("non-readable") +# FIXME: we need to stop using /var/run and use /run instead +addFilter("dir-or-file-in-var-run") diff --git a/plymouth.spec b/plymouth.spec index e0141fb..0f7e0dc 100644 --- a/plymouth.spec +++ b/plymouth.spec @@ -1,16 +1,23 @@ +%global commit a8aad2799c5ca176ee3fb59bbea5ecf30262925a +%global commitdate 20191001 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + Summary: Graphical Boot Animation and Logger Name: plymouth Version: 0.9.4 -Release: 9%{?dist} +Release: 10.%{commitdate}git%{shortcommit}%{?dist} License: GPLv2+ URL: http://www.freedesktop.org/wiki/Software/Plymouth -Source0: http://freedesktop.org/software/plymouth/releases/%{name}-%{version}.tar.xz +Source0: https://gitlab.freedesktop.org/plymouth/plymouth/-/archive/%{commit}/%{name}-%{shortcommit}.tar.gz Source2: charge.plymouth Source3: plymouth-update-initrd -Patch1: plymouth-updates.patch -Patch2: plymouth-more-updates.patch +# Upstream has bumped the soname because some obscure symbols were dropped, +# but we really do not want to change soname in Fedora during a cycle. +# The only libply* user in Fedora outside this pkg is plymouth-theme-breeze +# and that does not need the removed symbols. +Patch1: 0001-Revert-configure-bump-so-name.patch BuildRequires: gcc libtool git BuildRequires: pkgconfig(libdrm) @@ -39,15 +46,14 @@ Summary: Plymouth default theme Requires: plymouth(system-theme) = %{version}-%{release} %description system-theme -This metapackage tracks the current distribution default theme. +This meta-package tracks the current distribution default theme. %package core-libs Summary: Plymouth core libraries %description core-libs -This package contains the libply and libply-splash-core libraries -used by Plymouth. +This package contains the core libraries used by Plymouth. %package graphics-libs @@ -56,8 +62,7 @@ Requires: %{name}-core-libs = %{version}-%{release} Requires: system-logos %description graphics-libs -This package contains the libply-splash-graphics library -used by graphical Plymouth splashes. +This package contains the libraries used by graphical Plymouth splashes. %package devel @@ -66,8 +71,8 @@ Requires: %{name} = %{version}-%{release} Requires: pkgconfig %description devel -This package contains the libply and libplybootsplash libraries -and headers needed to develop 3rd party splash plugins for Plymouth. +This package contains the libraries and headers needed to develop +3rd party splash plugins for Plymouth. %package scripts @@ -86,9 +91,8 @@ Requires: %{name} = %{version}-%{release} Requires: %{name}-graphics-libs = %{version}-%{release} %description plugin-label -This package contains the label control plugin for -Plymouth. It provides the ability to render text on -graphical boot splashes using pango and cairo. +This package contains the label control plugin for Plymouth. +It provides the ability to render text on graphical boot splashes. %package plugin-script @@ -98,9 +102,9 @@ Requires: %{name}-graphics-libs = %{version}-%{release} %description plugin-script This package contains the "script" boot splash plugin for -Plymouth. It features an extensible, scriptable boot splash -language that simplifies the process of designing custom -boot splash themes. +Plymouth. It features an extensible boot splash language that +allows writing new plugins as scripts, simplifying the process +of designing custom boot splash themes. %package plugin-fade-throbber @@ -218,14 +222,14 @@ Plymouth. It features a small spinner on a dark background. %prep -%autosetup -S git -autoreconf -ivf -Wno-portability +%autosetup -n %{name}-%{commit} +autoreconf --install --symlink -Wno-portability # Change the default theme sed -i -e 's/spinner/bgrt/g' src/plymouthd.defaults %build -%configure --enable-tracing --disable-tests \ +%configure --enable-tracing \ --with-logo=%{_datadir}/pixmaps/system-logo-white.png \ --with-background-start-color-stop=0x0073B3 \ --with-background-end-color-stop=0x00457E \ @@ -233,25 +237,17 @@ sed -i -e 's/spinner/bgrt/g' src/plymouthd.defaults --disable-gdm-transition \ --enable-systemd-integration \ --without-system-root-install \ - --without-log-viewer \ - --without-rhgb-compat-link \ - --disable-libkms -make %{?_smp_mflags} + --without-rhgb-compat-link +%make_build %install -make install DESTDIR=$RPM_BUILD_ROOT +%make_install %find_lang %{name} - -# Glow isn't quite ready for primetime -rm -rf $RPM_BUILD_ROOT%{_datadir}/plymouth/glow/ -rm -f $RPM_BUILD_ROOT%{_libdir}/plymouth/glow.so - -find $RPM_BUILD_ROOT -name '*.a' -delete find $RPM_BUILD_ROOT -name '*.la' -delete mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/plymouth -cp -f $RPM_SOURCE_DIR/plymouth-update-initrd $RPM_BUILD_ROOT%{_libexecdir}/plymouth +install -m 755 %{SOURCE3} $RPM_BUILD_ROOT%{_libexecdir}/plymouth # Add charge, our old default mkdir -p $RPM_BUILD_ROOT%{_datadir}/plymouth/themes/charge @@ -342,7 +338,6 @@ fi %{_localstatedir}/spool/plymouth %{_mandir}/man?/* %ghost %{_localstatedir}/lib/plymouth/boot-duration -%{_prefix}/lib/systemd/system/* %{_prefix}/lib/systemd/system/ %files devel @@ -415,6 +410,13 @@ fi %changelog +* Tue Oct 1 2019 Hans de Goede - 0.9.4-10.20191001gita8aad27 +- We are carrying so much patches from upstream that we are practically + following upstream master, switch to a git snapshot +- Add keyboard layout and capslock state indicator support (rhbz#825406) +- Fix "Installing Updates..." text being rendered all garbled on devices + where the panel is mounted 90 degrees rotated (rhbz#1753418) + * Sat Sep 7 2019 Hans de Goede - 0.9.4-9 - Add a patch fixing issues when using cards which default to the radeon kms driver with the amdgpu kms driver (rhbz#1490490) diff --git a/sources b/sources index c37069a..460fe6c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (plymouth-0.9.4.tar.xz) = 83eb2de7e6d0980e9f7fa4e0b0f20c46a8238051d84bc38dbbb5dfa438e41c1a39846dcd652374256d9f1fe79967b154a3576cd9c433ef816b6c962be2d31e93 +SHA512 (plymouth-a8aad27.tar.gz) = 99bac47a0dfe55c226ef470104c3a9cbd707e071e22449c7135d627aff861e5e1580ee0d7d24b5b6d9acfc8ac341cff4a218a743cdb176555e09e427af862880