From 4fc5e5ba3886e8ed2664f9816a602f97949e4ae1 Mon Sep 17 00:00:00 2001 From: Bohung Date: Thu, 18 Nov 2021 17:59:20 +0800 Subject: [PATCH] Add widget from annc 5~13. Add signup infos in email. --- app/controllers/admin/seminars_controller.rb | 82 ++++++++--------- app/controllers/seminars_controller.rb | 55 +++++++++++ app/models/seminar_signup.rb | 87 +++++++++++++++++- .../seminars/signup_email_contents.html.erb | 23 +++++ app/views/seminars/signup_ok.html.erb | 7 +- lib/seminar/engine.rb | 3 +- modules/seminar/_seminar_widget10.html.erb | 22 +++++ modules/seminar/_seminar_widget11.html.erb | 22 +++++ modules/seminar/_seminar_widget12.html.erb | 27 ++++++ modules/seminar/_seminar_widget13.html.erb | 27 ++++++ modules/seminar/_seminar_widget5.html.erb | 31 +++++++ modules/seminar/_seminar_widget6.html.erb | 26 ++++++ modules/seminar/_seminar_widget7.html.erb | 26 ++++++ modules/seminar/_seminar_widget8.html.erb | 29 ++++++ modules/seminar/_seminar_widget9.html.erb | 29 ++++++ modules/seminar/info.json | 76 +++++++++++++++ .../seminar/thumbs/seminar_index10_thumbs.png | Bin 0 -> 2164 bytes .../seminar/thumbs/seminar_index11_thumbs.png | Bin 0 -> 2099 bytes .../seminar/thumbs/seminar_index12_thumbs.png | Bin 0 -> 2091 bytes .../seminar/thumbs/seminar_index13_thumbs.png | Bin 0 -> 2123 bytes .../seminar/thumbs/seminar_index14_thumbs.png | Bin 0 -> 2130 bytes .../seminar/thumbs/seminar_index15_thumbs.png | Bin 0 -> 2174 bytes .../seminar/thumbs/seminar_index16_thumbs.png | Bin 0 -> 2214 bytes .../seminar/thumbs/seminar_index19_thumbs.png | Bin 0 -> 3511 bytes .../seminar/thumbs/seminar_index1_thumbs.png | Bin 0 -> 2165 bytes .../seminar/thumbs/seminar_index2_thumbs.png | Bin 0 -> 2251 bytes .../seminar/thumbs/seminar_index3_thumbs.png | Bin 0 -> 2166 bytes .../seminar/thumbs/seminar_index4_thumbs.png | Bin 0 -> 2250 bytes .../seminar/thumbs/seminar_index5_thumbs.png | Bin 0 -> 2812 bytes .../seminar/thumbs/seminar_index6_thumbs.png | Bin 0 -> 2814 bytes .../seminar/thumbs/seminar_index7_thumbs.png | Bin 0 -> 3379 bytes .../seminar/thumbs/seminar_index8_thumbs.png | Bin 0 -> 2201 bytes .../seminar/thumbs/seminar_index9_thumbs.png | Bin 0 -> 2165 bytes .../thumbs/seminar_widget10_thumbs.png | Bin 0 -> 2099 bytes .../thumbs/seminar_widget11_thumbs.png | Bin 0 -> 2091 bytes .../thumbs/seminar_widget12_thumbs.png | Bin 0 -> 2123 bytes .../thumbs/seminar_widget13_thumbs.png | Bin 0 -> 2130 bytes .../thumbs/seminar_widget14_thumbs.png | Bin 0 -> 2754 bytes .../seminar/thumbs/seminar_widget1_thumbs.png | Bin 0 -> 2701 bytes .../seminar/thumbs/seminar_widget2_thumbs.png | Bin 0 -> 2812 bytes .../seminar/thumbs/seminar_widget3_thumbs.png | Bin 0 -> 2814 bytes .../seminar/thumbs/seminar_widget4_thumbs.png | Bin 0 -> 3379 bytes .../seminar/thumbs/seminar_widget5_thumbs.png | Bin 0 -> 2201 bytes .../seminar/thumbs/seminar_widget6_thumbs.png | Bin 0 -> 2165 bytes .../seminar/thumbs/seminar_widget7_thumbs.png | Bin 0 -> 2164 bytes .../seminar/thumbs/seminar_widget8_thumbs.png | Bin 0 -> 2197 bytes .../seminar/thumbs/seminar_widget9_thumbs.png | Bin 0 -> 2197 bytes seminar.gemspec | 66 +++++++++++++ 48 files changed, 593 insertions(+), 45 deletions(-) create mode 100644 app/views/seminars/signup_email_contents.html.erb create mode 100644 modules/seminar/_seminar_widget10.html.erb create mode 100644 modules/seminar/_seminar_widget11.html.erb create mode 100644 modules/seminar/_seminar_widget12.html.erb create mode 100644 modules/seminar/_seminar_widget13.html.erb create mode 100644 modules/seminar/_seminar_widget5.html.erb create mode 100644 modules/seminar/_seminar_widget6.html.erb create mode 100644 modules/seminar/_seminar_widget7.html.erb create mode 100644 modules/seminar/_seminar_widget8.html.erb create mode 100644 modules/seminar/_seminar_widget9.html.erb create mode 100644 modules/seminar/info.json create mode 100644 modules/seminar/thumbs/seminar_index10_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index11_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index12_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index13_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index14_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index15_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index16_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index19_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index1_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index2_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index3_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index4_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index5_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index6_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index7_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index8_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_index9_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget10_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget11_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget12_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget13_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget14_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget1_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget2_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget3_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget4_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget5_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget6_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget7_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget8_thumbs.png create mode 100644 modules/seminar/thumbs/seminar_widget9_thumbs.png diff --git a/app/controllers/admin/seminars_controller.rb b/app/controllers/admin/seminars_controller.rb index dcd46ac..e1e5269 100644 --- a/app/controllers/admin/seminars_controller.rb +++ b/app/controllers/admin/seminars_controller.rb @@ -502,7 +502,7 @@ class Admin::SeminarsController < OrbitAdminController def edit @seminar_items = SeminarItem.all @seminar = SeminarMain.where(id: params[:id]).first - except_attributes = ["final_sessions","preferred_sessions","seminar_session_ids","preferred_session","final_session","sort_number","abstract_number","presentation_type"] + except_attributes = SeminarSignup::HiddenFields @seminar.seminar_signup_field_sets.each do |signup_field_set| if (!(SeminarSignup.attribute_names.include? signup_field_set.field_name) && signup_field_set.field_name != 'recaptcha') || except_attributes.include?(signup_field_set.field_name) signup_field_set.delete @@ -752,34 +752,33 @@ class Admin::SeminarsController < OrbitAdminController params.require(:seminar_main).permit! end def create_set (save_flag) - except_attributes = ["final_sessions","preferred_sessions","seminar_session_ids","preferred_session","final_session","sort_number","abstract_number","presentation_type"] + except_attributes = SeminarSignup::HiddenFields + @seminar.seminar_signup_field_sets.where(:field_name.in=>except_attributes).destroy SeminarSignup.attribute_names.each do |attr_signup| next if except_attributes.include?(attr_signup) - if !(['_id', 'created_at', 'updated_at','seminar_main_id','final_session','seminar_session_id'].include? attr_signup) - signup_set = @seminar.seminar_signup_field_sets.select{|v| v.field_name==attr_signup } - if signup_set.length==0 - if ['status','name','tel','phone','email','password'].include? attr_signup - disabled = false - else - disabled = true - end - if ['status','name','tel'].include? attr_signup - hidden = false - else - hidden = true - end - name1 = Hash.new - now_locale = I18n.locale - I18n.available_locales.each do |locale| - I18n.locale = locale - name1[locale] = t("seminar_signup.#{attr_signup}") - end - I18n.locale = now_locale - if save_flag - @seminar.seminar_signup_field_sets.create(field_name:attr_signup,disabled:disabled,hidden:hidden,name:name1,placeholder:name1) - else - @seminar.seminar_signup_field_sets.new(field_name:attr_signup,disabled:disabled,hidden:hidden,name:name1,placeholder:name1) - end + signup_set = @seminar.seminar_signup_field_sets.select{|v| v.field_name==attr_signup } + if signup_set.length==0 + if SeminarSignup::DefaultEnableFields.include? attr_signup + disabled = false + else + disabled = true + end + if ['status','name','tel'].include? attr_signup + hidden = false + else + hidden = true + end + name1 = Hash.new + now_locale = I18n.locale + I18n.available_locales.each do |locale| + I18n.locale = locale + name1[locale] = t("seminar_signup.#{attr_signup}") + end + I18n.locale = now_locale + if save_flag + @seminar.seminar_signup_field_sets.create(field_name:attr_signup,disabled:disabled,hidden:hidden,name:name1,placeholder:name1) + else + @seminar.seminar_signup_field_sets.new(field_name:attr_signup,disabled:disabled,hidden:hidden,name:name1,placeholder:name1) end end end @@ -798,23 +797,22 @@ class Admin::SeminarsController < OrbitAdminController @seminar.seminar_signup_field_sets.new(field_name:'recaptcha',name:name1,placeholder:name1,hidden:true) end end + @seminar.seminar_submission_field_sets.where(:field_name.in=>except_attributes).destroy SeminarSignupContribute.attribute_names.each do |attr_submission| next if except_attributes.include?(attr_submission) - if !(['_id', 'created_at', 'updated_at','seminar_signup_id'].include? attr_submission) - signup_set = @seminar.seminar_submission_field_sets.select{|v| v.field_name==attr_submission } - if signup_set.length==0 - name1 = Hash.new - now_locale = I18n.locale - I18n.available_locales.each do |locale| - I18n.locale = locale - name1[locale] = t("seminar_signup.#{attr_submission}") - end - I18n.locale = now_locale - if save_flag - @seminar.seminar_submission_field_sets.create(field_name:attr_submission,name:name1,placeholder:name1) - else - @seminar.seminar_submission_field_sets.new(field_name:attr_submission,name:name1,placeholder:name1) - end + signup_set = @seminar.seminar_submission_field_sets.select{|v| v.field_name==attr_submission } + if signup_set.length==0 + name1 = Hash.new + now_locale = I18n.locale + I18n.available_locales.each do |locale| + I18n.locale = locale + name1[locale] = t("seminar_signup.#{attr_submission}") + end + I18n.locale = now_locale + if save_flag + @seminar.seminar_submission_field_sets.create(field_name:attr_submission,name:name1,placeholder:name1) + else + @seminar.seminar_submission_field_sets.new(field_name:attr_submission,name:name1,placeholder:name1) end end end diff --git a/app/controllers/seminars_controller.rb b/app/controllers/seminars_controller.rb index acd8aaf..2193d88 100644 --- a/app/controllers/seminars_controller.rb +++ b/app/controllers/seminars_controller.rb @@ -17,6 +17,58 @@ class SeminarsController < ApplicationController } end + def widget + cats = OrbitHelper.widget_categories || [] + widget_data_count = OrbitHelper.widget_data_count + seminars = SeminarMain.all.desc(:seminar_start_date).filter_by_categories(cats) + time_now = DateTime.now + session = OrbitHelper.request.session + seminars = seminars.map do |seminar| + link_url = OrbitHelper.url_to_show(seminar.to_param) + if !seminar.registration_status.blank? && (seminar.signup_start_date <= time_now rescue false) && ( seminar.signup_end_date.nil? || seminar.signup_end_date+1 >= time_now ) + sign_up = ('' + I18n.t('seminar.signup') + '').html_safe + elsif seminar.registration_status.blank? + sign_up = I18n.t('seminar.sign_up_not_open') + elsif (seminar.signup_start_date > @time_now rescue false) + sign_up = I18n.t('seminar.sign_up_not_yet') + else + sign_up = I18n.t('seminar.sign_up_overdue') + end + if !seminar.registration_status.blank? && seminar.registration_status.include?('C') && (seminar.contribute_start_date <= time_now rescue false) && ( seminar.contribute_end_date.nil? || (seminar.contribute_end_date+1 >= time_now rescue false) ) + sign_up += "".html_safe + if !session[:seminar_signup_id].blank? + if session[:seminar_main_id] == seminar.id + sign_up += ('' + t('seminar_signup.uploads') + '').html_safe + else + sign_up += ('' + t('seminar_signup.con_login') + '').html_safe + end + else + sign_up += ('' + t('seminar_signup.con_login') + '').html_safe + end + sign_up += "".html_safe + end + files = seminar.seminar_files.map{|file| { "file_url" => file.file.url, "file_title" => (file.title.blank? ? File.basename(file.file.path) : file.title rescue '') } } rescue [] + files.delete(nil) + links = seminar.seminar_links.map{|link| { "link_url" => link.url, "link_title" => (link.title.blank? ? link.url : link.title) } } rescue [] + {"title" => seminar.title, + "subtitle" => sign_up, + "category" => (seminar.category.title rescue ""), + "link_to_show" => (link_url == "#" ? '' : link_url + "?method=show_data"), + "postdate" => seminar.seminar_start_date, + "statuses" => {}, + "bulletin_links" => links, + "bulletin_files" => files + } + end + { + "seminars" => seminars, + "extras" => { + "date-head" => I18n.t("seminar.seminar_start_date"), + "category-head" => I18n.t(:category), + "title-head" => I18n.t("seminar.title") + } + } + end def custom_frontend_data params = OrbitHelper.params seminar = SeminarMain.find_by(:uid=>params[:uid]) @@ -185,6 +237,7 @@ class SeminarsController < ApplicationController :params=>params,:session=>OrbitHelper.request.session},:layout=>false) end def render_other_method(render_method=nil,render_template=nil) + params = OrbitHelper.params render_method = render_method || params[:method] render_template = render_template || render_method params = OrbitHelper.params @@ -367,6 +420,8 @@ class SeminarsController < ApplicationController @seminar.save end extra_text = "
#{I18n.t('seminar_signup.serial_number')}: #{@seminar_signup.display_serial_number}" + extra_text += render_to_string("seminars/signup_email_contents",:locals=>{:seminar=>@seminar, + :seminar_signup=>@seminar_signup},:layout=>false) if params['seminar_signup']['status']=='C' status_param = '&status=' send_mail('submission',params[:seminar_signup][:email],params[:seminar_signup][:seminar_main_id],extra_text) diff --git a/app/models/seminar_signup.rb b/app/models/seminar_signup.rb index 89ab028..ca62fa7 100644 --- a/app/models/seminar_signup.rb +++ b/app/models/seminar_signup.rb @@ -3,7 +3,8 @@ class SeminarSignup include Mongoid::Document include Mongoid::Timestamps - + HiddenFields = ['seminar_signup_id','_id', 'created_at', 'updated_at','seminar_main_id',"serial_number","final_session","final_sessions","preferred_sessions",'seminar_session_id',"seminar_session_ids","preferred_session","sort_number","abstract_number","presentation_type"] + DefaultEnableFields = ['status','name','tel','phone','email','password'] field :sort_number , type: Integer, default: 10000 field :status @@ -73,4 +74,88 @@ class SeminarSignup self.preferred_sessions = self.seminar_signup_contributes.pluck(:preferred_session) self.save end + def get_display_fields + seminar = self.seminar_main + if seminar.nil? + return [] + else + locale = I18n.locale.to_s + except_fields = ["password", "recaptcha"] + all_fields = [] + if seminar.seminar_signup_field_sets.count != 0 + all_fields = seminar.seminar_signup_field_sets.map do |set| + field_name = set.field_name + next if set.disabled || except_fields.include?(field_name) + value = self.send(field_name) rescue nil + next if value.nil? + if field_name == "status" + value = I18n.t("seminar.registration_status_#{value}") + elsif self.fields[field_name].options[:localize] + values = self.send("#{field_name}_translations").select{|k,v| v.present?} + value = "" + if values.count == 0 + next + elsif values.count == 1 + value = values.values.first + else + last_idx = values.count - 1 + values.each_with_index do |(l, v), i| + value += (I18n.t(l) + ": " + v ) + if i != last_idx + value += "
" + end + end + end + end + { + "field_name"=>field_name, + "title"=>set.name[locale], + "value"=> value + } + end.compact + else + field_names = self.class::DefaultEnableFields + all_fields = field_names.map do |field_name| + next if except_fields.include?(field_name) + value = self.send(field_name) rescue nil + next if value.nil? + field_name_trans = I18n.t("seminar_signup.#{field_name}") + if field_name == "status" + I18n.t("seminar.registration_status_#{value}") + elsif self.fields[field_name].options[:localize] + values = self.send("#{field_name}_translations").select{|k,v| v.present?} + value = "" + if values.count == 0 + next + elsif values.count == 1 + value = values.values.first + else + last_idx = values.count - 1 + values.each_with_index do |(l, v), i| + value += (I18n.t(l) + ": " + v ) + if i != last_idx + value += "
" + end + end + end + end + { + "field_name"=>field_name, + "title"=> field_name_trans, + "value"=> value + } + end.compact + end + seminar.seminar_signup_fields.asc(:_id).each do |rf| + seminar_signup_value = rf.seminar_signup_values.where(:seminar_signup_id=>self.id).last + if seminar_signup_value + value = seminar_signup_value.get_field_value rescue nil + if value + all_fields << value + end + end + end + return all_fields + end + end end diff --git a/app/views/seminars/signup_email_contents.html.erb b/app/views/seminars/signup_email_contents.html.erb new file mode 100644 index 0000000..0d77369 --- /dev/null +++ b/app/views/seminars/signup_email_contents.html.erb @@ -0,0 +1,23 @@ + +

<%= seminar.title rescue nil %>

+ + + <% + fields_contents = seminar_signup.get_display_fields + %> + <% fields_contents.each_with_index do |h| %> + + + + + <% end %> + +
+ <%= h["title"] %>:  + + <%= h["value"].html_safe %> +
\ No newline at end of file diff --git a/app/views/seminars/signup_ok.html.erb b/app/views/seminars/signup_ok.html.erb index 3262582..0ddbf29 100644 --- a/app/views/seminars/signup_ok.html.erb +++ b/app/views/seminars/signup_ok.html.erb @@ -13,7 +13,12 @@ <%=t('seminar_signup.serial_number') %>: <%=data["serial_number"] rescue ""%> <% if !params['status'].nil? %>
- + <%= t('seminar.click_to_contribute') %> +<% else %> +
+ + <%= t('seminar.back') %> + <% end %> diff --git a/lib/seminar/engine.rb b/lib/seminar/engine.rb index 113e4e1..a84c45d 100644 --- a/lib/seminar/engine.rb +++ b/lib/seminar/engine.rb @@ -8,7 +8,8 @@ module Seminar categorizable frontend_enabled data_count 1..20 - + widget_methods ["widget"] + widget_settings [{"data_count"=>30}] side_bar do head_label_i18n 'seminar.seminar', icon_class: "icon-globe" available_for "users" diff --git a/modules/seminar/_seminar_widget10.html.erb b/modules/seminar/_seminar_widget10.html.erb new file mode 100644 index 0000000..5584242 --- /dev/null +++ b/modules/seminar/_seminar_widget10.html.erb @@ -0,0 +1,22 @@ +
+

+ {{widget-title}} +

+ +
+ Read more +
+
diff --git a/modules/seminar/_seminar_widget11.html.erb b/modules/seminar/_seminar_widget11.html.erb new file mode 100644 index 0000000..2feb5be --- /dev/null +++ b/modules/seminar/_seminar_widget11.html.erb @@ -0,0 +1,22 @@ +
+

+ {{widget-title}} +

+ +
+ Read more +
+
diff --git a/modules/seminar/_seminar_widget12.html.erb b/modules/seminar/_seminar_widget12.html.erb new file mode 100644 index 0000000..2ab7ac2 --- /dev/null +++ b/modules/seminar/_seminar_widget12.html.erb @@ -0,0 +1,27 @@ +
+

+ {{widget-title}} +

+ + + + + + + + + + + + + +
{{title-head}}{{date-head}}
+ + {{status}} + + {{title}} +
+
+ Read more +
+
\ No newline at end of file diff --git a/modules/seminar/_seminar_widget13.html.erb b/modules/seminar/_seminar_widget13.html.erb new file mode 100644 index 0000000..0125094 --- /dev/null +++ b/modules/seminar/_seminar_widget13.html.erb @@ -0,0 +1,27 @@ +
+

+ {{widget-title}} +

+ + + + + + + + + + + + + +
{{date-head}}{{title-head}}
+ + {{status}} + + {{title}} +
+
+ Read more +
+
\ No newline at end of file diff --git a/modules/seminar/_seminar_widget5.html.erb b/modules/seminar/_seminar_widget5.html.erb new file mode 100644 index 0000000..698132f --- /dev/null +++ b/modules/seminar/_seminar_widget5.html.erb @@ -0,0 +1,31 @@ +
+

+ {{widget-title}} +

+ +
+ Read more +
+
diff --git a/modules/seminar/_seminar_widget6.html.erb b/modules/seminar/_seminar_widget6.html.erb new file mode 100644 index 0000000..6d16b24 --- /dev/null +++ b/modules/seminar/_seminar_widget6.html.erb @@ -0,0 +1,26 @@ +
+

+ {{widget-title}} +

+ +
+ Read more +
+
diff --git a/modules/seminar/_seminar_widget7.html.erb b/modules/seminar/_seminar_widget7.html.erb new file mode 100644 index 0000000..66e76a5 --- /dev/null +++ b/modules/seminar/_seminar_widget7.html.erb @@ -0,0 +1,26 @@ +
+

+ {{widget-title}} +

+ +
+ Read more +
+
diff --git a/modules/seminar/_seminar_widget8.html.erb b/modules/seminar/_seminar_widget8.html.erb new file mode 100644 index 0000000..a69abb3 --- /dev/null +++ b/modules/seminar/_seminar_widget8.html.erb @@ -0,0 +1,29 @@ +
+

+ {{widget-title}} +

+ + + + + + + + + + + + + + + +
{{category-head}}{{title-head}}{{date-head}}
{{category}} + + {{status}} + + {{title}} +
+
+ Read more +
+
\ No newline at end of file diff --git a/modules/seminar/_seminar_widget9.html.erb b/modules/seminar/_seminar_widget9.html.erb new file mode 100644 index 0000000..43d637b --- /dev/null +++ b/modules/seminar/_seminar_widget9.html.erb @@ -0,0 +1,29 @@ +
+

+ {{widget-title}} +

+ + + + + + + + + + + + + + + +
{{date-head}}{{title-head}}{{category-head}}
+ + {{status}} + + {{title}} + {{category}}
+
+ Read more +
+
\ No newline at end of file diff --git a/modules/seminar/info.json b/modules/seminar/info.json new file mode 100644 index 0000000..3f21e9c --- /dev/null +++ b/modules/seminar/info.json @@ -0,0 +1,76 @@ +{ + "widgets": [ + { + "filename": "seminar_widget5", + "name": { + "zh_tw": "5. 標準文字列表 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )", + "en": "5. Standard Text List (widget-title, postdate, category, status, title, subtitle)" + }, + "thumbnail": "seminar_widget5_thumbs.png" + }, + { + "filename": "seminar_widget6", + "name": { + "zh_tw": "6. 標準標題列表-1 ( 模組標題, 類別, 狀態, 標題, 日期 )", + "en": "6. Standard Title List-1 (widget-title, category, status, title, postdate)" + }, + "thumbnail": "seminar_widget6_thumbs.png" + }, + { + "filename": "seminar_widget7", + "name": { + "zh_tw": "7. 標準標題列表-2 ( 模組標題, 日期, 狀態, 標題, 類別 )", + "en": "7. Standard Title List-2 (widget-title, postdate, status, title, category)" + }, + "thumbnail": "seminar_widget7_thumbs.png" + }, + { + "filename": "seminar_widget8", + "name": { + "zh_tw": "8. 標準表格列表-1 ( 模組標題, 類別, 狀態, 標題, 日期 )", + "en": "8. Standard Table List-1 (widget-title, category, status, title, postdate)" + }, + "thumbnail": "seminar_widget8_thumbs.png" + }, + { + "filename": "seminar_widget9", + "name": { + "zh_tw": "9. 標準表格列表-2 ( 模組標題, 日期, 狀態, 標題, 類別 )", + "en": "9. Standard Table List-2 (widget-title, postdate, status, title, category)" + }, + "thumbnail": "seminar_widget9_thumbs.png" + }, + { + "filename": "seminar_widget10", + "name": { + "zh_tw": "10. 精簡標題列表-1 ( 模組標題, 狀態, 標題, 日期 )", + "en": "10. Simple Title List-1 (widget-title, status, title, postdate)" + }, + "thumbnail": "seminar_widget10_thumbs.png" + }, + { + "filename": "seminar_widget11", + "name": { + "zh_tw": "11. 精簡標題列表-2 ( 模組標題, 日期, 狀態, 標題 )", + "en": "11. Simple Title List-2 (widget-title, postdate, status, title)" + }, + "thumbnail": "seminar_widget11_thumbs.png" + }, + { + "filename": "seminar_widget12", + "name": { + "zh_tw": "12. 精簡表格列表-1 ( 模組標題, 狀態, 標題, 日期 )", + "en": "12. Simple Table List (widget-title, status, title, postdate)" + }, + "thumbnail": "seminar_widget12_thumbs.png" + }, + { + "filename": "seminar_widget13", + "name": { + "zh_tw": "13. 精簡表格列表-2 ( 模組標題, 日期, 狀態, 標題 )", + "en": "13. Simple Table List (widget-title, postdate, status, title)" + }, + "thumbnail": "seminar_widget13_thumbs.png" + } + ] +} \ No newline at end of file diff --git a/modules/seminar/thumbs/seminar_index10_thumbs.png b/modules/seminar/thumbs/seminar_index10_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..0745dc6351108b815682e4b29b4f914acc97a71e GIT binary patch literal 2164 zcmbVOdr%YS7Eh}M>L8B>3s~#j1Z$iE*=!OZ2}x+4Ks5w;2oxO6V}S_Ch9p1$Nk>6U zs9L>_R;SnuSZ}Wn9vNyyP*X~@w?(-^AE<~ZV|#g7WC&tYk^3cp_x|DZkM5b>{q{TO zch2uTzL~WoC&jN^v3dm#hg+GLAWQ*o8@OA2yukC?gSj5?3N?r_4XIeJp;V?raXcj^ zN1;TuEDudVWy-Rm?@%@lw=7qcmTAb8Y+@-eHCg7iAsf|NfX3n2aYn67QGgmCIhv=^ zaEOx~b|R!wa)=pG5{g7CK=V}z%9JES0!)WOQDjP_f)b5D(R4CGr!eWv2#88SC@?~WDKU`< zg%uUUq9D-XMFi1w%3M~8P`nrmd~t~R27{Ib!=zxFC1(1i-iIugN-sRjF2g? zTJ6ruW34x&p#P)sQfqx$nHGgpP(4c@Toj%G))}C zX9A>%&fp27cme@~LX8GkX3P>cQKL7=GzxSnt_s9m#ESkD%M$2NnE}(KVOZhP1SIEU z227uiX(2&s6d8dsR2n5#s&}_%AzLA;QFNsg3F&R;eXeKizhA*On zy!j#l4?#f20wG^WjUp~$m4BsXFdzfFhvWZ-WoZjcpnLgZ^ufoA!-HzTiP3?h(SI*9 z9*0~0d7_Y)X1p^o5SPC-eU10yX}YB<{mUC0Q>Z~XWAoxee&pARibfhfV!X}@a&+$Q zl%M|5CI}8>2}jnE+Zk=G!hlrAAE3zbCP!H#0EYybtfY=2M+FU zK-UKrTrIY>-HY7)VZjBvBd=rdw`{#$FDoy<(|4%aWVg53Y*Qu8{T;2wvK<#VQ{mIo z)30ty`JR3BV#IW)zGXZ~BFT#Ci~V};({9ZsGa;P6FQ5v@53XfHnL{%JrzlT%GON#b z&zM}py*JCAkVJG5DLw zek|ePv0VQN|7|;;Og$N|+GYxF8XSwER>*Q$Ih8KkR(sPqX3*~wKMp0)SKY78lDyWo z<0!75cF6=*zeQBY*G#-;=9vTK`KWnP)e;^@FDUtH;MT~4Ed5}XeQI@0KQ`6$>sWhn z?*3K7JyS;-|L8b>WY*lB6?@6HbI15|&DLM`>3&YiliDv9Hy=ixLqX$Pnue0X_xh^` zhZ@h;ZSGm!pXncaf4=W-m!Gy}8NrJnHWNZ!4q-28t;ouF%jG!K>a_fDO6u!Z0y%sT zA7ovSymEL;AE~K9TDP)No^R$NPaKd(HbIs0h7tV79?kH-vRsbQK9ZMrY=FEvq&nn{ z6*g{B_$WT3m()|kMd(6nNQFGWBkK=xkDM=>A+7bbq0Eh|Xj{)5yT9GrGhG5cVawIRchaxF zd*;~fvF9yKZ98B|?3`IR3)lxkalg zhYLsW0)f+FBY6QLUWD9NNAY-()fnW_#P{@(l0M-gj9a?`!a(H?CYxt0*@@P+T5eIa z(^5}xId0+IV_p?N+vT)a8l>z6O<3M2{)>&)5cgCBg32XqaJU?epG$KVT6Hs^Qa)kf z0V+K6@%R2>6Te*NxP0S=BwV0--i^ZR9e+F5+`QLh$9_r>AODv6$)1n8tY=-;wLA_q-1U_e#wH U;)&(BVfTMPq9{q&#NWRAzvA$7$^ZZW literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index11_thumbs.png b/modules/seminar/thumbs/seminar_index11_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc2261665a0875e604e725502d6ebb89a812ec9 GIT binary patch literal 2099 zcmbVNdr(t%7S0Sis1>wnoHi(nA=xE%E4lY3kQan(o{~z8i>%<3UCiSKQpmk|Tp^^; zwNjP1vB085r5meO#>Fiy?YL%^rRXMtj#ZTUtW*|6L9v1w38>)yZV-3>aQa7cCb^IA zobNoo^P6~9uUZlN%Hmfj6iTcnQ<)8}t>F9h+-UII**|p_T;d2-9e_N|Bjx z1Io}?^@V6QsyCI}Poe1)N|f1>lSkxfv&2T+%F&ZP9GBGwqA8SgsmrD}7NZ2ifEHRX z33IfqgUPU%B+T4YEv&UE&>~Bw+kvieugWpHi;W@^Q<}j@cZmUk6(#fxm$d|Qid_Yt1iD;%hvz#Ta_UNXA@tBY^~ zcNXC`hGI=B2Vvw|FcV(pB;}duR*5<+rKm~mz^#nPe8rZR<>$j{87$+AWCFP=1@tXf zDL@mTV}(+#{&Ym}qzGG1WJ!an9 z%T=4U8>oppuM`>etWBHeCf0r@Z+%rm4Pn~->u)BMnB_uegZ@Epd2P5fV`*M!oTIz? zbS|&0FD9v8v+*yn-d)#gTvqFu!zVASUAwlY#=rPx%blfoZcT1;*H;a@v+_Src%!+i z?c&(8_J>QHvC@iCVf;5o{C@hap`mudq)$(P@RE{G61J-st}XEW^Wl37Q=UFOfAHY1 zqmtfwlrZv#OHX$@Yoz1B`u;2TF9&#Y_Wt0$ce$_S!?1K>Sw(nC)sYrg{`hZQfjgcX{gXorro)3f z@xb6nePaHP6Ym|VSQhig3h2WrDC^Pb#*Eg+-jM^x8VbbmSboRHgD1*e-PgyizEOZx zR^B~w(RRNFJ$&lizpqRB8^6ftd+c`Ht9x~Nl69uPExh^oozd{qRy1y?S_v8i+%o%?t%X~+gf7Vy-yymP54B_n^*VauX z*efsXXnOo*)V&7N($bAf(qIE@@X{abV<&C%`8WIg@$P|>Ux$K|J+vwk^wI$s*Xr}{ z4FzLE!JFr33Z~nTPphJm#;XbimFHx_f9tD|Ip0-DA}V08bVM-2?CU&;$|I7|*cB zt|g_6QGXlLL!+s5y>eat0*QTaoqM3-w&(cvU(RSf>CMyi>f8g-5!OVi1ZnXcuRdPg zk7Z}=&qUtIL{2B3@TRZawi|jg$=@2q>I7ioUg}EZiDui?-)>vC;LW68F;4_j5qiXU znYye+68n6KT@(t|72ftdJjjkF1tH->`@Wc+G-#DG7y-wZy6HgccEZ%WXLOg z2ia#EeDvNcA5e_|tnIFT6rB2ujeSb8(qB7IyRio-18i5^XFp52@9L>Fe1V{yOP-h& z2y5C@St;>$8NXP3^-wr(^ecycD7y*^PWOwsB3&A5>}Hpci`fmyLP7#( z3%!&0gR}K|z@hQZwsdaJv540hoT`8X1bfoXId>t@+5`1GYSdD>pknZLquA?=(?9N? z+nL?(`*z>wd7tljzjxNRDSt!UqUDPO0zq8P%UA(79_Q{8&n)1c{bSJ~Zb)Xci`hb^ zjCJ7-N{~e|1O?>Sa5Ggv;be8iAeA8y%%d$u#cXk2E^1;Oa?8se2UY0FFEV+oCJhO$&jd2uC`VwUSR8QM zcF<1Ltp#JeC^zR{Lm&_fVXa#5p{U}#O@N+pP=G?B5Sw5r0;n_+M4?crr0W1FjL0Dv zfe@J((V%iU3d6vo3*@pn$TGA5Gd#-0t+Ze{%i2*0a=Ba*mrTMq%n+i{XdqY$Nu^>g zLhP)jS==qAoonV8Fv@9iSnRBYp#h!|CzwiB3vx;yZoy{H%X>^rJ0BUvSq8arJA_DJ z$Y$gB6^nMV1=M#ko*3;cst8_9wjA1$s znJw4p4B2X(TBTEI^hy}P=CC=mlf`KhHJ8`I=Z#@?h9AVDdIyEGjH8HQcFdiCP2~*B zILjG3px4JL4!pF*LX(Wkxt1@{!yRLk!%{_&1_xsUVjiQGCumS=a2%IvM!n1wO))|BH7JCkWyX$$uT1xmVmtctx0CVxk>ZBsU&fT-1z>^{Mx5ZCLN!OoBI4ro#&_8rSlhW z-MxAD2X463czR;c_4&r_y0xdT6bI`2>KBhwf;~ zhUBgR**}|lYBCe{cf8p!Q5%?&MrfS9LIvj-WYY{g+bcI~Tf6M@BB3 zeemI({)u-E*Er?Nw~bu76mPX!>6BNRFO;n~FnHy!EE-Lp84LDJ=f8XZ{+=JDDyx58 z-P8g#p4syJCM z5xq6N{udLyUD10RJ1cJ+)ER2^->>d!Z5{j5*vbwWvMT&DPSg?vq|2iv-ko*-zVXY1s}H(Hf4gt&)1c>e zICg=coK@yO&=sMmYz%zMoP zrxYWLf*&FbtBpVCt4LjtSkKvTbcvTZQfe&e@vBoJ0mbT{ zgoNi(zNcou-yA5yrOljgoMh1y@}oVWY1J2*;H3J&LZx?G`n~?MqV(4{&mR7){irhYcvZMz itWt<@F7zVNv~B@W`+;fg4Mh+C`_9SE$ByYr>;40j-A;1= literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index13_thumbs.png b/modules/seminar/thumbs/seminar_index13_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..82eee2c5d24cc18ebba8f9dcbd48a610e3ad5f49 GIT binary patch literal 2123 zcmbVNe^^uX8efrQUU?E{0*ba~Hb}Q~&dvtg^2jqbW;5n^022z8?d%Np$aePQz$T;@ zT?s?4nN*Gl=!eWFGl=N98E9l~qB5}XqN1o5$THbgxh41m+x?ymtUrAEwLAw`)b5M;O8d3KaXS_>dVEEYpBAL8@50Kv6w zG*KD{*JN8X6+uqeaI3*g8Aub0j;PU+#T3Q{Ov5D@%_`M{z$V+IP(U)sp)o@U4~C3J zx~>q~Mr9Iz(0C}?mc7wTK$(P%EVkmHANoa8&Op1rPDBF%8;RO#08P;p$w|D}NSG+4 z9AkqMp3b0?@I^43tU&lE%7>Fg2qI3BqH+X<6?{ReB3Z_tit#XCVVXz^-~zck6?moz z#Hk8Iiii{fA)hZqWU?t=rO8HVOgJ%>*8uWP`l5g7E0I|V4MkeBNwR2a0x}9oinJAy zW|mAA>NqQ5jlrZN?Y2a^Md6C&gw;?&=oD7c$O>sJF+7BW9@nD+RH*0TVg%=EbOJ3` z0}}$S9u;a(Es6_;Iw5<~U-$oL2LVD5JtTh`nkf^QMEdo?3V@FXOGKE!=2*ds9O)8x z7>vhkO1U)KaXv7h-jKICzH<;&ncsQ-4!V1&;hnTStv|dn8kLan>!X2{c~87CclO?w z_p*8OzF%$s&-3$>Pkyi!l6t$BrnP0{QTgfn+0(y+FU6I%Y}+CpC|kMtnNtxmrbqnt z=_ij0?)3Ih5|w#(vE2X3n+{QYTiU#lTcuYPHGTBjfxAR=>7mtFQXVQDXkK`)58pQ< z*ig}sv-V~!S<-&7>%xT#27>VQMSrK`=RW-p#h%XL(aU}NZeSAwHPbqRyUShrGs6eE zPQI|B;ng{#+sa+@{`=8a2Mh9|ICYiLNM)?tZ}{r`kJ}@iTWW{jx;lPuoolq@QTa@E zWb`8KEc$#$<)A#*_^VH~Sw4OHmoxsn$SHr1yKeP`dx3Y$BjSQ3yOvKl$lon*l^5(se=1loo)TF3*rBTj zE(dRCi64wY}w{MY%f ztrbnir~mF-P)nAU?x_GCvF4+|0g6cNy zmyE0$!Cwh_uQ%?2JfMuW+l_~BPTcveJLcXs*VT!UPi(i=xl?wIdmZYqRHDIv>x5SQ z{*ii7QrS>sK|ix|=GQx$W6OYuKuc%kk$QL0n74~}yj~;#fPgEal|$R3k=M0V%DGwo znI3mbjW$WtH3!unFMiGE)@}_q2ps58UtWpSBvX!gbuFBpe06*+ zW^uL#T==%U&NVwQ(Djg_`Ra5~3lXDJ$G?YJBF4O1`k5i6V^a~|v)dE(ky-w8>B#)| ziK;mCN69zZbOf{^mL8t0^e<|(ymnTW|9b#{eKY-Yn7~eRN;pyPUOMKD1L;~hCiA

i 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 literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index19_thumbs.png b/modules/seminar/thumbs/seminar_index19_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..21bb4c9ec8bdbce625bea8ba35b23be17989e5c5 GIT binary patch literal 3511 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 D6Fd%z literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index1_thumbs.png b/modules/seminar/thumbs/seminar_index1_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad29c47867c99a68d251e425b9a8073bb3c6791 GIT binary patch literal 2165 zcmbVOeN}rA(s-Y#c5rxlAut6k%ov#Z+o7 zk2uxYMTFE!9#NVorit}@tWdqlYQ(avo3jcL-#6&imo&eElFq2AysW5{K zBU~nvOQS(g4kCzVR2FbE1)?Xhz#ETPXg2G)RI0^dp;#Ccol!-F5d@*q=u|qL3@pf| za;;fjM%J2Q7d;3tlftOho7Flk6!0iVbtPsV5o8)HL8BLopE}l>o(Kgbqn63_RG31e zYBYhm7OYL?Ozh`0o@s5$F4tq!Ow6P!F)Bbm3St+@K)YWK6fgwYa3w}HXo|d8pi`7+ zFs(UFz#{^LqEsunbPkQi7Qu7|gHB^{U>ISgFa$7zCZaP_MQlEO(Z{p6e1ypo@l!BRk(Kg9Cl0r?K24C4U3PtPSW>j@%{3QpGkULzv%gcVJA5cg$UaxhJTtz$FvYoA zChgI5r|$Y^^(v2W`SusQ$D`O65AB`YX3re<4eXARMn=@_dNCD?nEJr^`?X&kuu1Oe z?tXvvtApnb4_CN{eHH)eH*>|bOD^L}4vVCnC*!Q?sAgWBnAzHJ8JXk!L0H}~_n(59 zxkFZRr*EmD*?OZXukOtsW@Ac8UtGRlN^L%Q^62i}FVyZ2i#y;QC}egdMc2$9-|^#v z^DaAenWJz#dV;b(=9@>d_5|6HJr%>TO%{^FMihAh#Ce%@k^xpHy#<8>LiRA zo)?4=@!_!mtBMfptCBZ;HuwG!@do01W1l(cZo>D<5xc5%c79Xsj)&y?H|9I9AQQ(V zN9(WUy?&>*;f>^xhw(Q$9$?qIZ0%Q^ee2iXyLk1=bZ_s_^!XagfGU4DeQacEuD>C} zQu4~%U1yv(k@k-Unmg5V_m3WYJX~bCJ8B*Od)I-1zB@7V41;}V(M;q_?&+7GyEe`k zZ+qu?ZPORpnVAzSUvh7$H|V##7c=?#(u(O%Uw&>r`QJnAU8QR;jjnGzo9nVW7Yig( z4()ii{ov{IZR4|+H*&W=p8a(0^UZ&H>uuyw%wJbs>-$}YdsXb{eQAD0Sbmhsg?v(a zyzQMBP2Tpf{1eN&uJe9q`HTM{scwFIEa#)u9VhP1ojzIF{MwXewVledHFArN&A`G9 zr#f4{tGNE!to8C<|2J=`zLt(uNT+?4k(--FrgohC@=V^}KIBUM=N^?L5yqSmKwy!F zc4yM=MJ0dsx;PZuC|)&0xDZmlDj)WPwk&j@k_Qh>+8Kj{3z%ehC(j@YAYm|ZPewZI zMXR0O6%0z253h2fy$i%f$09L4ZYUjQIM80KdT3{Sfh>RkB0ij-=JzO1k@}UAHMKlL zW!t1(u_tM7bA&AjS5|eq9L0W5XGi_1>qErOp?yBjfVI=h9Lr5CRyVMAYgvhuE~tWINP`9c~U1}DmrRYy7k2q30-GCt|gud!^ITHLHXHWwDA9)7fhpGoF6_Owv1`iSr{KLhmROuig#z$mk|if(k$(AvKiIpS;S^i(&op+8>edk?0RZX f(2UzlABW3u)==hH4*uq?z>h$haI>H(RkrKD`loL+ literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index2_thumbs.png b/modules/seminar/thumbs/seminar_index2_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..d7baca760121119c935a98bd41c630c40e703880 GIT binary patch literal 2251 zcmbVOdr(t%7LJtyEg)vV6{(gOreezGag)GJVnP;jiDn?Yr)XEf+~fwbA-N&BkU$W- z+CdWA;^QCz+&D2*}wnQifC~Lh@BRO7%!)X-by7R4wN!$ig@h-^9ZcXb?tR5^nQkU%aCh=~C~=5I+%2Ee8>06M^; z0$d)O&0{b~%O5gcO|MY$G9dACE&NG9&c`qvk4`rljWi>RhU)X^0GG?9GnjNHlZr=B z4JBGkW}<2hkt-P>#30wJbeIa&k~|q@Fj|BO$atqqN6_e`(ie%fhGn5}$>=7Tjt+`qg+w680TU7- zNF)Y;L^ekRLW%LL1O_M)LrgBT!j)(Zm`p22R_dzoy31VX7r8u<9+6?FJ_|()RveI) zk7B4HAJvgWBJadWTeDSK1!^=Qm`#yr(adfR3$7=&Z+^DprgzeYPc-VohmlK(T!$}8N7p4%5IfIqxgB1DUC zjvil;h}G7k1cJ|u1d7ix-5I~vsosMSz8{@E$)-u}o@+Up)}PpadGq1Q5n+G4g$a=kbr=IroKmkxhbLPDWQvV z=S^+z@Rj^t1zc|`2(3C!p1*%=*pl6P|4CCzOA8}5_Mcxw1{}P+_q)NzdmhjJcmKN1 zeY5A(uD4bl`(#KyesSu#N;|IfNp9F2VYECRc+JTtM#5`>%IZsB{by5aZ?Cj(W3a>J z`rHWbPI<2~-cEv{K(a6KU?mYaMQQr!O#X3{c%|^)$s5{22A&vQk8ZgqWpnkpS0?Uv zs!y|og|x4Q3s5uD5H~-yU>qI08GO}!dRvq8R0~FFGc1Tr?v{sFvvbjko2hX@X0!S1 z!hw&f4jun?IPgNp)2E}0KhC`~w5a61FGL5one=g3&bz^**P>;!cO$MwOrr1af8Kes z_2Y>g|4i`26?;G*+blgr9@$z;?6YS0Y;>?(yMD-1=YCMul|COX%w2r?XjbydM^@Gv z=iBG}Io3RTV|b@6i8wX2i}Ff`@E`ek4+n3}KYQLac#=GFrZK~(Z2w>5PJi|c`e5nc zyEEs@z~e2gd5%6~W=$=ZuP%KKt8;Gnb=R@CDx4(_;3Y`2v?8+l{ZSz7sr)9Uv68P}ckvZmxcH0Qg*`3HVU zDwla2uKup1$<6(Kq0F^#tbA&^ebR6@<;dSupIC)A+8;HJoeUeqXWC{A;%nS?_SM>D_KoJ6Kbzm9D9b-h zsfIsRSZmg2_E@L?1Y2t=C|jCstG#pnCK}G{nSX)rwMtmYK%sQW1}ebpN;k((Sgtol zIS&g89Y1E+qEhez_lEw6t5z9yXPr$@SUzq^y6DCK5>>asZExPn@-pD;XGIIDEij&uqvQ#fb&hnuryALo%Skb#1VC)@Ut2RsOoc z>FVfbGUnG2hApFu;-U7$-Fl1Z?BL^9Hy`_bm+ktM zJ5!%-n&nPEEARX}<;^6=g?hn01sv6J`8QRw6^kRn=t~z}U;2N^QvoI6O_3EFQSSh@ dj^?iNC2T&etm-bk(B=7iAxTVu8WQ#%_#dTSsZ;;} literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index3_thumbs.png b/modules/seminar/thumbs/seminar_index3_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..0193f818ce4179c2fc556f0f33bc03bc0b1e03b6 GIT binary patch literal 2166 zcmdT`ZB!Fy7S6VwR=af7Cel=0oW|DFBguT^gCr0*B$HUWBv_yYDhuRe5~5}%OhyyF zN)NCFbgizfM<|k>))id~6gQq0ia>FJJuXN}KNjkumQbpTYz6BI6k+=gA9jCu`eXm? zoHH};J9D3VpZnZ<=S;;8|i2II&jBOh9o?lbuK;OxE0-i$oNM^Dya1PGwRJ@hS`D6q{HZvDfJWXbvYT#_KX! zb`uO_ChQJUEx6UvE`S_XwID@iKnyM|k?nXsk0z4xjLDX~-4>-)5EBhWc~!uHlVD7c z*SUvutGsH#f?pL_vyWi`v|z&QRtpwMr5biXT8bthnOG*WAQ%coD8;Bu77>AkLl}Ze zVFZOyi3nAyq*4`vKud=JM5C=XRU)omiUoFRK{msS5cw3N-PATz!Y+uUo?ekS)ce`*Hl#eof3tX{hTz{aME*jXW$aTwYriqo z@oDKN?+)E-8j7EH?#8NCRN4d0D|%b5SBD||kaXRVy)9R|?dRTzHYUI5tDkR5YK?Bl za2~7DMAcVI&*sj#nRM$VByWow=SpTcC0sV>om@iMgb1832 zn;`3jq^VR-+RQWGKHBo(Yg=XCjD+R1Ms^HwQNbf?OUiTq{_I?L!?jy2bkw@mj6e9nRQQZJazG{j+#pQtg+zhsT!oYNLJeJsjl%ig}$=M zSvGO`WJy9%;lyv6@@K0X+dmq(F?jbj-PD%5`F!iEPv5)qeaXb=fak)Efcn}DcdRbF zY-dEoh1n+u{?a#}IXp%cm0sEYAGyl?ukotJxo_VePMq!fyl_k36RvvI$k%m3dPVyC zfzyFAs}#R2yfSt(rDv_HKKexT%{xVnJ!>aW`{>H)8)*-bVYj7i>Gbi@s>)^|pbj$J z9IOo;xIO0#O<5gNckS9G;!ktabw9KkKdTRqncwusu_=!`?UL)|k@B6J$T_&p3LpQV z?{f6LJD(riP&O(1cw$>kN#?#U+I}b)nb^>A@%&KQs*gxAtl<2=ySJqUBa6O^A8hE` zb!LVd&uHKH%7Dk8dCqgSbxqscd|93S)rqTl(>d28b#f+m=4503q$mIsUBe2m4ZGWk zpB27gN=TRH2TT3q6+I!j>odi77bIsZqedskE9_^5;gb&{@lMGw#4d-&AksCoY?fqubzrTK{f&mEf7`(BlK3(^&SZ0nYCKK^?EK73S- zzBpcC8RR~B$)^|&&ktf+U-z*C>g950CB#SN2h+wY4%iZof8uLOXXz~Refj^1@9TdC zB6RU2uWz;W$D`antSemdjiaEs(p+4=79@*@)K+#%x{i18{MogYtK!if0>}rN1te=F z65@IJLH^xNonL5F^!S<<^-Ty_(sz){4fwpF`N8+T;tCsu;$y6QShVrZY+=e8k6Cdv zGUtN<_oz$Aju#uvm(e*pGC6qkT}8sjLx(D+ueuZ=n%Z-(-4t)zxxIbg&}?V*iT=|s zwKgPgf}0C?K~rH#eMaWSISu$KNL9HAzv=ulH}|z13}kOa- Tx$1k{!2Suu>5O=TCad^IBbss% literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index4_thumbs.png b/modules/seminar/thumbs/seminar_index4_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0a551ec1bd9dcca5717bd139ba382821b6f877 GIT binary patch literal 2250 zcmdT`Yg7|w8jgj-ZM6qsv4RR?5HCnFm)xTeNkTA3LMWsKT&qr!38auroD3!iXiKpO zi0!Gh(hAa+dMQUMlxXTgarZt2q7SXFenR#IoC*{ zR)*0W?)D(X%o;*(BK5ctaCt=4cn%p&r!sw7g2ALvJacR`&k;pY23k=Q2s0tjU~ttn zYi%Zzv0u}8uC-Z}Yr?=}%#7y{8mb?;A} z5ssKIg9I`$n}inn~2C!Q656RNSXnmh5-2LJ5JPBu=PsJlm~+q)eQ|&6&6f zkVs}b4y;bq8@0H_yvEg{rxi;vLcbH!$_U&5%yKN$KPLy6#YZ6l%x18-I*7sIuwe#Y z&4(DMn#;jpE`qYzFntcM{Uh9gR6?LjB)<`jdy7({Yx(R5P%qC85oV-L4nZA}ddmfTe4PQOTGIn3MThr?!}1rOdpqjyf-dnVe6hgzX)#O_Ah)3)0RdK zz3b7P6-CdC*u0|swUE}8JwJ+oeLbJm)z#I1z4uPQo;Up)I&!bA$eh1|HGXt_v}^o4 z(d_w8ZAMJOEz3{l8v;Jx2f7qW_$=NznB$#|ISyPQ=zDM~*bdh(uu>9UV)BU;b;%d7}B|=zq7KappN5S2fse zoi8L9)u9^ZU(QrzXn5i0heC#a_@HSt5t=AkyxfZ#$44Ry)Qw+#b>}d~i$_PMU(UMQX4_lmxH8!P;8J^?^Qxu)nv;8>`kU(E)7ZUG-;~A= zF4)GEyylgO0evSc;EJ5pac|V{!@EjjUTcYdJnz6j-Y?mMU46NwwD=ve%AjLDroU#` z(l6r=lRYQjPhaywK4BjnRi1tlm^ZOC#dEScHpXvT!ez(aA{$_IHBx6 ze>gfNvi6CRc*kcC0uR?HE5ix~{Q5V^s`biOlsx;ZYPvVx_S9QG?v%`1F_N052 zebw=KQ?|4~mjWf_<=G>?wH4{Ns*>8HVuM(s+6q_gkvgQd;|#ji>wVd zM!aHIHqyS`vdFHSdHDCAZMH literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index5_thumbs.png b/modules/seminar/thumbs/seminar_index5_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..832fe3568ba10d6b8ec1105b3ff6309218f82556 GIT binary patch literal 2812 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 literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index7_thumbs.png b/modules/seminar/thumbs/seminar_index7_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..b69abd9c1eeef86f3c6fe7e71f00b99f5693f107 GIT binary patch literal 3379 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 literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index8_thumbs.png b/modules/seminar/thumbs/seminar_index8_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6eb30fe51105590c5af024918bc604581470bd GIT binary patch literal 2201 zcmbVOdsGv57LMx{tBYVtk{} zF(p2#)LQHb(1Y80d=%030jLO-*cJo@dkX5J2%=SpBC9+W0_+5c-9Oy!IXmaf<2Uo& z?|$FC_jk_NlEka$&RH;rL?X=<#UaVW{WNi&dDDxy{?Ivgowx-V1*yihSenr!!%UaFQxoEO3QS9rxiK`eR!>BeNKr9ny-bmT8YyyA zrPf6QeHUv0idq>BtdC3p6Z9~eu8y6Ot$}hNF~78c0=uY>2{U(I6JcWpN`Y3=jh85Q7eK zs1V4D?t~UW+!QWb09SGHSpwaRt$jv=C1)QM=zyv9b#&Qtk2q6ZO$pG2QA&AS4Wg-w06f#(RAqQr7I9?aa6v7-X6O82W zxf}=*u=q>{g0NUZHXnqUd}gdCR-`i+WjY1w$*U&vPRFu-HACka@P<{I2_emF6RO*^?U(%a6lVC*qi)h5E}_L}}jrC8j?6z0tuJ+v}Eo zoA|J*-1o-Vy^nWF%KRzU?r3IgXuIe9!?(%xw40||T3U{@EpuKHBY({jPMGPI>V?%- z4U;N|EYjT{79M`y)?4fd*nPF@_W1aCb4!b?H+}Xmn=_AoK>NBpCEQoAvE+m)Y@1@! zrd73Pzo`7N@>=DM>YP)5IbTunk4Q=1%=TQV|Ik~Ia#ubX$`3>uXHIM{FO3=aaUf|F z=jB~}r)lgdtSEi{&xi9qD{dce9jNKcd(sh5w>Nj4U1D)|mguw1%ZhTkn+Jz3*ZfO* zsA@zu{Iu|EyJU3uL1G>!v1Wb=xBt6OB(=Ik=jMThZ?v8ap4)jHXH0l~>IHW;-W)7k zT{FHoqI|vI2Fs~4AraNXF9+MoFXQ2^%+Yl~MvP@RZn*o*jrqpfu0@9YkqB09aa{O) zY3rKs`*+=!Z`!UD2a$2ur-L< z=Ix253QpZY-;>rwxg)>$q&e0muJpftX)7;kqJ4JQ7R`uj$qZGzYunX6d#^*9d+$Qo zF7Jlk(MRGvQ_{SB<&LqdD_0c8W^e6Suxq$$rwQ&Ts5}1C{^7A*9TicVAKUJ}OW(7z z{PJ*0P^F*S5YY{9z>9of>)a+=fWQA0mn$b#BKiA{P++_R+_!Jvrv(KCJGeHLO7%wk z;f9C!A-nxgcDsF+Uw==}acS6=-rioBLQz*7xX8JRa4`=e$adt*Hs1O9gB-24tTYVl zUR|2>rc^2|Eu&VyxG8Gfo>z4H!18hWyms4kdg}x#jz8XLt55jpt7u!3ZA+LJIfS6f z5A0!tEq(8iqkCz0V~OLD!!3DofV?xm@;eZ2kmG)MTB6(__fS1y%0u20YNqf)&Huy$ z)(ed`(LpX$HJf`T>@*j8=I*dJV0{^Mx*$A+J;fiw_VE8VycZdkK5~51P;{u>?e11l zpvhB;Qkp@YO!(9BuRBE=@tzfgt;tbJD&#`P2!EW#s=-ip*bl{l$W$ATUMo73Lin@q zXMXgS-S2^TYCzoeAOcI5ggkrt^qe7-wrzRq?c3QPIWayyucTz*MX~(C#fx>_-AZ`h z(RVD)sHmvmBS(%nquib*`vUXG>)C9!)0_IMuJB+r;%aGVSaWpUiLAX}l7|9KK~?8p z3}xBGqosV7b`e$1wQLQpra4`E`DN=eHa|>0ru;~K>+$3CpEFp0hR$}) hTHzKp*tv0r7m1R(j6uCJE7JY5AQFg?ll)De{2Rzog{A-i literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_index9_thumbs.png b/modules/seminar/thumbs/seminar_index9_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc7c235cb0c460b1899118e1d92523c33694baa GIT binary patch literal 2165 zcmdT`X;2e)6whcCP(&QCAVmqm3JPR*LqZM+lq4Lfa)>bC2xyK4(vWOO77~!dDmT_@ zbt)c#QKwiGL`0?_)f5e&RwznGv=$KxDuRSl4n@0(VEy3uq2Js$yZ__8-@D(;=7$9N zFI!@>1c$>d;|6d-v9$_&tBn_9-=^-_R%}^?`bMH#kXTg7lfyV4A;O38TnR4@4uyHb zl*AjbCl0qTRumSAMh0$T2oMR8r14VKo&-W50FeNY>I#7j3Y7su__>FG zS(6K68KE4%Ia}C?Nr*>L83O>6N+nV0MnvRs07R$L0gwccNUoTKt0F~;@>H%;g~PlC z4y+K!MKV-`Nb!1&JU)_yG6|TcZ$psC0t4SEmMZ2Fg{2Ho@nir*1ObUeAD2N|fri5W zx$!}1MOcaq20~#4k|Y;k^@w$t2V=SWxFNkD<_#lQF2ah!OW+`aBnd11_a&ser?lcIZyZg9tAUDvDL}vL>*`#?LAHs5IEH^gQ-IvOuQz6Kg%%ZR; zK7K4RnF7 TZB%atlno>TzO+ZADU=dhfQVi{~X%tH}*7=k3scR)xyf+C7|M22T? zp%5W_gh(nxlnQ-$-bTxT<)UO*=qE=cctd^}q7T?7xzTA9nme6NrLugS|t@O65y$I;~B52d0 zt#y;fT6ciPZNk;|r4#ls(a|*pdnF>#`t-cQkXFmg;~UOJ6pC+?4(8YNFt$hOtQs^` zW8ak(EH4>KuGigaY02*I7j5+ad}j7_Pg7G<{pA?lP)}dJTGtsqGTrg`$&*Dz<%d#S z6k8uFrY@f`SDr2{Ew{N}cjR~Jro0oIv#jkGV^lg}bS3dh|JAOJYoj`GcaQg*yEDzp zyD|~lSR0=<`djhy%Jj_s`t$OkYr_u!?~bGC!w3AY4KzPA4qlV`%}a4t+RpXIXCFmP zjhx;-+l#dS^F7mcpC-k{b8P&?8_iU6HaI1xXVnx=t4GXSFfJGG&=g zXGN~8R);~(2KKtOCkyhKkg literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_widget10_thumbs.png b/modules/seminar/thumbs/seminar_widget10_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc2261665a0875e604e725502d6ebb89a812ec9 GIT binary patch literal 2099 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 literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_widget12_thumbs.png b/modules/seminar/thumbs/seminar_widget12_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..82eee2c5d24cc18ebba8f9dcbd48a610e3ad5f49 GIT binary patch literal 2123 zcmbVNe^^uX8efrQUU?E{0*ba~Hb}Q~&dvtg^2jqbW;5n^022z8?d%Np$aePQz$T;@ zT?s?4nN*Gl=!eWFGl=N98E9l~qB5}XqN1o5$THbgxh41m+x?ymtUrAEwLAw`)b5M;O8d3KaXS_>dVEEYpBAL8@50Kv6w zG*KD{*JN8X6+uqeaI3*g8Aub0j;PU+#T3Q{Ov5D@%_`M{z$V+IP(U)sp)o@U4~C3J zx~>q~Mr9Iz(0C}?mc7wTK$(P%EVkmHANoa8&Op1rPDBF%8;RO#08P;p$w|D}NSG+4 z9AkqMp3b0?@I^43tU&lE%7>Fg2qI3BqH+X<6?{ReB3Z_tit#XCVVXz^-~zck6?moz z#Hk8Iiii{fA)hZqWU?t=rO8HVOgJ%>*8uWP`l5g7E0I|V4MkeBNwR2a0x}9oinJAy zW|mAA>NqQ5jlrZN?Y2a^Md6C&gw;?&=oD7c$O>sJF+7BW9@nD+RH*0TVg%=EbOJ3` z0}}$S9u;a(Es6_;Iw5<~U-$oL2LVD5JtTh`nkf^QMEdo?3V@FXOGKE!=2*ds9O)8x z7>vhkO1U)KaXv7h-jKICzH<;&ncsQ-4!V1&;hnTStv|dn8kLan>!X2{c~87CclO?w z_p*8OzF%$s&-3$>Pkyi!l6t$BrnP0{QTgfn+0(y+FU6I%Y}+CpC|kMtnNtxmrbqnt z=_ij0?)3Ih5|w#(vE2X3n+{QYTiU#lTcuYPHGTBjfxAR=>7mtFQXVQDXkK`)58pQ< z*ig}sv-V~!S<-&7>%xT#27>VQMSrK`=RW-p#h%XL(aU}NZeSAwHPbqRyUShrGs6eE zPQI|B;ng{#+sa+@{`=8a2Mh9|ICYiLNM)?tZ}{r`kJ}@iTWW{jx;lPuoolq@QTa@E zWb`8KEc$#$<)A#*_^VH~Sw4OHmoxsn$SHr1yKeP`dx3Y$BjSQ3yOvKl$lon*l^5(se=1loo)TF3*rBTj zE(dRCi64wY}w{MY%f ztrbnir~mF-P)nAU?x_GCvF4+|0g6cNy zmyE0$!Cwh_uQ%?2JfMuW+l_~BPTcveJLcXs*VT!UPi(i=xl?wIdmZYqRHDIv>x5SQ z{*ii7QrS>sK|ix|=GQx$W6OYuKuc%kk$QL0n74~}yj~;#fPgEal|$R3k=M0V%DGwo znI3mbjW$WtH3!unFMiGE)@}_q2ps58UtWpSBvX!gbuFBpe06*+ zW^uL#T==%U&NVwQ(Djg_`Ra5~3lXDJ$G?YJBF4O1`k5i6V^a~|v)dE(ky-w8>B#)| ziK;mCN69zZbOf{^mL8t0^e<|(ymnTW|9b#{eKY-Yn7~eRN;pyPUOMKD1L;~hCiA

i zQ(Z|sthJk6jaAax3f*lLMBGY67PAtF-^LYT`1kU+b3OPFiHUQtEWHvl!$y>l zgy`icIZX?z&`cCYti@lT+X#eEojN-Q%So5=6?!cL4%jd(S_AG)AZ*)VF~AB9ijn20 zO05%6N19uyWHln7?&72~(+xtjP@P(4M6=2=vK3_-1%yy{Y$tEC@bLgz6obhYZIRBz zw+N{7aryW>unkbj^Cp-^KwTh}lfIKI)EiMUhryvMm@JUYgBT!(!{f2Gl37eJ9$F9-vl5t0o&;pE*(@eE0R$m#5?chanG#lfvVFeOPm zkti7gL2-N%$YqJeVj-883<5bWXebHhE z>@3t{dQ+j^Ko$z;D^7l4ms*GD&8E0Oi54;zp+}Bt^AHe)I7|fy$vM=ZKl1-*2jGN&K$HBWX%@HeP7F++UIBdZ^b(;u z{N@<(EAo;MxI-W;ElU$6Wm~@T-;!zaUWxAbmMzJvdGT@8$!QgO^={F*S7*Z3{m~jy z`s=!V$*UqyzIu|%*m&g?^MlP%yu(S$3f{6G%RPXdXu99#$`-HP2VbNeuAp2=oRT)R zZt4vcMuo4p&Ar7BwT>!%~D_x3wBe@Xke;M0%$ zZ}n;VK$2(g4}X2Vh5O0q6YD<{$Nr%^Z?h^Cv2;2e;wQT@KHB0Nn;u74KQ_;d&!r4H zfR(O7H{pRU#*PkgdrR@`gD-Q~YvGTQ`-F3b0s?5Lt(g~+8_1};7jCh(d zD(p!fvRo8F4I}Qg6T#>$;wK*#I%9}`hhMCXxZ{8ZM?ALSJ;#&PPnccxmeEnqJ)-@0OZN5B#e6!l#Gp*3{J;=`Bdz@fZVEZ=X(>o9(K9d^hxd zU42bdKks^bf6sXvEkCs_ccQ9AB{*lVXq>H@JykUH@V86WAmg_(X6`#r6Jq?oB#u&g zUlX-0e{bSZ%$u8OyF34u`1xOG3p8WBnO&;&Qw5C|8=l;nof{PA=FW}e$^_QStrq5x z=9330x2+E+pLjL?ZgyYeu>Vaf`tYka%EguE?hHPHQ@Bmz`DKqkQ~inLxjs07`DWgq zhVJfYNSu=Vkk`^W+WO6w`ux;_+jC_nddt6WH+_E$IN#^vhXnNz$z@WF-=R56JJ{v6 z^c-T_ye>*J$+x#U_BXhWYe6alkx4^rUVbGai#{wU4xRMWkpc&Hm$P%7^M*@)133_R zB<|jEimKKH3QK91mnWtKtB{9VEU9&stodRcduvvAm=t`S77V+;!tYT3UQnDq=_wu{ z^+p<%vS>D9mY1I~EwyjJ>nHL2&hLoZEzA4vkl%6XEKS$uzFD$lzOb?K6`gL^jhm!? zoYN7(7!Ez@`5$PvYssVshju4ywRyw*jzwtNJ8{pS2HQ{JoETZ%kg!JzD)##`s-7!7 zNWgn0$zyLi6!-ixDL54Uhd5Rtvy4?xN&SB5= z?(bIMnrskN*;fsavfA8DJ(K}bB`UjJA!ry{$mrfCR{Kd#t&4M1ei=OgsXC9wDZ391 zI>tWlAI|*4nn1kt@(UL-A}WP6yIEd%x4P-;kwoYsX+BR} z=9Kkg!x+DWweR7Xu0cLg|8|FO6Y{~b3jH8y9dxQBVX_WKn@`yMo}%oa5;q^K0sys;{cP_wK!Kt5b$R zfA6VQbF5%6*i@etoFHf|g3c04ICQOf_WNyUvDbL>24Yi*!x%vv?l>3p#Kc5sG)e{zw{6=t*KI^sg(@5e(CKs>o`53|u#g2-9V^!e zv{<>?X##-*szoY^QX^5w(I!NJP!X+RVj!hoLXau_{JsLq)#HhRQijtClsLc@kCVwv zagAB4H9_FNWqi|G&5KonxFArih*pW9dW1PmI77MnYa){&q=pfol0ZcfY~?6K(K1l3 z@!>Er(2lEEB4!Y1cs!L05Qszqo#3Zj{DO8(wE_>0tFg{ilcyrKeTkR@sw6R>n5$CA&|^7fNWP(gLKg@G1Ud;z zBGW`zI+;Yq3MfK6R!9+2#S{`i7f`5}aewjuk~;pvxK zdz{lBx3+$2xVjmysqo1!X>RmS=s()%Z?<>uUaO|{Gb>=_=N8A9_i1x}Nlv^jEIM)D zwr-xk-SP9p_%i9z1@^0wA0rR(flP}ULfDjq4=0@ZawAA_KUGwOtPKt>>3)jn(v&-; zt_WSVFg>J3v8*z}*L~&AXXG^R`cu!=xVgkQPDWmU)7xyaS`iV4Z1gr}Np@)C8IAeI zqNBs%tC{g1vmS BMciA(sUzbarbR-S7YXLw5q}lc#R`%efbGR?ZxJnRHDMtsC7F z7xm(Gy}I)EKRCKigBvqKSH{LI@NyDFkKD_S>&;00oHzO*l`-0dIz^e45)xbJZT_V4 z!kv=0m(|Ykqxd)HVAiqB_vPnlwp$##4@ZN|j#VC|t4qm8ohHqyVcd!?Bj>b)KJ4pQ zw(8|CK(1xs-Exg(VMi&$_9^E6^=!MGmPsb%Xd}$A07LJ#|BO8;VMvz5C&I1n2Qpa{TMEs_h@FzH3{I)zy^0 znLTilY-~Q3wdv~Ft0R3c)6S0!27BMRa45b>T^kx3Y+isn5{;rw*8@PHya4G!p-_03 z)Wg$8%0}8FBX2c=&=;|v+K_sgwr}6Q0thwE*E z-G_~=Zd5Sl>oV)%>s_p((rQCPLqmExB@CUN+mv=oTjz6h>3h4R%RMP&tyHR&ixIqZ z>C)-^{QO(j-yGqGho6oGo_|b)F9~j~HC9wqM8?G2Ll$QrJGRcu%CmG*Yq-91 zGB3leiby1e?VLMj4o@UH`RU_FI_`Kt4m*!_^Y-n7_Ur6fE3_T29=5f;ZACY`J^14K(Q5dwYA+VK*NYBn{E3I^p(* zI_QW?4hC@l(&~ddGBY#pym;~BhRvJ9x71~~%&YYdMik~8skf!sSmr!lbj3`D@ zUxXLym#&Glwzgi9vGSjKy;(oNUT7>hEJ#c$ICaWvaA>G=>N_uXCUvL#rjQV#BBAZc zllbY8U0A(M){!ZfFJ2tH2Fsf*w%=4|yRoKTuh*YFcW%}0Y5}pXzrVk;Bf_RVO(K=9 zVKTFhrqxd^b~w=8-Q57YfA{XZ+&*vKq8S9eJC*8v_;35qm7sQSTJQE11a?0KcQSU5kmV#LX7s)-&!^S7QsF646^9bBb zr}wX4pFP=qDqw5TPml60YpQ3_cTI7L*-+7gaJB@VzHLQxjoui@-jVcVa5lf%qMSb6 zjl{)zXD_;?c8=LUL$_zoo}ZtrhFbX!((5X#$dx!FcEsr45U5OO|LsJ8Zyta9fB~ya z5biY1tf}{x7iH%b8d!i%*!!zX=O4xgCr#AlLxzwCb9MH-%B!w5#@H*&;l$yNk;=Qx zgR-`sOd%xslI&xU7uSMwqt{zYuN-EKi=~fn0DrU@J-|95xY;%PY+oL79z>rb!^oF$SS) zM-Ch3m<;TcQ*;yFyGqUoA8=--FUcP|BMiEJXZ~8>eX>(22&K@%W=x7%Qp@)|fOtk2 zxqr#RwZ2uhJm6p1V~`O0j$~Gm-+-YDB|S7AeQC?OVI#~X2IdHN9Fw=vBafzM71g{# zHM_ta*m-vQ4Ul3}kkxx%p&ptlS~O(Zyfb2MIUAtl4SOG(?B}_)bxPecDe*7N0%k)?2*6bxVoM{p8LA)`*->tKHu-}^Zj0ThM&(S-NmMh zArOeJ=Vp>WI9>(cDs4^h+cY@+5FAXz9zo&&euOxVDr7?37PlT5c;4^md;9R|pgu`Y; z#2fk>}KNyiOWWwwbC|f$p0f0H!ApkoR&JJe-L!$r`5g-m#>K@U;xGulkc9+rI2;m%MxxQSpoFa`o+qYCY@nggUIEeIH2wZ`;_jkiQ(QKl?lp!Tl0TMu02+fqqZ}Lo0O#O_ApsZ^8ExlI#uCwUHh!e*h{9s*9Y|QLI}QT? z9(HbIq63MHaYO@-I7bIJk2zgWo=8mP(V268*`VK9U5CHa#S?{0s+cbfhc=iwcV>~bpZe#$1Lu1`N z?7+C)J&0}q07gtCxs%ZL@L65P-^m#g1cOwQSb->(Q|UM)vChAk`SL$ zTR(ST-xM@+em7v9>VjQre^C;@3f0(2Dae@I1kaf~-&ImwQv--2wGX&kxDW{SSZQl@ z{+qF%uUV%gcjVhI$V@v=*p=Hi>_67yk>p~2A+4!SW70P_r--B@S!|G+J`b*$4%Pc& z=Hm1<@?G|hPrQ-Li=E-r1%ror(!xyQ5#VJ3}s z{#IdWZg+VwWg>fz>VkksBr5N<%d-ssxV){j%!!3JR5hQ(Tc)N{yb!t4B`XleHC98R zSB@MwIw9JhnU)o#q3DfGNqKf?d#;|Xtt|~o#xb&jiHcrRlG0DSCCXxFX!ova(>MFt zj!tmCA{ogM%HAs0(B}!2@-ZpI9Ls-ZqowTa{pqdbOZYsbJtLWW`|t{6+sH`SM0~wh z3n^rUR4Nrtec&!S;9eO!+UKDmGp_to>(K*KE{9V(K0Y24UZE#x@92m=Y#7aDH-v_U zZqv9O-cswMFbTarpr{Dv*MHa%9v&Vat5`dbn$EdYR~P(wYASbvzaB*CsIMI~Z)!S4 z#TmbjO-M{EKU#e0l6GD?r+Lhhv&2GWBimx|w4)@+%`-VK+@0s+{ockw_hz4s%tCc+ z==HCq+go;8f3P|;8q=gOF(HlYz|&Qg8l(|+t;T$~<_$XKPwONXPNLWD11W1{E8FEV zW$!;TPD$=LW3F-}^PPeWXDRkS%t(i-ugy)~pkWlvigU8m>h2wF+b&0rY~FljLqkcU zeV;Uzd9Zx#eb;JWJwN3m+)__5$EtLw;Gtqn?pwV3xaC3DlW(6tbgX?hm{ssH>kPlu zu%PhP)ZO=MFOGMVwEW`9a@~=17}{xW)O)4o%Q?f{9j*T=3=qD{uX0t@7HwFkrS+n+ zrdYbqbkEjL-4@bT#!opnzNS1at+-`HL3Gx>(;b(MNjq|x#eN-D6s;Nscj)B9exj|8;4=r%uCbbWrq|9*#En4I)l1UR2L?=oeGj=#G_rByUDQuQ z-Oo+jvLz#3n;4V*PD8JX9WaKaUG-YpJ@oMpkNdNRc?Nao2Y?n_>)^8ZR{cGT$MMC1MQAK7Hfi|hc1i$RBa4pukVm+%gTkdbF zYJ8mmz@jFL6`s|)j+Z@2kEi~L)= z@}#X+jZ6BMW$b?;ay$Z!lsm=FbXuFn=ks+S#+3Cpo4=g6to}jt^zb3c+;{H#H{*y~ A)&Kwi literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_widget2_thumbs.png b/modules/seminar/thumbs/seminar_widget2_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..832fe3568ba10d6b8ec1105b3ff6309218f82556 GIT binary patch literal 2812 zcmc&$X;@Qd7LE%jF)9T|V{PdrRs$l*y&)kaESiNN0zn}NXaz!YNrGfCxe%5DDni8y zXdM)a;DSOK7D*SNpyCo0%7_S7nF4}>tfJKs6ob+m1ZRHq>5us{_jz)+^PY3w^M2=i zH|bmW9*eObV=)-aV$V%nKlG|Ye?KfVMb9@LzHLS?D-rh~#9tYKXoYGR!xAgQVZc)^ zl)!$lP#m|r5q7~~=0(T^K}e8~H&djPlY~YLDORpRy)hV<4Y4YrXcvqC;jl!ea3wse zt0w?5u`3~v<^%euIIvWT`qutGB<6e<}xR;VIFB#qQAVpp=z2t~o^?jG`|CtTAj*d6tCpdQB8=iHMbUCt zfp~IV38;l6mWi1ZClI9bAc}(n1$1_Uu~MrsF3nmnr*`{4@>)EtSD#IMCVd zD0>Fmox_44v|gMKdx=hHPw(|7w=mS7-+sZ$Gp?`tV_RU`(3?zilMA_86xS9v4dM=mh@)i%1ZiIPvUMGp8qLVwZqBC-N)b^e7(yEe(0fs}c zccDzfZ=)yHf9904_7Vd@h zFN!VsHYv>;o;i2yYF;kM5gynoaef@-k>7KBMXBB+T-TmZUS96EV@FfVm4zjOb#88M zNjACO+nhtK);kiD5_@lC%*XTYxI~g@C%uB(uSZ5k;%Pb6dko~`x^w&S-`VWP@5cjr zjCI=BqDy`S)ED>9ez`%#vN&Ghuy1Kg)w$sK&`wf*$M)r}<4qGMANQqa!Gl?g3Nr7E zwa3JXrgprzo0&h=9XC{VwtjTQO4or=6Me$xzh8xp*w_7_&3`N5y_vGg*3ctdM{9`| z--xpGu-3njEZRAEXlHGE$z|Uq$*X^$_iu{)==7%i3lk3u++WpCwz~bCByT+~qAI0F zZr4w)Gep0Mt!wbUdU8ce``W$pME@dpB)<-@__u9xQe(u&p4tV5b$eFVkK~RYhz@1&W8}LHbst zT@IB>{k^ToBJh|_2UQzR2um{v7-KOx@7vIq9xlnr^Is zeo_9->aV)9rA?--BQ3jIo(HvQ9!*Tdt+cXg9@mVG7y0BJyku5WklIljU3%pF(1awR zukL(3aK+J^sGj#lXy`Li^N$uIiC*OmfW9u}aStvUVc5GNoYd;Z+LQHN=rAB)THRp#y1gv--24jrnQb1zQrVx_&7cf{=bq^$9M z4w}9&utpjh4|m?Z`}aX2EA^UC6jJ!^6Ly8G|6pa4H=z0u0I*%cG-zqS9zTcb`9{u*Kz^G=ez$2@RZdHdS24Aud!GoPA+#2eVQwrA(4Q$9ONrPZ6rtAg6B z@A3Cl-F)dg7}(n$Gy$BS*j)CteWK-2b^U_<=_~#@(27mNn&}!>RHmeUy79mqHja&} ztmHHfTKcC8w;V3fA3Njgy=JDPQL9}`K8Q~YUkBl^l9Dx3!tx@+hvwwq<-xb;Gb^qellk>s@DwFZKs@tppiO$ znRuPJlyESbEC z-RV2YqU7S39d^y5j%iENHaT@jnq!=%_PP_Dk9p2}vL^5eWgsHG~oxV-X?8AOUia3=la4s^MCz zAcA5+TrITfB5u|eRg-AXXZQR{k^~U{ASX9 zeb&sKvuF+qg_`TVmhFd(WyoDI3ynM*d&h1d!xylp0Olz|;25C_Lb*#6A_(g(6K;Y0 zAfaSy)t zN|?9}6b_N2^ngO8YhzUqFV@Fj92+jCNpNnfunY|yQ6Ph0Ayy-ckgMq$CT>D69hr}B z132u22prDDeKbnI@x^*5R1lUzAUcVOR1ixg6F@SNMy9R6l87J?07(GR#R(+RDK2y( zh@HG}2%Ab0Lib~PO>!YCCN30)m2?1ziHRY^I1?1AEdWTP(EuU|Ad#F92`BYdIV{vT z$<=mK8rYCptdc5WsX~q&*C-SzqF^QtvGk)0G9`!eNwHi#87L%VfJUeUKmrkv$;SPf zkXFNf(7(+1thCyHs}chIAhjY&B}VcQVmAdwV)y4n`Wq3T|tmWb$4ci&O|Q~ndRl;L7LL>IjpOf3z1Evl3Z9c zG6;H-T}foB2bDzhWPu>t%N?A;ddt)BB=J%yWY~%L(xso_r?5$gt28#v*@fka zSWjbldbooi;;{#t#U@d3lUT`r5;FiX1{g1ne=C-$Eu;d+r=Ln6S$t|9NRD)j3TchF zMKjKzP%{bMYp93l7oh7Kv{056U!@zQ8-P5PU;d((x4$tBBgdouR(?&H9%+bfIcHP$y_@2IJ{6O$*9{I1`UM3wwOp_y<*iq#RL_Iy z1*MhUjNm(%+SA*{VyByJXl8^FD1}A&9m@s=1_YEd!!w3@HaV=D4c`BHhxHC?tRD5H z*M08mD{l@LHjUZicO}}})fS$3bRo{RYx#-cINrfKr^jkzHZ$xx6==`KCjLmlGNb*= z`fsv0D_;!LUySZFdru*3QC#E0kIoC&yH@SlTi|qkS;G5{!q(^aZf^AstoC~Fe$B<7 z`HvGLi(!Q{VC42fooF8=a8CT2BBp9^;FMkBoAxN#^G>UvhdnoJ4GZ$TX%(dFHWqi> zvJxv^7=!F7g^?l64X;Sg?q)Ab7`m8xKDTqR+Wr>SB0SS&RmZEFP0dGXf;VR0Ru?Fj z*Lm*l^H2KwlB>s1z^Gt`2D+Wj1YOHaW`V2I+|!b=DXz9$*AXj$s^pjLO$~r6zx=}4 zqx|H@uRYZrh_!$sLrx=mtc40rSyZG=-PmxdhMzoEsCg;-`fMz zWj$Pbix zbyw#_Pam4C6pN1}sD92C^lTVlJLm-zwOXxu+)@;uq|@mJ0|=Mig0<*8bEAD7T{hfZ z6Q0VinoprnEaqsRySFRDGo!vUayG_^0#CLc<;Im}Y-~T|qHSG7M8vgu zCx^nbFaKoIoxdsbmHL$Fjlryj-lu!SkDY%j4XTwV0?naqJ=vPj&@`0Q{`~yCyrVvy z!sEGJRf>MRQmuZm2W5q(xn#WxU&xgtKy6p|0astXJT(?sllbBxCoxq}*p%@A&%YI) zyU*u#+~`mzucElPI5dgl-u?j<8{`oX5a8(Kui-Z2FbSgIaF2>MzGc5OmV`WTRMNG|3Q=cac8_9;TBe!mK zzS{qO)>s%L`VgxGW9FzXF9Jk*eUOmmUBD9PN!c4gTSJUY9> z)7@(|9%O?1k&^-aCeZTo+AaCKU8&g@9?BB(FpCe>ldJRtByyVt^_ zdpG5r^?|gS;NaD`tXak9*YbGTPr7S#p+~C?IfE9%8D(qd|HE*^;J?e4`eVXqj28 zsLG#;e?7>3w~byfFQBTXeQaLtd_q>ayzsj!5A9Ncs!V+LR6P1hpI%#;;bC^>nSS2* grvjbZyL1{F)uRn7$>VqJ9{(ft_Vi(wvVy<=1Asw_5dZ)H literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_widget4_thumbs.png b/modules/seminar/thumbs/seminar_widget4_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..b69abd9c1eeef86f3c6fe7e71f00b99f5693f107 GIT binary patch literal 3379 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 literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_widget5_thumbs.png b/modules/seminar/thumbs/seminar_widget5_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6eb30fe51105590c5af024918bc604581470bd GIT binary patch literal 2201 zcmbVOdsGv57LMx{tBYVtk{} zF(p2#)LQHb(1Y80d=%030jLO-*cJo@dkX5J2%=SpBC9+W0_+5c-9Oy!IXmaf<2Uo& z?|$FC_jk_NlEka$&RH;rL?X=<#UaVW{WNi&dDDxy{?Ivgowx-V1*yihSenr!!%UaFQxoEO3QS9rxiK`eR!>BeNKr9ny-bmT8YyyA zrPf6QeHUv0idq>BtdC3p6Z9~eu8y6Ot$}hNF~78c0=uY>2{U(I6JcWpN`Y3=jh85Q7eK zs1V4D?t~UW+!QWb09SGHSpwaRt$jv=C1)QM=zyv9b#&Qtk2q6ZO$pG2QA&AS4Wg-w06f#(RAqQr7I9?aa6v7-X6O82W zxf}=*u=q>{g0NUZHXnqUd}gdCR-`i+WjY1w$*U&vPRFu-HACka@P<{I2_emF6RO*^?U(%a6lVC*qi)h5E}_L}}jrC8j?6z0tuJ+v}Eo zoA|J*-1o-Vy^nWF%KRzU?r3IgXuIe9!?(%xw40||T3U{@EpuKHBY({jPMGPI>V?%- z4U;N|EYjT{79M`y)?4fd*nPF@_W1aCb4!b?H+}Xmn=_AoK>NBpCEQoAvE+m)Y@1@! zrd73Pzo`7N@>=DM>YP)5IbTunk4Q=1%=TQV|Ik~Ia#ubX$`3>uXHIM{FO3=aaUf|F z=jB~}r)lgdtSEi{&xi9qD{dce9jNKcd(sh5w>Nj4U1D)|mguw1%ZhTkn+Jz3*ZfO* zsA@zu{Iu|EyJU3uL1G>!v1Wb=xBt6OB(=Ik=jMThZ?v8ap4)jHXH0l~>IHW;-W)7k zT{FHoqI|vI2Fs~4AraNXF9+MoFXQ2^%+Yl~MvP@RZn*o*jrqpfu0@9YkqB09aa{O) zY3rKs`*+=!Z`!UD2a$2ur-L< z=Ix253QpZY-;>rwxg)>$q&e0muJpftX)7;kqJ4JQ7R`uj$qZGzYunX6d#^*9d+$Qo zF7Jlk(MRGvQ_{SB<&LqdD_0c8W^e6Suxq$$rwQ&Ts5}1C{^7A*9TicVAKUJ}OW(7z z{PJ*0P^F*S5YY{9z>9of>)a+=fWQA0mn$b#BKiA{P++_R+_!Jvrv(KCJGeHLO7%wk z;f9C!A-nxgcDsF+Uw==}acS6=-rioBLQz*7xX8JRa4`=e$adt*Hs1O9gB-24tTYVl zUR|2>rc^2|Eu&VyxG8Gfo>z4H!18hWyms4kdg}x#jz8XLt55jpt7u!3ZA+LJIfS6f z5A0!tEq(8iqkCz0V~OLD!!3DofV?xm@;eZ2kmG)MTB6(__fS1y%0u20YNqf)&Huy$ z)(ed`(LpX$HJf`T>@*j8=I*dJV0{^Mx*$A+J;fiw_VE8VycZdkK5~51P;{u>?e11l zpvhB;Qkp@YO!(9BuRBE=@tzfgt;tbJD&#`P2!EW#s=-ip*bl{l$W$ATUMo73Lin@q zXMXgS-S2^TYCzoeAOcI5ggkrt^qe7-wrzRq?c3QPIWayyucTz*MX~(C#fx>_-AZ`h z(RVD)sHmvmBS(%nquib*`vUXG>)C9!)0_IMuJB+r;%aGVSaWpUiLAX}l7|9KK~?8p z3}xBGqosV7b`e$1wQLQpra4`E`DN=eHa|>0ru;~K>+$3CpEFp0hR$}) hTHzKp*tv0r7m1R(j6uCJE7JY5AQFg?ll)De{2Rzog{A-i literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_widget6_thumbs.png b/modules/seminar/thumbs/seminar_widget6_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc7c235cb0c460b1899118e1d92523c33694baa GIT binary patch literal 2165 zcmdT`X;2e)6whcCP(&QCAVmqm3JPR*LqZM+lq4Lfa)>bC2xyK4(vWOO77~!dDmT_@ zbt)c#QKwiGL`0?_)f5e&RwznGv=$KxDuRSl4n@0(VEy3uq2Js$yZ__8-@D(;=7$9N zFI!@>1c$>d;|6d-v9$_&tBn_9-=^-_R%}^?`bMH#kXTg7lfyV4A;O38TnR4@4uyHb zl*AjbCl0qTRumSAMh0$T2oMR8r14VKo&-W50FeNY>I#7j3Y7su__>FG zS(6K68KE4%Ia}C?Nr*>L83O>6N+nV0MnvRs07R$L0gwccNUoTKt0F~;@>H%;g~PlC z4y+K!MKV-`Nb!1&JU)_yG6|TcZ$psC0t4SEmMZ2Fg{2Ho@nir*1ObUeAD2N|fri5W zx$!}1MOcaq20~#4k|Y;k^@w$t2V=SWxFNkD<_#lQF2ah!OW+`aBnd11_a&ser?lcIZyZg9tAUDvDL}vL>*`#?LAHs5IEH^gQ-IvOuQz6Kg%%ZR; zK7K4RnF7 TZB%atlno>TzO+ZADU=dhfQVi{~X%tH}*7=k3scR)xyf+C7|M22T? zp%5W_gh(nxlnQ-$-bTxT<)UO*=qE=cctd^}q7T?7xzTA9nme6NrLugS|t@O65y$I;~B52d0 zt#y;fT6ciPZNk;|r4#ls(a|*pdnF>#`t-cQkXFmg;~UOJ6pC+?4(8YNFt$hOtQs^` zW8ak(EH4>KuGigaY02*I7j5+ad}j7_Pg7G<{pA?lP)}dJTGtsqGTrg`$&*Dz<%d#S z6k8uFrY@f`SDr2{Ew{N}cjR~Jro0oIv#jkGV^lg}bS3dh|JAOJYoj`GcaQg*yEDzp zyD|~lSR0=<`djhy%Jj_s`t$OkYr_u!?~bGC!w3AY4KzPA4qlV`%}a4t+RpXIXCFmP zjhx;-+l#dS^F7mcpC-k{b8P&?8_iU6HaI1xXVnx=t4GXSFfJGG&=g zXGN~8R);~(2KKtOCkyhKkg literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_widget7_thumbs.png b/modules/seminar/thumbs/seminar_widget7_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..0745dc6351108b815682e4b29b4f914acc97a71e GIT binary patch literal 2164 zcmbVOdr%YS7Eh}M>L8B>3s~#j1Z$iE*=!OZ2}x+4Ks5w;2oxO6V}S_Ch9p1$Nk>6U zs9L>_R;SnuSZ}Wn9vNyyP*X~@w?(-^AE<~ZV|#g7WC&tYk^3cp_x|DZkM5b>{q{TO zch2uTzL~WoC&jN^v3dm#hg+GLAWQ*o8@OA2yukC?gSj5?3N?r_4XIeJp;V?raXcj^ zN1;TuEDudVWy-Rm?@%@lw=7qcmTAb8Y+@-eHCg7iAsf|NfX3n2aYn67QGgmCIhv=^ zaEOx~b|R!wa)=pG5{g7CK=V}z%9JES0!)WOQDjP_f)b5D(R4CGr!eWv2#88SC@?~WDKU`< zg%uUUq9D-XMFi1w%3M~8P`nrmd~t~R27{Ib!=zxFC1(1i-iIugN-sRjF2g? zTJ6ruW34x&p#P)sQfqx$nHGgpP(4c@Toj%G))}C zX9A>%&fp27cme@~LX8GkX3P>cQKL7=GzxSnt_s9m#ESkD%M$2NnE}(KVOZhP1SIEU z227uiX(2&s6d8dsR2n5#s&}_%AzLA;QFNsg3F&R;eXeKizhA*On zy!j#l4?#f20wG^WjUp~$m4BsXFdzfFhvWZ-WoZjcpnLgZ^ufoA!-HzTiP3?h(SI*9 z9*0~0d7_Y)X1p^o5SPC-eU10yX}YB<{mUC0Q>Z~XWAoxee&pARibfhfV!X}@a&+$Q zl%M|5CI}8>2}jnE+Zk=G!hlrAAE3zbCP!H#0EYybtfY=2M+FU zK-UKrTrIY>-HY7)VZjBvBd=rdw`{#$FDoy<(|4%aWVg53Y*Qu8{T;2wvK<#VQ{mIo z)30ty`JR3BV#IW)zGXZ~BFT#Ci~V};({9ZsGa;P6FQ5v@53XfHnL{%JrzlT%GON#b z&zM}py*JCAkVJG5DLw zek|ePv0VQN|7|;;Og$N|+GYxF8XSwER>*Q$Ih8KkR(sPqX3*~wKMp0)SKY78lDyWo z<0!75cF6=*zeQBY*G#-;=9vTK`KWnP)e;^@FDUtH;MT~4Ed5}XeQI@0KQ`6$>sWhn z?*3K7JyS;-|L8b>WY*lB6?@6HbI15|&DLM`>3&YiliDv9Hy=ixLqX$Pnue0X_xh^` zhZ@h;ZSGm!pXncaf4=W-m!Gy}8NrJnHWNZ!4q-28t;ouF%jG!K>a_fDO6u!Z0y%sT zA7ovSymEL;AE~K9TDP)No^R$NPaKd(HbIs0h7tV79?kH-vRsbQK9ZMrY=FEvq&nn{ z6*g{B_$WT3m()|kMd(6nNQFGWBkK=xkDM=>A+7bbq0Eh|Xj{)5yT9GrGhG5cVawIRchaxF zd*;~fvF9yKZ98B|?3`IR3)lxkalg zhYLsW0)f+FBY6QLUWD9NNAY-()fnW_#P{@(l0M-gj9a?`!a(H?CYxt0*@@P+T5eIa z(^5}xId0+IV_p?N+vT)a8l>z6O<3M2{)>&)5cgCBg32XqaJU?epG$KVT6Hs^Qa)kf z0V+K6@%R2>6Te*NxP0S=BwV0--i^ZR9e+F5+`QLh$9_r>AODv6$)1n8tY=-;wLA_q-1U_e#wH U;)&(BVfTMPq9{q&#NWRAzvA$7$^ZZW literal 0 HcmV?d00001 diff --git a/modules/seminar/thumbs/seminar_widget8_thumbs.png b/modules/seminar/thumbs/seminar_widget8_thumbs.png new file mode 100644 index 0000000000000000000000000000000000000000..7cfddf7db8b3d929275380b1578b1a832fbff1a6 GIT binary patch literal 2197 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 literal 0 HcmV?d00001 diff --git a/seminar.gemspec b/seminar.gemspec index ce46ac5..2beacfa 100644 --- a/seminar.gemspec +++ b/seminar.gemspec @@ -8,6 +8,72 @@ begin rescue => e puts [e.to_s,e.backtrace] end +require "json" +env_pwd = ENV['PWD'] +app_path = File.expand_path(__dir__) +template_path = env_pwd + '/app/templates' +all_template = Dir.glob(template_path+'/*/') +default_seminar_widget_info = JSON.parse(File.read("#{app_path}/modules/seminar/info.json"))["widgets"].sort_by{|h| h["filename"].to_i} rescue [] +all_template.each do |folder| + if !folder.include?('mobile') + info_json_file = "#{folder}modules/seminar/info.json" + if File.exist?(info_json_file) + Bundler.with_clean_env{system ('cp -f '+ app_path + '/modules/seminar/show.html.erb ' + "#{folder}modules/seminar/.")} + update_seminar_template(folder) + begin + file_text = File.read(info_json_file) rescue "" + encode_file_text = file_text.encode("UTF-8", "UTF-8", invalid: :replace, replace: "???") + next if (encode_file_text.include?("???") rescue true) + info = JSON.parse(encode_file_text) rescue {} + flag = (info.count != 0 rescue false) + if flag + puts "Checking seminar widgets" + widget_info = info["widgets"].sort_by{|h| h["filename"].to_i} rescue [] + update_flag = false + last_index = widget_info[-1]["filename"].match(/\d+/)[0].to_i rescue nil + if !last_index.nil? + idx_regex = /^(\d+[\. \t]*)|[ \t]+$/ + default_seminar_widget_info.each do |h| + name_without_index = h["name"]["zh_tw"].gsub(idx_regex,'') + widget_info_index = (widget_info.index{|hh| hh["name"]["zh_tw"].gsub(idx_regex,'') == name_without_index}||-1 rescue -1) + if widget_info_index == -1 + update_flag = true + copy_h = h.dup + h.delete("force_cover") + last_index = last_index + 1 + copy_h["filename"] = copy_h["filename"].sub(/\d+/){|ff| last_index.to_s} + copy_h["name"].keys.each do |locale| + copy_h["name"][locale] = copy_h["name"][locale].sub(/\d+/){|ff| last_index.to_s} + end + widget_info << copy_h + Bundler.with_clean_env{%x[cp -f #{app_path}/modules/seminar/_#{h["filename"]}.html.erb #{folder}modules/seminar/_#{copy_h["filename"]}.html.erb]} + elsif h["force_cover"] == "true" + Bundler.with_clean_env{%x[cp -f #{app_path}/modules/seminar/_#{h["filename"]}.html.erb #{folder}modules/seminar/_#{widget_info[widget_info_index]["filename"]}.html.erb]} + end + end + if update_flag + info["widgets"] = widget_info + puts "Writing json #{info["widgets"].count} in #{info_json_file}" + begin + info_json = JSON.pretty_generate(info).gsub(":[",":[\n").gsub(":{",":{\n") + rescue + info_json = info.to_s.gsub("=>",": \n") + end + File.open(info_json_file,"w+"){|f| f.write(info_json)} + end + end + end + rescue => e + puts e + puts "There has some error when checking seminar widgets" + end + else + if !Dir.exist?(File.dirname(info_json_file)) && Dir.exist?(File.dirname(File.dirname(info_json_file))) + Bundler.with_clean_env{system ('cp -r '+ app_path + '/modules/ ' + folder)} + end + end + end +end Gem::Specification.new do |s| s.name = "seminar" s.version = "0.0.1"