commit f0ede0a585b7b0e79a7b37bc94d9ca3398b55bd4 Author: Julian Sparber Date: Sat Feb 11 20:15:35 2017 +0100 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..6f9bfa7 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# teleport diff --git a/src/glade.window.ui b/src/glade.window.ui new file mode 100644 index 0000000..848c692 --- /dev/null +++ b/src/glade.window.ui @@ -0,0 +1,145 @@ + + + + + diff --git a/src/gschemas.compiled b/src/gschemas.compiled new file mode 100644 index 0000000..3632ad0 Binary files /dev/null and b/src/gschemas.compiled differ diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..5e51045 --- /dev/null +++ b/src/main.c @@ -0,0 +1,9 @@ +#include + +#include "paperplaneapp.h" + +int +main (int argc, char *argv[]) +{ + return g_application_run (G_APPLICATION (paperplane_app_new ()), argc, argv); +} diff --git a/src/org.gtk.paperplaneapp.gschema.xml b/src/org.gtk.paperplaneapp.gschema.xml new file mode 100644 index 0000000..f97eadc --- /dev/null +++ b/src/org.gtk.paperplaneapp.gschema.xml @@ -0,0 +1,25 @@ + + + + + 'Monospace 12' + Font + The font to be used for content. + + + + + + + + 'none' + Transition + The transition to use when switching tabs. + + + false + Show words + Whether to show a word list in the sidebar + + + diff --git a/src/paperplaneapp b/src/paperplaneapp new file mode 100755 index 0000000..3b54d19 Binary files /dev/null and b/src/paperplaneapp differ diff --git a/src/paperplaneapp.c b/src/paperplaneapp.c new file mode 100644 index 0000000..cbf13d0 --- /dev/null +++ b/src/paperplaneapp.c @@ -0,0 +1,63 @@ +#include + +#include "paperplaneapp.h" +#include "paperplaneappwin.h" + +struct _PaperplaneApp +{ + GtkApplication parent; +}; + +G_DEFINE_TYPE(PaperplaneApp, paperplane_app, GTK_TYPE_APPLICATION); + + static void +paperplane_app_init (PaperplaneApp *app) +{ +} + + static void +paperplane_app_activate (GApplication *app) +{ + PaperplaneAppWindow *win; + + win = paperplane_app_window_new (PAPERPLANE_APP (app)); + gtk_window_present (GTK_WINDOW (win)); +} + + static void +paperplane_app_open (GApplication *app, + GFile **files, + gint n_files, + const gchar *hint) +{ + GList *windows; + PaperplaneAppWindow *win; + int i; + + windows = gtk_application_get_windows (GTK_APPLICATION (app)); + if (windows) + win = PAPERPLANE_APP_WINDOW (windows->data); + else + win = paperplane_app_window_new (PAPERPLANE_APP (app)); + + for (i = 0; i < n_files; i++) + paperplane_app_window_open (win, files[i]); + + gtk_window_present (GTK_WINDOW (win)); +} + + static void +paperplane_app_class_init (PaperplaneAppClass *class) +{ + G_APPLICATION_CLASS (class)->activate = paperplane_app_activate; + G_APPLICATION_CLASS (class)->open = paperplane_app_open; +} + + PaperplaneApp * +paperplane_app_new (void) +{ + return g_object_new (PAPERPLANE_APP_TYPE, + "application-id", "org.gtk.paperplaneapp", + "flags", G_APPLICATION_HANDLES_OPEN, + NULL); +} diff --git a/src/paperplaneapp.gresource.xml b/src/paperplaneapp.gresource.xml new file mode 100644 index 0000000..1c82062 --- /dev/null +++ b/src/paperplaneapp.gresource.xml @@ -0,0 +1,6 @@ + + + + window.ui + + diff --git a/src/paperplaneapp.h b/src/paperplaneapp.h new file mode 100644 index 0000000..5f6120e --- /dev/null +++ b/src/paperplaneapp.h @@ -0,0 +1,14 @@ +#ifndef __PAPERPLANEAPP_H +#define __PAPERPLANEAPP_H + +#include + + +#define PAPERPLANE_APP_TYPE (paperplane_app_get_type ()) +G_DECLARE_FINAL_TYPE (PaperplaneApp, paperplane_app, PAPERPLANE, APP, GtkApplication) + + +PaperplaneApp *paperplane_app_new (void); + + +#endif /* __PAPERPLANEAPP_H */ diff --git a/src/paperplaneappwin.c b/src/paperplaneappwin.c new file mode 100644 index 0000000..69fcc55 --- /dev/null +++ b/src/paperplaneappwin.c @@ -0,0 +1,36 @@ +#include + +#include "paperplaneapp.h" +#include "paperplaneappwin.h" + +struct _PaperplaneAppWindow +{ + GtkApplicationWindow parent; +}; + +G_DEFINE_TYPE(PaperplaneAppWindow, paperplane_app_window, GTK_TYPE_APPLICATION_WINDOW); + + static void +paperplane_app_window_init (PaperplaneAppWindow *win) +{ + gtk_widget_init_template (GTK_WIDGET (win)); +} + + static void +paperplane_app_window_class_init (PaperplaneAppWindowClass *class) +{ + gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class), + "/org/gtk/paperplaneapp/window.ui"); +} + + PaperplaneAppWindow * +paperplane_app_window_new (PaperplaneApp *app) +{ + return g_object_new (PAPERPLANE_APP_WINDOW_TYPE, "application", app, NULL); +} + + void +paperplane_app_window_open (PaperplaneAppWindow *win, + GFile *file) +{ +} diff --git a/src/paperplaneappwin.h b/src/paperplaneappwin.h new file mode 100644 index 0000000..aa3991b --- /dev/null +++ b/src/paperplaneappwin.h @@ -0,0 +1,16 @@ +#ifndef __PAPERPLANEAPPWIN_H +#define __PAPERPLANEAPPWIN_H + +#include +#include "paperplaneapp.h" + + +#define PAPERPLANE_APP_WINDOW_TYPE (paperplane_app_window_get_type ()) +G_DECLARE_FINAL_TYPE (PaperplaneAppWindow, paperplane_app_window, PAPERPLANE, APP_WINDOW, GtkApplicationWindow) + + PaperplaneAppWindow *paperplane_app_window_new (PaperplaneApp *app); + void paperplane_app_window_open (PaperplaneAppWindow *win, + GFile *file); + + +#endif /* __PAPERPLANEAPPWIN_H */ diff --git a/src/resources.c b/src/resources.c new file mode 100644 index 0000000..612231a --- /dev/null +++ b/src/resources.c @@ -0,0 +1,692 @@ +#include + +#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) +# define SECTION __attribute__ ((section (".gresource.paperplaneapp"), aligned (8))) +#else +# define SECTION +#endif + +static const SECTION union { const guint8 data[4240]; const double alignment; void * const ptr;} paperplaneapp_resource_data = { { + 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x4b, 0x50, 0x90, 0x0b, + 0x01, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x4c, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xd4, 0xb5, 0x02, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xb4, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x4c, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0x7c, 0xc7, 0x2b, 0xab, + 0x03, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x76, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x76, 0x10, 0x00, 0x00, 0xb8, 0xb2, 0x4d, 0x72, + 0x04, 0x00, 0x00, 0x00, 0x76, 0x10, 0x00, 0x00, + 0x0e, 0x00, 0x4c, 0x00, 0x84, 0x10, 0x00, 0x00, + 0x88, 0x10, 0x00, 0x00, 0x40, 0xf4, 0xbf, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x88, 0x10, 0x00, 0x00, + 0x04, 0x00, 0x4c, 0x00, 0x8c, 0x10, 0x00, 0x00, + 0x90, 0x10, 0x00, 0x00, 0x6f, 0x72, 0x67, 0x2f, + 0x04, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x2e, 0x75, 0x69, 0x00, 0x00, 0x00, + 0x9e, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x31, + 0x2e, 0x30, 0x22, 0x20, 0x65, 0x6e, 0x63, 0x6f, + 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x55, 0x54, + 0x46, 0x2d, 0x38, 0x22, 0x3f, 0x3e, 0x0a, 0x3c, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x2d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x73, 0x20, 0x67, 0x74, 0x6b, 0x2b, 0x20, 0x33, + 0x2e, 0x38, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x50, + 0x61, 0x70, 0x65, 0x72, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x41, 0x70, 0x70, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x22, 0x20, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x22, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, + 0x65, 0x73, 0x22, 0x3e, 0x50, 0x61, 0x70, 0x65, + 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, + 0x36, 0x30, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x34, 0x30, + 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3e, + 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, + 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, + 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, + 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x3e, + 0x33, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, + 0x74, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x22, 0x3e, 0x31, 0x30, 0x30, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x3e, + 0x31, 0x30, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x42, + 0x6f, 0x78, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, + 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, + 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f, + 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x3e, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, + 0x42, 0x6f, 0x78, 0x22, 0x3e, 0x3c, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, + 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, + 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, + 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, + 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x5f, 0x62, + 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x22, 0x3e, 0x33, + 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x6f, 0x72, 0x69, 0x65, + 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x3e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, + 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, + 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, + 0x3e, 0x54, 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x3e, 0x3c, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x64, 0x65, 0x73, 0x63, 0x22, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x43, 0x61, + 0x6e, 0x74, 0x61, 0x72, 0x65, 0x6c, 0x6c, 0x20, + 0x31, 0x31, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, + 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, + 0x6e, 0x64, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, + 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6c, + 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, + 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, + 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x47, 0x74, 0x6b, 0x42, 0x6f, 0x78, 0x22, 0x20, + 0x69, 0x64, 0x3d, 0x22, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, + 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, + 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, + 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f, 0x72, + 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3e, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x3c, 0x2f, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x69, 0x64, + 0x3d, 0x22, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x3c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, + 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, + 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, + 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x68, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, + 0x3e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, + 0x73, 0x22, 0x3e, 0x54, 0x6f, 0x62, 0x69, 0x27, + 0x73, 0x20, 0x4c, 0x61, 0x70, 0x74, 0x6f, 0x70, + 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x3e, 0x3c, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x3e, 0x3c, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x64, 0x65, 0x73, + 0x63, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3d, 0x22, 0x43, 0x61, 0x6e, 0x74, 0x61, 0x72, + 0x65, 0x6c, 0x6c, 0x20, 0x32, 0x30, 0x22, 0x2f, + 0x3e, 0x3c, 0x2f, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x3e, 0x3c, 0x2f, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, + 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, + 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e, + 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, + 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x3e, 0x54, 0x72, + 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x30, + 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, + 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, + 0x2f, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, + 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, + 0x6e, 0x64, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, + 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6c, + 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, + 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, + 0x64, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, + 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, + 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, + 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, + 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, + 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, + 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, + 0x6b, 0x42, 0x6f, 0x78, 0x22, 0x3e, 0x3c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, + 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, + 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, + 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, + 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, + 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, + 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x22, 0x3e, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, + 0x22, 0x79, 0x65, 0x73, 0x22, 0x3e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x3c, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, + 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, + 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, + 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x3e, + 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, + 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, + 0x65, 0x72, 0x2f, 0x3e, 0x3c, 0x2f, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x3e, 0x3c, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x2f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, + 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x46, + 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, + 0x69, 0x6c, 0x6c, 0x22, 0x3e, 0x54, 0x72, 0x75, + 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x31, 0x3c, + 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, + 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x3d, 0x22, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x62, 0x61, 0x72, 0x22, 0x3e, 0x3c, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x61, 0x72, + 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, + 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, + 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, + 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, + 0x6f, 0x6e, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, + 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x22, 0x64, 0x65, 0x63, 0x6f, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x22, 0x3e, 0x3a, 0x63, + 0x6c, 0x6f, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x20, + 0x69, 0x64, 0x3d, 0x22, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, + 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, + 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x61, + 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3e, 0x65, 0x6e, 0x64, 0x3c, 0x2f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, + 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x69, + 0x64, 0x3d, 0x22, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, + 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, + 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, + 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, + 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, + 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, + 0x79, 0x65, 0x73, 0x22, 0x3e, 0x56, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x20, 0x6f, 0x6e, 0x20, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x3c, + 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, + 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x61, 0x63, 0x6b, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x65, + 0x6e, 0x64, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x32, + 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, + 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x3e, 0x3c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x3e, 0x0a, 0x00, 0x00, + 0x28, 0x75, 0x75, 0x61, 0x79, 0x29, 0x70, 0x61, + 0x70, 0x65, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x61, 0x70, 0x70, 0x2f, 0x02, 0x00, 0x00, 0x00, + 0x67, 0x74, 0x6b, 0x2f, 0x03, 0x00, 0x00, 0x00 +} }; + +static GStaticResource static_resource = { paperplaneapp_resource_data.data, sizeof (paperplaneapp_resource_data.data), NULL, NULL, NULL }; +extern GResource *paperplaneapp_get_resource (void); +GResource *paperplaneapp_get_resource (void) +{ + return g_static_resource_get_resource (&static_resource); +} +/* + If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and + destructors, in a sane way, including e.g. on library unload. If not you're on + your own. + + Some compilers need #pragma to handle this, which does not work with macros, + so the way you need to use this is (for constructors): + + #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA + #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor) + #endif + G_DEFINE_CONSTRUCTOR(my_constructor) + static void my_constructor(void) { + ... + } + +*/ + +#ifndef __GTK_DOC_IGNORE__ + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) + +#define G_HAS_CONSTRUCTORS 1 + +#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void); +#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void); + +#elif defined (_MSC_VER) && (_MSC_VER >= 1500) +/* Visual studio 2008 and later has _Pragma */ + +#define G_HAS_CONSTRUCTORS 1 + +/* We do some weird things to avoid the constructors being optimized + * away on VS2015 if WholeProgramOptimization is enabled. First we + * make a reference to the array from the wrapper to make sure its + * references. Then we use a pragma to make sure the wrapper function + * symbol is always included at the link stage. Also, the symbols + * need to be extern (but not dllexport), even though they are not + * really used from another object file. + */ + +/* We need to account for differences between the mangling of symbols + * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed + * with an underscore but symbols on x64 are not. + */ +#ifdef _WIN64 +#define G_MSVC_SYMBOL_PREFIX "" +#else +#define G_MSVC_SYMBOL_PREFIX "_" +#endif + +#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX) +#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX) + +#define G_MSVC_CTOR(_func,_sym_prefix) \ + static void _func(void); \ + extern int (* _array ## _func)(void); \ + int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \ + __pragma(section(".CRT$XCU",read)) \ + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper; + +#define G_MSVC_DTOR(_func,_sym_prefix) \ + static void _func(void); \ + extern int (* _array ## _func)(void); \ + int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \ + __pragma(section(".CRT$XCU",read)) \ + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor; + +#elif defined (_MSC_VER) + +#define G_HAS_CONSTRUCTORS 1 + +/* Pre Visual studio 2008 must use #pragma section */ +#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 +#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 + +#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ + section(".CRT$XCU",read) +#define G_DEFINE_CONSTRUCTOR(_func) \ + static void _func(void); \ + static int _func ## _wrapper(void) { _func(); return 0; } \ + __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper; + +#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ + section(".CRT$XCU",read) +#define G_DEFINE_DESTRUCTOR(_func) \ + static void _func(void); \ + static int _func ## _constructor(void) { atexit (_func); return 0; } \ + __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; + +#elif defined(__SUNPRO_C) + +/* This is not tested, but i believe it should work, based on: + * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c + */ + +#define G_HAS_CONSTRUCTORS 1 + +#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 +#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 + +#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ + init(_func) +#define G_DEFINE_CONSTRUCTOR(_func) \ + static void _func(void); + +#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ + fini(_func) +#define G_DEFINE_DESTRUCTOR(_func) \ + static void _func(void); + +#else + +/* constructors not supported for this compiler */ + +#endif + +#endif /* __GTK_DOC_IGNORE__ */ + +#ifdef G_HAS_CONSTRUCTORS + +#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA +#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor) +#endif +G_DEFINE_CONSTRUCTOR(resource_constructor) +#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA +#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor) +#endif +G_DEFINE_DESTRUCTOR(resource_destructor) + +#else +#warning "Constructor not supported on this compiler, linking in resources will not work" +#endif + +static void resource_constructor (void) +{ + g_static_resource_init (&static_resource); +} + +static void resource_destructor (void) +{ + g_static_resource_fini (&static_resource); +} diff --git a/src/window.ui b/src/window.ui new file mode 100644 index 0000000..226be4f --- /dev/null +++ b/src/window.ui @@ -0,0 +1,145 @@ + + + + +