From 1a6ab5dc0f6b313229abb61e54c180c26aa09485 Mon Sep 17 00:00:00 2001 From: Jannik Streek Date: Sat, 20 Feb 2021 17:14:17 +0100 Subject: [PATCH 01/33] :wrench: added kits ci files --- README_KITS.md | 21 +++ assets/scss/_bootstrap_custom.scss | 15 +- assets/scss/app.scss | 2 +- docker-compose-kits.yml | 41 +++++ .../controllers/static_page_controller.ex | 4 +- .../layout/kits_static_page.html.leex | 18 ++ .../templates/layout/root.html.heex | 2 +- .../templates/static_page/kits_home.html.leex | 48 ++++++ priv/static/css/kits.css | 98 +++++++++++ priv/static/css/kits_home.css | 145 ++++++++++++++++ priv/static/favicon.ico | Bin 67646 -> 1150 bytes priv/static/images/kits_footer.svg | 38 +++++ .../images/kits_logo/android-icon-144x144.png | Bin 0 -> 3403 bytes .../images/kits_logo/android-icon-192x192.png | Bin 0 -> 2881 bytes .../images/kits_logo/android-icon-36x36.png | Bin 0 -> 1593 bytes .../images/kits_logo/android-icon-48x48.png | Bin 0 -> 1742 bytes .../images/kits_logo/android-icon-72x72.png | Bin 0 -> 2184 bytes .../images/kits_logo/android-icon-96x96.png | Bin 0 -> 2475 bytes .../images/kits_logo/apple-icon-114x114.png | Bin 0 -> 1493 bytes .../images/kits_logo/apple-icon-120x120.png | Bin 0 -> 1514 bytes .../images/kits_logo/apple-icon-144x144.png | Bin 0 -> 1803 bytes .../images/kits_logo/apple-icon-152x152.png | Bin 0 -> 1816 bytes .../images/kits_logo/apple-icon-167x167.png | Bin 0 -> 1951 bytes .../images/kits_logo/apple-icon-180x180.png | Bin 0 -> 2106 bytes .../images/kits_logo/apple-icon-57x57.png | Bin 0 -> 978 bytes .../images/kits_logo/apple-icon-60x60.png | Bin 0 -> 988 bytes .../images/kits_logo/apple-icon-72x72.png | Bin 0 -> 1123 bytes .../images/kits_logo/apple-icon-76x76.png | Bin 0 -> 1185 bytes .../kits_logo/apple-icon-precomposed.png | Bin 0 -> 3453 bytes priv/static/images/kits_logo/apple-icon.png | Bin 0 -> 3453 bytes .../static/images/kits_logo/favicon-16x16.png | Bin 0 -> 1124 bytes .../static/images/kits_logo/favicon-32x32.png | Bin 0 -> 1464 bytes .../static/images/kits_logo/favicon-96x96.png | Bin 0 -> 2475 bytes .../images/kits_logo/ms-icon-144x144.png | Bin 0 -> 3403 bytes .../images/kits_logo/ms-icon-150x150.png | Bin 0 -> 3910 bytes .../images/kits_logo/ms-icon-310x310.png | Bin 0 -> 14991 bytes .../static/images/kits_logo/ms-icon-70x70.png | Bin 0 -> 2147 bytes priv/static/images/kits_mindwendel_logo.svg | 155 ++++++++++++++++++ priv/static/images/mindwendel.svg | 154 +++++++++++++++++ priv/static/images/noun_bulb.svg | 1 + .../static_page_controller_test.exs | 5 +- 41 files changed, 737 insertions(+), 10 deletions(-) create mode 100644 README_KITS.md create mode 100644 docker-compose-kits.yml create mode 100644 lib/mindwendel_web/templates/layout/kits_static_page.html.leex create mode 100644 lib/mindwendel_web/templates/static_page/kits_home.html.leex create mode 100644 priv/static/css/kits.css create mode 100644 priv/static/css/kits_home.css create mode 100644 priv/static/images/kits_footer.svg create mode 100644 priv/static/images/kits_logo/android-icon-144x144.png create mode 100644 priv/static/images/kits_logo/android-icon-192x192.png create mode 100644 priv/static/images/kits_logo/android-icon-36x36.png create mode 100644 priv/static/images/kits_logo/android-icon-48x48.png create mode 100644 priv/static/images/kits_logo/android-icon-72x72.png create mode 100644 priv/static/images/kits_logo/android-icon-96x96.png create mode 100644 priv/static/images/kits_logo/apple-icon-114x114.png create mode 100644 priv/static/images/kits_logo/apple-icon-120x120.png create mode 100644 priv/static/images/kits_logo/apple-icon-144x144.png create mode 100644 priv/static/images/kits_logo/apple-icon-152x152.png create mode 100644 priv/static/images/kits_logo/apple-icon-167x167.png create mode 100644 priv/static/images/kits_logo/apple-icon-180x180.png create mode 100644 priv/static/images/kits_logo/apple-icon-57x57.png create mode 100644 priv/static/images/kits_logo/apple-icon-60x60.png create mode 100644 priv/static/images/kits_logo/apple-icon-72x72.png create mode 100644 priv/static/images/kits_logo/apple-icon-76x76.png create mode 100644 priv/static/images/kits_logo/apple-icon-precomposed.png create mode 100644 priv/static/images/kits_logo/apple-icon.png create mode 100644 priv/static/images/kits_logo/favicon-16x16.png create mode 100644 priv/static/images/kits_logo/favicon-32x32.png create mode 100644 priv/static/images/kits_logo/favicon-96x96.png create mode 100644 priv/static/images/kits_logo/ms-icon-144x144.png create mode 100644 priv/static/images/kits_logo/ms-icon-150x150.png create mode 100644 priv/static/images/kits_logo/ms-icon-310x310.png create mode 100644 priv/static/images/kits_logo/ms-icon-70x70.png create mode 100644 priv/static/images/kits_mindwendel_logo.svg create mode 100644 priv/static/images/mindwendel.svg create mode 100644 priv/static/images/noun_bulb.svg diff --git a/README_KITS.md b/README_KITS.md new file mode 100644 index 00000000..dd9d8ecf --- /dev/null +++ b/README_KITS.md @@ -0,0 +1,21 @@ +# kits version of mindwendel + +This project includes a few CI changes to the mindwendel software. + +## Installation + +Use docker-compose +```sh +docker-compose -f docker-compose-kits.yml up +``` + +or to make sure updates will be included: + +```sh +docker-compose -f docker-compose-kits.yml --force-recreate up +``` + +Important: Make sure to exchange passwords with proper ones! + + +See main README for project specifics. diff --git a/assets/scss/_bootstrap_custom.scss b/assets/scss/_bootstrap_custom.scss index 77269855..d43f2fe0 100644 --- a/assets/scss/_bootstrap_custom.scss +++ b/assets/scss/_bootstrap_custom.scss @@ -1,13 +1,22 @@ // Required @import "../node_modules/bootstrap/scss/bootstrap"; -.card-body-mindwendel-idea { - @extend .card-body; - padding: 0.5rem 0.5rem; +//#00456F secondary +$primary: #00a3d3; + +.btn-primary { + color: #ffffff !important; } +.card-body-mindwendel-idea { + @extend .card-body; + padding: 0.5rem 0.5rem; + } + .card-footer-mindwendel-idea { @extend .card-footer; padding: 0.5rem 0.5rem; background-color: inherit; } + +@import "../node_modules/bootstrap"; \ No newline at end of file diff --git a/assets/scss/app.scss b/assets/scss/app.scss index d8c8ffad..18754b21 100644 --- a/assets/scss/app.scss +++ b/assets/scss/app.scss @@ -12,7 +12,7 @@ $bootstrap-icons-font-dir: "../node_modules/bootstrap-icons/font/fonts/"; } .nav-mindwendel-logo { - height: 25px; + height: 35px; } // Taken from the examples shown: diff --git a/docker-compose-kits.yml b/docker-compose-kits.yml new file mode 100644 index 00000000..be845e18 --- /dev/null +++ b/docker-compose-kits.yml @@ -0,0 +1,41 @@ +version: "3" + +services: + mindwendel: + container_name: mindwendel + image: kits/mindwendel + build: + context: . + target: app + environment: + DATABASE_USER: postgres + DATABASE_USER_PASSWORD: postgres + DATABASE_NAME: mindwendel + DATABASE_PORT: 5432 + DATABASE_HOST: db + DATABASE_SSL: "true" + URL_HOST: localhost + # IMPORTANT: Change the secret key base - see readme + SECRET_KEY_BASE: + MW_DEFAULT_LOCALE: de + MW_FEATURE_BRAINSTORMING_TEASER: "false" + # Use the URL_PORT to change url generation behavior + # URL_PORT: + ports: + - "4000:4000" + depends_on: + - db + db: + image: postgres:latest + environment: + # IMPORTANT: Do not use these credentials in production. Please use other credentials when deploying this in production + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + PGDATA: /var/lib/postgresql/data/pgdata + restart: always + ports: + - "5432:5432" + volumes: + - pgdata:/var/lib/postgresql/data +volumes: + pgdata: \ No newline at end of file diff --git a/lib/mindwendel_web/controllers/static_page_controller.ex b/lib/mindwendel_web/controllers/static_page_controller.ex index 6681dfed..493a1c4a 100644 --- a/lib/mindwendel_web/controllers/static_page_controller.ex +++ b/lib/mindwendel_web/controllers/static_page_controller.ex @@ -3,7 +3,7 @@ defmodule MindwendelWeb.StaticPageController do alias Mindwendel.Brainstormings alias Mindwendel.Brainstormings.Brainstorming - plug :put_root_layout, {MindwendelWeb.LayoutView, :static_page} + plug :put_root_layout, {MindwendelWeb.LayoutView, :kits_static_page} def home(conn, _params) do current_user = @@ -11,7 +11,7 @@ defmodule MindwendelWeb.StaticPageController do |> MindwendelService.SessionService.get_current_user_id() |> Mindwendel.Accounts.get_user() - render(conn, "home.html", + render(conn, "kits_home.html", current_user: current_user, brainstorming: %Brainstorming{}, changeset: Brainstormings.change_brainstorming(%Brainstorming{}, %{}) diff --git a/lib/mindwendel_web/templates/layout/kits_static_page.html.leex b/lib/mindwendel_web/templates/layout/kits_static_page.html.leex new file mode 100644 index 00000000..5bae5a15 --- /dev/null +++ b/lib/mindwendel_web/templates/layout/kits_static_page.html.leex @@ -0,0 +1,18 @@ + + + + + + + <%= csrf_meta_tag() %> + <%= live_title_tag assigns[:page_title] || "Mindwendel" %> + "/> + + + "> + + + + <%= @inner_content %> + + diff --git a/lib/mindwendel_web/templates/layout/root.html.heex b/lib/mindwendel_web/templates/layout/root.html.heex index b653c70e..628fa4b9 100644 --- a/lib/mindwendel_web/templates/layout/root.html.heex +++ b/lib/mindwendel_web/templates/layout/root.html.heex @@ -26,7 +26,7 @@
<%= link to: "/", class: "navbar-brand mb-0 h1" do %> <% end %> diff --git a/lib/mindwendel_web/templates/static_page/kits_home.html.leex b/lib/mindwendel_web/templates/static_page/kits_home.html.leex new file mode 100644 index 00000000..0ea20198 --- /dev/null +++ b/lib/mindwendel_web/templates/static_page/kits_home.html.leex @@ -0,0 +1,48 @@ +"/> +
+ +
+ " alt="mindwendel" style="width: 100%;"> +

+ + Mit unserem schlanken Tool »mindwendel« sammelst du auf überraschend einfache + Weise mit anderen gemeinsam Ideen. Diese kannst du liken, sortieren und farbig + markieren. +

+ <%= f = form_for @changeset, Routes.brainstorming_path(@conn, :create) %> +
+ <%= text_input f, :name, class: "form-control", placeholder: "Gib deine Frage ein!", autofocus: true %> + <%= if message = f.errors[:name] do %> + <%= translate_error(message) %> + <% end %> + <%= submit "OK", class: "" %> +
+
+ + <%= if @current_user && !Enum.empty?(@current_user.brainstormings) do %> +

Deine letzten Brainstormings

+
    + <%= for brainstorming <- list_brainstormings_for(@current_user) do %> +
  • <%= link brainstorming.name, to: Routes.brainstorming_show_path(@conn, :show, brainstorming) %> + + <%= Timex.format!(brainstorming.inserted_at, "{relative}", :relative) %> +
  • + + <% end %> +
+ <% end %> + + +
diff --git a/priv/static/css/kits.css b/priv/static/css/kits.css new file mode 100644 index 00000000..50ba5d3b --- /dev/null +++ b/priv/static/css/kits.css @@ -0,0 +1,98 @@ +/* CSS taken from https://pad.kits.blog/ with permission of Tim Krieger*/ +#button, body, form { + border: none +} + +body { + background: #fff; + font-family: Quicksand, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 1.42857143; + color: #333; + display: flex; + align-items: center; + justify-content: center; + background-size: cover +} + +#wrapper { + border-top: none; + margin-top: 0; + padding: 10px; + background: 0 0; + box-shadow: none +} + +input { + color: #4a5d5c +} + +#inner { + background: 0 0; + padding-top: 0; + width: 100%; + max-width: 400px; + margin-bottom: 50px; + text-align: center; + color: #000000 +} + +#label { + text-shadow: none; + color: #333; + font-weight: 400; + text-align: center +} + +#button { + margin: 0 auto; + text-align: center; + width: 100%; + text-shadow: none; + font-size: 23px; + line-height: 1.8; + color: #fff; + background: #00a3d3; + border-radius: 3px; + box-shadow: none; + height: 53px; + border: none; + display: block +} + +button[type=submit] { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + color: #fff; + background: #00a3d3; + border: none; + top: 0; + opacity: 1; + transition: .2s background +} + +#button:hover, button[type=submit]:hover { + cursor: pointer; + background: #0082a8; + color: #fff +} + +#padname { + height: 38px; + width: calc(100% - 45px); + padding: 0 12px; + position: relative +} + +svg#kits_logo { + width: 250px; + height: auto; + margin-bottom: 50px; + max-width: 100% +} + +@media only screen and (max-width:420px) { + svg#kits_logo { + margin-top: 30px + } +} \ No newline at end of file diff --git a/priv/static/css/kits_home.css b/priv/static/css/kits_home.css new file mode 100644 index 00000000..c8606649 --- /dev/null +++ b/priv/static/css/kits_home.css @@ -0,0 +1,145 @@ +/* CSS taken from https://pad.kits.blog/ with permission of Tim Krieger*/ +.kits_footer { + font-family: Arial, Helvetica, sans-serif; + background: #ffffff; + border-radius: 4px; + width: 250px; + max-width: 100%; + margin: 40px auto 30px auto; + padding: 20px; + border-left: 4px solid #00a3d3; + box-sizing: border-box; + box-shadow: 0 0.25rem 0.5rem rgba(0,0,0,.1); + text-align: center; +} + +.kits_footer #kits_footer_logo { + position: relative; + left: calc(50% + 10px); + transform: translateX(-50%); + width: 90px; + height: auto; + margin-bottom: 5px; +} +.kits_footer_links { + padding: 0; + text-align: center; + margin: 0; +} +.kits_footer_links li { + display: inline-block; + padding: 5px; +} +.kits_footer_links a { + color: #000; + font-size: 12px; + text-decoration: none; +} +.kits_footer_links a:hover { + text-decoration: underline; +} +.github_link { + text-align: center; + font-size: 12px; + margin-top: 5px; +} +#kits_github_link { + display: inline-block; + width: auto; + height: 20px; + position: relative; + top: 5px; + margin-right: 3px; + color: #999; +} +.github_link a { + color: #999; + text-decoration: none; + transition: color .3s ease; +} +.github_link a:hover { + color: #555; +} + +body { + margin: 0; + min-height: 100vh; + } + + #inner { + position:relative; + margin: 20px auto 5px; + } + #button { + margin: 0 auto; + text-align: center; + font: 36px verdana,arial,sans-serif; + width:300px; + border:none; + color: white; + text-shadow: 0 -1px 0 rgba(0,0,0,.8); + height: 70px; + line-height: 70px; + background: #555; + background: -webkit-linear-gradient(#5F5F5F,#565656 50%,#4C4C4C 51%,#373737); + background: -moz-linear-gradient(#5F5F5F,#565656 50%,#4C4C4C 51%,#373737); + background: -ms-linear-gradient(#5F5F5F,#565656 50%,#4C4C4C 51%,#373737); + background: -o-linear-gradient(#5F5F5F,#565656 50%,#4C4C4C 51%,#373737); + box-shadow: inset 0 1px 3px rgba(0,0,0,0.9); + } + #button:hover { + cursor: pointer; + background: #666; + background: -webkit-linear-gradient(#707070,#666666 50%,#5B5B5B 51%,#474747); + background: -moz-linear-gradient(#707070,#666666 50%,#5B5B5B 51%,#474747); + background: -ms-linear-gradient(#707070,#666666 50%,#5B5B5B 51%,#474747); + background: -o-linear-gradient(#707070,#666666 50%,#5B5B5B 51%,#474747); + } + #button:focus, button[type=submit]:focus { + outline: 0; + } + #label { + text-align: left; + text-shadow: 0 1px 1px #fff; + margin: 16px auto 0; + display:block; + } + #padname{ + height:38px; + } + form { + height: 38px; + background: #fff; + border: 1px solid #bbb; + border-radius: 3px; + position: relative; + text-align: left; + } + button, input { + font-weight: bold; + font-size: 15px; + } + input[type="text"] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 3px 0 0 3px; + box-sizing: border-box; + -moz-box-sizing: border-box; + line-height:36px; /* IE8 hack */ + padding: 0px 45px 0 10px; + *padding: 0; /* IE7 hack */ + width: 100%; + height: 100%; + outline: none; + background-color: rgba(0, 0, 0, 0.01); + border: 1px solid rgba(0, 0, 0, 0.1); + border-right: none; + position: absolute; + } + button[type="submit"] { + position: absolute; + right: 0px; + width: 45px; + height: 38px; + } \ No newline at end of file diff --git a/priv/static/favicon.ico b/priv/static/favicon.ico index 469370b734a062f7d67232a7a86f99e2b6602a8c..56b438738a23b90a52c3416cd9acf022bdf09038 100644 GIT binary patch literal 1150 zcmb8tyGjE=6oBCgu~89Y@RHKf7qYXnF=%0LBM7Fn5w+Kc5EO6V4Yd#(6-8_W@q$-G z5aR!Dc3@dl;)ZW$c4p4Z*|Q0uz^_ya-21~wO9;IogaI(bNMoEP1m?=^4aqaNlf^_I z?HD?I{?C=hS7?thjaJ8+y<7{=Kf@PlXhTz%>(Gr=T;m*7lwdBh-`xot-}n_= z;Sv{czuA=iBOGD_6G&=B8}mPSL?^j{Wx|w^vRx#ezIoG(>nE3sz{~T`ciH~16=bCvK6K3im)G&p~ IA`1WW4VW|6j{pDw literal 67646 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 + \ No newline at end of file diff --git a/priv/static/images/kits_logo/android-icon-144x144.png b/priv/static/images/kits_logo/android-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..b06c57a83e2b8fe48acb06744de3b97e2a28e949 GIT binary patch literal 3403 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 XwBLy6uAHj>&oAul;qPAUMq~dM8LV5^ literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/android-icon-36x36.png b/priv/static/images/kits_logo/android-icon-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..697a43bbca6395a442e6f37ec45dcb33a8de30dc GIT binary patch literal 1593 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k3?#4J%UA`ZSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpuW5S zpAc7|0*1wxM-d%D;Q#;s%z?Mp0Rz0EB*-tAfkD0f#oIR>^7$)geOeJ;xoZBeng22> z{w`d!{M+;oYv!(=@%!h3BQmw`r+q)l%hEb^9p9vRH6P#oXqvL2%jItLGrxwLvRkVz zSKnEBb%NZI<6G*NWhv)gzc#u5^{%fsu4LW|4P5Iiuz5Qp(*@VFh7X)h+w0wTIAs@L zs&Ks}5aEak-ak}+#diWs&5w-^| zM+03phI9vrt_X5mC8oYZdy&$L6%Xz)f0z6ITw7J0tL0bS%goPnW>-%RZV@;XdewAV zl$(xe=~oHSCTWXoWrIr@TTKJ6@O%^7cjp72U&hiEye`W(`+R(>C-_gPVE2-~q|1ss z?*#NXym_Ow>ZrGzpqF3=-}?90Pu$(MN7MDfb>P zKIuG%K~(Tsn>&LWyG?R{q~e;s-%mV3Sd3c=G7h~GY-m(luHkgU-j-R%#CrK2Erx*_`begrfz1h9KPIK1dw?1k`K5;dMFIyH}HtwHjtao

!EpKi-TG*1z;;?$ zWu#`NXOu7)S{m^)6tx1?h$EQ;RTG|>Qj!5ua(Rs+2T+M5k`mv{+|-iFf>Z{utMm)< z((N~e`JtKP8v<0tU}$P)X<=$=WM&w7aN}a25`H9ef-|d984R49rYy311C$Cwk_rv- zWJt@*Nd=i3Tag1|}(~ iMy3`P7O5$TdO#g|K=&Pt5KRQyz~JfX=d#Wzp$PyIJdND| literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/android-icon-48x48.png b/priv/static/images/kits_logo/android-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7af3f8e9ceb3fb4c4a829eb3569a3c061cae45 GIT binary patch literal 1742 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 F_#Mi`D=7c~ literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/apple-icon-114x114.png b/priv/static/images/kits_logo/apple-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..acf2a78cfee8a733bbb38d5f1aae56987f7a24f3 GIT binary patch literal 1493 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 Q2mk;807*qoM6N<$g47Mc(EtDd literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/apple-icon-144x144.png b/priv/static/images/kits_logo/apple-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..eed4cfa5d53c28fdd9cc6dca2fbe4f2cd748beaa GIT binary patch literal 1803 zcmZvddo@g*@+ z6J5mYY_@D$Ho}%mV#J6tORMaz%uuK;CXzz^zWew7o^w9W`#i7bb3X6qoXHh@AZB2U> zh2$*1h^(;mq^z8{%tRn3C&w}6$f2VL;xZB)(=!iVe8VsU04;$9uOxQ@4?Zl7M6Y$R3ndOiD)_U!MWW6uWPr|%ma|EOs4^lXbBXx!G*n3o1E zVIuChFe}5f`ZEWB$Urjmzz&x{PvmX8q9=MT!8BGo|Ld~ZQ7)Yi8p_oC?rkM3Z?Wt- z(ava5tp3UZcIM7I1=Y57jSl4@svi#Z4MR4DZw#DU#_aw+;oYF=8MJ5qFi!lhh3SF5;r+8cQQ0>qF?Bp?$?Q{w zU16L1qZ)maK<}o2-s7@!3%qzH(42R|rI`+xj6|k!nRIC#$Dd?PLG-|Wm_(x>AlUCi za-kq3u%Aitq#&lCz)ymuAQqs2CDEm@0dU1nVnku%!4;OojKU^>+n|?yBNRJzksQDj zEH){~8DnBBZCeX%N~(iNITHPSYh`HMR&yyAw-YJChjGhUOW ze%ZbWT#tji%26FO!3#I~eJ`RH^q${dALENQ>b&V@oD*Z;TixWgC1 z&rasD@Ax==2D0}^kf|(*3a~t7Ijdz?k^Jc8!-g!L)I@o$01lr%rHnw|bw~!VJ`>+f z-N+k2<8gbhVrc44p1`HBQx*9$4g}nkDb#Q z-`+(ooqF&UHs<(}S4;TC3PP{brFt#=!qYl)d-s=Byw>HN{Wptugxx)(8ECEgbUcCW zLVd@B)_%NoHmY={e{2)Iu(0L1*y=hW1Mr!|?C!<6x>rn#uMa8#Y%X#~r5GuM5su1;J&>@Ej0oKzN25%Fis(|4fs#Q+mnhBp=~O2(lCU`ed}sfN&%NP zhltTsXcrb-G7RxX3os>mkS#?S%GiF%(IBWM3+7<>Y7jM5^u}wZIsOt0C?jCnIH)EZ z=3w~~#P7P!*bqY+dHY`@K5E4op=}EDmps^LVVdJ3VL%aN@fJpIC`gvJITW+0HSOi* z?~2!tjBZbieDQk3WPUwlYBr~;Kz}Uk(P2x~)VgPVsILyOWWmFSXZ82&^Z~9!0oQ1h*UZkQ<*}WW2qQ2g%F-Jx4SiqO=Wu?2yJBT*wh5_^V5PyU6Fo?4LLWfbvq3b f<{tjvasSb<>D&h}c>fF;{kQ;*Um$$LXFvac4;L7T literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/apple-icon-152x152.png b/priv/static/images/kits_logo/apple-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..3621a91db9d796616d586f8205400c48d9014f95 GIT binary patch literal 1816 zcma)-X;f3^7KRhx9Ec>Kl5j#4WQH;eSgU|Bk%&RWf=rQvMtcHQ0t8}65g8&*7ex2yMxEYAq+z2DQju|0m@H0uYgC`~s91{K(G2L~$ zISwt3aAJ<^Nr^uqJ&-0KNTpJbZ<7j;9mRsTD>^#(wc$E`Z9S>(?mwkLe{W)lh4G(rkwHavb|wcAQ-r1m8s|Q&L9NX zrH**~{~O~rsJc_v2IV|dJnl`eM=5=Y$0Yo7LwWjP9T)Vf3F)RLA9VB1P96_G9O7bZ z-~2lkxWwT8Hz! zFF31vhD-k2R#C+^zZnIu+pp@FoSM7d?J&Sqp(p?CUYnRIV!f)`VKbG|Cz8nqsqDUT zw^2QP^;WF$awN<*pd0ai;&lM0a%HHbR08wKIH=4}1E5TXCKW?4pGr4+c{D=nIj}ALx;>He=y!0Ev(%K-R^ng72su6cMQ`TQxz|x}|d|-0Z_iHvx>Utn2f) z-f0QhlgUCmEfKOeAq#D_0E7_8LK`g!LiET&Yb^yr49KIl+Eow&l1HtzGzc*w-{KVe zcwkg|M4p=zM%Q~8oefbIYZ>$tEJyfJmlb^ml8b6W)mQsW5lzFF#MmcMC@K1rL3PDG zl+?dSiYaZzgKM1lQ@tebkpX|=;I#rgkU)Cj*s#qJE_32r)~}X}B+>QE`yczBwAfv_ za+&bk3#CZ1m&(^~nD^V6Ir(DVIaeeJyR_|9zhS4v(D>ZzrOvX`S6bIYnGBD7MOR7z zMV!1SkYeVS0po|q^B$Rs2QaIgDGqO>;=1T`wZEHH>+8?!fk<A8q-q#n{IKZSeair06-@c*_b+I?~{bl+h#{ce|-qQ76!(eKXJN&s3Lw zg4vC!Ph>K8q~(`Dnqt<6h`-!mm*r8L#BvM%N{Gi)=~gKkw{H=Eeq@z#73nwS0u;{z~|P+O|ERL*vFWxv8_6&EkG>{!2@VyQ@N`Y8JDqg3fo_} zmH2o=>T68w;B??antTnvZUbW8xM|`{H_hucMGnA%CL6IKxp`YWDVi6G!FqWOSWoEg zr_I~VQ;Wuqce{JV6bKIso&3P7Eo-&PuC%S=40`qUsBvO6&sA}8j~Th|8Ef2%Ud>4# zoBk%dIfMDJdh`2c>-fmCCO0t;N1xb$QjXu;AB12UGH> z-4rcao`CQOdEa4;`BmMn3Slm57F#@7)orJ!&Sgok#e%BtHHx>n_x2*oIv~Rt7FocZf+q@)}_L(nbP;pl_tCE0-id>Q2G7iG`@x5`LlnwOcwoNe{;*TG{=wkkwt(!>FW!;UKEXkW? z>{o5>xcW}N=zM8rSZu?p zUb6QZQS3=mpU_5eiDn*|4*EDOHo#$NCSN1)>&GYA$uiOp7hpXz4`!3TBdkgTLX=Bm zV2Nm<8}J(WSen7tjQKsogE{dsQZz$u;0RA5CMBYZqA&QGqJ8nXr0C0X0uIeBaTphY z!|W$GwBisOYaHPw>e%nQT6J@1|J>V~M`LI<0qa5l_r=H?!G6R&EHf{f@Bi4Rb)2!o UsP3i9F#d}XxSY_yS~maqUlRZyM*si- literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/apple-icon-167x167.png b/priv/static/images/kits_logo/apple-icon-167x167.png new file mode 100644 index 0000000000000000000000000000000000000000..47f04be99f5fbba9041da566c0406a19d4bc8776 GIT binary patch literal 1951 zcmb7_e>l@?AIJBd85@~eO&ofPSU4E=Xe1U1C)PZhU(1gnGez4>A$yAX)k&T?b*k-{ zOh3%eG+hBbnsC z32BCeKp>j}0}lQJjM9y%4+qzDOpqE3Fs@G^RUaHY{bT3BJ%Sw&$%Q~{w{J|~oe#<$ zgr@0!5$O~bBRwN7EfJEDk>Qwp@&q>_j-BYpN=qu6_cVh*^vnYf9-wB5HB-YZYUuX< zMOJd|AJq8D2YV3D+8!Aj-`s4{_rY?f^B3&O-`W(v;qH(1Y@b?1wWTG`kh=J7rDoe6 z750?(76c3yTejR%n3}xqN{{hiX-BfIbI(qvc4S^!m3O*ouV*u=X$@f^gY*;eC<(PL zpCSq-T$%X4!=ZQ-guQmQpmk*ZF>5a-UU2E3Yi_Bp%EB{TytaI6`}@{4=aNaS{Y62& zvZB{IW}oYj)3`1^EE{`Br++ z8S~+pOD|tPx9aV8cWvzo0ZM55<+IbVs-n83JN*{~XgcF$4AJVTxvKnm0&s}U&*>X* z3Bu*0Vd2*zt{x@z_4=&e4?<_m^5I(e23fREH2eknA3gugv!lt zALmg#AKGq`Y*?mNF30)YAjFxzeV>#RSx*&3?3FL?`sT0bMBfy95qf*>gZXX(a8_LQ zX1doJqLr>hkzU`mE@}2^By#f+A|>n`kz0T;oq>51xrGSP3~Y_aEkc;i!a9h$-1d47 zf4_vkTCL{rEhPMQ7bTCJBH>R6+0V8bRMXv#5Z;^N$+DDkwwo=)AvoRnt#jXP+jA5Ote7@|z!h(X|s!Va3r;?8!2sF%mw{TWh&zjIRP zq+Ng*%lQ}1&Ur4XkEu5!7p4r(88869{?*5SrSg8uKCE^|YW{q4&+puvRl$u}*h;40 zoaEb7-G`CJ@D(TJlm;H1F7}R%h46GbxevR)d*is&yDN98BkVU*f(|Jn6ha zOZ`*7;hd|TpGx}Wv-t$#P|W8rRExZU^*{y18e-l`o+VtbD2wGd#Sp_)aI7Kxt;7U5 zs?QvXQs$@S_R(aHl3{KUdJr&M8$$xAa%<8a3^PTz3y2mS6_X9g_BdbYmp$WzN^i+C zdLb;`T}!CkD+!A$gyA=f6&B?8INx@iU^o`9=iz=oZCc+6=j*N$jKt!h7PYHodxe!z zxi&>;vs~!Q=-RY7dHp_NrASXZv)~xo4E(Yidbw+*$B`) zora>U%rjTZiVsKD>kUJ(E3g+x#-3A>iC3^#;-t**wjthr!)+4It+i|ASYiS zHuoUhaz7(oe>PL3aQF_A^=`x4F#HKIU56P0N+H8Lusymoyqt_A7Azgu@SEcsiSzv{ z7nu~C_p+@LG;EYu(ERHGh{aZU>3F$cesf?V)B-Or?bjXZp19$X)5kac2&WRlYXT&9 z;tD;1Z6j{mfG0?Ksfna};=nrOF5GnvsAivza3VHz8%FBcfp>n>hPzk69@kDmpBTtX zLqVx;9qKy6a@nhxjyR;Jbu7U7t5f}FPjHX6)6jJo0naOE}Ih1o#s)5Tx zqkY-@$jPq`31UxNZ{OWT!O<~}-P76?7V0()|Hs$ZLCtz`c+El2(*h$DCw_c)g4LM{ zn!U%!sAF{TXAyV(gK_M`CJL_Ps-|uWeaG}-ggS&;+|*+$^cpmh(!bc+i~0YqOJO6c z9yWD>@bC^0IwXUz;}{27_3aXVj~$e>pTkXPkV%zFJjDdkc|87ePI3# zMoO=$I1EDnc~Iol-fb()dJUJ-Ro4tan4|)gzl%U+RuZVRyG+of`Ds6nJQlMv@{mF-l|3#?@^Yd=7e`=?sGSH+%xBnIHeFLgr W!6zs)M|j|83JLTh9sJdY&i^kNm30RI literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/apple-icon-180x180.png b/priv/static/images/kits_logo/apple-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..9e898ffd75609f0f190db1636dbc62f326e488f7 GIT binary patch literal 2106 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 A1poj5 literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/apple-icon-60x60.png b/priv/static/images/kits_logo/apple-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..7196c9dcd25843b58993e6dbd64fff01bac5f16c GIT binary patch literal 988 zcmV<210(#2P)4bsvV{>>MZpMlFD)K{e zrQNS%FcLuDcpTFSgLEzV9gZdq^uBTrEwGoz47%&P2 zjGZ|uHPWHKBYTM%3pi9u*H!v3+#R%qb`lFX*gV)lJBr)kumEw#qoPcczF}RZ4?|r+EE##_Sb#Xfx7zB_d8kJE zrg_tZrUAN7{tKjr1Rjhf@Svkf3cZlcvSbxq3M(Se{R+@h>+n`+D_D_e(!d1;Xz9XZ zGc*M&q5{oQX$kcGjwT$gs<4F>aT?85TE;Uu^o+)^n9bwP`yWyjR5WSe-lruDbp=_r zi;BZqOUE-gbPmtpresAHZm7oXV+V14GLC^rfOVwVn+Ln=v`Dz28jnsMLC;tWL*G*D zKW|66CA;Wi>`ZDM0RKDfSbIoCZ-f=$L_69KTSb?`ig2MF-vHPOZ3QdBfmX8Pu^F0z z6_G`g&v@94K)>v2#f>-Lv0gCASP_AKeyRnZle7~6q%$593mHrYd%O{i`sTN|LOg-P5fb>_@){m~ zS>E#Re42*-aC1qlTVbEH1eSV!N>y0F|2r071bYDsFoC^-1sK3y!UB?DuVDcRuotm_ zO|Vz7fDN#hu>cWV?r|(YY#vhi0```B`@aTA;O!7^50{PXIPf1f7c=eVuDW#q0000< KMNUMnLSTZY&asdH literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/apple-icon-72x72.png b/priv/static/images/kits_logo/apple-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2406c72c10ac717761994b7811aebf20f28cc4 GIT binary patch literal 1123 zcmV-p1f2VcP)$SK~#90?cB|8Oi>ue@$c!jPc`$V#`OTgo+^+}sz5%e0{Ns0CmEVer&kZj|C<$h2QBo{c~pkbziDTdt)bxyAvG1_v~OqBWlMIEY3(u6M5^k;#Py2Q(kCtqn0Q>}-}E z3)wt)c*JX+Kl%TnHIg?oDSDdYqDYBMj>C_~LbqF@1@t4GW&gub_O4zgf|SVQ=zl!M z(3eE$dfeLg^7mAhzDMr@BNgJPgb69o!yXiAE*zDxAO)Tcb&-nUsDxp+MC5f*E>bBt zDz0}+#NMZ+B9()q;u1-8!QqFbgQMaKNqj{%A5st;6&FZGmaK(HTNgfanU1skj<5i(T z>R!D}1nFGo8v0x7=@}g5_WNm$44Hl0tdz}CNQF4xerEymbCR{bLQtf+a8yhpS#7-N zA{E0?F@1Nwo_Zcs2dI z?28r4iX{;?*4F`lHwAvAgX5^QFI}Sbod#$Ey`D*N=K066FScW4jPu)@k>6D_7cJK5 zbe6$Svt=FA*%;&O=B5RO1C}P~&c+ynJsqry>V322GRA=xG7cC9TIe`n5U3Jxzz|TS z;D7<3O2PqQpi095L7+;+0U@AD#Q_1JO2&bJK$VUI0e}_*4ro^MpMPeEMm!od{|{p! pMGI&#B|N{k4QZ-CKB)rvxp?3phbG2AFm!t$B&21xt>XS*b~%tI*)*HY z%roET$L`MOzVqz9GBf-AexDiDYPDKqiJhG9FVJhrz!D|{OPCBSVKT6U$-ojO1522p zG#~!s(Gxzu{g7slRB|~5myXSFa?dW~V<^+Y_4@q^Z%mD{Qm%6T)`Q^D6!6{gS>Atn z7k^c%e6oMa=s3ogWVs%(SS)e0@B&v)%#l;3N3x%GtTV+`)@zaRu~OZ`dI3!m3j}WZ zA)`rSfzZEXh-fyjK(MUPXh){}quIg&;X15bk62pvi)IrGEEKLj(QIRZrAprinhPwj z*c!P+bA<(#d&zP=;_UAw-q}6Im3Qr+wTPeBHu>~mLHtZpz~zNm z7N*CXV1eUl#km7=Xf7|q_BbE!NTB(`0#Ea>G-y7tz~cbX1kE=Vc%HZ>K??y30vJ)p zK??;70sw>VXdz)iAYjlLEi^1hxd|eja|a3loWJ#eRx3O#2n-CKqv;J5mlb^67=s<2 z93`(5k%gzFK08>TQja+F%e|nmAjLgwab|)aPrkyClJBTj%2n3>Yw*QedxIEvx5pUl z`uz&~Cr0=|7;U9ocKGCdAE85X69-anduylN(Ssm|aw12kiY&DuJEtf=l!*V_1qnm4d z{OTm%TiW;B8SC>fjdo|N#y1NyqHR=ODZYGrA9uHEEKH9%In$gB5G6YToxD<9dvA_6 zr$#xuT;kM?RVUAf1Od4ZMNuG;1PI6>gi|L8K?YoOjN*Za z5^+`-7*0_f1rl^eML9hHPog3>$RT1N$F@`ZgF99G7wlH`^E~zR`+2_4+x>J`bszKh zb;qjessaG8o*u4&P!xYN6$Ip&@DefMoT2M=v6?^|tdH|>(zbgn^{Sl>l;8~?sB?0wlv zI|t{17fVL9x>YB?s^zNAy8JZeiC|@5mX3b__e<QxD!V*gor5!8K7S+St|qU=NUqW7URQFTL_W3(J(rx%SK;$33L0@Z%TP_&NB=rZ z8Jv$Zzbq8K&lYC9BXG+-qfWlKWL!ApLoAePMJ-DmGY8YtYtr_GX6VIUBFtxdAKVh% zSf;&zz0p~`eu!9yx*mPwSA_qv{xd>)xFEawdKI>l6=EWks)YtD-o4!TG*7xury~UY z`O896nT$HlzwBnmuc8N;uf87>>T1nxIu!9HAq) zDLfaUC#Vr#jxhAs`i0p3M-~U*T6A6e43QpQJp#zP_Y@hT#e7VdTJanL*7iOR{l=Gg zVX)1l7m26(hf+ox&Fbjwwi|m8@DR`I!eqx;pZ~vWO75H4ck-4y3SE_P85#x z6M^wSvuA?58V=x6*>2cN`00oPoGAner8<$QCxj+t(mzO{Zl^B0r^%-fXHYxkAK*fB z{|Q4gV3Iw)Fzd;H%%I@~`0iZp)*No$)?Szfd8-fih6cpc3l2;UIqAle7qLHnn*;?=yl zJ7_$zPSyph_e6IjQh3*NLBA80ngdE8?+Ut0RfVQ_fzx^_^K?7ZVAyX3HMTC*B3wDA zCYG^ab+i%R60QzOq)wwX!2r4W7N#TugQuKXrS#q_9th9iV5tS8_eG(oa9vN7z+7-K zn=UgT$&yt8>Fp()AWLWSr&l36Vw4t}fQ^-x=EEcEXJ%#7ZG41(Hd^vLM{T|$3@7+% ztUl3T!!kWF8cG?0T%9pq#b=3GO#AbP;Cw77JSzJ(EO~1zmSW6P@6qd=_>n*H3j-7 zv@_wosaJ>}zG6x3f_q~IzB(&vI$G{;<-A?I-3r)_;xQw|joyv!FE;&b(5o%>jTtEH zXrXjI*3bgo4~xi>H->h}$4fsH)qt#>?Zu3)^}33s?XkeoEb1BW$CKWT3ZAamZ+xWF zgu7pIYptLpB7`QXM9SyYdv)ukR~0Oqz4p*)nT^_%>3)w_#5+{(m?^I!+Z_t@p$*;k zFT^Q+JKC`n5+^jrr_iecG!KWmCCC?IX`_$!o7;84D~9?ti*7f1pb~xl37eCzN~jED zOujVN^7i#1A)fU`TtyFCO|NYG930W}`B~Y^rK*0huwr8z~SzO$2ZPP(FqRUhJO8X@7tn3$h`i}?SzK;6%$OFDwG8xY~d0gf00_NlSnr!LC zBf+5C+M+J$e8YUsp`%u@-HAUsqy>}}9DE(MEtT~*pUcxZ!=D_s9rMb3zkL>Kug8r>Amipd+=;as`=NUpf?MpHA5PMJ}7b>TFCF-ykT|I<5IuAxjeE&Z4y>N z^LFo%-L-a2p=k*%@r~_{2TR+r_Cdc%&N`8GVUJp&Ky6Y>K&8baW!Shb8Mytab z(eYsf=b_;JK_Z2tr(oXH8HWxfwF1HdEPOk0Q zk7!va=RY#OgO=#JBI%r##}Q7ib`*4 z)(#UKo3v~bBd_9b$vX>k`h@1>299;TVLdw}&%zY99xg{pt*)ht*fBEI9z{fSXKs90 z%T<++^C~C4q_uH+#6Fi2@68?AF1@Lq8^5*m2H9otoXk{&l`8^*VQ&yyoMu$u>=1k`MCV1nuf0x6#J+xGJy+E<1L#Y`gzdJ6&7iZHl*nWz6aW!Vu(!n9TW-Mz6G#*? zi9#e;;PDhZzNpaO{XYug6B(?i%>Q06)-}2e73}!dAtf=2olZ|?0?&AQG}DJ3&5De} z*;v_H*;(4-pq3;{JlT>!#03y+a4~Fl62;m&Jw4ru^^JxMqOB5>qhJ3t1qp(+-xPym zQsWO$D6WZ-sqxGNHihC3p(%h+uDoOY7v|5N6iN(}6&=F{WIW#X4*>l%0G;o2{>_B2 z80?sD$OJ2>9zxcAhxoAKne5CYCirt#)=3G`P7S+#|Dxj)3{ikUwz0P(lZiHjy>0bZ zAw=Ulogh{g6X0E3&XhS$LQB-|mUabtf+*HOCUp7M?D!<>D0&(zGBF{=nn8-h)0wsh pZ0WX91RDmOj%RGalNd}Q+0M?6$)IP=zs!TQfTx?UYmEzy|1W}<2*dyY literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/apple-icon.png b/priv/static/images/kits_logo/apple-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e1649b8f3f9b1854c0992375883eb86cac5b1f6e GIT binary patch literal 3453 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 literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/favicon-16x16.png b/priv/static/images/kits_logo/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..6ff8a607520b68497752751709aff738fc4883e8 GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5lsF&Y z6XMFS_%e_QB8NWu|NsBDzA5v7-f=Do@&ksI;PmG|e@L7>@$TlQLvN1W$a?km1AokG z(TlvHJC=N9PTnJV{IpQ^=NSbb_rH9<@5}D{ckfI&d*(p(!%P8Au0QQ<;yK3ISAe0& zz?kIi?&9)u%Z!6S4rhT!WHFHT0Ash4*>*t2CQlc~5Q)paXKyk&IY_WRP)w5W?(W*c zvsNoN>f*Qk|E-U@l)gJxUdZQE<0`OPXHmdIL8nPQq6vW;be=8{@=d?1pv5fQ6D7MK z(d3{GL-g8hlfLqoxM@%HMj9Y&Hj`k!1k zuGlwc|GB-4FV{-QRO^%%0$s0K;u=wsl30>zm0Xkxq!^403@vpHEOm_yLJUo;Oiiqe z47CjmtPBihOb&2I(U6;;l9^VCTf@t9FMb0xxPfda&QB{TPb^Ah@XSq2PxVbq&rHr% zFw-;Fv(U9v09t9HYhbEtXrvHmXr_=+Qc_^0uU}qXu9pc?4a7jzdih1^ciP?p4P=l2 znHZ8$nww;0<&vLVnwy$eVr3NoR9ehnxcvWaeKa*-JFToTQZv&tN*D|+jrbXgT7hcB zk<5Xr3C~O^$p9(2yhf1&s6-M;iEn0ZYDr~5Dg)S6`UQFE_M5`|(9H1-0jgp!G&Qrd zFf}zYGmJdAaWPN{Kax4YnN_I_22M^>7TLW4N`)awg$8*tq-Ex$0==)Fn^%&PpRS*l zSeBWbpI5Aph#378lVpR$RP!YBMDsL5vy{X{gA`)}lay2=Qws}=)RaU$pbkBt`wm8k RCIW3>@O1TaS?83{1OR@hq!a)E literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/favicon-32x32.png b/priv/static/images/kits_logo/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..3c93d3ee1d794241180bd3e55868feda9d32a496 GIT binary patch literal 1464 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyacIC_6YK2V5m}KU}$JzVE6?TYIwoGP-?)y@G60U!DnFkZEKR$i$ z>ZM5!`>##to#A-l(L8&`$>#-aFY+ERZGFmF7}|4r@!glV;$O_KV!r*V{bqOPxo2nZ z%$&pBv3B*c=J4PZcC6brZ&~lc#PXZ(7thbOKP^Z2#p~>+0e8hWp>J{3g7%03}?^ifHm~*>E7u$Jvo> zIm=a(DLN08SrQ3NXO#9?8U#UT;deuQjmMPMOXBf8EJ6M=a5&RxdxSN0N zv!hz}j}~S9l1bb0E3jG2VY2C=#hY%p@J3z8&S-hPwCg6Dt^?~;hM-9u*L^k1bN-82 zD3u327D|b=v)x>G>)KD(X#W*=KgP$!ivN*SHvjZ?uByuW-FM#|emwcs>+c_&FTEGc z+gh=1{|x;$=eC-)`z#BTc<#yWROI2(b?#s?CgIDS z1dIyR64!{5l*E!$tK_0oAjM#0U}&jpV5w_t5MpRzWolw&WT>Xdr_G$i$G0(%d8~E0_G_(%jU% z5-Y0!pweOn!{z^X>!Yaw+i7K$k(!yFQNmzoX~fS^)CyE1j${s0O?YNXNd`#Cs&B z&a6shFmQ63vdHcYP$~>bDm2KGAuTf}73h8a+`N*U{B-@a#Inrf{Jdg)M8xQ)m?Rq{ zrkW?2Cz_`jnx!Nr8l)H-n53i{nOay_q^2b50d?pB-FGlTG!bY6gQu&X%Q~loCIJ6E BMn3=m literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/favicon-96x96.png b/priv/static/images/kits_logo/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..ed07c6c88dc93a86b2adad7ec4fe0cb747bffd8a GIT binary patch literal 2475 zcmeH{i#L?}8pnS#3}z08av5#+B2r^6Zet2V?lrdCjv+D3Fq4MK41=N}wUtxY+o9u< zTkhA=4JEYdP)K3pq;Ql>?zx6xzglOl)7fjCzu=s;-sgSR^Lswe_j!Kr`+MIjF3$Ec zs2@-O02xOI8#l=N@0gSrbnmzOc_$$rY(=pG;C9NNHfabbhH>5OtwBw=W4D-qtbw z=W*y5RPfxK-2pJGZ-4&mu7qmX^c+{}Z+}r_O@$~)7Ja>G={IU)k-%@PFL)$ zsh;5^4b7gl8(6-$6#v%n!2a9eGP?J+?By%xqiuT^7A@ZhzUZ7IH|RILKGM}0$$x|) z^(3@eWXhenBMsNHvbG^2k9t#c3$n9*b=;>~xC%`T3pi$PQ`rFv)`J2h$AQX)yu&xM z>j<%cz87Cd8!Hdy`+Gw(e!X^}W#N=8R731fNK{5sL zU&L$eD`Z%Ef?$0r}ywB`T0+pH|rQ=;m{ZR=Zdd@|lH- zOQP)4iFFOO!IBx!Zl{zaa@^~BKEXOsWBVHhKfybZ>lPaRc6vfCeAAkhhZYn}D5+}= z_x+<}iYr$4cxW5%P8MNiT%-kRxxPM6tKwcNX(%A>vn3BlM)t0oANFy2H6qpi?gCAzcaN(F7tx^3nqM1&ZpH$C@xBqYOBt}M zJ*{ui@YK4}+Nk{6yfAXq)g(J9=Vz}_N z#X!lFWO%>d`Jpm-r@6hH03#(8H5xKKd3r@W1g=e=rs(0~1T$^jVZpu*nF^aYY z4~v8w((w&SvFG%oNcjk9Q5DBdL9l?N<{sTDZyWTyRR75aW=k}uMj5m%r{OFdb55&pk&Fk)eaNt$REeq=CTTUuxtId`yJUF*|g~XX&r#|*ak*%|| z75-ej#KlRbBD&)Hrk8S~T?N{cr<~vU9_nsABtSd)ozzE_#BV<9TP@ZS9dmf7i~101 z?>iE;VSssmK@*jZT9X}pqx0#gE5IPX?Bj2#tfmkmkyLLFgcd+BvA z$#ZVbF6*}tPKx63kH}L``+l^vjC0eKYAG*udo$zg^dsxo8aDUI&Ap=J;?EBdrfho5 zFRwB(^K{M;(lr`aHaaz4AzK#F{Lr!Id06gv|BESy56dqqGt(C)t|ia=8HiUs61^n8 zpWUM+y4(Rfy?y<%^i$J@%4Y36-opc8GjsIH4N}YXW~I8~TG+G@4a;6fwA93@*H!0fv|gW11hlF>A(#O;_+$W4B*J7 z1v4nLU{+v=rip>60TE-S3AHrB;EXYNf~G6pM3c$maY$G!pU*d7?a+`xv_V*S@bKjs zNDwIRD0(m>*a0MxO;}(An-R(*kz62@3-G1eP1rv$-+GcrOa?2M$pd&Zf-DHX1TpCE zbpFM7vgkbK4$@ntB?TdSzC$Q1HiH+td~ zelb|OQ6P@SFby!JnFira=rkIRZiq9YGYG~+B9TF-89)^V(0r|4iZrMLaI|%{sj>D? F_#Mi`D=7c~ literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_logo/ms-icon-144x144.png b/priv/static/images/kits_logo/ms-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..b06c57a83e2b8fe48acb06744de3b97e2a28e949 GIT binary patch literal 3403 zcmeH|X;2f{7RQ@F41x>+7Z`9bD64@aKoTIsl3-Y632P8BLo{ItvWG1QBp`~Sf)0o< z$gn74f*_0tf0k*~% zpDrkT+@(05CMC%{74qi94>G|MmgXH(H9X)7GZdwm%=m!T|Lv0R4fZ66-SUn9i0{~c|Et%vN^Qv=j>X$xW z;Niy-N%fSwUgumIpR-7E$Bo&)zJqT$;5@+#q#}1k-t{rO3avOJHOinxd@{3&toeB; zPe0lzd-J#xr>Dd?Uo%#vcVbLhReOD9E%z{+uu-5D-%~a!KUy5)aWTJ$J>N{RQ*Li_ z@NH^l)pOA-|n(=XB1~pAm;(R{MKU$|MW6?7&ZB|+!C?Fo}C|9a) zKIGWzI>#Oe^d48wK-{fsrA(_CS?}_@Ralan0;@z7iFDF-FQuS%L0jrBUlOz~dP$ks zAd*BbLJFyce?3k$S<=0I!2(uU&fK=dDp2@C=PhYVWn_Cmhlq&g#2#5eGT?`)^haJY z3soKr6Di{Hc=2Z}?}}3^Qx!Y8wJfCF(3Nq`8`&1{!!LXmvG~^?uvyr{%2lRqAPMd3 zO{HHLIxxyVH-OnAM(nQFzEu2GX?@nGWg;WX-3(xX-wBhHtq_lqCKy|w| z6f|5HdFz9I7GkLy&xckkO z)TJh95eFYd>gsA$nXVI!wuf*D&8c<8F-^12!zyf)Oh(HeF`UMEFls$ z^(W$A3KqUVZVM%Or4Q%ISQ~$mCTR@fJrS`2&PH1l%&`20Pk6l|c$}R0bwT0MUYMQR zr`7nz4O1;)YEtRLVPRu;Lv*)E27+U*FPYl(`pH8?5lo(8bldLD;wS=9RP?@xgCJ#A zlgMh&DzD`Ci-lnYq;n&k>K^k3J6<-J%A3TbN~R|KrOIA)knhKbE`K0u;j#7*hH3c1 zl@Bs#J-8@p_lbO1`st&Z-QlshO`$>r-NziJU zJbRS+884ZH$42X(Zo4vPvUZn>;7k24W%phu=Fqg|yl|NZPBWc@R-A9CmG1i!=^7-_ zpwwI0F>2CUaap#g=|;@sw8p-Ra+557*o!sR7wS)bR*#oM^zoc6bxNZ>!{M1!U0HS% z+hp@dtM$IyB8rpwvM2_z{{+K+GN|>!LyrSyd-j_fcG1T4w!7e5gOK7P z)I3RE*ehzfC>-dEBhp9zDsjLnjk)^!Vu#a=s+>u7&T{jo1C`wk&1%H5fO*t*;ogS42P;`x5z)OZL4k!` z&^eWxuu42-HVqvVsxnCZWpM1*p|<7&)IkY89S9R`8!}h&P0)BiAC10be%$l6(hqQI zXGVhZ(~Ae4+{V&wgC7!meTiO{k8BQAMpm-iYlEEBCHFu{18$E~U8rf8zR#*9&Wlb` zKdeT*^=RI5NuYsGiEr?6#GNR}b5P<aM(eK|(9S6aEhR z1Nx{jsk*nrK&PzW4bR{~?vU8Prq<+oL$-ugEbC)NcB@9*SqOhIWSu9W})4_Z=aGjsi*)6P`;GnNk=R4?=>iiYeTSzV+ptnNwdr99YbpA!7! zf)654LY!n;J9A@U1TD5Kw~g4D?&wz=X79UJU6eU0b7WL@o(t)z+1Rk=c$+A4SDj-{ z&76LPjocnw9>!zfo_T-5vWRSo>oOuUZ2P?S#UgtbsSE;GWQgc~Y=L z+}mXATox=`A@0uAJt{VXv&cQy;w!u}o)0SQag!8QkuHypLq_bArF>S~#3IXeQfWU@ z`c`C88f|%Xw51(S*3?K>(Z4I4JH0A996ZvKdlAZib*CYe6IS3l3+!1bsau21CGLuKY@| z{;z_d5JrG+?Efy9dN#QV7Fd1l5E0_bj;4n*0ox$DAJc*E7jP^PfkzpljC73=U`wnn z2B)j1k8sw*BmCLyPy!kq9UYAd_)3ET(x{MdzoApJpdg_5Rng5qGUzCQKn^(;8N>`` z69^O#jR5p+Y}TXy#(e8ZAow!_{QTK~p0U0x5S{`u3g7Aco1q3U*#2LUzA{xw5c%;t z#33Mv$&L+W0^eMrLxcUyt2`Y4rsLoSQh*)~Z)}9a>ErbdHC7gbi0pSdt^ph-fU&U1 zEHaw`r#!x!a(A%>d;^X%!R4cag4xGI{LsGisDNW3!4c^HycjeCdkjNo8Xh&I8~Wl%TgZ0XnQlq8 z8n62iL(Eu`~1%N-M{CY=ileA=bZ2Lz0P%gUf28jY=3+btSwCh_$2uN z01z;}XpCX|^k2ry$^L_8qKDY-FbQpe27sD-pj|u{J3d6lm>2@Ifn!VT;DpCTj0FIM zo&tcVSOC~&r=mUq02KiMpWOfel?ec1fjLb!x&XjIw!UP0o(%v+Z~puJcL)A6J8*Dt zaBP!DhJEV>DHzMk0KiYm&*R|XH16El+wC$EwpBdWy3aTdt~zz-?Cal3%N0<6mi#=U z+p@KNy6h?959MbyD%$lg)f+V7s%mx5n;JFzsa!9#C^RKlb2Z(dO;5k$_aE{n+lvY$ zF7_P>{U(*lIw5wLS7yCe`tkQDSMHvTX{QVCos-r~j&Dxl;#N(+PKoxvvmS7KBQk~= z!Q0FdMjsLR#AiH*@BKBmd^GH{(8|Jfw+WD)pO@rf!0kZ6YfOQVrFim(Tk}4?A0zK) zfAJo_Vr6-w@NRTW_^03(^rm3;(hj+sn-~uXjt}OrgCl_#9m#Be@o&4(?W51m5loHI zwm07OPwlu~UOdk8HD@$8N11Tf%c;L0!Cmf@!$mY#T>mf;;=EXqU+eaIO848ipyqEi zZ6N5R*)?4H9s9=S;^lnw(CWC$%J}L?^2-K-c}mIyZ~>FO{wzVK7K9ou2ysj~bx5HBfiw7`9!ND+?fz1cY?dLB0aVQF5VM{GVZc=bC}8OFdCAh$%wb$VG!%CPx} z8vgCrvLY- z^<|q`__YwQ?lnav%t1Z`vL5X-;eQpr{6xfh3)51Zz{O%NR#u#0PTRlA*uehYV(JHD zOz6|&Q+n-P+De&bJfN+f-k*w+)aR?Tx!#@#iJ7sUnD8$}HYUzgaLZHZ<>FlV%_DUC zr))mk1?^Hr$SW%!w=+?iuXtuSXZ6VqO;?m~*^0p-(;OQ|dSk+uK8w23cEK3M2pC~6 z6kOS8b&llbLzmT?+;(8RxGCmZS)DTep>CJ9ry5|Y0Ggybc20a5N4RQ!!iF(zn;aP| zRh}*A6){7S+wvxZe*6P$rk;cUGRsc}Dmf(amNRUACMj}U>5yn!##q?V*01RkjKxIB z-gd-(Xw267*v=M89xM-O5S(ic-{6tOCSLo!onxZ1f%<*CrAOw5#n!2U4w2;>ygu~s z+q-?ydy2|&l1f=BN%X66jTK=Q)x*Ocv&>$sD`V|L(YuAy&mK^1yEA^I=3%Q(5Yt2R zgwM8J;Rn0euSeQ4GQcRK;ov}NTZ&_Mc=!0Q^Uc(=yDn8-3dD2_y&ZQvQhKexGFyH| zp=u*?llrnzHHwS&x?j4yQE@)yScjf~S5oRltrSAZiywp=h)>#DSJ%#x z`>AN;@E2-4H9ah#4Y|2dblBYCSK^6NS7-dkmD#oX$3`XEI5Ju7iIv}CA1W}?3Sf+k z;KmqB>1H+YKC^LTR+x~jaEqFFzu5xarf&>+opTl^(e1P%IwbK&p0-b$$l`LcR!YsF zp80+O54^WJnu}Iaa*kyxVDdAw%B}1?CkS^bt3(KbaP0eGwRcWx`L=>C0SbkXojQvh zj0?&xYSU@=hhhi$@{VZcqRbiYu?ytI$8jvNY4t>A=(0)m2t1CvRij?#m|y=&7RW#| zk-2Z$JVg0y!2xM=`E3o|)qVFbXtiAAOw%Y{C!$d_yMq@CIeY8lJb3mC$Uq}8u8HQP z>C&9i?H()TXP(`hMtUwxq&Cwwv7ZU7h4emTsiLt7t_A` zpNyJOU`#l>VB5+gpv(M)bq6ozAGcm>Hi-J5pbp~^|q+Y5{(Fd-(eA_cm&WF1^+jgXTO<7|Pii9(}5IuGc>cYSnPT!~D72XmRXw(*2ocDa=MHcWl*Ej(L=k+xTm6LM0L zvWFi%4bjCe^o>w+vf>oB%T`og$2SCo6J-svxs)KyguJK$H!SYpPs89ei`=>f)XySg zt}%NFIh!a0WFi;Ml$FP=Rx;X8*Y^H6rn=&Ze3)Mduft; z!qzi>d2)-Sc-6PXdmqUK1G(HaZuAv2(shXb#dt@^;nTZ=b?ns5Rg0dODI+>JPsbab zoadzt(#qdQ+iM&mZZ3zLX`{jnj&!|y?=fo?+8tTXT07u%+ZW=guFH$OfP$LL@pmD= z$sK*|y8B!^soNdFeUAn0i;h#xipkU4FYV!dg-hI-C`*2FQ=@`^@DsB{gH%3~KvJ1; zB&UVWd>)81OB>^;*!9TW3%0aXtXiGwOXI7QS7^j|{RX#|jJ#cg3u}iTLsnRXWKfJuO z7!i`+L(uEL&F5LO4#hfF?K136EqhB-;(hI>Z4t?72H;CXX4=&_jWiQ5j%cx~_0-n9 zD&h9S5ZhMb_yL`vX7^y@ux;aYLTx+W!sGiLK~@pS3=%lDX6cpnet%jwfktNHHg0kY zu72&CiS=SXyyPk89Vi4mg^2P9BC;Kzia_cpBXpG25VlBll!iJ=6{&PPga zpitIqlnfwC51Li}h55TD3gt!gCV5c+q>ic(5ERE|#Qvf4zYNx!K=Jy8ys47qWg`;* zKrFodh?I~(BJlUDR091;2G8s*|3$~bmQ4Xj4NV%{61`Htl7t&U9ycOYlH^F*fL{jA!NxiwltIMLiRnrA~B40Dy3}MC8WZj zsjQJ?hKRBo^1u6?_ni0l{?B=jGsl@{?(KQ*`~KY5=en*Z6?M^^gH42uj*gDQ0%>YT zM@O&y@590buKeuiB7%P>eBd^4I=UCx?1%0U@SPrOXKqaQY~<83_#)|vw6me3i;$zE zyL*q0?f_i6OQoZ`twu+;a-EJ&uaJ&T@aCg7^m*_DlZTbLDc$kEzp~DnJaC2eCh{s4 z{73%J$LyWIAswAAgM}&FA#7@`#P5N_jpjOhN&q#WUP1rq%XP#H`T#lvl;_FC5^T^c ztuDqTy6t8Julh?GOeXJ4Q!~UO ze>Hv8`r^c&*5kJ07zgR;?0M6}e?bT3ziXvY-RBVJJ})?LGH*Yx9P9dsMtjyit2*Ct zc*E`c`brOXL|)|G>AU`B(Q`r{MHD%X|H{-e&qkVD=v@AKxVaG8{W;{_^ZMoCx*St~ z?md1g<1=P)dX?cACiY_Wx(bF2x|%qyySrnZIujd5uXM2C>p!kewB2o`a)`hG8x9TQ zD$E`qeH*7VePo=eAVtZk?acbsT7m3qLwzPgwknV+cNVWsER_!i(5H=eA#5{A4eMNl znt_C#+tf_$0qbm$4ZeD=FvtW;R8oBUe$V=7XShJ>?DMsl*WYt}+}okA_+Bv!T?qaI z-@3QQU;rEOKE4J~9@-~)T7MO$A1O0_-F>$u?s>!WUApwUO+BZs$L{#R0`e-;`T|)W z$8$2Sm({$b+Yqbg==`QN&kAjIoIdK!RFKqike^5$CuR0X;ht~P-6^N@5PN(-#x`rc z={&o$SZBx=#>}b*G4nTfNWm|kbChqsGQay|EKzO1IzuWyCWhru406(~92qE{M!rPf z&0IjxY_hz_&YTnM?(Zd4f2xFdn=!bop_xbamh+fsG-sH|D>i(qum+DA>O?a{Y&U>D ztL!9^{grSSXBhnzrfZ*n37+TqqY`i%Dt)J7g<>-Kg>Z92D{ZFBM6i-=iy@nUBrSLk z?X%XrR+-nraYb9bzZ-PA3eS~$ibd|5CVoHe;N$dpA}Zt#7UOwu`5#lvJ_Rz?~TXTmDbx z*DI*nvf4U9N2~9vfl8KEO2`w>YpzQ*sly0K(oMT@m&ZDJC?7iqPj>V2vlXB=F7->Z zJKu!;`Ap97-7epZk0BH5S;g{4q*C2=hWSorC@9^A5|2QKv1J-f31IB>Iyocc0=t{& zgj+1mkg6i9+p@qs8aK{FVI;~{D3@@mCo7O^-ixQg=x6m4m7y8t zSMR}IJzT{8gt*EHb8?l}kkxoQ&%7WF=RepWu1W8cyG%U3q(@;$#vWa`h!r)yvF0BFf1RH$WYEZ8g`XbviDjAHyfc1^=mKXQCz-vM z3n*j9!7xwKK4;V8+)3qII1S?KUH8RwrSFmMdfD!pRo_jnGxD}1$huLa9gd=SW@Rq7 z&>*A}H@b=h3EcVz=5D8Ll=sB9`{PFDFIChOkY=oNh2hH-ZCQ--C?nYO+j9gmR!p(^ zKgFYf%AwxRnblFsQi#CWo(GlTLCy`&Z&$EKGhVc^Q74ugzrJW!KCgfO({d=3XpsFY z^~uyxywCl!V6MOtULf-OEz>=u2z)edLwgB6IkLRHbluWwj~oLxZ0gR9!sILw>%0R@ zBK?+6xIZD}(8g9NB?)HYv1xrU5lXwo=1fdN;xIHp@9bONEao|EjITWFNZC!eLSQ`IT_`(pVw}#aS|2Iv!OGJbTt;+ZKmqsmWgYGm8Oi~St z^G%4ttzxc@dm}SUxpRRUe(FyJ`wGwVajfZ&Qo=+P(>~?09?5CGr=5cmVZOWUr8atN z)oaFl?7w9Aq1p@*d7%mcCO(0#+@60dm0iOhc;lxed7EfsMN>6Z^EUicD1%c1-BUfEZgbnj9+d-*{}oxV@*7je}7Oq4&}iz22Ho_6=q|a!shZ za=@_W!OR6pKxfYxU$#N?^~jwjwuh7*{X@ftpU+x5nQiF}8#aYgH}^HcgQs4=PxWtb zoHM*kxD{T~D7nO)M$RhZnvwK_4>ifY(C~iTcOl8MGAmvTNxp!HD@GNQBesN_YBLiO z1EUl*X)|qO!f($|6Lw_|dTvX-a874u^FGL+dmE>NHh;~zb@fRFGewMgJ`nbeu7>CsV)B#k22Bb;B*_28&A-1pQ_a7c1|k%-CQgJ!WR{CYWQf+dao>q737 z(^k>7iC=<`e3SzOeWZpVi4RasjS_qGC9x;(5A+=}UA7wTW5q9q$a=>j-blw@z!Ss4 z#AKTWvhEOFpzPEA!fPNbY|aou{t6vPj=&jOL|*Z9w|IMGlwqecZ8wbl7L|hegjSQaB9nApa_#JSv_T zpSTt?hIrkpeNLsS^=Jj}+vEm?el?evz*1QwISjEH-!(u~wdv^|ot(;^+>OZH|7_T# z;Nf0;>KoQS;L$qV9zIfz&0U-P(l%=6EeIX*C7|j#nk)j%@g?qLTDa=Fn$NkL97>Pt=3FB+w#HT z^=Kcp4CPbB7Rwa%@r#)>WcuZq(XY}`*ru%C0)3|llN9ZH|Pp~`tw?eCUa|HTU&CxU2)C3nPt&wTUCD-1X9qqGoNw#%agxzV-X2HBR zvB1OKALasZfI4qI{g!xa5*s*uQ(Ht?=f1xxLzxj!8{(L}2>epgPCL@Dsh_Ih>6DTf z=zS%nv=@yMGRxdl=a-ENa+JM^M%{FB3IH4K6vB6GG)9x=nz8AcEIQ=_*4ohMgs#L- znyX2}Pttuhw$4E^O?d^jy)CaTL!Iifz?#rl9^(vC2#s1j2CvGa2R1S_u?|SX7FTE! zM@8e7tRKyhBbxf)8$=y(nhlbiYrE!{pCtaS>kh=y=t~(q_s;jMc;WtD?M>wiwmvAt z*7M4*AUZ!{;5hzIE{# zbkb0c0XmBEeNi;-hW{ogmt=cunjx9la~B`h2sr-H8vGn`Mtg3Att;F+`@`r*y}mVl zXcfo(sGt{;)$FP%@AN^KG_4Fh;nI-UvqrUEgW%R+n1*|afuTjok3H^4e$$H!%F_F; zn$jxZ4F6-fM;>tQ;H^mhdv~1Fe)Hhm6Nl*|2EB~h0@tk4ud|2eBB;W$u#|AID($)Q zP0>76Fqp)~upcaKN$lu@{Zo%a&C7dsr<4~`0(XezH4#VW=R`Xt2Mk*dZc| zMpp_HaGGNRdwL6)r7^S*U3!)wB9zu`sRswaWBbK^5`s=0;4El*g&GZ24hWZKz2*s* zlKX9#^st&TKN#4YN`%eHs88R0jL$S|(nsYtb5`Mh$@|I(G#}cTE08#G_9bwgVQI}@ z14H7BRQM(nZ&UVYQ>yW6m%*B5ks5q!5A(xtS$=2|%IQGLGTN273oes8v^tu75anhb z7}7pkG{vpRc0Qx}tJyY|zU%o^mP~WU{qb=gs8~mK&`Vd`Y>;Vg@yGF^@~p4x>*(_N z(_WAND$xG^s6}z>v;BgP6~ChwX!bxc$1v@bZ8kRyZtd$|Llr78<<@q_6PgUDBBsIX z9*u)x9BJgG@5$Cd_4PkW!1k5G`RtVJ_wWsF{ERpLnPU9L;NAc?i`XD-y1X@U%0IcD`Crx>AILkmOgrvY&Q~Xo;x-B z>Yym{l$l^|eu3HI4*l8eu2jy>HEgl&H~UDw&SVM6^?9|GqbQapi$vQs-l(}naq|E~ z)g)zy5A%EZ3@jyeaM*8o55x;K5xtGe4)VTR#MwB)Jf+^Y4s~VXJ)EQJV&s^xvjnC) zO+!bc0InH9b%YYvswQi8=+1t922W(5k=gDg)=@KH@~e`wk7RmaugXS|P_{03V!Usj zUTL(E!1MD7_rN*I;Nh+$$kQ5qcO-?$7l1lNXn^VWjyE-z;OHX3=lOIJ@db%X@x8XS zFL#}GK4fkZBsv9ucdg3p1E692I%3sc>3r72`@X%*O-6aApT=(#^4h6gi)PBkQJqeq#L4pvsv~;{zdI zo#T#;3$pksw>E?3vn$`VsMP0!0DIMf5||@G*)1!+L)W?-T;1WfED4^x*gkp3YaPx} z6#PJ1|E)bWYItdy*WF!79}HsJ!m&rsV&*+>E21)#d!OtI-+Ay|zQ04HglLd_Z%rVo z`jVb6gD&h5xpMI2x_PLmyC3m6r-w zK4l~%)?pPs#uow*M$9wgI-=)i3#u+$2$YLUtm6}ogA01;748%IfL$HlxiX$q$@w;cmLp@n^1b%;cMWJF`}!5rWtMBmLfdW1eukq&L^Y z-DA~x_W5h=ZVM3I2b}{PJs&Eia%E)kQxX=RYz5i$Sj+=TM)ue}M#@QMVnvrXW!XU1 zy~leSdavsHnftbDu3i^hlcOH$Yw|C0XW_nWBjpX`pmiu}Q6Mp%lw0-vHW__Wk=Fj4K|lsS)i4<4kAL{0z9=08*Ez$* z5YY=IYz=4>h)<%vk9Ol$n@mk;(LKk;KA0e1o#TXb=A}abGGpis5z-BD4j}FUcqB#B zH3(adrNNmsF_dWG=f|O&>Rr5@cdzo3VT(L8iZuXEiNxoOlax^9^Wo=h zhaWMs7Z;sGqb9Ny^L%nhYnPlJ6o8=22oiJrQHdmeig$hvT^XwJEaqXzO=^(bz(gZX z=g<94)~JE4=%8=*G-Xh)4e|8NW6rkNyqz{hbz#S&F|hG1TYh%585#ab-qDex!SNF;YLz*6LqM`vCMy zS3>y&g5*!s_NI4KwYN%q;;?n;3&R#JUsrDI8NSU{5bW3&?IQs?)H)!0{C@9rOANw&`&C<)O-(ecsjPU>QLzt!SgruPOs+cBZ%8%C|PxFs4j&#uSgPUQu^6ZrZsVUa+%U~^~|LEHXD!1qHH zvLYmH@gjlrH5hf!Do|CXbKNT0k3L+WS>z=TdFse`s4*qp_==Gka%tLp?0nPPoZ53o znlLF+SDE2F%h{XaQYB-Bgwa*3=uk{%nZu^I!+sP)6&^8hKA6q8G;!_ZAHB5;Uu*fO z)oT4U%&C)N^0$8a?XsW!Ax$FsPB1l>`POCGJwU9*xO-2XlsukF9(9Ziagb+-zQLrb=rse&^0%DO=U*=hLdS&B20*$v!b*&X6v;Z z)3tPxSK0+A+q0pVV~q_NMfp{@^cQnXcU$GG>I4)o&EjktG{?A35Uon;ThlwdN0Lym z`)NjKW(bp{O}XMaHu!j3ZBeE=DFG6@Wx@di)9jo zneMbl{wx*3IH@;M=DVi5!Z(|E82CH9gR6?@vi3K`S{>YhOT41bgEG-?SWUlep%snQ z4}WJWsNU-PqbC&6SCIsaRS)sGv%cjBHzlMTsyI;t#fYGduIwHpsmZg8!=oXlwMtqg^a2 zKSqLA2VeEjBG*TXYAmtBUB`p_8cG)^dn_ODb zM8X1evn$@UWXqsMXK7d8bv4V=G~Ns@z2GRSx0UhSd4k-+yehjcXHlBSu~q&|^7+S# z$#v$2^=ON!AWfvxA07x~S8PPn^CKx4ebAbeuG2_@FU`2h1|RiXJtL$lHCJ5CrCWbQqVai``VAb%L_`YUXCqYEyr zlQI6;vDW1E!e_SoWsai>r=u{c3?#MfaEw$Cslxx0`5(Y;`uQoR5T!$~PM8s^F~B03 zz%EDxA-@M1nn?V`kM30bU8QALG@Pobs;fvFQGZarLh%|WZSwdnv*9u+bnCfML2iu4 zrpA|F`w?4#7NCu!=yBzGuVi1e`YE57y0UWnRhioD0RgrG0*jKe*vFD6QNQKk%G$cD z5kS{8tJ1KWD2EuMvp4l`Y1lv=CnWiy;-{lW;gCeQU2-pKXZsbsl5Rw?;_nOL+_#}m zuRpa7Y}@iaCN)tHI0=E5z^VAxZ-?Z5p9G+zjSVA0KpQ0+dd|}7?}apxUdoP4eMzJK zH&$GMCm(=FJH-Bl|8C141+2>Z^7FLL79NQuAm^LMSFw=^xB?8|jR@3UrgxNPP1>%! zd{o?cQEkbx0iqY(-}+ZyQ86Ey*E&A(8N5?Opnsv$bK-d ztV%}GU_U2mH#tf=63-+2JCS5@z%SQ~Mdl@wEGq&3rBx@zw~lsz&89!29Ii$NJz7Wo z*>EpWP^6k1srmh3mc>tJ_c&J$2A;OOqj&B!hs@^LdD}^&P3`Y0POXL+ScC^zU1|o_(cUs*6mBJN$D(k^fw1uWQ<_n>r@%G>zK)XuM z9A18jaM=-|p=DcyOIk~e-*N^MYKJp7#gJ!adiZ67K8)FjKoUs}vBw3ClGP1SLA*^9 z@S6sI7`pBf%AdT$*J_O?jLeiu+2AHqrCS;XDW9_m+iW|nx1lAH0Xb1YyX9P=DOWT{ zjx$R4#&qWZE2x+jQ+grLF8h8gn!Pvc&xr``?J~|pnOf8qzbp60TwGc`dW`XOaM5li%_+mdWSan!hcN^f^%u`N+gx_N$yD`m!X} zH+R{Xq4N~X^{VB*fX!Rk`!&csqpv2A!~uwUw{%FmgiW&gX@a!`m54(4Etk~3YftO2 zWxkt7wdl^tU{D{vXf$mya%Re90{^v`by9aR?Op*?SK&~QSNBh(Q5{xuI)1d14D-#b}Pl?HMmE|`kS$CYVVD})D z<;+3UJ=r0)0MPQuPpww|6gO-E4`7`zxTdTZ>bs??0>?9&2SKXy4Cnc7a5`P$<&%C~ zx%0@gHpEci?P56Gnq}Q?KDIm_j*iCEg{j6QOg$GU!#0V5P>~Vp)%WJ9C2vcIi@gS1 zIlz-B&E6BJsWTFr##w5vni77>(P~;%XgDvp0=2;)^3$a;EB?~>gzhm5?~B&Tf&B*G z{7=r6AxN&WP?-G%z3l`;9uO9o&~LT$MzUcGsD9K}m>hKx3;4TE zDlz5+BFF?eQ7Xgn{nCIhctxnX{xyHGp3RC`fIdZBE}+{PL{L|pS~@B?;Oo> z{E;DThAloZ@Yc1grB;rL&__rs+X_u@K|qX)`h9H~6&Y~rcqxFuAWFx_IHh4OacQhF zl@N8GvFrD^JN43LRNmw|KYLMcQ+f_LV_Xk-?!2%T>2FWyNenG#H4IyTwvpdygQ-p# z*avH7dQ5nQTO@pIcXjT`AmtS|zV(N|+=;xJv=OHu^W-fTs)aZt5kGo%Zm;1Da;AE& zT&>F%MoPb&*4r=8_XxsCXdqLOFG#SrS0<`Q81f5nxjO~mDB;Qf+(#1)G_dDudBL%! z-b#@FS7jeCzKAcI_V-)AKoU=Rx&s<|%b}Y+y1u>P`5K}i&Yt?zn;U_%typ-28-D;& z`ro$$!~lzajk|%Ps_Mn3RW~aArPqcn*A_%QBJPpa#O;0r+#~D8o~)`esO)6@qLwSh z7CXrt>pCM;Hw=iJGwAZN6wvX7y%~>Rt`frwp-GygIzgB9)4o@#?#M5mn1j~2s~p@U znfPG%0b0;K8~b_8rv5&(-=(l|w}IX9R{{NToN1js;C|Do3t?G}qTgI_pS3gkU;|=~ z7N6|WojL34o02A+BSb|Og(9s)0Yfv&p?;Upy3yg1;Y#*8h7!wX3$lvNNVhyelYBGo z$BH(&l$aQ{=pd`t`d^jhuqy}D{W$9dsm)cEppDhPmq8A#AX#FiGL0~DRd_5~@QtOz z(X~`NadS+Ax%EP(ZE-BsQlXE$Ul}NolWunu@WQBx4P>Z2VsWWmomo==vhCp-CcVl)BOoobhr7@g~ zw~3$H@rxA-yF#9_`pYy*m;hhW?GMaxjJ%U^2bV<5(`I8*CK&haYBO3g; z%z|=_=A+v2BOsx7U+}nWV*Kg^ZN{5}eR_5Dm87=;@2gf{#lh57(n&(`f>0a$S$}VV z&%)GU{IjbpB2@Pu5cR;mUhVe2_(I)l&!m(FpUXQQ(T7PO7&g%@uV+HLeKk~$YWr7? zR==pr28=1#)qo7(TK-GJds$}!>PtcVY_M`LSeG0oufrqxE=uVSUK$Ud!Dx!VTej+| zEth_6*0^`$3=k>bhAHsA$U~Aj8B}j{OI*mi`Ydpl3+)Z++d`V$X4CGmFM7`f*Hmd(iFHzva|1mYEn&8~BbE{%R~CnT$clWNHa>I) zofvt7KdEcvFFyI@v0KJ}Zdp$yyQ*P8SK#va{KdvME*Nm82p_F8;Eu+Ta?rcaXBW#a_{584eSnA}?`zE8eHysxp_2a(oT8*OK-KN5ET$JtyU{_os{Dfw1 z&fV98GFfmDfA}uut`Gao>!`ZjBf;c;58N*-p$-9h_>l?4&_9QJYIV{nDR(}=)Cbc( z7RmLe7KR`+b0RQ;k;fGwF~Yp{Dzb%Wm;pnF*+Y^Kep>TI{f|5$4Z~6p;M&Frl*Wfg zlMtY3o|ZcA6P#xX_@v8u(oLVNf9Xnw%AbF9B=*gXCT>vKC1=A<&jH_XO$TD;2i4A= zPU-+SDKFye55dfN%{c>Y!}rtKyqYY#UXz}mKm&mDmP0C6D0<^G17Ski0aVXe$kg>! z@MzJ>m&y=xNqn*SYg>AD=a|%;N5!K;6&tPn^gGXMQ@aYHqqW{`_{)*FSANc<47Frp zH=h|Bl>S5?#PZpz&fsK1oa3L(o&s6|{UUZ6`M6+;q76|F*!Q8=d-SZF8X&|vrI7zH z#C2^lm(WfJy1exuTpUrOfvB}8WwCU3{E?TKti**LO$-pBM9TJ%wjU=S@$w7qM zyF-ZredN)}=?|4?!GkO>*nmc7^ zx7{#Sv!fZY?tB#E>I=7a+ac9eGUrDJ0eCMvQ#*s5}aaPxe{%{GJzR@}xFP*y4x@NrD zGa^}@ju_f$%_OO%k-r*?K_Y?rdSejtg0tj_O&>rUAP4r{xzitC7@YG;4DsL8Myo-Z zv<_Ar+{GfV=C0C+TM|lS8@uDLN=%zd^zLpglN=#npCXNR?}v7}A^_RU6hFdLA=u}T zo4V_KzvbD~Mnr-4^Dny_x_dSXDh9R2g2g#)$gU@OlihC{bGE5+Ym4DQ>b7f=yp2dB zQce`c3MjD7MMub%_$dD;s6`<$HhekuV?u2icch=ho8qB?{@zR16sd=+a+))0){okA zNo$&EW-FBq#cGG4(g}cgSCa2FD2ZNIl*OnL7OdOl1k8V*F_Zcgo^p@2r5oJ2$`q>nPBa$V%lrfqEsZ@D(ptk1Hs zeaL;4IXY9caW2i!BfjlX4&!l(mM$aK6km)iEimm0ABH)#xTEGDXS}cn%15Cp-7k&rOq!xrn@f&nbwk zy=C`!NTo`2-FpPi)_-Yq(0F5x4@xtKQXHXpl97hS?lVD&CGhw==Ky6KBz>H~*fx6V zRllsNCx5E5kt??b6T9;{;Z8~K6SFhjWrKlS7F!X(D|Q;h5!k}Xmxuu4+^N!4N>(l$ zEg$xtWO8J)lT%o9MIjn>JVL@bZix7WG}hPi-T~rRGat0N{lts(3AQ>d=a077p3= zXFTB6FxocDO-8XxsQUW<@K?C`%t$=49%s<~Ta0#1u#?@uF=TJf|HcH!-=9`}^fH4E z5|QMX>~Yex!dufRC2$-m7^fTe3TmqU4L?;?6>ek|AS}>4QpR@3DOO+}=Po*hzbU{9 zw`LE|iYjzC^UnyySmhr163;4&Q9@2v29=%1?}Ke;8sV#T0LC*^w7P3csPh(sUsZY8 zs>_pEHxy%ZZ|Jf4*tY{i=sQzQtp5HwD#c_og-p0$2bbRA=56|K@k7+KBEiI6-O@xU zW4qN+H0Bf9$u&RubH2iKqPAdl`r>4o3+ptPCRL!YcyL@77wiLxM|i?gzmj^<4v&Lu z7!yC+`<$54><_56bIF=76{CXYq`o~b`+1-_72~)P*-bWjBy6I2RaM$%p^kuA<^p+! z%wiS#|QA!@W9eol}Usbg# zIFms-56$e~E0)5Igfj3$L-WS}Q#)Mhr)Wp~ejnt(vTVk@$R$I2|9I6$8C&@oxi=$@ z_<}v*GL5w2BK#ENBC2Q>oDb%zE4c3d^I99q%CYic=b+q%#xT1_63B?Bma*-l3;(eZ z*QgK&*{i0M6en(jH&);mZ7ES}>xF2>s^40;oiNXKw=HYXM8HxR*UsbB-8b^L^evsZ z`L-%Be(iv>$=LqK1^yf>ax%r}*o`B-7;pgcMOTWC>qSUDLYQ+-=dzeNMaZ0vWVte7 z&7~-R??D}BhwYSe8#}9OA-uv#&pC-C;-|UeFTb$Ig7|N?@+(PjtZ2TjVQ=cskg=?j zi>#8Za?&|uL+c%WOHV6%SW|rw+rh?Mirp)!M6}=@PwIQu@z!A{S=ok9h}-mpEILIUHCfxunp}MV+DPP8yD0Yhm1u=5U@3I8IyG zutg{ZB?Ze@&;)7_lE3OK!g{5Fl1yfwxyKn@~*L2-{)7WwkHxK&MSp z76T63Z(Ey(*V4wv!{uSKrkF>^;s&}NC-&`quiPk?;QiOy(1Fvv^ViYzvvHgyq;gS) zt;uC`E0oi0`Dk*$sbDFze$LTsS&E0So_(ZZWL;vmns;HC&`i3xu$?R1wxwp;f#y-(dg^XqJNtPC0bc%PrQ>C4ORpUQrb_9s)L z6eBaU$Z}?@HZEpPAA~-Q8|IgC<~@FAAfE~Ix;^<%|NO6UN;N9T8C})LRh6VpT0`Kn zG)mOJtB=s=R^(DNnsh~-kc!arR?Jxoe)KPlv;_L@{g4r%#F}#DZ?x8xm1S-UXk(?8 z2wb61Xi~1i4vQXE|AM8P|DgWuN$Bx2x7?gg3ri!afDPzRgN7RNWmjXsIjBTN1Jgj)>UviO z5C{Pl5hL2*0geIwX%DyM7Ws%QhF(Rs&$@1ff|x0@E9V8u*}NtgdnuuuSK%H`gV@0& z^)c2aM&#hv3qF|4#CS9O6lT@l|1>yF+D6~_a<&yvMswfj%Z^2!a>Oe^%WAK?Yw(>; zJ0SxE5VTXoqeX1`RuwZMTyPUmqiAC&n;}BMPcV(!Os7%b&L1|Wd(0i7hHyH7qz!O+ z$Erl!``)(bIs;_mvks^ac6&1ssPBgsI72?e7WjO&X0~i_C2%pT-i-yU(+1HoS5oB+ z5bk9uI(BiX1N-La8sm)Ssf1@^Jh*6&s~1fLPOarGRT?F72W}(nSahMTh{@gCz~epxePf> z&~A4?-Jr$b3@T8K$(pHmWFqQ0a;gO=Ssm=o{E7Xo9O3$pS}QF&)OUZH9zYl?mtb;UfWPN&fbHy1bZj*2A&IHymw_=CPY7Zob+ZAZv>n# zxZJ7w7-Qn9d1c&#Y6Az6zxx{RlxGv{MrYiLf%0hdP*5vl#2-NO(@{2Ws8X`}J$S)4 zZaZ;yg>Dc3rf+rTu6FO=^%DH8HNuRhOS{PTo6^4)<05#P)GJ_bXzS4u{?#vvda|P7 z!PJSr?IM=?-KO3sqmDm_#H}*n_c8nnQ{erI1-W;D7L(S+^=XS=H~i8NF^J;MHIVr;*)p~hZz~hRJ@pFCvrnJb zyyFkSyiiZ&-sc%F9V96X?kB5j*pw#LF=y7bCXkohO)K$lQF(vhUXM-%?6Pafae)DN zSX-(F#fuNKSQ@pI$9$L_WY*5LtW>W$L+WMnbFdV{zknpj>rH1}`WR?Ns9t%&&OET_ zI$^D0Qp>gJGT)7ITVf4(pjOQaEK))j2+hJa0~3iO6Q_v68f@&&e_1R3pf!cROY}sV z9{9mEyiWp~nns2qz8LsoRAe!&V#1!*?I5Eorq|^E?gH%Vf{rF7F(O!yg6!WY^y)fN zwX0k*j#C$W-CJPG1Y}Acel|l>{qz6D=-Fxfb13{lWF()7NK8*AFyU%ckW67 zhW+_&bmh|4$3hE`?Qy+$6v}RCbf;|VW9~!syuRMgF#y&ArLbIcOSiPndng~!UU=WU zsS^Pg8jiC)@ekGQ2YNsMvt=6oA@=vW|7(~Lr1~uQDO%4lA`z(U1BHI>?*3fg?5FQZ zH*w_-p0m@ah5+*B0SHB$xaxmh3jj*c1+>AramPU(X(FAe4g-f4yh` zUUbQCix_Aw2GPG+-cu<226!bw0hyJfjFlSEsmvlNKsEsfeRGAjf=;8T20Q2?YlEnz z;u>PouHJALI6hPQm5Nd2J?WP-iV%Q)I}Oa<^q~YX$ofLR(!h|SK=Wr_FfDs$Tsu6h zoxzP}89K;^aRJNnH}G5o!HA-zj}FC~%)|fGsRs^#uS|DMdWw5Qkz`=ksLljT=*1H7 zs=(dLz?GuOL%d4P@M9NfCTiR>4V1Ao+8vX}3=}rI1M6;dPfL$8u-@}*XrLIu0{95{ zo;={sns=nnLp$Q6n>q)heu8nI>+cPXS)p3P*dVHTIitPOV4IPMDTe>+GG5go0ZjXCq@J@Ec6kb51)uZA!U-7=D%0(~^zQGu zshS-HOdf9*IYS+4K7sMwLhX@V%|xe2^a7fm)_lM^!!`=p%435Z8|OZZ2CFUv*gPCj z>hqc#=K#>+1M4RNG*`F@&JcF|l;GrZUtil#ww@Wn$sn3P9n^ntM5EWNdIMs>Qap%! zOm`(-x>4$Dg+1j4kC`KHx|B^$ehvVy1)jzsuHd}faX0ilZ`}a@=+3ICpM$BLgK4Na zsB7wJY3iL-S5i~cQ&TIBPkMX_}1HOK9$|5us+=~GY7_lBR3FOE+A z+*vNVTZy2I;Qwmp|0#3X&kN`KugJ%zQY@f|@c$}e;}>`X7k={w-T#bA^=6Qd(aTF0 z|F3pz96%{LbuI04x>{Oiwbie_eo+C6aQ&}#?ENBc(5V?4=MxN9!B3a|*H4ai7IfZz z0XM+ys|E()0)l;1z1>6oJcEOovC%E|3IfR`}WP--{<>%@3+7C?cuO} z7HFGj0{|AVe7(4M_MQtZ^||+meifePi9P*20jM~n^B&Q_YeF2?hXKyCnhxTHxxkm} z4?yAy0FqMxn8rUP4*(EP17K(q0B|+{Mv9!805@FskmDD~!~t;f?*Gq!=?~1#&IuZ)h-s@Cv^=vx5bFyxq%hbWztFYtcOy?2zBX5|? zFI{{$=2hij|9$1md5enocIVFiu=Ih^svpspx^U15`qlUkQc=Nr zlVV=iAbrEYTW*9mWLjFH*6q<-_#!N_Kb(Imq&zgQFXwn}$HpL6<&rj4>+L(N_EZfm z!f33fV*cysdCiNd4-Gr?Es`htDC#>2c!~BW@OY*xj?x<@NR-V3;PH$R!G{n?xo_2GW)xsBAYeRye zK8B$kFNkI3cj1@KHjR*-V_BgI`m!DoZ1z2Ba-$DyTdi*DlbgamaK4#v&zKY5zbq{4 zacGFnJyLsVTe)epuk{cSi+HWv`}8Q+-dJsAnFQLNo0H$PCaqo3;TPO4O1=m&(qmhHT=1=x&69kN5Pec9r zTiyIvn&g}SXS2TjTnm9$|LWsrLyhDVB31)u>OOsSom@aPWyAT`2v$T442<_|ZlG6c z+)Qt+9_!TMYut>eO+oYS#<|oJxJ4xw*Y6%IEal zxJaDdqc(#aJ6vi;s{S%jvzo^t0Qgbjh?8=4Pwx}CGTlgX5^RgK-XU1;`dCGSnu=G9 z@F*=c_nx#RISmT4znPe7Atp8NgHJ`e=^N(0(aj>Wd=g7l$s7d+@7Usht9X=Wm+7`j zJy%n2>7KNKlvw>CiA=?DrjKW5l#_cVSB7%uKQKsQsN9)`18!r@L+$QlMpys&Nm--r zqaTpl)2Kw=nhe>Ps`UH z%9x@JmY#-_M5m`A%PQn&cC76@;?Z2Enpo-)Pi}U-|7Q528M9#^$nY8IjWyl7&Jrb( z^+ocHbs2*3@r1WFp*ONK5Tdp8MoC5#(S}tduP?EjnH7~!9174#qRhBTBA|fTT{Y}f zY)0MS{nkq_38bC)EnAK;`Ir#FP*@O);t9}ckc%zN#nz4%2-(99_Ani?q0wL(EjyFr z^ACYcE|iM4|GQwYb>JN?@Sf`sCl_G}NGu9iGDM8}BVwr_+T4-iL~*utF~?il+tM6t zA-Z`0{LxYn zmjy)9EhxTysw@WEA{SFd$Tq1!9ur6X`(UU-djSnWouZr&ClTZ*L=c+Lj%F`J=?>1$ c&ZrQf;0g*pUju(3f_DHcCfn-_W7Dob0UYOypa1{> literal 0 HcmV?d00001 diff --git a/priv/static/images/kits_mindwendel_logo.svg b/priv/static/images/kits_mindwendel_logo.svg new file mode 100644 index 00000000..d181d96f --- /dev/null +++ b/priv/static/images/kits_mindwendel_logo.svg @@ -0,0 +1,155 @@ + +image/svg+xmlmindwendel diff --git a/priv/static/images/mindwendel.svg b/priv/static/images/mindwendel.svg new file mode 100644 index 00000000..458a5395 --- /dev/null +++ b/priv/static/images/mindwendel.svg @@ -0,0 +1,154 @@ + +image/svg+xmlmindwendel diff --git a/priv/static/images/noun_bulb.svg b/priv/static/images/noun_bulb.svg new file mode 100644 index 00000000..df55060f --- /dev/null +++ b/priv/static/images/noun_bulb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/test/mindwendel_web/controllers/static_page_controller_test.exs b/test/mindwendel_web/controllers/static_page_controller_test.exs index f37a946e..af63d6c4 100644 --- a/test/mindwendel_web/controllers/static_page_controller_test.exs +++ b/test/mindwendel_web/controllers/static_page_controller_test.exs @@ -7,7 +7,6 @@ defmodule MindwendelWeb.StaticPageControllerTest do test "contains text", %{conn: conn} do conn = get(conn, Routes.static_page_path(conn, :home)) assert html_response(conn, 200) =~ "mindwendel" - assert html_response(conn, 200) =~ "Brainstorm" end test "sets current_user_id in session", %{conn: conn} do @@ -40,7 +39,7 @@ defmodule MindwendelWeb.StaticPageControllerTest do conn = get(conn, Routes.static_page_path(conn, :home)) - assert html_response(conn, 200) =~ "Your latest brainstormings" + assert html_response(conn, 200) =~ "Deine letzten Brainstormings" assert html_response(conn, 200) =~ brainstorming.name end @@ -55,7 +54,7 @@ defmodule MindwendelWeb.StaticPageControllerTest do conn = get(conn, Routes.static_page_path(conn, :home)) - refute html_response(conn, 200) =~ "Your latest brainstormings" + refute html_response(conn, 200) =~ "Deine letzten Brainstormings" refute html_response(conn, 200) =~ brainstorming.name end end From 265d1fd5ceaaf4c30997ba597ad14317cce0c1be Mon Sep 17 00:00:00 2001 From: Tim Krieger Date: Mon, 6 Sep 2021 18:13:27 +0200 Subject: [PATCH 02/33] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index fe3f4311..9c3fdbd2 100644 --- a/README.md +++ b/README.md @@ -209,3 +209,5 @@ Logos and text provided with courtesy of kits. - https://github.com/gerardo-navarro - https://github.com/nwittstruck - Lightbulb stock image by LED Supermarket at Pexels: https://www.pexels.com/de-de/foto/die-gluhbirne-577514/ + +Note: kits icons and logos are not part of this licence (MIT). From 54d87777274d0095e46c00de86a49b7e5221a4b9 Mon Sep 17 00:00:00 2001 From: Tim Krieger Date: Tue, 14 Sep 2021 11:26:33 +0200 Subject: [PATCH 03/33] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c3fdbd2..203b4a3b 100644 --- a/README.md +++ b/README.md @@ -210,4 +210,6 @@ Logos and text provided with courtesy of kits. - https://github.com/nwittstruck - Lightbulb stock image by LED Supermarket at Pexels: https://www.pexels.com/de-de/foto/die-gluhbirne-577514/ -Note: kits icons and logos are not part of this licence (MIT). + +## Additonal licence +The mindwendel [logo](https://thenounproject.com/icon/735650/) in this repo – created from [mikicon]https://thenounproject.com/mikicon) – is licenced under [CC BY 3.0 Unported](https://creativecommons.org/licenses/by/3.0/). From 566906f9ed7e7834bd322c89686b1a97b63aad92 Mon Sep 17 00:00:00 2001 From: Tim Krieger Date: Tue, 14 Sep 2021 11:32:46 +0200 Subject: [PATCH 04/33] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 203b4a3b..701cf209 100644 --- a/README.md +++ b/README.md @@ -212,4 +212,5 @@ Logos and text provided with courtesy of kits. ## Additonal licence -The mindwendel [logo](https://thenounproject.com/icon/735650/) in this repo – created from [mikicon]https://thenounproject.com/mikicon) – is licenced under [CC BY 3.0 Unported](https://creativecommons.org/licenses/by/3.0/). + +The mindwendel [logo](https://thenounproject.com/icon/735650/) in this repo – created by [mikicon]https://thenounproject.com/mikicon) – is licenced under [CC BY 3.0 Unported](https://creativecommons.org/licenses/by/3.0/). From 2b5947b44d8f54b64cc54a76e0afbf4256dca6ba Mon Sep 17 00:00:00 2001 From: Tim Krieger Date: Tue, 14 Sep 2021 11:43:43 +0200 Subject: [PATCH 05/33] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 701cf209..aedc5902 100644 --- a/README.md +++ b/README.md @@ -213,4 +213,4 @@ Logos and text provided with courtesy of kits. ## Additonal licence -The mindwendel [logo](https://thenounproject.com/icon/735650/) in this repo – created by [mikicon]https://thenounproject.com/mikicon) – is licenced under [CC BY 3.0 Unported](https://creativecommons.org/licenses/by/3.0/). +The mindwendel [logo](https://thenounproject.com/icon/735650/) in this repo – created by [mikicon](https://thenounproject.com/mikicon) – is licenced under [CC BY 3.0 Unported](https://creativecommons.org/licenses/by/3.0/). From d7682098812e297df7160223ffe24c4a2e7d2b34 Mon Sep 17 00:00:00 2001 From: Gerardo Navarro Suarez Date: Sun, 23 Jan 2022 08:30:16 +0100 Subject: [PATCH 06/33] Fetch and merge with mindwendel base repository (#17) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build: adjust docker tag version (#104) * :wrench: updated docs (#102) * Fix typos (#106) * chore: Fix pipeline (#108) * chore: Add docker-compose setup for prod (#109) * chore: Add docker-compose-prod.yml setup for prod * chore: Restructure docker-compose * chore: Reorganize env file * Added config for prod (#39) * chore: Adjust config for gigalixir * docs: Enhance documentation for deploying the app on Gigalixir * chore: Remove config/releases from gigalixir build * chore: Add DATABASE_URL to prod configuration * chore: Finalize configuration for prod, dev and test * 42 improve dockerfile (#110) * chore: Further finalizing docker setup * chore: Improve Dockerfile and docker-compose * chore: Finalize docker setup for development * chore: Finalizing production setup with docker * chore: Incorporate feedback * chore: Finalize test setup * chore: Finalize production setup * 90 only delete own ideas prefix (#111) * chore: make idea_label migration independent from existing models (fixes bug in migration) * chore: Refactor * 🔧 allow removal of ideas only for creators (#91) * :wrench: allow removal of ideas only for creators * added nilify * chore: Fix tests Co-authored-by: Gerardo Navarro * :wrench: added seed job (#41) * :wrench: added seed job * added generic path creation Co-authored-by: Gerardo Navarro * 112 allow adding and deleting labels (#113) * feature: Allow adding more labels * chore: Refactoring brainstorming admin page to live views * chore: Added tests Co-authored-by: JannikStreek Co-authored-by: Tim Krieger --- assets/package-lock.json | 2 +- config/prod.exs | 2 + .../admin/brainstorming_live/edit.html.leex | 97 +++++++++++++++++++ 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 lib/mindwendel_web/live/admin/brainstorming_live/edit.html.leex diff --git a/assets/package-lock.json b/assets/package-lock.json index f972e12e..fd4fc818 100644 --- a/assets/package-lock.json +++ b/assets/package-lock.json @@ -211,4 +211,4 @@ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" } } -} +} \ No newline at end of file diff --git a/config/prod.exs b/config/prod.exs index a9ebef06..4497c630 100644 --- a/config/prod.exs +++ b/config/prod.exs @@ -1,3 +1,5 @@ +use Mix.Config +require Logger import Config require Logger diff --git a/lib/mindwendel_web/live/admin/brainstorming_live/edit.html.leex b/lib/mindwendel_web/live/admin/brainstorming_live/edit.html.leex new file mode 100644 index 00000000..5d0dace8 --- /dev/null +++ b/lib/mindwendel_web/live/admin/brainstorming_live/edit.html.leex @@ -0,0 +1,97 @@ +

+
+

<%= gettext("Administration for brainstorming: %{name}", name: @brainstorming.name) %>

+
+
+

<%= gettext("Save this link to update / delete your brainstorming later on:") %>

+ <%= tag :input, id: "brainstorming-link", type: "text", class: "form-control", value: URI.to_string(@uri), aria_describedby: "basic-addon1", readonly: true %> +
+ + <%= link gettext("Proceed to your brainstorming"), to: Routes.brainstorming_show_path(@socket, :show, @brainstorming), class: "fw-bold" %> +
+

(<%= gettext("Brainstorming will be deleted ") %> <%= Timex.format!(brainstorming_available_until(@brainstorming), "{relative}", :relative) %>)

+ +
<%= gettext("Edit Brainstorming") %>
+
+ + <%= f = form_for @changeset, "#", [phx_submit: :save] %> +
+ <%= label f, :name, class: "form-label" %> + <%= text_input f, :name, class: "form-control #{if f.errors[:name], do: "is-invalid", else: ""}" %> + <%= error_tag f, :name %> +
+ +
+ <%= checkbox f, :option_show_link_to_settings, id: "checkbox-option-show-link-to-settings", class: "form-check-input" %> + <%= label f, :option_show_link_to_settings, + gettext("Show brainstorming settings link for all users"), + for: "checkbox-option-show-link-to-settings", + class: "form-check-label" + %> +
+ + <%= gettext("Warning: Please make sure you save the admin link at the top, before hiding the settings link!") %> + +
+ +
+
+ <%= submit gettext("Update"), class: "btn btn-primary btn-block" %> +
+
+ +
<%= gettext("Edit Brainstorming Labels") %>
+ +
+ +
+ <%= inputs_for f, :labels, fn p -> %> +
+ <%= color_input p, :color, class: "form-control form-control-color #{if p.errors[:color], do: "is-invalid", else: ""}", title: gettext("Choose the label color") %> + <%= text_input p, :name, class: "form-control #{if p.errors[:name] || p.errors[:ideas] || f.errors[:labels] , do: "is-invalid", else: ""}", placeholder: gettext("Type the label name") %> + + <%= error_tag p, :color %> + <%= error_tag p, :name %> + <%= if message = p.errors[:ideas] do %> + <%= translate_error(message) %> + <% end %> + <%= if message = f.errors[:labels] do %> + <%= translate_error(message) %> + <% end %> +
+ <% end %> + <%= error_tag f, :labels %> +
+ +
+
+ +
+
+ +
+
+ <%= submit gettext("Update"), class: "btn btn-primary btn-block" %> +
+
+ + +

+ +
+
<%= gettext("Export") %>
+
+ <%= link gettext("Export to CSV"), to: Routes.admin_brainstorming_path(@socket, :export, @brainstorming.admin_url_id, _format: "csv"), class: "fw-bold"%>
+ <%= link gettext("Export to HTML"), to: Routes.admin_brainstorming_path(@socket, :export, @brainstorming.admin_url_id), class: "fw-bold" %> +

+ +
<%= gettext("Delete Brainstorming") %>
+
+

<%= gettext("Attention: This will delete the brainstorming with all belonging ideas and other associated records to it. This cant be undone") %>

+
+
+ <%= button(gettext("Delete"), to: Routes.admin_brainstorming_path(@socket, :delete, @brainstorming.admin_url_id), method: :delete, class: "btn btn-danger") %> +
+
+
+
From 2638511111e546a95aabc4d1359a0f3438e86a3f Mon Sep 17 00:00:00 2001 From: Gerardo Navarro Suarez Date: Tue, 3 May 2022 08:59:48 +0200 Subject: [PATCH 07/33] Align kits footer (#18) * chore: Adjust styling * chore: Add apple-touch-icon * chore: Update favicon.ico, apple-touch-icon, etc. --- .../layout/kits_static_page.html.leex | 9 +- .../templates/static_page/kits_home.html.leex | 2 +- priv/static/android-chrome-192x192.png | Bin 0 -> 3535 bytes priv/static/android-chrome-512x512.png | Bin 0 -> 14322 bytes priv/static/apple-touch-icon.png | Bin 0 -> 3339 bytes priv/static/browserconfig.xml | 9 + priv/static/css/kits.css | 137 ++++----- priv/static/css/kits_home.css | 284 ++++++++++-------- priv/static/favicon-16x16.png | Bin 0 -> 1124 bytes priv/static/favicon-32x32.png | Bin 0 -> 1464 bytes priv/static/images/kits_footer.svg | 149 ++++++--- priv/static/images/noun_bulb.svg | 14 +- priv/static/mstile-144x144.png | Bin 0 -> 2795 bytes priv/static/mstile-150x150.png | Bin 0 -> 2800 bytes priv/static/mstile-310x150.png | Bin 0 -> 2912 bytes priv/static/mstile-310x310.png | Bin 0 -> 4830 bytes priv/static/mstile-70x70.png | Bin 0 -> 2150 bytes priv/static/safari-pinned-tab.svg | 46 +++ priv/static/site.webmanifest | 19 ++ 19 files changed, 440 insertions(+), 229 deletions(-) create mode 100644 priv/static/android-chrome-192x192.png create mode 100644 priv/static/android-chrome-512x512.png create mode 100644 priv/static/apple-touch-icon.png create mode 100644 priv/static/browserconfig.xml create mode 100644 priv/static/favicon-16x16.png create mode 100644 priv/static/favicon-32x32.png create mode 100644 priv/static/mstile-144x144.png create mode 100644 priv/static/mstile-150x150.png create mode 100644 priv/static/mstile-310x150.png create mode 100644 priv/static/mstile-310x310.png create mode 100644 priv/static/mstile-70x70.png create mode 100644 priv/static/safari-pinned-tab.svg create mode 100644 priv/static/site.webmanifest diff --git a/lib/mindwendel_web/templates/layout/kits_static_page.html.leex b/lib/mindwendel_web/templates/layout/kits_static_page.html.leex index 5bae5a15..70b21544 100644 --- a/lib/mindwendel_web/templates/layout/kits_static_page.html.leex +++ b/lib/mindwendel_web/templates/layout/kits_static_page.html.leex @@ -9,7 +9,14 @@ "/> - "> + "> + "> + "> + "> + " color="#5bbad5"> + + + diff --git a/lib/mindwendel_web/templates/static_page/kits_home.html.leex b/lib/mindwendel_web/templates/static_page/kits_home.html.leex index 0ea20198..b2c3a45d 100644 --- a/lib/mindwendel_web/templates/static_page/kits_home.html.leex +++ b/lib/mindwendel_web/templates/static_page/kits_home.html.leex @@ -34,7 +34,7 @@